Ivanov Alexandr

Ivanov Alexandr

С нами с 29 декабря 2012; Место в рейтинге пользователей: #454
Ivanov Alexandr
15 июня 2021, 13:42
0
И очередно вопрос.
Создал таблицу, создал поле. Захожу добавляю блок вроде все красиво и понятно, удобней чем через migx
На сайте же мне выводит следующее
Array ( [blocks] => Array ( [0] => Array ( [vopros] => Первый вопррос ) ) )

Чанк который указал создан.
Ivanov Alexandr
05 июня 2021, 10:30
0
Еще бы демо увидеть было бы не плохо.
Или пощупать на modhost.
Ivanov Alexandr
05 июня 2021, 10:27
0
Поставил на демо сайте вместе с CKEditor не работает. Жаль.
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? Можете пример показать?