Modx модули: Дополнения MODX / modstore.pro

Содержание

Лучшие бесплатные ModX плагины для вашего сайта

  • Виджеты
  • Блог
  • Tutorials
  • Войти
  • Зарегистрироваться
  • Виджеты Social
    • Facebook Виджет
    • Facebook Кнопка
    • Instagram Feed
    • Instagram Profile
    • Pinterest Виджет
    • Twitter Виджет
    • Иконки Соцсетей
    • Социальные Кнопки
    Video
    • Vimeo Виджет
    • YouTube Виджет
    Audio
    • Аудио Плеер
    • Подкаст Плеер
    • Радио Плеер
    • Фоновая Музыка
    Reviews
    • Airbnb Отзывы
    • AliExpress Отзывы
    • Amazon Отзывы New
    • Apple App Store Отзывы
    • BBB Отзывы
    • Booking Отзывы
    • DealerRater Отзывы
    • Edmunds Отзывы
    • Etsy Отзывы
    • Facebook Отзывы Trending
    • G2 Crowd Отзывы
    • Google Play Отзывы
    • Google Отзывы
    • Hotels Отзывы
    • Houzz Отзывы
    • Instagram Отзывы
    • OpenTable Отзывы
    • TripAdvisor Отзывы
    • Trustpilot Отзывы
    • Yelp Отзывы
    • Виджет Отзывов
    • Слайдер Отзывов
    Chats
    • Facebook Чат
    • Telegram Чат New
    • Viber Чат
    • WhatsApp Чат
    • Онлайн Чат
    Forms
    • Конструктор Форм
    • Форма Обратной Связи
    E-commerce
    • PayPal Кнопка
    • Кнопка Звонка
    • Попап Конструктор
    • Таблица Цен и Тарифов
    • Таймер и Счетчик
    Tools

Готовые дополнения для MODX / MODX.im

Всем доброго времени суток.
Мне наконец надоело заниматься заполнением глобальных настроек через базу и разные быстрые решения. Было решено пошустрому собрать модуль + плагин для редактирования статичных данных которые часто раскиданы по чанкам и разным страницам. В общем собрал все в одно место. Настройка может подменять и плейсхолдер и тв. Редактируется удаляется переименуется все из модуля.

Весь код находится на гите. Предложения и вопросы можно тут а можно и в разделе ошибок на гитхабе.

Модуль работает на версиях 5.2 и выше. В остальном я думаю никаких ограничений нет, но я не ручаюсь т.к. не тестил на других сборках.

Что может модуль:
1) создавать новые настройки в базе system_settings с префиксом global_

2) редактировать эти настройки из модуля.
3) рассовывать настройки по разным группам.
4) присваивать настройкам разные типы редактирования (чекбокс, изображение, файл и т.д.). Селекты как обычно поддерживают стандартный вариант заполнения значений (1||2||3 и 1==имя1||2==имя2). В дальнейшем наполнится возможными типами редактирования.
5) естественно возможность удалять настройки с префиксом global_
6) Есть возможность при помощи плагина подменять [* и [+ на значение настройки. (пример есть настройка global_sitePhone, при выставлении параметров подмены будет доступен в качестве [*sitePhone*] и [+sitePhone+]. Если значение является массивом то доступ к нему как к массиву можно получить через [(sitePhone)]). Удобно если нужно перевести старый проект на этот модуль а вычищать и менять все вызовы тв на вызовы настройки нет желания, как мне 🙂

Планируется добавить поддержку мультитв и множественного изображения.

Что могут плагины
gPHParser:
1) Парсит глобальные настройки с префиксом global_ отчищает их от шелухи и кладет на место уже без префикса.
2) Раскладывает настройки в зависимости от выбранных типов доступности (плейсхолдер — gPH, ТВ — gTV, настройка — по умолчанию всегда)

3) Если включен frontEditor в настройках то оборачивает все текстовые настройки в div для указания что этот текст можно править.

Плагин вызывается по событию onParseDocument, подмена обрабатывается только один раз, при первом проходе парсера. В последующие проходы парсера они доступны уже во всех положенных местах.

gPHFrontEditor:
1) Добавляет скрипты на страницу для активации фронтэдитора.
2) Активирует доступные к редактированию изображения ссылки видео.
3) Сохраняет новые данные после редактирования.
4) Скидывает кеш страниц т.к. редактор виден обычным пользователям. (нужно сделать сброс кеша исключительно данной страницы ибо выходит немного накладно)

Плагин вызывается по событию onWebPageInit, сброс кеша происходит по событию onWebPageComplete.

Немного скриншотов.




Ссылка на видео

Кому интересно можете покопаться на гите)

UPD 10/03

Создавать настройку с пустым именем нельзя.
Группа назначается автоматом если группа не была выбрана и новая не была указана.

Имена настроек транслитируются на английскую раскладку.
Добавлен ричтекст. Ричтекст рендерится на основании дефолтного. Если у вас в настройках выставлено отсутствие ричтекста то будет выводится большая текстареа.
Поправлены небольшие баги. Проведены небольшие доработки кода.
Добавлен префикс в плагин. Теперь можно не перезаписывать существующие плейсхолдеры и тв. По дефолту префикс «g.»

UPD 10/03

Поправил багу с пересохранением значения ричтекста.
Добавил поддержку разделения настроек по табам исходя из группы.

UPD 15/03

Добавлена запись глобальной настройки вида g_[%option_name%] для доступа к настройке без плагина.
Добавлена настройка позиции для группирования настроек.
Поправлены баги с сохранением текста содержащего переносы строк в базу. (Будет еще допиливаться для сохранения переносов т.к. сейчас они просто вытираются)
Добавлен пользовательский шаблон для вывода настройки, в пользовательском шаблоне не выводится имя настройки а только описание.

UPD 27/03

Сделал простенький фронтенд редактор для настроек. Редактор может править тексты (рич, инпуты, текстареа) работать с тегом видео, изображения, ссылки. Т.е. можно менять изображения текста видео ссылки на файлы и видео прям на живую с фронта.

Немного поправил код плагинов и модуля.
Добавил обработку переносов строки для текстареа. Теперь на фронте они как br а в самой текстареа как \r\n.

UPD 30/03

Полностью убран конфиг модуля. Вместо него теперь полноценная страница настройки в модуле.
Поправлены мелкие недочеты с логикой и всякие мелочи типа общей группы.
Добавлен евент OnWebPageComplete в котором скидывается кеш. Сделано для того чтобы веб пользователь не видел скешированную после плагина страницу (потом переделаю во что-то более путное).
Добавлены конфиги в установочные файлы. Теперь модуль и плагины доступны в Extras в качестве одного пакета.

Знакомство с MODX / Хабр

В наши дни выбор систем управления контентом (CMS) настолько велик, что невольно теряешься. Причем, качество системы не зависит от того платная она или нет, а принятое решение затем надолго вас привязывает к выбранной CMS.
Предлагаю вашему вниманию перевод статьи английского веб-разработчика Марка Дженкинса, открывшего для себя MODX после многих лет разработки в различных системах.
Вначале идет перевод статьи, затем — некоторые комментарии по тексту.



