Антон Соловьёв

Антон Соловьёв

С нами с 14 января 2013; Место в рейтинге пользователей: #416

Поле extended ломает профиль юзера

Доброго времени. Удивительную вещь заметил — стоит сохранить в любом расширенном поле имя отчество (пробовал только со своим) — мой профиль перестает загружаться. Причем это происходит, если сохранять программно или через админку.
Как-то так выглядит.

$user = $modx->getObject('modUser',['id'=>1])->Profile;
$ext = $user->get('extended');;
$ext['surname'] = 'Ант Владимирович';
print_r($ext);
$user->set('extended',$ext);
$user->save();
Ан Владимирович — все ок, Антон Владимиро тоже, а вот Антон Владимиров уже ломает профиль. И дело не в длине сохраняемой строки. Чисто принт-эром нашел, что все ломается где-то здесь, в _parseCustomData
Антон Соловьёв
05 февраля 2017, 09:35
modx.pro
603
0

MODx.Window и ItemSelector [решено]

UPD
я извиняюсь, перед теми, кому вдруг было интересно (ну, мало ли), что задержался, замоталси, но проблема была в том, что в ItemSelector предполагается, что reset происходит полсе события рендер и там используются this.toMultiselect, this.hiddenField, которые задаются в онРендер. А я зациклился на модхсовой части. А там в общем ресет вызывается до рендеренга…
/-----------------------------------------------------/

Доброго времени. В примерах к extjs есть кастомный компонент ItemSelector.
Выглядит вот так
Вроде бы он наследует от Ext.form.Field и может быть значит указан в форме, если подключить необходимые скрипты ( ItemSelector.js и MultiSelect.js ). И вот какая история, не работает с окошками модх. А в таком виде виджит прекрасно работает
Антон Соловьёв
26 июня 2016, 12:56
modx.pro
1 180
0

Связанные комбобоксы

У меня в компоненте несколько городов и районы в них. В таблице районов есть поле city с id города, а в extjs в BaseParam указан id в параметре city по которому процессор фильтрует только те районы, кот. есть в данном городе. И вот я в городах слушаю событие выбора города и меняю параметр city. Проблема в обновлении комбобокса района автоматически, от выбора города. Т.е. если я выбрал город и в ручную удалил выбранный район — все как надо, выпадает нужный список районов. Но ведь это поле человек может и не трогать, оно должно автоматом обновляться. Так вот, я для этого использую getStore().load(), потом дергаю getStore().data.items и сравниваю что там есть со значением в районе (zone.value). Если getStore().data.items — пусто или там нету объекта с id из zone.value (т.е. по запросу с указанным городом пришли районы, но в них нет того, что сейчас выбран в комбобоксе), то очищаю значение в комбобоксе района. А там уж пользователь нужный ставит. Так вот, я выбираю в комбобоксе город А и затем город Б, срабатывает событие, но в zone.getStore().data.items всегда приходит результат, будто в city id того города, который я выбирал до этого (т.е. город А).
Антон Соловьёв
20 апреля 2015, 13:24
modx.pro
727
0

Как юзать modx-dataview?

Нужно вызвать Ext.DataView в компоненте. Просто отобразить фотографии в папке (превью).
docs.sencha.com/extjs/3.4.0/#!/api/Ext.DataView
dev.sencha.com/deploy/ext-3.4.0/examples/view/data-view.html
Мне представлялось, что чтобы вызвать это, нужно просто добавить элемент modx-dataview, передать ему нужный action с процессором, который возвращает данные о картинках в json по типу этого github.com/probonogeek/extjs/blob/3.x/examples/view/get-images.php
Пробовал по документации прописать
{
		xtype:  'modx-dataview'
		url:...
		action:...
        tpl: new Ext.XTemplate(
			'<tpl for=".">',
				'<div class="thumb-wrap" id="{name}">',
				'<div class="thumb"><img src="{url}" title="{name}"></div>',
				'<span class="x-editable">{shortName}</span></div>',
			'</tpl>',
			'<div class="x-clear"></div>'
		),
        autoHeight:true,
        multiSelect: true,
        overClass:'x-view-over',
        itemSelector:'div.thumb-wrap',
        emptyText: 'No images to display'
    }
чтобы для начала увидеть emptyText — но и его нет. Вообще много как пробовал.

Начал искать примеры использования — нашел только в Gallery и MS2
Антон Соловьёв
16 апреля 2015, 08:32
modx.pro
797
0

Чем плох Babel для мультиязычности?

Встала задача мультиязычности. Как бы Babel решает, но на всякий случай начал смотреть, что есть новенького по теме. При этом наткнулся на комментарии типа «придется Babel использовать» или «Babel не нравится заказчику, хочет, чтобы все в одном месте было» И собственно непонятно, а что с ним не так? Ну да, переключения контекстов во фронте может и неудобно настраивать, но это абсолютно не смертельно и не может быть аргументом, чтобы отзываться от Babel. Какие у него есть конкуренты?
Антон Соловьёв
05 марта 2015, 14:59
modx.pro
1
2 321
+1

