Всего 123 808 комментариев

Vladimir
30 декабря 2022, 12:49
0
Потому что задача стоит такая, чтобы если больше 5тя сделанных заказов, то должна галочка стоят в каждом заказе от этого пользователя. Нет какого-то функционала если больше 5ти заказов, это галочка чисто для менеджеров будет
Артур Шевченко
30 декабря 2022, 12:14
0
А почему нельзя просто проверять есть ли у этого пользователя 5 или более заказов и делать, то что нужно?
Наумов Алексей
30 декабря 2022, 08:01
0
У отзыва нет отдельной страницы. реализовать, естественно, это можно, вариантов реализации много.
Простой способ — передавать id отзыва через GET параметр при запросе к специальной странице «Читать отзыв». Ну и там далее получать этот отзыв из базы и выводить.
Михаил
30 декабря 2022, 03:05
0
Как сделать ссылку на страницу отзыва? Что то типа Читать отзыв подробнее (как на Отзовик.ру)
Артур Шевченко
30 декабря 2022, 00:12
0
Вообще, когда своих знаний маловато, используют готовые решения, для фильтрации это mSearch2. Но если хочется сделать самому, вот хорошая статья по составлению запросов в modx.
Лена
29 декабря 2022, 10:00
+1
Нашла проблемы ещё с другими пакетами, уже в проектах которые сама делаю, приняла решение откатиться до второй версии пока что, а как можно будет переходить на третью тогда обновляться. Но MODX 3 классный, понравился.
Vladimir
29 декабря 2022, 08:45
0
Добавил поле, однако оно дублируется, стоит самым первым, а так же 4м, 1 что стоит оно отключено и не возможно набрать, а последнее работает отлично, как убрать дубликат? В админке так же есть уже другие доп поля, сделанные не мной, такого плагина как тут не стояло там.