Я только что закончил свой второй проект на платформе MODX, и думаю, самое время изложить свои мысли. У меня сложилось такое впечатление, что в web-индустрии MODX преимущественно не имеет широкую известность, отчасти поэтому, в целях просвещения, я и пишу эту статью.
MODX – это система управления контентом с открытым кодом. Она построена на основе PHP и MYSQL, поэтому работает практически на любом сервере. Как и в WordPress существуют две версии: MODX Revolution (как wordpress.org, версия для скачивания и установки на ваш сервер) и MODX Cloud (как wordpress.com).
MODX – непритязателен: не важно, где располагаются шаблоны, как они организованы или где размещается контент. Это гибкая система, позволяющая работать как вам угодно.
Выбор систем управления сайтами (CMS) довольно широк. Раньше я пользовался WordPress, Perch, Expression Engine и Kirby, так же как Shopify и Magento для интернет-магазинов. Я использую WordPress и Perch на постоянной основе и обе системы доказали свою надежность и простоту использования.
Отсюда возникает вопрос: «Зачем вообще я должен вникать в MODX?»
Думаю, будет честно, если скажу, что я довольно хорошо знаком с WordPress, т.к. делал в этой системе практически все: блоги, 5-ти страничные сайты, мульти- региональные сайты с сотнями страниц. Разрабатывая на WordPress большие сайты, я сталкивался со многими трудностями, например: структура постоянных ссылок и систематика могут быть ограничены. Хотя в последние годы CMS значительно улучшилась, но все же чувствуется, что это не подходящий инструмент для работы с огромными и сложными сайтами.
Именно здесь MODX предстает во всей красе. Пока WordPress собирает структуру (пользовательские типы постов, систематика, темы) MODX предлагает пустую оболочку, готовую подстроиться под любые ваши потребности.
То, с какой легкостью MODX работает с шаблонами, впечатляет. Не нужно создавать шаблоны с заданным именем файла или размещать их в определенной папке, а синтаксис MODX обеспечивает чистоту и доступность кода.
Освоить MODX несложно.
Во-первых
, MODX использует другую терминологию:
  • Ресурсы – веб-страницы (ресурсами также могут быть документы, ссылки и проч.)
  • Шаблоны
  • Переменные шаблона – эквивалент пользовательских полей в WordPress
  • Чанки – повторяющаяся на разных страницах HTML- разметка (например: шапка, подвал, боковые панели и т.д.)
  • Сниппеты – динамические куски PHP кода.

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


Моя команда не испытывала никаких трудностей с последним проектом. Мы использовали этот .gitignore файл для исключения всего, кроме папок assets и core.
В базе данных не хранятся пути к файлам, поэтому можно запросто перемещать базы данных во время разработки.
Как я уже отмечал в этой статье, изучить MODX несложно. Некоторое время займет привыкание к терминологии и способам реализации тех или иных вещей.
Документация достаточно хорошая, хотя в поисках ответов на некоторые вопросы вам придется постараться. Шансы найти ответ по возникшей проблеме в WordPress, вероятно, в несколько раз выше, т.к. численность сообщества MODX поменьше.
Тем не менее, я нашел сообщество в Твиттере, которое оказалось очень полезным. Отправив несколько вопросов группе #MODX, я каждый раз получал хотя бы один ответ, который направлял меня в нужном русле.
Процесс установки MODX более сложный, чем у WordPress. Например, чтобы установить систему локально, я клонировал наш репозиторий, затем скопировал туда файлы MODX, настроил файлы конфигурации, запустил установку, подправил некоторые файловые разрешения и снова запустил установку. По сравнению с WordPress, поднятие и запуск MODX немного витееваты.
Пока я еще новичок в MODX и должен многое изучить, в конечном итоге, я понимаю, что нашел добротную и надежную CMS, предлагающую гибкость, которая мне нужна.
Я без сомнений могу порекомендовать ее для бизнеса с большими веб-сайтами на сотни страниц. И уже с нетерпением жду погружения в следующий MODX проект…

Комментарии от переводчика


  1. Автор статьи выделяет две версии MODX:
    Revolution
    и Modxcloud, между тем как официальное разделение происходит на Revolution и Evolution.
    Версия MODX Revolution рекомендуется к использованию всеми пользователями, включая новичков, это современная, надежная система. Совершенно новый API базы данных на основе xPDO обеспечивает эффективный и простой способ чтения, создания и редактирования всех MODX объектов. С помощью одного простого запроса можно манипулировать данными нескольких MODX таблиц.
    Версия MODX Evolution также достаточно надежна и стабильна, постоянно обновляется, но является уже устаревшей, и подходит для сайтов, которые уже работают на ней или для тех веб-хостов, где ограничена оперативная память 8M или 16M, т.к. для Revolution требуется минимуму 32M.
    Что касается Modxcloud, то это дополнительный сервис от команды MODX — виртуальный хостинг на базе уже встроенной самой последней версии MODX Revolution. Хостинг рассчитан на серьезные проекты с большой нагрузкой на сервер, хотя есть возможность выбрать бесплатный вариант размещения (очень даже неплох для получения опыта работы с MODX). Разместив сайт на MODXcloud, процесс обновления в дальнейшем происходит по клику, можно сказать, вопрос обеспечения безопасности сайта здесь вне конкуренции.
  2. Когда автор говорит о хорошей документации, речь, конечно, идет о англоязычной версии.
    Тем не менее, русскоговорящих сайтов по системе MODX сейчас довольно много, так что разработчики не будут одиноки.
  3. Автор описывает трудности установки MODX на локальный сервер, но на самом деле все гораздо проще: сервер с установленным PHP и cgi не досаждает с вопросами доступа и процесс установки длится 3-5 минут.
    А вообще, разработчики MODX рекомендуют пользоваться расширенным дистрибутивом установки (advanced вместо traditional), что на порядок повышает безопасность вашей системы: вы можете ядро системы установить в папку, недоступную из веба, а папки бэк-энд менеджера и коннекторов переименовать как вам угодно.

mSync / Импорт, Экспорт / Дополнения MODX / modstore.pro

Внимание, этот компонент требует версию PHP 5.3 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.

Внимание, этот компонент требует версию MODX не ниже 2.3 !

Внимание: техподдержка не будет осуществляться с 10.07.2020 по 26.07.2020 по причине отпуска разработчика.

Компонент позволяет импортировать товары и торговые предложения из 1С, Класс365 и МойСклад по протоколу CommerceML в интернет-магазин на основе miniShop2.

Описание протокола обмена с сайтом можно прочитать здесь.

Возможности:
— Импорт товаров со свойствами и картинками, торговых предложений из 1С и других сервисов.
— Экспорт заказов с сайта в 1С.
— Экспорт товаров в CSV.
— Расширяемость процессов импорта и экспорта с помощью плагинов.
— Логирование всего процесса синхронизации или предоставление краткого отчета.
— Синхронизация файлов с каталогом товаров и предложениями без участия 1С.

Для установки необходимо наличие miniShop2. На сервере php 5.3.0 или выше с поддержкой модулей XML (SimpleXML, XMLReader, XMLWriter). Подробнее об установке в разделе документации.

Настройка связей свойств товаров 1С с товарами в miniShop2:

Синхронизация справочника товаров:

Подробнее об интерфейсе в документации.

Порядок обращения при проблемах:
При проблемах синхронизации включите системную настройку msync_debug, проведите тестовую синхронизацию.
В папке /core/components/msync/logs при этом создадутся один или несколько файлов.
Приложите к описанию проблемы архив с этими файлами (только актуальные, не нужно отправлять всю папку!), а так же файлами синхронизации import.xml, offers.xml (могут называться иначе, например import0_1.xml и т.д.)

Модуль синхронизации MODX Evolution + Shopkeeper c системой 1С

Скачать модуль с github

Описание:
За основу взят модуль импорта/экспорта товаров catalogFiil, входящий в состав модуля Shopkeeper, к которому «прикручен» дополнительный функционал.

Добавленные возможности:
— в модуле добавлена новая вкладка «Настройки синхронизации с 1С», в которой можно сохранить след. настройки:
— адрес ссылки, по которой будет работать cron
— выбор файла конфигурации
— указание ID раздела каталога для импорта

Ограничения:
— для импорта возможно использовать только файл в формате .csv
— для запуска импорта (синхронизации) можно использовать только веб-ссылку (указанную в настройках модуля)

