Ivanov Alexandr

Ivanov Alexandr

С нами с 29 декабря 2012; Место в рейтинге пользователей: #423
Ivanov Alexandr
12 сентября 2020, 09:16
0
Код плагина подправил
<?php
switch ($modx->event->name) {
        case "OnMODXInit":
            $map = array(
                'modUserProfile' => array(
                    'fields' => array(
                        'opisanie' => '',
                        'sotrudnik' => '',
                        'sertifikat' => '',
                        'lico' => '',
                        'oborot' => '',
                    ),
                    'fieldMeta' => array(
                        'opisanie' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),
                        'sotrudnik' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),
                        'sertifikat' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),
                        'lico' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),
                        'oborot' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),                        
                    ),
                ),
            );
            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 ($user->get('id') > 0) {
                $data['opisanie'] = htmlspecialchars($user->Profile->opisanie);
                $data['sotrudnik'] = htmlspecialchars($user->Profile->sotrudnik);
                $data['sertifikat'] = htmlspecialchars($user->Profile->sertifikat);
                $data['lico'] = htmlspecialchars($user->Profile->lico);
                $data['oborot'] = htmlspecialchars($user->Profile->oborot);
                $modx->controller->addHtml("
                    <script type='text/javascript'>
                        Ext.ComponentMgr.onAvailable('modx-user-tabs', function() {
                            this.on('beforerender', function() {
                                // Получаем колонки первой вкладки
                                var leftCol = this.items.items[0].items.items[0].items.items[0];
                                // Добавляем новое поле в левую колонку 4ым по счёту полем (перед полем 'Email')
                                leftCol.items.insert(15, 'modx-user-opisanie', new Ext.form.TextArea({
                                    id: 'modx-user-opisanie',
                                    name: 'opisanie',
                                    fieldLabel: 'Описание компании',
                                    xtype: 'textarea',
                                    anchor: '100%',
                                    value: '{$data['opisanie']}',
                                }));
                                leftCol.items.insert(16, 'modx-user-sotrudnik', new Ext.form.TextField({
                                    id: 'modx-user-sotrudnik',
                                    name: 'sotrudnik',
                                    fieldLabel: 'Количество соттрудников',
                                    xtype: 'varchar',
                                    anchor: '100%',
                                    maxLength: 255,
                                    value: '{$data['sotrudnik']}',
                                }));
                                leftCol.items.insert(17, 'modx-user-sertifikat', new Ext.form.TextField({
                                    id: 'modx-user-sertifikat',
                                    name: 'sertifikat',
                                    fieldLabel: 'Наличие сертификата',
                                    xtype: 'varchar',
                                    anchor: '100%',
                                    maxLength: 255,
                                    value: '{$data['sertifikat']}',
                                }));
                                leftCol.items.insert(18, 'modx-user-lico', new Ext.form.TextField({
                                    id: 'modx-user-lico',
                                    name: 'lico',
                                    fieldLabel: 'Ответственное лицо',
                                    xtype: 'varchar',
                                    anchor: '100%',
                                    maxLength: 255,
                                    value: '{$data['lico']}',
                                }));
                                 leftCol.items.insert(19, 'modx-user-oborot', new Ext.form.TextField({
                                    id: 'modx-user-oborot',
                                    name: 'oborot',
                                    fieldLabel: 'Годовой оборот компании',
                                    xtype: 'varchar',
                                    anchor: '100%',
                                    maxLength: 255,
                                    value: '{$data['oborot']}',
                                }));                               
                            });
                        });
                    </script>
                ");
            }
            break;
    }
