Вопросы и ответы по разработке CMP
Последнее обновление May 5th, 2019 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn moreНа этой странице рассматриваются часто задаваемые вопросы и советы по устранению неполадок на страницах CMP.
Нумерация вопросов представляет собой просто число, указывающее, на какой вопрос вы смотрите, чтобы помочь при просмотре.
Это временная версия документации, и вы можете использовать ее для завершения! Если у вас нет доступа для редактирования этой страницы, пожалуйста, опубликуйте добавление или обновление в этой теме на форумах.
Этот документ всегда будет в процессе разработки, так как новые функции будут добавлены/изменены. Вы можете помочь содержать его в актуальном виде! Если у вас нет доступа для редактирования этой страницы, пожалуйста, опубликуйте добавление или обновление в этой теме на форумах.
Для редакторов:
- Пожалуйста, используйте правильные заголовки (заголовок 2 для категорий, заголовок 3 для вопросов), чтобы убедиться, что оглавление и пр. сформированы правильно и имеют смысл.
- Большие темы могут быть созданы в качестве подстраницы к этой странице. Если другие страницы уже существуют в этих документах, пожалуйста, сделайте ссылку на них в первом разделе.
- Пожалуйста, убедитесь, что нумерация верна, когда вы добавляете вопрос, чтобы облегчить чтение страницы.
- Убедитесь, что вы предлагаете много ссылок на дальнейшее чтение по теме.
Спасибо!
Другие источники:
- Документация по ExtJS 3.4.0
- Пользовательские страницы менеджера
- Разработка дополнения в MODX Revolution (в частности, часть 2)
1. Общая информация¶
1.1. Что такое коннекторы и процессоры? А что такое контроллер?¶
Коннектор - это php-файл, доступный через Интернет, который служит целевой точкой для внутренних запросов AJAX. Он принимает запрос POST и направляет его в нужный процессор (как указано в сообщении «action» или параметре url), который выполняет фактическую работу по обработке сообщения (который был добавлен в $scriptProperties переменной коннектора) и возвращает массив JSON с результатами запроса.
Контроллер - это файл, который возвращает HTML разметку, а также вставляет JavaScript и CSS во внутреннюю страницу.
Типичные местоположения внутри компонента:
- Коннектор: assets/components/mycomponent/connector.php or assets/components/mycomponent/mgr/connector.php
- Процессор: core/components/mycomponent/processors/mgr/processorname.class.php (кастомные процессоры должны называться
<action>.class.php, а файл должен возвращать имя класса; класс обычно наследует\MODX\Revolution\Processors\Processorили один из его потомков) - Контроллер: core/components/mycomponent/controllers/controllername.class.php (файл класса, а не голый PHP-файл)
1.2. Зачем мне все эти штуки в моей странице? Разве я не могу просто отобразить некоторые значения в моем контроллере и собрать что-нибудь оттуда?¶
Конечно, вы можете сделать это тоже, если хотите.
Однако рекомендуется использовать разные части, чтобы быть уверенным в том, что вы можете легко развернуть их в других установках (поскольку все они будут предполагать наличие файлов в этом конкретном месте). Это также позволяет пользователям перемещать основную папку MODX из корневого каталога, доступного через Интернет, что повышает безопасность системы.
1.3. Какую версию ExtJS использует MODX Revolution?¶
| Версия MODX | Версия ExtJS |
|---|---|
| 3.x | 3.4 |
| 2.3+ | 3.4 |
| 2.1.2-пл | 3.4.0 |
| 2.1.0-rc1 | 3.3.1 |
| 2.0.4-пл | 3.3.0 |
| 2.0.0-RC2 | 3.2.1 |
MODX 3 по-прежнему поставляет Ext JS 3 (manager/assets/ext3/), поэтому Ext JS 3.4 остаётся целевым API для CMP. При желании для конкретной страницы менеджер может загрузить и другие JS-фреймворки параллельно с ним.
1.4. Могу ли я использовать виджеты ExtJS, которые MODX использует в менеджере, в моем собственном CMP?¶
Да - к тому же, это также сохраняет код.
Убедитесь, что вы тестировали свой код в различных релизах MODX, поскольку основной код подвержен изменениям, которые могут нарушить вашу реализацию.
2. Устранение неполадок ExtJS / modExt¶
2.1. Ошибка: синтаксическая ошибка: неожиданный токен '<' в ext-all.js Строка 7¶
После инициирования запроса AJAX к коннектору/процессору при получении эта ошибка обычно означает, что ответ, который был возвращен, недействителен.
Часто это вызвано фатальной ошибкой PHP в коде процессора. Изучите исходящий запрос с помощью Firebug или Developer Tools, чтобы увидеть, что он возвращает и где ошибка в PHP.
2.2. Почему моя сетка отправляет два запроса, когда я обновляю его /changePage/filter?¶
Это было вызвано устаревшей ошибкой, исправленной для MODX 2.2-rc1. Если вы по-прежнему испытываете ряд ненужных запросов, убедитесь, что у вас нет прослушивателей, вызывающих другое обновление/загрузку, changePage(0) и refresh() или иным образом, явно вызывающим запрос дважды.
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn more