Принцип синхронизации с 1С:
1. Программист 1С должен настроить цикличную (допустим каждый день в 8 утра) выгрузку товаров в файл формата .CSV через FTP на сервер сайта в каталог:

/корень_сайта/assets/modules/catalogFill_1C/import/

2. С помощью панели управления хостингом (или другими способами) необходимо настроить CronTab (планировщик заданий) который должен проходить по веб-ссылке, адрес которой вы указывается в модуле.

3. Пройдя по ссылке, он запустит скрипт импорта товаров в базу сайта.

Установка модуля:
1. Скачайте модуль с github

2. Залейте скаченную папку «assets» в корень сайта. Если зальете в другую папку, то нужно будет менять пути в конфиг. файлах.

3. В админке MODX, можно либо создать новый модуль, либо обновить существующий.

3.1. Если создаем новый: идем в «Модули» -> «Управление модулями» -> «Новый модуль»
— название: Синхронизация с 1С
— код модуля:

require MODX_BASE_PATH."assets/modules/catalogFill_1C/catalog_fill_1C.inc.php";

Нажимаем кнопку «Сохранить» и жмем F5.

3.2. Если обновляем существующий модуль: идем в «Модули» -> «Управление модулями» -> кликаем по шестеренкам напротив «Импорт/экспорт товаров» -> «Редактировать»

3.3. код модуля меняем на

require MODX_BASE_PATH."assets/modules/catalogFill_1C/catalog_fill_1C.inc.php";

3.4. сохраняем.

4. Создаем новый плагин. Идем в «Элементы» -> «Управление элементами» -> «Плагины» -> «Новый плагин»
— название: 1С_sync_startPage
— код плагина:

include MODX_BASE_PATH."assets/modules/catalogFill_1C/1C_sync_startPage.inc.php";

— В вкладке «События плагина», необходимо поставить галочку напротив: «OnPageNotFound»
— сохраните плагин. (данный плагин отслеживает адрес ссылки по которой открыли сайт и сравнивает её с cсылкой сохрн. в модуле, если они совпадают — запустится импорт.)
Установка закончена.

Настройки модуля:
1. Открываем ново-созданный (или обновленный модуль).
2. Переходим во вкладку «Настройки синхронизации с 1С»
3. В поле «Адрес ссылки» вводим любую ссылку, начиная от корня сайта, например: /import/start.php — получится, что ссылка для запуска будет иметь след. вид: site.ru/import/start.php
4. Выберите файл конфигурации (подробнее о настройке этого файла — см. ниже)
5. В поле «ID раздела каталога» укажите номер ID раздела каталога в который будет осуществляется импорт
6. Сохраните настройки.
Настройка файла конфигурации — подробное руководство данного файла, написанно на сайте разработчика модуля — ссылка.
Так же, в архиве имеется тестовый файл конфигурации.

Если вам необходима помощь в настройке синхронизации с 1С — стучитесь в ВК — vk.com/tanzirev
Стоимость настройки, зависит от сложности каталога и импортируемого файла.

multiTV: Модуль - [MODX] Guru

Модуль multiTV Database Manager обеспечивает почти те же параметры, как и переменная шаблона multiTV в режиме datatable. Главное отличие - это прямой доступ к таблицам базы данных MODX Evolution.

С Database Manager можно управлять (CRUD) собственными таблицами базы данных.

Конфигурация

Каждый файл конфигурации создаст соответствующую вкладку в модуле Database Manager. Файлы конфигурацйии находятся в папке assets/tvs/multitv/moduleconfigs. Смотрите пример файла конфигурации event_log.moduleconfig.json

Каждый файл конфигурации содержит JSON массив со следующими параметрами:

Таблица

таблица базы данных с ключем table. Имя таблицы будет служить префиксом таблицы MODX.

Заголовок

Название вкладки в модуле Database Manager с ключем caption.

Процессоры

Путь к папке с процессорами можно установить в ключе processors. Если не задано, то по умолчанию используются процессоры assets/tvs/multitv/processors. Если задано, то процессоры извлекаются из вложенной папки assets/tvs/multitv/processors названой по значению ключа. If that subfolder does not exist, the value points to a subfolder of the MODX base path.

Существует пять процессоров, используемых в данный момент.

Поля

Поля таблицы базы данных могут быть определены в ключе fields. Этот ключ содержит массив fieldnames и каждый fieldname содержит массив свойств поля.

During adding/editing one row a layer is displayed. In this editing layer the MODX input type richtext is not usable at the moment (degrades to textarea).

Столбцы

Видимые столбцы datatable могут быть определены в ключе columns. Этот ключ содержит массив параметров столбцов. Каждый параметр столбца содержит массив свойств. Если свойство не задано, используется свойство ключа fields.

Редактирование слоев

Содержимое редактируемого слоя во время добавления/редактирования одной строки может быть определено в ключе form. Этот ключ содержит массив параметров вкладки form.

Each form tab setting contains an associative array of field properties (the key contains the fieldname in fields). If a field property is not set, the field property in fields is used.

Кнопки

Кнопки для модуля Database Manager могут быть определены в ключе buttons. Этот ключ содержит ассоциативный массив конфигурации кнопок.

Каждая конфигурация конопок содержит ассоциативный массив параметров кнопок.

Пример генерации кнопки.

"buttons": {
	"coupons": {
		"position": "topright",
		"buttons": {
			"generate": {
				"caption": "Generate",
				"icon": "wand.png",
				"processor": "generate",
				"form": [{
						"caption": "Coupon",
						"content": {
							"count": {},
							"discount": {},
							"validuser": {},
							"validgroup": {},
							"validuntil": {},
							"maxuse": {}
						}
					}
				]
			}
		}
	}
},

Другие опции

Другие опции могут быть определены в ключе configuration.

[EVO] globalPlaceholders - модуль глобальных плейсхолдеров, tv и настроек. / Готовые дополнения для MODX / MODX.im
Всем доброго времени суток.
Мне наконец надоело заниматься заполнением глобальных настроек через базу и разные быстрые решения. Было решено пошустрому собрать модуль + плагин для редактирования статичных данных которые часто раскиданы по чанкам и разным страницам. В общем собрал все в одно место. Настройка может подменять и плейсхолдер и тв. Редактируется удаляется переименуется все из модуля.

Весь код находится на гите. Предложения и вопросы можно тут а можно и в разделе ошибок на гитхабе.

Модуль работает на версиях 5.2 и выше. В остальном я думаю никаких ограничений нет, но я не ручаюсь т.к. не тестил на других сборках.

Что может модуль:
1) создавать новые настройки в базе system_settings с префиксом global_
2) редактировать эти настройки из модуля.
3) рассовывать настройки по разным группам.
4) присваивать настройкам разные типы редактирования (чекбокс, изображение, файл и т.д.). Селекты как обычно поддерживают стандартный вариант заполнения значений (1||2||3 и 1==имя1||2==имя2). В дальнейшем наполнится возможными типами редактирования.
5) естественно возможность удалять настройки с префиксом global_
6) Есть возможность при помощи плагина подменять [* и [+ на значение настройки. (пример есть настройка global_sitePhone, при выставлении параметров подмены будет доступен в качестве [*sitePhone*] и [+sitePhone+]. Если значение является массивом то доступ к нему как к массиву можно получить через [(sitePhone)]). Удобно если нужно перевести старый проект на этот модуль а вычищать и менять все вызовы тв на вызовы настройки нет желания, как мне 🙂

Планируется добавить поддержку мультитв и множественного изображения.

Что могут плагины
gPHParser:
1) Парсит глобальные настройки с префиксом global_ отчищает их от шелухи и кладет на место уже без префикса.
2) Раскладывает настройки в зависимости от выбранных типов доступности (плейсхолдер — gPH, ТВ — gTV, настройка — по умолчанию всегда)
3) Если включен frontEditor в настройках то оборачивает все текстовые настройки в div для указания что этот текст можно править.

