Вопросы

Расширение класса mspreActionsProduct в mspre

Доброй пятницы, уважаемые разработчики, Андрей в их числе.
Подскажите как расширить класс mspreActionsProduct в mspre. Хочу добавить дополнительные возможности.
Не могу понять, на какое событие нужно повесить плагин.
Роман
11 декабря 2020, 18:20
modx.pro
522
0

кастомное поле с типом file в дополнении Office

подскажите пожалуйста, как добавить поле с типом «file» в дополнении Office, что бы пользователь мог прикреплять свои документы в личном кабинете.
Искал здесь modx.pro/howto/8889
но там на примерах вроде как добавляют только текстовые поля и чекбоксы
alexandr.skyrda
11 декабря 2020, 15:41
modx.pro
742
0

Проблема с IF в SELECT при xpdo запросе.Через pdoTools

На некотрых запросах использую конструкцию вида:
'select'=>[
                        'MaterialDet'=>'IF(SUM(MaterialDet.status_id)/COUNT(MaterialDet.status_id)<2,1,2) as material_status1',
                    ],
MODX делает экранирование 1:
SELECT IF(SUM(MaterialDet.status_id)/ COUNT(MaterialDet.status_id)<2, `1`, 2) AS material_status1
Чудом нашел код в котором это безобразие происходит :-). В файле /core/xpdo/om/mysql/xpdoquery.class.php в строке 57 проверка на экранирование:
$escape = !preg_match('/\bAS\b/i', $column) && !preg_match('/\./', $column) && !preg_match('/\(/', $column);
Я нашел выход и добавил проверку на цифры и строку:
$escape = !preg_match('/\bAS\b/i', $column) && !preg_match('/\./', $column) && !preg_match('/\(/', $column) && !preg_match('/^\d+[\.,]?\d*$/', trim($column)) && !preg_match('/^\'[^ \']*\'$/', trim($column));
Может кто-нибудь знает лучшее решение? https://github.com/modxcms/revolution/issues/15347

UPD 12.12.2020
Выяснилось, что эта ошибка возникает от pdoTools.
Александр Туниеков
10 декабря 2020, 22:14
modx.pro
735
0

PdoTools(ajaxMode) для таблицы

Сделал вывод дополнительных ячеек таблицы по кнопке показать еще:
Виноградов Тимур
10 декабря 2020, 19:54
modx.pro
906
0

FormIt и расширение модели

Добрый день,

Подскажите затупку как расширить модель FormIt

Я хочу добавить в общую табличку картинку вот так
yadi.sk/i/NiuxZK7tNXPp6w

Я создал в БД поле
yadi.sk/i/TbDR0LDMHw5H4g

Потом в файле, который отвечает за рендер таблички прописал поля

yadi.sk/i/7A618k_pdx00oQ

Потом пошел в shema и прописал там
<?xml version="1.0" encoding="UTF-8"?>
<model package="formit" baseClass="xPDOObject" platform="mysql" defaultEngine="InnoDB" phpdoc-package="formit">
    <object class="FormItForm" table="formit_forms" extends="xPDOSimpleObject">
        <field key="form" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
        <field key="context_key" dbtype="varchar" precision="100" phptype="string" null="false" default=""/>
        <field key="values" dbtype="text" phptype="string" null="false" default=""/>
        <field key="ip" dbtype="varchar" precision="100" phptype="string" null="false" default=""/>
        <field key="date" dbtype="int" precision="11" phptype="integer" null="false" default=""/>
        <field key="encrypted" dbtype="tinyint" precision="1" phptype="boolean" null="false" default="0"/>
        <field key="encryption_type" dbtype="int" precision="2" phptype="integer" null="false" default="1"/>
        <field key="hash" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
      <field key="images" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
    </object>
</model>
в formitform.map.inc.php

прописал
<?php
/**
 * @package formit
 */