Простейший grid, без url, proxy, др. запросов

Нужно получить в панелях админки простую табличку со стандартным видом в modx т.е. на ext.js и с группировкой (ну, чтоб sortable: true ). Создавать отдельные файлы не требуется, табличка очень небольшая и нужно просто получить массив на php, перевести его в json и отдать его ext.js. Т.е. не надо никаких урлОв-прохсЕй. Набрасал код, создал store, передал его гриду в переменной. Вроде все отображает, но крутится вечный лоадер и в консоил ошибка TypeError: this.proxy is undefined
Антон Соловьёв
24 ноября 2014, 07:16
modx.pro
882
0

Обработка json в компоненте modx

Решил я, что разумно и правильно хранить часть данных в строке json. Ну т.е. в таблице что-то типа
<field key="field_name" dbtype="text" phptype="string" />
И некий массив отправляется в $modx->toJSON() и сохраняется в field_name. Там список строк, состоящий из месяца, года и произвольного текста.
В json переводится что-то типа этого:
[0] => Array    
	(
                    ['time'] => 1999
                    ['mounth'] => 1
                    ['text'] => 'Текст'
                ),
[1] => Array    
	(
                    ['time'] => 2001
                    ['mounth'] => 8
                    ['text'] => 'Текст 2'
                ),
Но нужно как-то наладить управление ими в компоненте, составить гирд из json.
Антон Соловьёв
28 августа 2014, 17:57
modx.pro
4 681
0

Редактир-я в modExt:как получить данные др таблиц?

Есть таблица А, таблица Б в компоненте.
Одно из полей таблицы Б компонента содержит id документа modResource. В getlist.class.php (компонент не на гитхабе, modExtra для наглядности) таблицы А я джоиню таблицу Б, в которой собственно id документа и джоиню modResource в prepareQueryBeforeCount, а в гирде вывожу pagetitle в одной из колонок и вместо Б.id, который собственно хранится в А,- Б.name и все хорошо.
Но в функции update в row лежат только данные строки таблицы, которую мы редактируем (т.е. А), данных, полученных в getlist.class.php там нету. Но мне нужно
Антон Соловьёв
15 июля 2014, 08:19
modx.pro
791
0

migxdb: "Массовые действи" не лезут в свой блок

На одном сайте кнопки массовые действия не влезают в свой блок, как на других. Из-за этого кнопку «посмотреть корзину» не видно. (смотрите картинку). Сколько бы я не выставлял в Buttons per row выкладки Actionbuttons — блок остается маленьким. Да и само окно конфигурации открывается слишком высоко, так что его невозможно передвигать по экрану.
Как исправить проблему?
И еще, обычно не включаю массовые действия, они как-то непонятно работают. Если удаляю — попадают в корзину migxdb, но как их массово удалить из этой корзины? Могу конечно плагин написать, на клик по корзинке над деревом, но может есть способ проще? Да должен же быть.
MODX Revolution 2.2.14-pl. Скрины с проблемой приложил.
Антон Соловьёв
01 июля 2014, 18:31
modx.pro
634
0

Как настроить группы ресурсов

Народ, я туплю на каком-то этапе. Нужно скрыть тв от некоторых пользователей, раньше вроде делал.

Создал новую политику доступа скопировав Administrator и поотключав в ней все, что не считал нужным менеджеру. Т.е. почти все.
Создал роль с рангом 9 и группу ресурсов. В группе ресурсов указал через запитую контексты web и mgr, поставил галку «Автоматически дать доступ группе «Administrator»» и «Автоматически дать анонимный доступ». Там черным по белому написано, что тогда те, кто в группе администраторов может редактировать ресурсы, которые в этой группе. Действительно, в настройках «Доступ к ресурсам» группы пользователей Администратор появилась эта группа ресурсов дважды, для двух контекстов. Но я тв в админке не вижу. И на фронтенде его не видно. Я много создавал эти группы и подключал их к тв, которое нужно скрыть, писал web и mgr отдельно и вместе и через запяту с пробелами и без пробелов, добавлял группы ресурсов в настройках групп пользователей вручную… Один раз результат получился даже почти удовлетворительным: в поле «Контексты:» — «web,mgr», галки для автоматического доступа стояли, в результате те, кто в группе Administrator видят ТВ (ок), те, кто в группе manager не видят TV (ОК), а те, кто с фронтенда смотрит, тв к сожалению не видят. А должны, последние не устраивает. Во всех других случаях тв в группе ресурсов не видна вообще никому.
Антон Соловьёв
20 мая 2014, 17:52
modx.pro
3 973
0