Плагин вызывается по событию onParseDocument, подмена обрабатывается только один раз, при первом проходе парсера. В последующие проходы парсера они доступны уже во всех положенных местах.

gPHFrontEditor:
1) Добавляет скрипты на страницу для активации фронтэдитора.
2) Активирует доступные к редактированию изображения ссылки видео.
3) Сохраняет новые данные после редактирования.
4) Скидывает кеш страниц т.к. редактор виден обычным пользователям. (нужно сделать сброс кеша исключительно данной страницы ибо выходит немного накладно)

Плагин вызывается по событию onWebPageInit, сброс кеша происходит по событию onWebPageComplete.

Немного скриншотов.




Ссылка на видео

Кому интересно можете покопаться на гите)

UPD 10/03

Создавать настройку с пустым именем нельзя.
Группа назначается автоматом если группа не была выбрана и новая не была указана.
Имена настроек транслитируются на английскую раскладку.
Добавлен ричтекст. Ричтекст рендерится на основании дефолтного. Если у вас в настройках выставлено отсутствие ричтекста то будет выводится большая текстареа.
Поправлены небольшие баги. Проведены небольшие доработки кода.
Добавлен префикс в плагин. Теперь можно не перезаписывать существующие плейсхолдеры и тв. По дефолту префикс «g.»

UPD 10/03

Поправил багу с пересохранением значения ричтекста.
Добавил поддержку разделения настроек по табам исходя из группы.

UPD 15/03

Добавлена запись глобальной настройки вида g_[%option_name%] для доступа к настройке без плагина.
Добавлена настройка позиции для группирования настроек.
Поправлены баги с сохранением текста содержащего переносы строк в базу. (Будет еще допиливаться для сохранения переносов т.к. сейчас они просто вытираются)
Добавлен пользовательский шаблон для вывода настройки, в пользовательском шаблоне не выводится имя настройки а только описание.

UPD 27/03

Сделал простенький фронтенд редактор для настроек. Редактор может править тексты (рич, инпуты, текстареа) работать с тегом видео, изображения, ссылки. Т.е. можно менять изображения текста видео ссылки на файлы и видео прям на живую с фронта.
Немного поправил код плагинов и модуля.
Добавил обработку переносов строки для текстареа. Теперь на фронте они как br а в самой текстареа как \r\n.

UPD 30/03

Полностью убран конфиг модуля. Вместо него теперь полноценная страница настройки в модуле.
Поправлены мелкие недочеты с логикой и всякие мелочи типа общей группы.
Добавлен евент OnWebPageComplete в котором скидывается кеш. Сделано для того чтобы веб пользователь не видел скешированную после плагина страницу (потом переделаю во что-то более путное).
Добавлены конфиги в установочные файлы. Теперь модуль и плагины доступны в Extras в качестве одного пакета.

MODX Дополнительно | MODX Docs

В этом разделе документации вы найдете информацию о дополнениях для MODX Revolution. Эти дополнения (и их документация) сделаны сторонними разработчиками, поэтому официально не поддерживаются.

Где найти Дополнения

Официальный источник дополнений - MODX.com . Вы можете просмотреть сотни (бесплатных) дополнений, и каждая установка MODX уже настроена для загрузки и установки дополнений из MODX.ком через менеджер пакетов.

Доступны также сторонние источники и торговые площадки, которые обычно предлагают сочетание бесплатных и премиальных дополнений. К ним относятся:

Чтобы использовать сторонних дополнительных провайдеров, вам обычно необходимо создать учетную запись, чтобы получить доступ к их поставщикам пакетов. Вы можете найти больше информации о том, как это сделать, в документации для каждого из упомянутых поставщиков.

Обычно используемые Дополнительно

Имея почти 1000 доступных дополнений, при начале работы может быть сложно определить, какие дополнения следует использовать.Дополнения в следующем списке считаются отличным выбором в зависимости от требований вашего проекта.

Это не означает, однако, что это ваши единственные варианты. Просматривайте репозиторий, читайте форумы и делитесь интересными дополнениями, которые вы найдете в сообществе.

Навигация и контент

  • pdoTools - это набор полезных фрагментов, который призван стать современной (и в основном вставной) заменой старых (но все еще поддерживаемых) дополнений:
    • pdoResources является эквивалентом getResources, который можно использовать для перечисления ресурсов.Их также можно использовать для подачи RSS или создания Sitemap.
    • pdoMenu является эквивалентом Wayfinder, который используется для создания (многоуровневых) меню из вашего дерева ресурсов.
    • pdoPage является эквивалентом getPage, который упаковывает фрагменты вроде getResources / pdoResources с возможностями пагинации
    • pdoCrumbs можно использовать аналогично хлебным крошкам для создания цепочки крошек текущего ресурса.
  • getResourceField, pdoField или fastField извлекают одно поле ресурса.
  • AdvSearch или mSearch3 (дополнительная плата от modstore) добавляет функцию поиска на ваш сайт
  • Коллекции используются для большого количества ресурсов, таких как блоги или списки продуктов, и будут перечислять дочерние ресурсы в сетке вместо дерева
  • .
  • NewsPublisher позволяет пользователям создавать ресурсы во внешнем интерфейсе без необходимости доступа к MODX Manager (включает редактирование с расширенным текстом и браузер файлов / изображений).

Редактирование текста / кода

  • TinyMCE RTE - это многофункциональный текстовый редактор, основанный на TinyMCE 4.(Пакет под названием TinyMCE использует более старый TinyMCE 3)
  • TinymceWrapper - это реализация TinyMCE, использующая последнюю версию из CDN.
  • Redactor (Premium Extra от Modmore) представляет собой MODX-интеграцию Redactor.
  • CKEditor интегрирует CKEditor RTE в MODX.
  • Ace позволяет редактировать код ваших элементов в менеджере.

Media

  • Галерея может быть использована для добавления фотоальбомов на ваш сайт
  • MoreGallery (premium extra by modmore) для управления галереями изображений и видео (YouTube / Vimeo), реализованные в виде специального ресурса типа

форм

  • FormIt является стандартом в обработке формы заявки
  • Formalicious (Premium Premium, доступный в модмор и модстор) - это конструктор форм на основе FormIt
  • SPForm простая, защищенная от спама контактная форма

Многосайтовый, многоязычный, многодоменный, контексты

  • xRouting - это гибкий контекстный маршрутизатор, который поддерживает (под) домены и каталоги с минимальной конфигурацией
  • LangRouter - это контекстный маршрутизатор, который выбирает контекст на основе языка посетителей
  • Babel используется для соединения переводов в разных контекстах

Электронная коммерция

  • MiniShop2 - это мощное решение для электронной коммерции с открытым исходным кодом, со многими (платными и бесплатными) расширениями, доступными преимущественно из modstore
  • .
  • Commerce - это мощное решение для электронной коммерции премиум-класса от модмора
  • SimpleCart - это более простое решение для электронной коммерции премиум-класса, изначально разработанное OostDesign, которое теперь доступно с modmore

пользователей

  • Вход в систему - это набор инструментов, которые помогут вам интегрировать функциональность интерфейсного пользователя, включая вход в систему и профили.
  • HybridAuth может использоваться, чтобы позволить пользователям войти через социальные службы
  • Персонализация может отображать разные чанки в зависимости от того, вошел ли пользователь в систему или нет

блогов

  • Коллекции для перечисления дочерних ресурсов в сетке в диспетчере (а не в дереве ресурсов)
  • Quip или Tickets, чтобы добавить комментирующую функциональность
  • Tagger для добавления тегов вы можете фильтровать и искать сообщения по

