Подскажите как работает компонент Gallery?

У компонента в экшенах вызывается файл:
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, до конца не разобрался, потому что не могу понять вообще как этот компонент работает… Заранее благодарю!
Peter Zenin
28 марта 2013, 10:03
modx.pro
1 717
0

Комментарии: 12

Peter Zenin
29 марта 2013, 13:34
0
Редактор привинтил! Если что — обращайтесь! Но как работает экшен, если инклюдного файла нет, я не разобрался, т.к. даже хз где смотреть про это.
    Василий Наумкин
    29 марта 2013, 14:06
    0
    Молодец, поздравляю!
      Peter Zenin
      01 апреля 2013, 13:15
      0
      Спасибо! Рано поздравил… Теперь вот какая проблема всплыла:
      У меня грид с многими полями, у каждой строки грида свое редактирование, но в одном и том же окне (ну как в стандартном компоненте типа doodles). Редактор подгружается так:
      MODx.loadRTE('question_text');
      где question_text — id элемента:
      {
          xtype: 'textarea'
          ,fieldLabel: _('narkfaqs.question_text')
          ,name: 'question_text'
          ,id: 'question_text'
          ,height: '100'
          ,anchor: '100%'
      }
      Но проблема в том, что при открытии первого элемента для редактирования, редактор подгружается к текстовому полю и запоминает текст в нем. И при открытии других элементов — текст остается первый — тот который был при первой инициализации редактора…

      Короче жопа… Не знаю что делать. Надо как-то всегда дестроить редактор и заново инициализировать. Но как его дестроить я не представляю…
        Peter Zenin
        01 апреля 2013, 15:24
        0
        Нашел таки решение:
        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);
        Подглядел его у галки в редактировании ресурса «включить редактор»
      yani
      20 декабря 2013, 01:42
      0
      Ребят, голову сломала.
      В админке есть ДЕЙСТВИЕ, ссылающееся на
      /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"}
        Василий Наумкин
        20 декабря 2013, 09:19
        0
        Попробуй узнать точнее, что за ошибка:
        if ($response->isError()) {
        	print_r($response->getAllErrors());die;
        }
        А то у тебя какой-то json возвращается, непонятно зачем.
          yani
          20 декабря 2013, 12:35
          0
          что удивительно, та же фигня =(
          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"} )
            Василий Наумкин
            20 декабря 2013, 12:57
            0
            Видимо тогда нет смысла проверять isError — раз там всегда возвращается json.

            Попробуй смотреть
            print_r($response->getObject());
              Yana V
              20 декабря 2013, 13:16
              0
              Array()
              Эх, придется работать через объекты или напрямую.
              странно, что этот код работает в плагине для ТВ galleryitemview
                Василий Наумкин
                20 декабря 2013, 13:29
                0
                Array() тоже всегда?
                По идее, если создан новый альбом, там должен быть id новой записи.

                Вообще, похоже, что процессор кривой у этого компонента.
                  Yana V
                  20 декабря 2013, 13:41
                  0
                  ага, должен возвращаться aarray['album']
                  попробую еще через коннектор достучаться
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        12