Мой плагин получился таким.
<?php
switch ($modx->event->name) {
    case "OnMODXInit":
        $map = array(
            'modUser' => array(
                'fields' => array(
                    'regular_customer' => 1,
                ),
                'fieldMeta' => array(
                    'regular_customer' => array(
                        'dbtype' => 'tinyint',
                        'precision' => '1',
                        'phptype' => 'boolean',
                        'attributes' => 'unsigned',
                        'null' => false,
                        'default' => 0,
                    ),
                ),
            )
        );

        foreach ($map as $class => $data) {
            $modx->loadClass($class);

            foreach ($data as $tmp => $fields) {
                if ($tmp == 'fields') {
                    foreach ($fields as $field => $value) {
                        foreach (array('fields', 'fieldMeta', 'indexes') as $key) {
                            if (isset($data[$key][$field])) {
                                $modx->map[$class][$key][$field] = $data[$key][$field];
                            }
                        }
                    }
                } elseif ($tmp == 'composites' || $tmp == 'aggregates') {
                    foreach ($fields as $alias => $relation) {
                        if (!isset($modx->map[$class][$tmp][$alias])) {
                            $modx->map[$class][$tmp][$alias] = $relation;
                        }
                    }
                }
            }
        }
        break;
    
    case "OnUserFormPrerender":
        if (!isset($user) || $user->get('id') < 1) {
            return;
        }

        if (!$modx->getCount('modPlugin', array('name' => 'AjaxManager', 'disabled' => false))) {
            $data['regular_customer'] = $user->regular_customer ? 'true' : 'false';

            $modx->controller->addHtml("
                <script type='text/javascript'>
                    Ext.ComponentMgr.onAvailable('modx-user-tabs', function() {
                        this.on('beforerender', function() {
                            // Получаем колонки первой вкладки
                            var rightCol = this.items.items[0].items.items[0].items.items[1];

                            // Добавляем чекбокс первым по счёту полем (перед чекбоксом 'Активный')
                            rightCol.items.insert(0, 'modx-user-regular-customer', new Ext.form.Checkbox({
                                id: 'modx-user-regular-customer',
                                name: 'regular_customer',
                                hideLabel: true,
                                boxLabel: 'Постоянный покупатель',
                                description: 'Указывает что пользователь сделал более 5ти заказов.',
                                xtype: 'xcheckbox',
                                inputValue: 1,
                                listeners: {
                                    beforerender: function(that) {
                                        that.hiddenField = new Ext.Element(document.createElement('input')).set({
                                            type: 'hidden',
                                            name: that.name,
                                            value: 0,
                                        });
                                    },
                                    afterrender: function(that) {
                                        that.el.insertHtml('beforeBegin', that.hiddenField.dom.outerHTML);
                                    },
                                },
                                checked: {$data['regular_customer']},
                            }));
                        });
                    });
                </script>
            ");
        }
        break;
}
guitar_plus
29 декабря 2022, 04:55
0
Разобрался выдает ошибку «Array and string offset access syntax with curly braces is no longer supported in » поменял php c 8.1 версии на 7.4 все заработало

Спасибо.
Fr3ddy
28 декабря 2022, 22:43
0
спасибо, ошибки были но данные в вкладке вернулись

ждать фикс в новой версии?
Prihod
28 декабря 2022, 22:31
0
выполни в консоли modx код

<?php
$pkgName = 'Polylang';
$pkgNameLower = mb_strtolower($pkgName);

$modelPath = $modx->getOption("{$pkgNameLower}.core_path", null, $modx->getOption('core_path') . "components/{$pkgNameLower}/") . 'model/';
$manager = $modx->getManager();
$manager->addField('PolylangContent', 'createdby', array('after' => 'content'));
$manager->addField('PolylangContent', 'createdon', array('after' => 'content'));
$manager->addField('PolylangLanguage', 'locale', array('after' => 'culture_key'));
$manager->addField('PolylangLanguage', 'icon', array('after' => 'culture_key'));
$manager->addField('PolylangLanguageGroup', 'icon', array('after' => 'id'));
после выполнения кода информация в консоли про ошибки дублирование это нормально
Fr3ddy
28 декабря 2022, 22:22
0
после обновления 2 сайтов на версию 1.3.6 с версии 1.3.1 в логах

[2022-12-28 21:18:16] (ERROR @ /home/www/core/xpdo/om/xpdoobject.class.php: 240) Error 42S22 executing statement:
Array
(
[0] => 42S22
[1] => 1054
[2] => Unknown column 'PolylangContent.createdby' in 'field list'
)

и пропали переводы на вкладке «локализация»
alexandr.skyrda
28 декабря 2022, 20:54
0
или похоже, что здесь core вынесен отдельно за public_html?
мне по сути поменять на define('MODX_CORE_PATH', MODX_BASE_PATH. 'public_html/core/');?
alexandr.skyrda
28 декабря 2022, 20:52
0
насколько я понимаю, при данном конфиге папку можно просто в корень закинуть?
define('MODX_CORE_PATH', MODX_BASE_PATH . 'core/');
define('MODX_MANAGER_PATH', MODX_BASE_PATH . 'public_html/manager/');
define('MODX_CONNECTORS_PATH', MODX_BASE_PATH . 'public_html/connectors/');
define('MODX_ASSETS_PATH', MODX_BASE_PATH . 'public_html/assets/');
Артур Шевченко
28 декабря 2022, 20:41
0
Выполнить команду в консоли примерно такую
php ~/_build/build.package.php
Но тут надо смотреть какая конфигурация билда, чтобы верно положить эту папку относительно папки core, так как без установленной CMS Modx Revolution пакет не соберётся.
alexandr.skyrda
28 декабря 2022, 20:35
0
хорошо, как его правильно запустить, что бы собрать пакет?
Николай Савин
28 декабря 2022, 19:58
+2
Значит нужно смотреть журнал ошибок сервера.
Виталий
28 декабря 2022, 19:14
0
Всех приветствую. Удалось ли как то решить проблему с задержкой на фронте от компонента, тикет уже не создать, так как давно покупал. А тут решил протестировать и понял что даже просто если установить компонент и открыть пустую страницу тестовую, то задержка действительно доходит до 5 секунд. После удаления все в норме. Как вообще можно отследить где задержка? DebugParser не показывает запросы такие.
Артур Шевченко
28 декабря 2022, 18:43
0
Должен быть в папке build, называется build.package.php