Управление версиями и рабочий процесс

  • VersionX хранит копию изменений ваших ресурсов и элементов для легкого восстановления.
  • Предварительный просмотр и рабочий процесс (дополнительные функции Extras.io) обеспечивают предварительный просмотр и публикацию рабочих процессов.
  • MagicPreview (бесплатное дополнение от modmore) дает вам кнопку предварительного просмотра, которая позволяет вам видеть изменения вашего ресурса без необходимости сохранения изменений.
  • StageCoach позволяет организовать изменения страницы, чтобы они были применены в будущем.

Средства разработки

  • modDevTools добавляет дополнительные функции для менеджера, чтобы помочь разработчикам создавать сайты.
  • MyComponent - это полноценная среда разработки для создания дополнений MODX.

Диагностические инструменты

  • SiteCheck (дополнительная премия от Боба Рэя) выполняет тысячи проверок целостности вашего сайта.

Обновление MODX

  • UpgradeMODX позволяет вам обновить MODX Revolution из диспетчера MODX.
  • GoRevo (дополнительная премия от Bob Ray) предоставляет инструмент для перехода с MODX Evolution на MODX Revolution.

Распространение собственных дополнений

Перейдите на https://modx.com/extras/, войдите в свою учетную запись MODX (или создайте одну), затем нажмите кнопку внизу, чтобы «Отправить дополнительную информацию».

Там вы можете загрузить транспортный пакет MODX. Это специальный вид zip-файла, который гарантирует, что ваше дополнение и все его компоненты правильно установлены в целевой системе. Чтобы сделать его, вам нужно создать скрипт сборки.

Все дополнения, размещенные на MODX.com, проходят базовый обзор; обработка вашего заявления может занять несколько дней.

,

Дополнения MODX - Дополнения MODX

В этом разделе документации вы найдете информацию о дополнениях для MODX Revolution. Эти дополнения (и их документация) сделаны сторонними разработчиками, поэтому официально не поддерживаются.

Где найти Дополнения

Официальный источник дополнений - MODX.com . Вы можете просмотреть сотни (бесплатных) дополнений, и каждая установка MODX уже настроена для загрузки и установки дополнений из MODX.ком через менеджер пакетов.

Доступны также сторонние источники и торговые площадки, которые обычно предлагают сочетание бесплатных и премиальных дополнений. К ним относятся:

Чтобы использовать сторонних дополнительных провайдеров, вам обычно необходимо создать учетную запись, чтобы получить доступ к их поставщикам пакетов. Вы можете найти больше информации о том, как это сделать, в документации для каждого из упомянутых поставщиков.

Обычно используемые Дополнительно

Имея почти 1000 доступных дополнений, при начале работы может быть сложно определить, какие дополнения следует использовать.Дополнения в следующем списке считаются отличным выбором в зависимости от требований вашего проекта.

Это не означает, однако, что это ваши единственные варианты. Просматривайте репозиторий, читайте форумы и делитесь интересными дополнениями, которые вы найдете в сообществе.

Навигация и контент

  • pdoTools - это набор полезных фрагментов, который призван стать современной (и в основном вставной) заменой старых (но все еще поддерживаемых) дополнений:
    • pdoResources является эквивалентом getResources, который можно использовать для перечисления ресурсов.Их также можно использовать для подачи RSS или создания Sitemap.
    • pdoMenu является эквивалентом Wayfinder, который используется для создания (многоуровневых) меню из вашего дерева ресурсов.
    • pdoPage является эквивалентом getPage, который упаковывает фрагменты вроде getResources / pdoResources с возможностями пагинации
    • pdoCrumbs можно использовать аналогично хлебным крошкам для создания цепочки крошек текущего ресурса.
  • getResourceField, pdoField или fastField извлекают одно поле ресурса.
  • AdvSearch или mSearch3 (дополнительная плата от modstore) добавляет функцию поиска на ваш сайт
  • Коллекции используются для большого количества ресурсов, таких как блоги или списки продуктов, и будут перечислять дочерние ресурсы в сетке вместо дерева
  • .
  • NewsPublisher позволяет пользователям создавать ресурсы во внешнем интерфейсе без необходимости доступа к MODX Manager (включает редактирование с расширенным текстом и браузер файлов / изображений).

Редактирование текста / кода

  • TinyMCE RTE - это многофункциональный текстовый редактор, основанный на TinyMCE 4.(Пакет под названием TinyMCE использует более старый TinyMCE 3)
  • TinymceWrapper - это реализация TinyMCE, использующая последнюю версию из CDN.
  • Redactor (Premium Extra от Modmore) представляет собой MODX-интеграцию Redactor.
  • CKEditor интегрирует CKEditor RTE в MODX.
  • Ace позволяет редактировать код ваших элементов в менеджере.

Media

  • Галерея может быть использована для добавления фотоальбомов на ваш сайт
  • MoreGallery (premium extra by modmore) для управления галереями изображений и видео (YouTube / Vimeo), реализованные в виде специального ресурса типа

форм

  • FormIt является стандартом в обработке формы заявки
  • Formalicious (Premium Premium, доступный в модмор и модстор) - это конструктор форм на основе FormIt
  • SPForm простая, защищенная от спама контактная форма

Многосайтовый, многоязычный, многодоменный, контексты

  • xRouting - это гибкий контекстный маршрутизатор, который поддерживает (под) домены и каталоги с минимальной конфигурацией
  • LangRouter - это контекстный маршрутизатор, который выбирает контекст на основе языка посетителей
  • Babel используется для соединения переводов в разных контекстах

Электронная коммерция

  • MiniShop2 - это мощное решение для электронной коммерции с открытым исходным кодом, со многими (платными и бесплатными) расширениями, доступными преимущественно из modstore
  • .
  • Commerce - это мощное решение для электронной коммерции премиум-класса от модмора
  • SimpleCart - это более простое решение для электронной коммерции премиум-класса, изначально разработанное OostDesign, которое теперь доступно с modmore

пользователей

  • Вход в систему - это набор инструментов, которые помогут вам интегрировать функциональность интерфейсного пользователя, включая вход в систему и профили.
  • HybridAuth может использоваться, чтобы позволить пользователям войти через социальные службы
  • Персонализация может отображать разные чанки в зависимости от того, вошел ли пользователь в систему или нет

блогов

  • Коллекции для перечисления дочерних ресурсов в сетке в диспетчере (а не в дереве ресурсов)
  • Quip или Tickets, чтобы добавить комментирующую функциональность
  • Tagger для добавления тегов вы можете фильтровать и искать сообщения по

Управление версиями и рабочий процесс

  • VersionX хранит копию изменений ваших ресурсов и элементов для легкого восстановления.
  • Предварительный просмотр и рабочий процесс (дополнительные функции Extras.io) обеспечивают предварительный просмотр и публикацию рабочих процессов.
  • MagicPreview (бесплатное дополнение от modmore) дает вам кнопку предварительного просмотра, которая позволяет вам видеть изменения вашего ресурса без необходимости сохранения изменений.
  • StageCoach позволяет организовать изменения страницы, чтобы они были применены в будущем.

Средства разработки

  • modDevTools добавляет дополнительные функции для менеджера, чтобы помочь разработчикам создавать сайты.
  • MyComponent - это полноценная среда разработки для создания дополнений MODX.

Диагностические инструменты

  • SiteCheck (дополнительная премия от Боба Рэя) выполняет тысячи проверок целостности вашего сайта.

Обновление MODX

  • UpgradeMODX позволяет вам обновить MODX Revolution из диспетчера MODX.
  • GoRevo (дополнительная премия от Bob Ray) предоставляет инструмент для перехода с MODX Evolution на MODX Revolution.

Распространение собственных дополнений

