Павел Гвоздь

Павел Гвоздь

С нами с 31 мая 2015; Место в рейтинге пользователей: #2
Павел Гвоздь
31 октября 2016, 11:43
+3
К концу года выпущу вторую версию, если никаких незапланированных обстоятельств не случится. Там будет отдельная вкладка у ресурса, в которой можно добавить и точку на карте, и прямоугольник, и многоугольник. Почти, как конструктор Яндекс Карт.
Павел Гвоздь
29 октября 2016, 23:16
+1
Разница только в их доступности из того или иного класса, на мой взгляд. Если вам проще доставать их из modUserProfile, не делая лишнего обращения к базе, то пожалуйста.
Павел Гвоздь
29 октября 2016, 21:53
+1
Да нет, в посте такого быть не должно… Может быть вы поменяли массив $map у себя, перенеся поле new_checkbox из modUser в modUserProfile, поэтому у вас такая ошибка была, но если почитаете код, который есть в посте, то там всё корректно.
Павел Гвоздь
25 октября 2016, 18:47
0
Если есть возможность, напишите как
Для этого необходимо знать PHP. Надо подключить класс компонента в код и использовать метод применения промо-кода. Перед применением, желательно проверить на наличие и активность данного промо-кода.
Единственное, цены на товары вне корзины будут такими же, как и без промо-кода, а в корзине цена будет со скидкой.
Павел Гвоздь
25 октября 2016, 16:08
0
А условие применения промо-кода для конкретного юзера не нужно? Если нет, то с помощью данного компонента + плагина/сниппета, выполняющего применение промо-кода и редирект — задача решаема.
Павел Гвоздь
25 октября 2016, 16:02
0
Опишите задачу подробнее, пожалуйста.
Павел Гвоздь
25 октября 2016, 10:53
+2
Id там вообще не нужно указывать для скрытого поля. Поправил немного код плагина в посте, чтобы таких моментов не возникало больше. Вот код, который ставит на страницу 2 чекбокса — откорректируй под себя:
switch ($modx->event->name) {
    case "OnMODXInit":
        $map = array(
            'modUserProfile' => array(
                'fields' => array(
                    'cb1' => 1,
                    'cb2' => 1,
                ),
                'fieldMeta' => array(
                    'cb1' => array(
                        'dbtype' => 'tinyint',
                        'precision' => '1',
                        'phptype' => 'boolean',
                        'attributes' => 'unsigned',
                        'null' => false,
                        'default' => 1,
                    ),
                    'cb2' => array(
                        'dbtype' => 'tinyint',
                        'precision' => '1',
                        'phptype' => 'boolean',
                        'attributes' => 'unsigned',
                        'null' => false,
                        'default' => 1,
                    ),
                ),
            ),
        );

        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['cb1'] = $user->Profile->cb1 ? 'true' : 'false';
            $data['cb2'] = $user->Profile->cb2 ? '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-cb1', new Ext.form.Checkbox({
                                id: 'modx-user-cb1',
                                name: 'cb1',
                                hideLabel: true,
                                boxLabel: 'Новый чекбокс юзера 1',
                                description: 'Описание нового чекбокса...',
                                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['cb1']},
                            }));
                            
                            rightCol.items.insert(0, 'modx-user-cb2', new Ext.form.Checkbox({
                                id: 'modx-user-cb2',
                                name: 'cb2',
                                hideLabel: true,
                                boxLabel: 'Новый чекбокс юзера 2',
                                description: 'Описание нового чекбокса...',
                                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['cb2']},
                            }));
                        });
                    });
                </script>
            ");
        }
        break;
}
Павел Гвоздь
24 октября 2016, 09:29
+6
Для русскоязычного MODX сообщества это действительно праздник, т.к. благодаря Василию мы все здесь сегодня собрались.
С Днём рождения, дорогой Василий! Великих свершений тебе, радости ежеминутной, постоянного движения вперёд и ввысь!
Павел Гвоздь
21 октября 2016, 02:01
+1
Ай-яй-яй, какой плохой Василий! Баги не хочет исправлять!
Павел Гвоздь
20 октября 2016, 11:24
0
Ждём ответа администрации. Ссылки указаны корректно, но не работают именно на моих дополнениях. :))
Павел Гвоздь
20 октября 2016, 10:25
+2
Моя вчерашняя реакция на данную новость… =D
Павел Гвоздь
19 октября 2016, 23:49
+2
Ну раз так, то я бы попросил ещё зачёркнутые (мягко удалённые ресурсы) подсветить красным (или каким-нибудь розовым) цветом.
Павел Гвоздь
19 октября 2016, 15:56
+2
Значит всё-таки поставил AdminTools. )
Ну так! Мимо уже проходить стало невозможно, уж больно много интересного и полезного реализовано. Вот бы ещё controlErrorLog был по-умолчанию в AdminTools, чтобы не тянуть 2 пакета.
Павел Гвоздь
19 октября 2016, 14:07
0
Можно ссылку на Bootstrap 4 SCSS? Что-то я найти его не могу.
Павел Гвоздь
19 октября 2016, 13:52
+3
Очень красиво получилось, Сергей! Только просьба, чтобы правый сайдбар и стили не применялись сразу после инсталляции пакета.

— Обновлено
Кстати, тоже обожаю darkula из Шторма. =)
Павел Гвоздь
18 октября 2016, 13:38
0
А для чего ТИЦ нужен, если не секрет?
Павел Гвоздь
17 октября 2016, 21:18
0
Да это, наверняка, связано со сменой IP…
Павел Гвоздь
17 октября 2016, 14:12
0
Как связаться то? Скайп в профиле, если что.
Павел Гвоздь
17 октября 2016, 10:39
+1
Напишите мне в скайп, он есть в профиле.