Подскажите как работает компонент Gallery?
У компонента в экшенах вызывается файл:
core/components/gallery/index.php
Этот файл в свою очередь вызывает файл core/components/gallery/controllers/index.php, который отсутствует
Но тем не менее компонент как-то работает…
Причем в папке core/components/gallery/ вообще нету исполняемых php файлов, одни классы…
Помогите понять как он функционирует?
Если в ваших сила, не могли бы мне написать цепочку как выполняется этот компонент?
Все это из-за того, что я хочу понять как в этом компоненте подключается редактор tinyMCE к текстовому полю.
Подключается он не просто, там и запуск события и подключение js библиотеки от компонента tinyMCE, до конца не разобрался, потому что не могу понять вообще как этот компонент работает… Заранее благодарю!
core/components/gallery/index.php
Этот файл в свою очередь вызывает файл core/components/gallery/controllers/index.php, который отсутствует
$o = include dirname(__FILE__).'/controllers/index.php';
return $o;
Но тем не менее компонент как-то работает…
Причем в папке core/components/gallery/ вообще нету исполняемых php файлов, одни классы…
Помогите понять как он функционирует?
Если в ваших сила, не могли бы мне написать цепочку как выполняется этот компонент?
Все это из-за того, что я хочу понять как в этом компоненте подключается редактор tinyMCE к текстовому полю.
Подключается он не просто, там и запуск события и подключение js библиотеки от компонента tinyMCE, до конца не разобрался, потому что не могу понять вообще как этот компонент работает… Заранее благодарю!
Комментарии: 12
Редактор привинтил! Если что — обращайтесь! Но как работает экшен, если инклюдного файла нет, я не разобрался, т.к. даже хз где смотреть про это.
Молодец, поздравляю!
Спасибо! Рано поздравил… Теперь вот какая проблема всплыла:
У меня грид с многими полями, у каждой строки грида свое редактирование, но в одном и том же окне (ну как в стандартном компоненте типа doodles). Редактор подгружается так:
Короче жопа… Не знаю что делать. Надо как-то всегда дестроить редактор и заново инициализировать. Но как его дестроить я не представляю…
У меня грид с многими полями, у каждой строки грида свое редактирование, но в одном и том же окне (ну как в стандартном компоненте типа doodles). Редактор подгружается так:
MODx.loadRTE('question_text');
где question_text — id элемента:{
xtype: 'textarea'
,fieldLabel: _('narkfaqs.question_text')
,name: 'question_text'
,id: 'question_text'
,height: '100'
,anchor: '100%'
}
Но проблема в том, что при открытии первого элемента для редактирования, редактор подгружается к текстовому полю и запоминает текст в нем. И при открытии других элементов — текст остается первый — тот который был при первой инициализации редактора…Короче жопа… Не знаю что делать. Надо как-то всегда дестроить редактор и заново инициализировать. Но как его дестроить я не представляю…
Нашел таки решение:
this.on('activate',function(w,e) {
MODx.loadRTE('question_text');
MODx.loadRTE('answer_text');
},this);
this.on('deactivate',function(w,e) {
tinyMCE.execCommand('mceRemoveControl',true,'question_text');
tinyMCE.execCommand('mceRemoveControl',true,'answer_text');
},this);
Подглядел его у галки в редактировании ресурса «включить редактор»
Решение для прикрутки tinyMCE тут: forums.modx.com/thread/83447/how-bind-rich-text-editor-tinymce-package-to-modext-textarea-field-in-custom-component#dis-post-460854
Ребят, голову сломала.
В админке есть ДЕЙСТВИЕ, ссылающееся на
/core/components/import/index.php
там я пытаюсь программно создать галерею по примеру
В админке есть ДЕЙСТВИЕ, ссылающееся на
/core/components/import/index.php
там я пытаюсь программно создать галерею по примеру
// Перечисляем параметры вызова процессора
$processorProps = array(
'name' => 'my album',
'parent' => 3
);
// Массив опций для метода runProcessor
$otherProps = array(
// Здесь указываем где лежат наши процессоры
'processors_path' => $modx->getOption('core_path') . 'components/gallery/processors/'
);
// Запускаем
$response = $modx->runProcessor('mgr/album/create', $processorProps, $otherProps);
// И возвращаем ответ от процессора
// Смотрим, что получилось
print_r($response->isError()); // у меня тут true
Но мне всегда возвращает что есть ошибка, запускаю под админом.print_r($response->getMessage());
возвращает{"gal-tree-album":["\/root"],"modx-leftbar-tabs":{"activeTab":0},"modx-resource-tree":["\/root","\/root\/en_0","\/root\/web_0"],"modx-tree-action":["\/n_root_0","\/n_root_0\/n_namespace_archivist","\/n_root_0\/n_namespace_import"],"modx-tree-element":["\/root","\/root\/n_type_snippet","\/root\/n_type_chunk","\/root\/n_type_tv","\/root\/n_type_template","\/root\/n_type_tv\/n_tv_category_15","\/root\/n_type_tv\/n_tv_category_4","\/root\/n_type_plugin"],"modx-tree-menu":["\/n_\/n_site","\/n_\/n_components"],"tickets-ticket-update-tabpanel":{"activeTab":2},"undefined-sort-default":"menuindex","undefined-sort":"menuindex"}
Попробуй узнать точнее, что за ошибка:
if ($response->isError()) {
print_r($response->getAllErrors());die;
}
А то у тебя какой-то json возвращается, непонятно зачем.
что удивительно, та же фигня =(
Array ( [0] => {"gal-tree-album":["\/root"],"modx-leftbar-tabs":{"activeTab":0},"modx-resource-tree":["\/root","\/root\/en_0","\/root\/web_0"],"modx-tree-action":["\/n_root_0","\/n_root_0\/n_namespace_archivist","\/n_root_0\/n_namespace_import"],"modx-tree-element":["\/root","\/root\/n_type_snippet","\/root\/n_type_chunk","\/root\/n_type_tv","\/root\/n_type_template","\/root\/n_type_tv\/n_tv_category_15","\/root\/n_type_tv\/n_tv_category_4","\/root\/n_type_plugin"],"modx-tree-menu":["\/n_\/n_site","\/n_\/n_components"],"tickets-ticket-update-tabpanel":{"activeTab":2},"undefined-sort-default":"menuindex","undefined-sort":"menuindex"} )
Видимо тогда нет смысла проверять isError — раз там всегда возвращается json.
Попробуй смотреть
Попробуй смотреть
print_r($response->getObject());
Array()
Эх, придется работать через объекты или напрямую.
странно, что этот код работает в плагине для ТВ galleryitemview
Эх, придется работать через объекты или напрямую.
странно, что этот код работает в плагине для ТВ galleryitemview
Array() тоже всегда?
По идее, если создан новый альбом, там должен быть id новой записи.
Вообще, похоже, что процессор кривой у этого компонента.
По идее, если создан новый альбом, там должен быть id новой записи.
Вообще, похоже, что процессор кривой у этого компонента.
ага, должен возвращаться aarray['album']
попробую еще через коннектор достучаться
попробую еще через коннектор достучаться
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.