Перейдите на https://modx.com/extras/, войдите в свою учетную запись MODX (или создайте одну), затем нажмите кнопку внизу, чтобы «Отправить дополнительную информацию».

Там вы можете загрузить транспортный пакет MODX. Это специальный вид zip-файла, который гарантирует, что ваше дополнение и все его компоненты правильно установлены в целевой системе. Чтобы сделать его, вам нужно создать скрипт сборки.

Все дополнения, размещенные на MODX.com, проходят базовый обзор; обработка вашего заявления может занять несколько дней.

,

MODX Документация | MODX Docs

Обзор

MODX Revolution (Revo) - это простая в использовании система управления контентом (CMS) и Application Framework, объединенные в одно целое. Несмотря на безграничные возможности, которые предоставляет вам MODX, мы думаем, что вам будет приятно работать с ним. На каждом этапе MODX стремится предоставить Creative Freedom.

В дополнение к этому сайту документации сообщество MODX активно работает и всегда готово помочь.Продолжайте задавать вопросы - вы будете приятно удивлены отзывчивостью базы пользователей MODX.

Опытные MODX Профессионалы и поддерживаемые поставщиками варианты коммерческой поддержки также доступны, поэтому независимо от ваших потребностей и требований - вы покрыты.

Начало работы

Этот сайт документации является подробным справочником по всем вопросам MODX, а также содержит руководства и учебные пособия, которые помогут вам быстро и легко начать работу. Основные моменты включают в себя:

Если у вас есть вопрос об этом сайте документации, вы хотите помочь улучшить его, просмотрите источник документации и приложения на GitHub.Все материалы приветствуются!

MODX Revolution

Revolution - флагманская CMS и прикладная среда MODX, которую с любовью называют «Revo». Если вы новичок в MODX, начните здесь.

Быстрые ссылки

Другие ресурсы

Дополнительно

MODX Extras расширяют основные функциональные возможности программного обеспечения MODX. Другие CMS называют их «плагинами» или «модулями». Многие дополнения разработаны основной командой MODX, а другие сторонними разработчиками. Хотя это ни в коем случае не исчерпывающая ссылка, большинство самых популярных дополнений документированы здесь.

xPDO

xPDO - это объектно-реляционный мост (ORB), который поддерживает MODX. Если вы знаете, что это значит, или вы любите приключения, то для вас следующее:

Быстрые ссылки

Другие ресурсы

Справочник участника

Любовь MODX? Узнайте, как принять участие в сообществе и внести свой вклад в проект с открытым исходным кодом.

А как насчет MODX Evolution?

Evolution - это классическая кодовая база MODX - оригинальная версия, выпущенная в 2005 году.По состоянию на апрель 2017 года Evolution официально является отдельным проектом, уже не под крылом MODX. Это означает, что у Evolution есть собственное руководство, процессы и сообщество.

Всю информацию о Evolution, включая документацию и дополнительные материалы, можно найти на evo.im.

,

getResources - Дополнения MODX | MODX Docs

Что такое getResources?

Фрагмент списка и обобщения ресурсов общего назначения.

Требования

  • MODX Revolution 2.0.0-бета5 или новее
  • PHP5 или позже

История

getResources был впервые написан Джейсоном Кауардом (opengeek) и выпущен 30 июня 2009 года.

Загрузить

Его можно загрузить из диспетчера MODX Revolution через Управление пакетами или из репозитория MODX Extras, здесь: https: // modx.com / extras / package / getresources

Это не замена для Ditto, а скорее альтернативный компонент, который может выполнять некоторые из вещей, которые делают более специализированные компоненты, то есть Ditto, Wayfinder, Breadcrumbs; в основном все, что выводит свойства для списка ресурсов (ранее это документы в MODX Evolution).

Документацию и учебные пособия на русском языке можно найти здесь: http://modx.by/docs/modx-add-ons/getresources/

Использование

Фрагмент getResources можно вызвать с помощью тега:

  [[getResources]]
  

До версии 1.6.1-pl, вызовы без указанного свойства & tpl будут выводить массив каждого ресурса в наборе результатов и его поля. Начиная с версии 1.6.1-pl это поведение изменилось, и вам придется использовать «& debug = 1 », чтобы получить полный результат:

  [[getResources? & Отладки = '1']]
[[GetResources? & родителей = `choose_an_id` & debug =` 1`]]
  

Доступные свойства

Шаблонные Свойства
Имя Описание Значение по умолчанию Добавлено в версию
тпл Имя чанка, служащего шаблоном ресурса.Если не предоставлено, свойства выводятся для вывода для каждого ресурса
tplOdd Имя чанка, служащего шаблоном ресурса для ресурсов с нечетным значением idx (см. Свойство idx)
тплПервый Имя чанка, служащего шаблоном ресурса для первого ресурса
tplLast Имя чанка, служащего шаблоном ресурса для последнего ресурса
tpl_N Имя чанка, служащего шаблоном ресурса для N-го ресурса, например & tpl_4 = tpl4th
tpl_nN Имя чанка, служащего шаблоном ресурса для каждого N-го ресурса, например & tpl_n4 = tpl4th будет применяться к любому элементу, кратному 4 1.4.1
тплсостояние Определяет поле ресурса для оценки по ключам, определенным в свойстве & conditionalTpls. Должно быть полем ресурса; не работает с переменными шаблона. 1,5,0
условный Tpls Объект JSON, определяющий карту значений полей и связанных блоков tpl для использования, когда поле, определенное в & tplCondition, соответствует значению : & conditionalTpls = {"1": "tplA", "2": "tplB", " 3 ":" tplC "} [ПРИМЕЧАНИЕ: tplOdd, tplFirst, tplLast, * и tpl_ {n} будут иметь приоритет над любыми определенными условными терминами] 1.5,0
tplPath Дополнительный каталог для поиска файловых блоков при использовании @FILE assets_path + "элементы / куски /"
TPLWrapper Имя чанка, служащего шаблоном оболочки для выходных данных [ПРИМЕЧАНИЕ. Не работает с toSeparatePlaceholder]. Заполнитель, в который вставляются элементы: [[+ output]] . 1,6,0
wrapIfEmpty Если true, выводит оболочку, указанную в & tplWrapper, даже если вывод пуст. ложь 1,6,0
выходSeparator Необязательная строка для разделения каждого экземпляра tpl (разделитель) "\ n"
toPlaceholder Если установлено, присваивает результат этому заполнителю, а не выводит его напрямую.
ОтдельныйПластодержатели Если установлено, будет присваивать КАЖДЫЙ результат отдельному заполнителю, названному этим параметром с суффиксом с порядковым номером (начиная с 0). 1,3,0

О @FILE и @INLINE tpls :

Вы можете добавить к любому свойству tpl префикс @FILE или @INLINE, чтобы использовать файловый блок или встроенную разметку соответственно.

  • @FILE - Этот префикс позволяет вам предоставить файл вместо чанка в базе данных как tpl. Заданный вами путь и имя файла будут по умолчанию, если только вы не укажете пользовательское свойство tplPath , выполните поиск @FILE tpl относительно настроенного вами assets_path + elements / chunks / .
  • @INLINE - Этот префикс позволяет вам предоставлять разметку для использования в вашей программе непосредственно в значении свойства. Рекомендуется использовать это только при указании свойств tpl * в [Property Set], в противном случае любые заполнители в вашей встроенной разметке могут быть оценены до того, как содержимое будет передано в getResources, поскольку кешируемые вложенные теги в MODX Revolution оцениваются перед обработкой содержащий тег начинается. За этим должен следовать пробел, например @INLINE [[+ pagetitle]]
