Я пытаюсь создать подключаемый модуль, который будет принимать значение телевизора списка и устанавливать поле документа createdby в соответствии с настройкой onDocFormSave этого телевизора. Телевизор автоматически заполняет себя всеми активными пользователями и выводит их ID.
У меня есть следующий код для плагина, но когда я пытаюсь сохранить какой-либо ресурс, он просто зависает и никогда не сохраняется. setCreatedBy – это имя списка TV:
switch ($modx->event->name) < case ‘onDocFormSave’: $created_by = $resource->getTVValue(‘setCreatedBy’) if ($resource->get(‘createdby’) != $created_by) < $modx->resource->set(‘createdby’, $created_by)); > break; >
Benjamin Morrison 23 Апр 2014 в 03:51
Я следил за вашим вопросом на форумах. Если кому интересно, проблема была в переключателе. Имя события OnDocFormSave , а не onDocFormSave .
OptimusCrime
24 Апр 2014 в 02:03
3 ответа
Похоже, настройку тоже надо делать на ресурсе, а не через Modx-класс.
MODX. Как реализовать текстовые блоки на TV и MIGX. Сравнение.
$resource->set(‘createdby’, $created_by); // You also have a ) too much in your code.
OptimusCrime 23 Апр 2014 в 03:56
Я исправил проблему с лишним) и изменил строку на то, что вы предложили, но, к сожалению, она все еще зависает при сохранении ресурса и не изменении поля createdby для ресурса.
Источник: question-it.com
Modx как получить tv ресурса
Если вы тут, значит вы уже знаете что такое если же нет, то вот немного теории.
Поэтому сразу приступим к настройке в MODX.
Первым делом создадим «Дополнительное поле TV»
- Имя*: canonical
- Подпись: Добавляет тэг canonical
- Описание: Добавляет тэг
- Тип ввода: Текст
- Необязательно: Да
- Тип вывода: По умолчанию
- На вкладке «Доступно для шаблонов» указать свой шаблон (Поставить галочку).
В итоге мы получили дополнительное поле TV в теле ресурса. Благодаря этому мы можем указать адрес каноничного материала.
Если мы его оставим пустым, то MODX должен настраивать href на текущий URL страницы.
Итак продолжим настройки.
Откроем чанк в котором у нас описывается тег
У меня всё разделено на дополнительные чанки, т.е. для каждого типа тегов в создан чанк, чанк для CSS, для Скриптов, для META и т.д.
Добавляем следующий код. (Внимание! у вас должен быть установлен плагин pdoTools)
modx tv
- если для ресурса в TV «canonical» указан URL, то берём данные для rel=»canonical» href из него.
- если для ресурса TV «canonical» — пусто, то указываем для rel=»canonical» href текущей страницы.
Источник: 3dlan.ru
Основы и термины в MODx
Параметры (TV) — используются в шаблонах, позволяют расширить функционал шаблона, параметры становятся доступны при редактировании ресурса которому назначен шаблон с параметрами.
Чанки — чистый HTML-код, и любые php-скрипты выполняться в них не будут (можно в нем использовать чанки и сниппеты).
Сниппеты — это чистый PHP-код, и если вы хотите вывести данные сниппета в определенном месте в шаблоне, вам необходимо возвращать данные из самого сниппета.
Плагины — это фактически PHP-код, который создает некую универсальную функцию, которую можно включать в сниппеты, чанки, шаблоны. Одна из особенностей плагина это вешать его на системные события, что не доступно для сниппета.
Список параметров ресурса
[[*longtitle]] — Расширенный заголовок
[[*introtext]] — Аннотация (введение)
[[*content]] — содержимое ресурса
Список дополнительных команд
[[~100~]] — получить урл ресурса по номеру
[[++site_url]] — получить урл сайта, главной страницы (MODx Revolution 2.7.0-pl)
[[++site_name]] — получить имя сайта (MODx Revolution 2.7.0-pl)
Источник: small-whale.org