Все равно ничего не сохраняет на сайте.
Ivanov Alexandr
12 сентября 2020, 08:50
0
Все сделал по инструкции.
Плагин повесил на указанные события
<?php
switch ($modx->event->name) {
        case "OnMODXInit":
            $map = array(
                'modUserProfile' => array(
                    'fields' => array(
                        'opisanie' => '',
                        'sotrudnik' => '',
                        'sertifikat' => '',
                        'lico' => '',
                    ),
                    'fieldMeta' => array(
                        'opisanie' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),
                        'sotrudnik' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),
                        'sertifikat' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),
                        'lico' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),
                        'oborot' => array(
                            'dbtype' => 'varchar',
                            'precision' => '100',
                            'phptype' => 'string',
                            'null' => true,
                        ),                        
                    ),
                ),
            );
            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 ($user->get('id') > 0) {
                $data['opisanie'] = htmlspecialchars($user->Profile->opisanie);
                $data['sotrudnik'] = htmlspecialchars($user->Profile->sotrudnik);
                $data['sertifikat'] = htmlspecialchars($user->Profile->sertifikat);
                $data['lico'] = htmlspecialchars($user->Profile->lico);
                $data['oborot'] = htmlspecialchars($user->Profile->oborot);
                $modx->controller->addHtml("
                    <script type='text/javascript'>
                        Ext.ComponentMgr.onAvailable('modx-user-tabs', function() {
                            this.on('beforerender', function() {
                                // Получаем колонки первой вкладки
                                var leftCol = this.items.items[0].items.items[0].items.items[0];
                                // Добавляем новое поле в левую колонку 4ым по счёту полем (перед полем 'Email')
                                leftCol.items.insert(15, 'modx-user-opisanie', new Ext.form.TextArea({
                                    id: 'modx-user-opisanie',
                                    name: 'opisanie',
                                    fieldLabel: 'Описание компании',
                                    xtype: 'textarea',
                                    anchor: '100%',
                                    value: '{$data['opisanie']}',
                                }));
                                leftCol.items.insert(16, 'modx-user-sotrudnik', new Ext.form.TextField({
                                    id: 'modx-user-sotrudnik',
                                    name: 'sotrudnik',
                                    fieldLabel: 'Количество соттрудников',
                                    xtype: 'textfield',
                                    anchor: '100%',
                                    maxLength: 255,
                                    value: '{$data['sotrudnik']}',
                                }));
                                leftCol.items.insert(17, 'modx-user-sertifikat', new Ext.form.TextField({
                                    id: 'modx-user-sertifikat',
                                    name: 'sertifikat',
                                    fieldLabel: 'Наличие сертификата',
                                    xtype: 'varchar',
                                    anchor: '100%',
                                    maxLength: 255,
                                    value: '{$data['sertifikat']}',
                                }));
                                leftCol.items.insert(18, 'modx-user-lico', new Ext.form.TextField({
                                    id: 'modx-user-lico',
                                    name: 'lico',
                                    fieldLabel: 'Ответственное лицо',
                                    xtype: 'varchar',
                                    anchor: '100%',
                                    maxLength: 255,
                                    value: '{$data['lico']}',
                                }));
                                 leftCol.items.insert(19, 'modx-user-oborot', new Ext.form.TextField({
                                    id: 'modx-user-oborot',
                                    name: 'oborot',
                                    fieldLabel: 'Годовой оборот компании',
                                    xtype: 'varchar',
                                    anchor: '100%',
                                    maxLength: 255,
                                    value: '{$data['oborot']}',
                                }));                               
                            });
                        });
                    </script>
                ");
            }
            break;
    }
На странице редактирования профиля вывожу
[[!officeProfile?
	&HybridAuth=`0`
	&tplProfile=`PrifileEdit`
	&profileFields=`username:50,email:50,fullname:50,name:50,sotrudnik:50,lastname:50,phone:12,mobilephone:12,dob:10,
	address,state,zip,fax,photo,website,opisanie,lico,sertifikat,oborot`
]]
Пытаюсь отредактировать профиль а поля которые были созданы не сохраняются. При этом если в админке редактировать то поля сохраняются. А на сайте не хотят сохраняться. В чем может быть причина может что то не так сделал?

Стандартные поля при этом изменить можно на сайте. Не получается только добавленные.
Ivanov Alexandr
16 декабря 2019, 20:00
0
К примеру с полем tags. проблем нет все заполняется и добавляет а вот опции типа size никак не получается
Пишу так