Свойства выбора
Глубина
Имя Описание Значение по умолчанию Добавлено в версию
родители Список идентификаторов, разделенных запятыми в качестве родителей.Используйте -1, чтобы игнорировать родителей при указании _resources_to include. Если это не сделано, getResources принимает & родителей в качестве текущего ресурса и считывает его потомков (плюс ресурсы, указанные в & resources = непредвиденные результаты). Текущий идентификатор ресурса
ресурсов Список идентификаторов, разделенных запятыми для включения в результаты. Поставьте перед идентификатором тире, чтобы исключить ресурс из результата.
Целочисленное значение, указывающее глубину для поиска ресурсов от каждого родителя.Первый уровень ресурсов под родителем - глубина 10
твфильтры Может использоваться для фильтрации ресурсов по определенным значениям телевизора. Они вводятся как [( tvname ) ( оператор )] ( значение ). Есть два разделителя, которые вы можете использовать для объединения условий фильтрации. Вы можете использовать фильтры «ИЛИ», используя два символа канала. Фильтр ИЛИ выбирает ресурсы, которые имеют одно из перечисленных значений ТВ. Смотрите ниже для получения дополнительной информации.
сортировка Любое поле ресурса (, за исключением переменных шаблона).См. Ниже свойство sortbyTV (). Некоторые общие поля, по которым можно сортировать, это ключ публикации, menuindex, pagetitle и т. Д., Но см. Документацию по ресурсам для всех полей. Укажите поля только с именем, не используя синтаксис тега. Обратите внимание, что при использовании таких полей, как template, publbyby и т.п., они будут отсортированы по необработанным значениям, таким образом, шаблону или идентификатору пользователя, а НЕ их именам. Смотрите ниже для получения дополнительной информации. создано на
опубликовано на Модифицировано в 1.3.0
сортировкаАлиас Запрос псевдонима для поля sortby
sortbyEscaped Выход из имени поля, указанного в sortby
сортировка Заказать сортировку по DESC
sortbyTV Переменная шаблона для сортировки по 1,2,0
sortdirTV Порядок сортировки при использовании sortbyTV DESC 1.2.0
sortbyTVТип Укажите тип данных для телевизора. Возможные значения: строка, целое, десятичное, дата и время строка 1,3,0
предел Ограничивает количество возвращаемых ресурсов. Используйте 0 для неограниченных результатов. 5
смещение Смещение ресурсов, возвращаемых критериями для пропуска 0
, где Выражение критериев в стиле JSON для создания любых дополнительных предложений where.Смотрите ниже пример. См. Display / xPDO20 / xPDOQuery.where
контекст Разделенный запятыми список контекстных ключей для ограничения результатов; если пусто, будут использоваться контексты для всех указанных родителей (все контексты, если указано 0)
Использование & tvFilters

Для & tvFilters значение может выглядеть следующим образом:

  mytv == somevalue || mytv == othervalue
  

Вы также можете использовать фильтр «и» через запятую.Это обеспечит соблюдение всех условий.

  mytv == somevalue, othertv == othervalue
  

Для расширенной фильтрации вы также можете сгруппировать их. Важно знать, что сначала условия разделяются на основе разделителя ИЛИ (||), а затем - на разделителя И (,). Итак, давайте возьмем этот гипотетический пример:

  mytv == foo || mytv == bar, bartv == 3 || bartv == 1
  

Это отфильтрует ресурсы для соответствия одному из следующих условий:

  • mytv, как Foo, или
  • mytv - это как бар, а bartv - как 3 или
  • БАРТ НРАВИТСЯ 1

Приведенные выше примеры ищут точные значения.Вы также можете использовать знак процента (%) в качестве подстановочного знака. Например:

  mytv ==% a%
  

Соответствует любым ресурсам, имеющим «a» в значении mytv.

  mytv ==%
  

Соответствует любым ресурсам, которые имеют значение mytv, начинающееся с "a"

  mytv ==% a
  

Соответствует любым ресурсам, которые имеют значение mytv, оканчивающееся на «а».

Вы также можете комбинировать это с разделителями OR (||) и AND (,), описанными выше.