$xpdo_meta_map['FormItForm']= array (
  'package' => 'formit',
  'version' => NULL,
  'table' => 'formit_forms',
  'extends' => 'xPDOSimpleObject',
  'tableMeta' => 
  array (
    'engine' => 'InnoDB',
  ),
  'fields' => 
  array (
    'form' => '',
    'context_key' => '',
    'values' => '',
    'ip' => '',
    'date' => 0,
    'encrypted' => 0,
    'encryption_type' => 1,
    'hash' => '',
  ),
  'fieldMeta' => 
  array (
    'form' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '255',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
    'context_key' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '100',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
    'values' => 
    array (
      'dbtype' => 'text',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
    'ip' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '100',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
    'date' => 
    array (
      'dbtype' => 'int',
      'precision' => '11',
      'phptype' => 'integer',
      'null' => false,
      'default' => 0,
    ),
    'encrypted' => 
    array (
      'dbtype' => 'tinyint',
      'precision' => '1',
      'phptype' => 'boolean',
      'null' => false,
      'default' => 0,
    ),
    'encryption_type' => 
    array (
      'dbtype' => 'int',
      'precision' => '2',
      'phptype' => 'integer',
      'null' => false,
      'default' => 1,
    ),
    'hash' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '255',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
   
    'images' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '255',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
  ),
);
Что еще нужно сделать?) или это вообще не правильно?)
perfkirill
10 декабря 2020, 16:17
modx.pro
1 223
0

Не корректно выводится слайдер через AjaxSnippet

Добрый день!

Не корректно выводится слайдер при загрузке через AjaxSnippet. Без AjaxSnippet все работает и отображается как положено. Подскажите пожалуйста решение.

Вывожу так:
[[!AjaxSnippet?
    &snippet=`pdoResources`
    &resources=`getTickets`
    &parents=`1893` 
    &limit=`10` 
    &includeTVs=`image`
    &tpl=`tpl.gallery.big`

]]
На выходе получаю это:
Денис
10 декабря 2020, 11:43
modx.pro
1 322
0

Как можно стилизовать колонку в таблице заказов minishop2 по условию?

Здравствуйте!

Можете, пожалуйста, подсказать. Мне нужно сделать такое оформление:
Если цена в заказе превышает определенное значение, то сделать ее красной в блоке заказов в админке minishop2, если цена меньше определенного значения, то сделать ее зеленой.

Как можно такое реализовать?
Lori
10 декабря 2020, 10:59
modx.pro
698
0

Баг minishop2 v2.6.0

В версии v2.6.0 minishop2 есть один баг. Для пользователя с ограниченными правами не доступен просмотр категорий и товаров. В частности отключен resourcegroup_resource_list (если его включить, то пользователь начнет создавать ресурсы в «Группы ресурсов» и если они запрещены к удалению, то он не сможет их удалять). Может уже кто решил данную проблему?
Сергей
09 декабря 2020, 17:22
modx.pro
708
0

Удалить данные migx поля

Подскажите как лучше реализовать удаление данных migx поля по заданной дате. Логика такая, что одно из полей migx — поле типа дата и оно сравнивается с текущей датой, как только дата удаления равна текущей, данные migx поля удаляются. Наверное тут нужен небольшой плагин и если да то на какое событие его лучше вешать?
dokreg
09 декабря 2020, 15:54
modx.pro
1 098
0

Formit и Fenom. Не работают плейсхолдеры в формах

Коллеги, привет, помогите!
По Formit и Fenom вопрос. Вызовы плейсхолдеров Formit не работают. Например:
{$_modx->getPlaceholder('fi.id')}
Не работает в форме. Отсутствует он. Работает старый плейсхолдер:
[[+fi.id]]}
Остальные тэги на fenom работают. Но модификаторы старые не работают, соответственно чекбоксы, например, не работают.
[[!+fi.secondarySplashTabs:FormItIsChecked=`1`]]
Несколько строк кода формы:
<div class="container container_mini">
<h1 class="wrap mt-3">{$_modx->getPlaceholder('fi.id')}-нет, а [[+fi.id]] - есть</h1>
Максим Логинов
09 декабря 2020, 01:33
modx.pro
1 099
0