<input type="text" name="options-size"  placeholder="" class="form-control-form">
И еще вопрос как вывести все товары пользователя в кабинете пользователя?
Ivanov Alexandr
16 декабря 2019, 19:53
0
Подскажите как добавить в форму поле size для добавления товара? В документации ничего подобного не нашел. Был бы признателен если кто то выложит чанк с такими полями. Спасибо.
Ivanov Alexandr
16 июля 2018, 09:24
0
В Geolocation это связанный с городом ресурс. При выводе этого плейсхолдера он вывод id связанного документа. Анеобходимо вывести алиас.
Ivanov Alexandr
15 июля 2018, 21:59
0
Для корректности, вашем случае нужно поступить вот так:
[[~[[#[[!+gl.current.data.resource]].parent]]]]
{$_modx->getPlaceholder('gl.current.data.resource') | resource: 'parent' | url}
// или
[[~[[pdoField? &id=`[[!+gl.current.data.resource]]` &field=`parent`]]]]
{var $myplace = $_modx->getPlaceholder('gl.current.data.resource')}
{$myplace | resource: 'parent' | url}
Такой вызов ничего не дает.

[[#[[!+gl.current.data.resource]].alias]]
или
[[#[[!+gl.current.data.resource]].uri]]

Дают ссылку на нужный адрес НО появляется ошибка
core/model/modx/modparser.class.php: 540) Could not find snippet with name #[[!+gl.current.data.resource]].alias.

С таким же вызовом
[[pdoField? &id=`[[!+gl.current.data.resource]]` &field=`alias`]]
Все работает ошибок нет но очень большое количество запросов к базе данных.
Ivanov Alexandr
15 июля 2018, 00:09
0
Решил таким образом [[pdoField? &id=`[[!+gl.current.data.resource]]` &field=`alias`]]
Ivanov Alexandr
26 июня 2018, 11:41
0
Какое дополнение для таксономии используете?
Ivanov Alexandr
24 февраля 2018, 21:31
0
Сачала необходимо создать такие товары а потом привязывать их к основному товару? И на странице основного выводить уже привязанные правильно?
Ivanov Alexandr
24 февраля 2018, 12:37
0
вы мне можете подсказать с помощью вашего дополнения я смогу реализовать вот такой функционал razgovorpodushek.ru/catalog/postelnoe-bele/1p/newcollection/labirintisnov/ добавление количества определенной опции?
Ivanov Alexandr
24 февраля 2018, 12:12
0
Как все это реализовать в админке можете подсказать нигде в документцаии не нашел.
Насколько я понял это дополнительные опции. С каким параметрами создавать эту опцию?
Ivanov Alexandr
24 февраля 2018, 10:18
0
Не могли бы вы на демо сайте сделать что бы в живую увидеть? Спасибо.
Ivanov Alexandr
24 февраля 2018, 09:50
0
Уверены что там есть возможность выбора количества для каждой опции?
Ivanov Alexandr
23 февраля 2018, 23:01
0
Возможно ли к каждой опции подставить выбор количества?
Ivanov Alexandr
28 мая 2017, 22:01
0
Спасибо за нужное дополнение. Возникла проблема с тем что после выбораа города не хочет переадресовывать на страницу которую выбрал для города. Не могли бы вы помочь?
Ivanov Alexandr
09 апреля 2017, 18:37
0
Неужели никто не знает или эти два дополнения не совместимы что бы в результатах отображались параметры tickets?
Dct/ документацию просмотрел нигде ничего не нашел.
Ivanov Alexandr
11 февраля 2017, 11:01
0
Что значит подключить pdoTools? Можете пример показать?
Ivanov Alexandr
13 января 2017, 13:35
0
Создал теги к тикетам почему то ссылка в теге выглядит вот так tag=%25D0%25B2%25D1%258B%25D1%2581%25D1%2582%25D0%25B0%25D0%25B2%25D0%25BA%25D0%25B0
можно как то исправить все делал по инструкции.
Ivanov Alexandr
08 января 2017, 10:33
0
1.Включил все в настройках pdoTools для работы Fenom.
2.Ничего такого вроде не установлено.

Есть ошибки в журнале
pdotools/model/pdotools/pdotools.class.php : 940) Unexpected tag 'MODX' in a60bff31b612880bc031a3ea735b5904 line 125, near '{MODX' <- there
Ivanov Alexandr
30 декабря 2012, 19:46
0
Так вы можете и один остаться.
Тему удалите зачем лишний раз показывать свою неадекватность.
Людям помогать надо а не гнобить считая себя умным а того кто не знает бестолковым.

Я написал здесь этот вопрос так как это сайт разработчика данного компонента. В итоге я получил негатив и сплошное хамство.