Важно знать, что эта функция ищет необработанное значение переменной шаблона для определенного ресурса. Это означает, что значение было явно установлено для ресурса , и что оно не было обработано типом выходной переменной шаблона ( или является значением по умолчанию в выпусках до 1.4.2-pl; это В выпуск добавлена ​​поддержка фильтрации, включающей значения по умолчанию (). Таким образом, если у вас есть телевизор с автоматической пометкой, это означает, что необработанное значение представляет собой список с разделителями-запятыми, и он не разделяется на теги, как вы видите в менеджере.

Новые операторы фильтров доступны в 1.4.2-pl :

Начиная с версии 1.4.2-pl getResources, существует ряд новых операторов сравнения для использования при создании условий фильтрации. Кроме того, при использовании многих из этих новых операторов числовые значения сравнения автоматически переводятся в значения CAST TV в числовые значения перед сравнением.

Вот список действительных операторов:

Оператор фильтров Оператор SQL АКТЕРЫ числовые Примечания
<=> <=> да Сейф NULL равен
=== = да
! == ! = да
<> <> да
== НРАВИТСЯ
! = НЕ НРАВИТСЯ
<< < да
<= <= да
= < = < да
>> > да
> = > = да
=> => да
Использование & сортировка

В качестве значения сортировки можно передать любое поле ресурса, например PageTitle , Псевдоним , , опубликовано , , Индекс меню и т. Д.

Вы можете отсортировать случайным образом, указав RAND (), например:

  & sortby = `RAND ()`
  

Начиная с версии 1.3.0 это также может быть массив JSON для сортировки по нескольким полям, например

  & sortby = `{" Опубликовал на ":" ASC "," создал на ":" DESC "}`
  

Для сортировки в определенном порядке укажите список идентификаторов ресурса, например,

  & sortby = `FIELD (modResource.id, 4,7,2,5,1)`
  

То же самое возможно, если вы поместите отсортированные идентификаторы в переменную шаблона, например:

  & sortby = `FIELD (modResource.идентификатор, [[* templateVariable]]) `
  

В некоторых случаях вам нужно (несколько нелогично) указать направление сортировки:

  & sortby = `FIELD (modResource.id, 4,7,2,5,1)` & sortdir = `ASC`
  
Другие свойства
Имя Описание Значение по умолчанию Добавлено в версию
шоуОпубликовано Если true, также покажет ресурсы, если они не опубликованы. 0
showDeleted Если true, также покажет ресурсы независимо от того, были ли они удалены. 0
показатьСкрыто Если значение равно true, ресурсы будут отображаться независимо от того, скрыты ли они из меню. 0
скрытьКонтейнеры Если установлено, не будет отображаться никаких ресурсов, помеченных как контейнер (isfolder). 0
включает содержание Указывает, следует ли возвращать содержимое каждого ресурса в результатах. 0
включает телевизоры Указывает, следует ли включать значения TemplateVar в свойства, доступные для каждого шаблона ресурса. 0
включает TVList Дополнительный разделенный запятыми список имен TemplateVar для явного включения, если includeTVs равен 1 1.4.0
подготовить телевизоры Готовит зависящие от источника медиа значения TemplateVar. 1 1,5,0
prepareTVList Ограничивает телевизоры, которые подготавливаются к тем, которые указаны по имени в списке через запятую 1,5,0
телевизоров Указывает, должны ли значения TemplateVar отображаться так же, как в суммируемом ресурсе. TemplateVars должны быть включены (см. IncludeTVs / includeTVList) для обработки. 0
processTVList Необязательный список имен TemplateVar, разделенных запятыми, для явной обработки. Указанные здесь TemplateVars должны быть включены через includeTVs / includeTVList 1,4,0 ​​
TVPrefix Префикс для свойств TemplateVar тв.
IDX Вы можете определить начальный idx ресурсов, который является свойством, которое увеличивается при отображении каждого ресурса 1
первый Определите idx, который представляет первый ресурс 1
последний Определите idx, который представляет последний ресурс.По умолчанию количество суммируемых ресурсов + первое - 1
всегоВар Определите ключ заполнителя, установленного getResources, указывающий общее количество ресурсов, которое будет выбрано , а не , учитывая _limit_value. всего
отладка Если true, отправит запрос SQL в журнал MODX. ложь

Доступные заполнители

Заполнители, доступные для ваших чанков форматирования getResources, в основном зависят от ресурсов, которые вы перебираете.

См. Все теги на странице «Обычно используемые теги шаблонов», где перечислены свойства, доступные для всех ресурсов.

Если у вашего ресурса есть переменные шаблона, у них будут соответствующие заполнители (помните, что заполнители будут использовать префикс, определенный параметром & tvPrefix ).

Кроме того есть следующие заполнители:

Заполнитель Описание
[[+ idx]] Увеличивается с каждой итерацией, начиная с 1 (или значения, установленного параметром & idx )

Примеры

Также см. Подраздел «Примеры» данной документации для получения более подробных примеров и учебных пособий.

Выведите список дочерних ресурсов текущего ресурса, используя блок myRowTpl:

  [[getResources? & родители = `[[* id]]` & tpl = `myRowTpl`]]
  

Выведите все ресурсы под ресурсом с идентификатором «5», за исключением ресурса 10, используя блок «myRowTpl»:

  [[getResources? & родители = `5` & ресурсы =` -10` & tpl = `myRowTpl`]]
  

Выведите только указанные ресурсы, используя блок myRowTpl:

  [[getResources? & родители = `-1` & ресурсы =` 10,11,12` & tpl = `myRowTpl`]]
  

Выведите топ-5 последних опубликованных ресурсов под ресурсом с идентификатором '5', с tpl 'blogPost':

  [[getResources? & родители = `5` & limit =` 5` & tpl = `blogPost` & includeContent =` 1`]]
  

Вывести список дочерних ресурсов текущего ресурса на основе шаблона ресурса:

  [[getResources? & родители = `[[* id]]` & где = `{" template: = ": 8}` & tpl = `myRowTpl`]]
  

Выведите список дочерних ресурсов текущего ресурса, где идентификатор шаблона ресурса равен 1 или 2:

  [[getResources? & родители = `[[* id]]` & где = `{" шаблон: = ": 1," ИЛИ: шаблон: = ": 2}` & tpl = `myRowTpl`]]
  

Выведите список дочерних ресурсов текущего ресурса, где идентификатор шаблона ресурса равен 1, 2 или 3 (одно и то же имя ключа нельзя использовать более одного раза):

  [[getResources? & родители = `[[* id]]` & где = `{" template: IN ": [1,2,3]}` & tpl = `myRowTpl`]]
  

Отображать сообщение, когда ничего не найдено (эквивалент «пустого» параметра в Ditto):

  [[getResources: default = `Ничего не найдено`? & родители = `[[* id]]` & tpl = `myRowTpl`]]
  

Пример использования встроенного Tpl

  [[getResources? & tpl = `@ INLINE 
  • [[+ pagetitle]] `]]
  • Обтекание getResources приводит к другой разметке (например, свойство & outerTpl, которое не существует для getResources начиная с версии 1.6.0 вы все равно можете сделать это так или использовать свойство & tplWrapper).

      [[getResources? ... & toPlaceholder = `results`]]
    [[+ Результаты: notempty = `<ол> [[+ Результаты]] `]]
      

    Просмотр переменных шаблона с помощью getResources

    Чтобы сократить время поиска, getResources не получает значения ТВ по умолчанию. Если вы хотите отображать телевизоры, вы должны включить следующие параметры:

      & includeTVs = `1` & processTVs =` 1`
      

    Вам также нужно либо поставить перед телевизором все префиксы.или используйте этот параметр в теге сниппета:

      & tvPrefix = ``
      

    В блоке Tpl, который вы используете для отображения вывода getResources, используйте метку-заполнитель, подобную этой (но с названием вашего телевизора):

      [[+ tv.my_tv]]
      

    Использование getPage для нумерации страниц

    В сочетании с getPage (или pdoPage) getResources позволяет выполнять мощную и гибкую нумерацию страниц.

    Примеры

    Захватите первые 10 ресурсов - отсортировано по публикациям - под идентификатором ресурса 17, глубиной не более 2-х уровней, с tpl 'blogListPost', включая телевизоры и контент:

      [[! GetPage?
        & ElementClass = `modSnippet`
        & Элемент = `getResources`
        И родители = `17`
        & Глубина = '2'
        & Предел = `10`
        & PageVarKey = `page`
        & IncludeTVs = '1'
        & IncludeContent = '1'
        & TPL = `blogListPost`
    ]]
    
      [! + Страница.нав]]

    и кусок блогаListPost:

      
    [[+ publon: strtotime: date = `% b% d% Y`]]

    [[+ pagetitle]] <Р> <Сильный> Автор: [[+ CreatedBy: UserInfo = `username`]] <Р> [[+ Вступительный]] <Р> Подробнее
    <Ч />

    Устранение неисправностей

    Ничего не происходит

    Перед тем, как биться головой об стену, проверили ли вы, чтобы это дополнение действительно было установлено на вашем сайте?

    Массив атрибутов сброшен

    Вы забыли включить параметр 93199 & tpl .Без параметра и tpl сниппет будет извлекать указанные ресурсы, но вы не сказали ему, как их отформатировать. Убедитесь, что вы включили параметр & tpl в свой вызов Snippet, например,

      [[! GetResources? & родители = `5` & limit =` 5` & tpl = `blogPost`]]
      

    Или, возможно, , вы неправильно написали имя куска. Возможно, вы действительно указали & tpl , но существует ли этот кусок на самом деле? Если вы назовете чанк, который не существует, getResources не будет знать, как форматировать ваши результаты.

    Или, даже если вы правильно указали параметр & tpl , возможно, вы случайно забыли об амперсанде в одном из ваших _other_parameters. Например.

      предел = `5`
      

    приведет к сбою вызова фрагмента и сбросу атрибутов. Правильный формат должен быть

      & limit = `5`
      

    Один и тот же ресурс выводится несколько раз (1.2.2 и более ранние выпуски)

    Если один и тот же ресурс отображается в списке несколько раз, попробуйте пропустить параметр & sortbyTV .

    Содержимое не существует

    Вы получаете правильные ресурсы и видите, что _some_of результатов форматирования правильно, но ваши заполнители [[+ content]] ничего не содержат. В чем дело? Вы должны включить аргумент & includeContent = 1 , чтобы получить контент.

    Проблемы с кэшированием при использовании tpl, tpl_N, tpl_nN, tplFirst, tplLast или tplOdd

    Если вы используете эти параметры, возможно, вы подумали о повторном использовании вашего блока tpl, чтобы избежать повторения кода.Например:

    Базовый блок Tpl: [[$ GenericTplChunk]]

      
    Здравствуйте, [[+ pagetitle]]

    Четвертый блок Tpl (tpl_nN): [[$ 4thTplChunk]]

      
    [[$ GenericTplChunk]]

    Если у вас возникли проблемы с пустыми или странными результатами, это связано с кэшированием MODX. Вызов чека без кэширования не сработает. Вы должны использовать трюк: фиктивный тег при вызове универсального чанка.

      
    [[$ GenericTplChunk? & idx = `[[+ idx]]`]]

    Примечание: вам не нужно называть чанк некэшированным.

    Посещение: http://forums.modx.com/thread/43748/chunk-inside-getresources-template-not-processed-correctly

    См. Также

    Если вам нужно получить только одно поле из стороннего ресурса, попробуйте использовать getResourceField.

    ,

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *