Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Collections modx: MODX Extras | Collections 3.7.1-pl

Содержание

Collections компонент Modx Revo: обзор и установка

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

Обзор Collections

Древо не совсем удобное и при больших объёмах ресурсов в нём становится не удобно работать, а также вечно возникает проблема с выбором шаблона.

И каждый раз переключать его со временем сильно надоедает.

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

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

Для начала сравним стандартную структуру MODX с компонентом.

И так нам надо рыться в древе, чтобы найти нужную статью, нет никакой фильтрации. А при создании ресурса нам предстоит менять шаблон (кто работал, поймёт).

А теперь рассмотрим древо через компонент:

И так теперь при нажатии на данную рубрику у нас открывается список всех статей, с которыми намного приятней работать.

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

Поработав с ним, вы поймете, что это намного удобней чем через стандартные средства.

Установка Collections

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

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

Загрузили и установили, теперь чистим кэш и переходим в наше приложение (Приложения -> Виды коллекции).

Там увидите стандартный вид «Blog», скопируйте его для создания нового вида.

И так первая вкладка:

Здесь довольно простые настройки, объяснять не стоит.

Лишь одно поле часто всего используется: «Задать как вид по умолчанию». Включив это, данный вид будет по умолчанию включаться всем рубрикам, к которым подключен компонент.

Самое интересное на второй вкладке:

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

Тип контента тоже можно поменять, к примеру, у меня создан новый тип «NO-HTML» — который работает, как простой «HTML», только он обрезает на конце алиаса расширение «.html»,
об этом читайте здесь.

А чтобы включить данный Collections для нужного ресурса, просто откройте его и во вкладке «Настройки» поменяйте тип ресурса на «Коллекция».

Modx Revolution Админка – как и какие плагины установить для разработки сайта


Автор: Камиль Г.

Предисловие


Если вы не знаете, как установить CMS Modx Revolution, то рекомендую ознакомиться с данной статьей, где
пошагово
рассказано как установить MODX Revo. Также в следующих статьях разберем «Какие начальные настройки нужно провести в
ModX» и «Сниппеты для успешной работы в ModX Revo».


Установщик пакетов


После авторизации в админ панели вашего сайта site/manager мы видим элементы управления. Для установки
пакетов нам
нужно перейти в верхнем меню во вкладку «Пакеты» и выбрать пункт «Установщик».



Откроется окно «Менеджер пакетов». Здесь нажимаем на кнопку «Загрузить пакеты» и в
поиске вписываем необходимые пакеты для установки.


Каждый пакет необходимо «Загрузить» и после загрузки вернуться на страницу «Менеджер
пакетов»
и установить каждый пакет.

Какие плагины нужно скачать и для чего?


Вот небольшой список самых необходимых плагинов:

  1. Ace
  2. AdminTools
  3. AjaxForm
  4. autoRedirector
  5. Collections
  6. Formit
  7. FormSave
  8. Gallery
  9. getResources
  10. MIGX
  11. pdoTools
  12. phpThumbOf
  13. ReCaptchaV2
  14. SimpleSearch
  15. tagElementPlugin
  16. TinyMCE
  17. Translit
  18. UpgradeMODX

Ace


Ace – это пакет, который позволяет встроить редактор кода внутрь Modx вместо стандартного. С поддержкой Emmet:


AdminTools


AdminTools позволяет гибко стилизовать админ панель управления CMS:


AjaxForm


AjaxForm – позволяет создаться ajax форму, т.е. форму отправки сообщений на почту без перезагрузки страницы.
AjaxForm работает в связке с Formit.


autoRedirector


autoRedirector – позволяет не заботиться о меняющихся url адресах на сайте. Например, если раньше страница была по
адресу: site.ru/necessery-page, а теперь стала site.ru/new-adress, то пользователь при
переходе по первой ссылке не
получит 404 ошибку, а перенаправится на вторую. autoRedirector создает отдельную табличку в базе и запоминает старые
адреса страниц автоматически.


Collections


Классный плагин, который позволяет красиво группировать дочерние ресурсы страницы в коллекции.


Formit


Пакет позволяющий упаковывать и отправлять данный с сайта на почту, например, форма обратного звонка.
AjaxForm работает в связке с Formit.


FormSave


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


Gallery


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


getResources


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


MIGX


Данный универсальный плагин позволяет создавать кастомные поля ввода / вывода на сайте. Например, можно сделать
именованные изображения, данные которых будут выводиться на сайте.

pdoTools


Пожалуй, один из самых важных плагинов для сайта. PdoTools предоставляет следующие возможности:

  • вывод меню на сайте
  • вывод ресурсов
  • реализует хлебные крошки
  • генерирует sitemap.xml


И многое другое. Подробнее можно прочитать на странице с
документацией.


phpThumbOf


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


ReCaptchaV2


Позволяет встроить google капчу на сайт. Поддерживается как V2, так и V3 капча. Данный пакет может быть использован в
связке с Formit для отправки сообщений.

SimpleSearch


Плагин позволяет легко и быстро настроить поиск на сайте.


tagElementPlugin


Очень необходимый пакет для быстрой разработки проекта на modx. Он добавляет hotkeys (горячие клавиши) на создание /
редактирования чанков и сниппетов (Ctrl+Enter). Также в новых версиях есть и другие горячие
клавиши. Подробнее…


TinyMCE


Пакет заменяет стандартную форму редактирования текста.


Translit


Полезный пакет для SEO оптимизации, а точнее для создания ЧПУ (человеко-понятный урл) на лету. Вы
просто создаете
ресурс, translit сам возьмет заголовок ресурса и транслитерирует его на латиницу. В итоге у вас
будет красивый
адрес: site.ru/moya-pervaya-stranica


UpgradeMODX


Данный пакет позволяет быстро и без усилий обновить версию modx. Вам больше не придется скачивать и вручную менять
файлы на сервере, боясь что-то испортить. Теперь вам просто нужно нажать на кнопку «Begin Upgrade»

Заключение


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

Что нужно сделать после установки MODX Revolution — Создание сайтов

Здравствуй, дорогой дневник читатель. На этот раз я расскажу о том, что я делаю практически сразу после установки MODX Revolution. Так уж сложилось, что большинство проектов требуют одних и тех же действий, поэтому это можно считать в некотором роде шпаргалкой, которую можно перечитывать после очередной установки MODX. Естественно, не все пункты являются обязательными, поэтому всегда нужно исходить из условий задачи.

Приложения

Ace

Редактор кода с подсветкой синтаксиса и автодополнением. Я его использую для редактирования плагинов, сниппетов, чанков и шаблонов.

CKEditor

Визуальный текстовый редактор, отлично подходит для редактирования статей.

ClientConfig

ClientConfig служит для организации удобного редактирования таких настроек сайта, которые меняет обычно контент-менеджер: название сайта, номера телефонов, адреса электронной почты и прочие контактные данные. 

Collections

Для того, чтобы дерево ресурсов не разрасталось, стоит использовать Collections. Коллекция — это расширенный ресурс, который содержит в себе однотипные ресурсы, например, статьи. Благодаря настройкам коллекции сопровождение сайта упрощается в разы. Например, для каждой коллекции можно настроить шаблон дочерних ресурсов по умолчанию. Также можно настроить список дочерних ресурсов.

fileTranslit

Данный плагин переименовывает файлы во время загрузки таким образом, чтобы не возникало проблем с их дальнейшим использованием. Он транслитерирует им файла («картинка.jpg» становится «kartinka.jpg»), а также удаляет ненужные символы. 

Gallery

Служит для организации галереи.

If

Незаменимая вещь для гибкого контроля над выводом. 

MIGX

pdoTools

Набор дополнений.

  • pdoResources — перечисление ресурсов
  • pdoMenu — альтернатива Wayfinder.
  • pdoPage — сниппет для организации постраничной навигации.
  • pdoCrumbs — хлебные крошки.
  • pdoUsers — вывод пользователей.
  • pdoSitemap — создание карты сайта.
  • pdoNeighbors — вывод соседних ресурсов для выбранного.
  • pdoField — сниппет для вывода любого поля или TV указанного ресурса.
  • pdoTitle — вывод специально оформленного title страницы.

pThumb

Расширение для создания миниатюр изображений. Обратно совместим с phpThumbOf.

quasiForm

Набор сниппетов для обработки форм. Подробнее можно почитать здесь: https://quasi-art.ru/portfolio/webdev/quasiform

Queeg

Я написал отдельную статью про этот плагин. Он помогает из фронтенда сразу перейти к редактированию ресурса в панели.

SimpleSearch

Организация поиска на сайте.

translit

Плагин для транслитерации псевдонимов ресурсов.

Файлы

ЧПУ

Без ЧПУ сейчас никуда — нужно переименовать файл ht.access в .htaccess. Мой вариант .htaccess (в том числе и для MODX Revolution) можно посмотреть здесь.

Перенос сайта на хостинг

Мне довелось переносить сайты между хостингами на Evolution и Revolution. И в обоих случаях постоянно приходилось менять какие-то настройки, сбрасывать пути, удалять кэш и пр. Однако, немного покопавшись у MODX Revolution под капотом, я вывел несколько простых действий, которые делают перенос сайта на MODX Revolution гораздо проще.

Пройдясь поиском по содержимому файлов MODX можно выяснить, что пути каталогов MODX Revolution прописываются во время установки и жёстко привязываются к системе, на которой запущен сайт. Вот список этих файлов, в которых можно найти путь до сайта:

  • config.core.php
  • connectors/config.core.php
  • core/config/config.inc.php
  • manager/config.core.php

К примеру, имеется файл, внутри которого есть следующая строчка:

$modx_processors_path = '/home/user/www/site.local/www/core/model/modx/processors/';

Очевидно, что при переносе на другой сервер путь до сайта должен быть другим. Поэтому я обычно делаю его динамическим, беря путь до корня сайта из глобального массива $_SERVER.

$modx_processors_path = $_SERVER['DOCUMENT_ROOT'].'/core/model/modx/processors/';

Как мы видим, в переменной $_SERVER[‘DOCUMENT_ROOT’] хранится путь до корня сайта без завершающей черты. Если произвести данную замену во всех файлах, перечисленных выше, при переносе сайта нужно будет только изменить данные для соединения с базой данных и очистить кэш — удалить каталог core/cache

Настройки системы

ЧПУ

Как было написано ранее, для активации ЧПУ необходимо переименовать файл в корне сайта. Помимо этого требуется включить ЧПУ в настройках сайта.

Активация ЧПУ

Также принято использовать транслит в адресе (для чего и устанавливается расширение ядра translit). Но, чтобы он заработал, нужно указать его в настройках системы.

Включение транслитерации псевдонимов ресурсов

Вот и всё, система настроена и готова к работе. Спасибо за внимание.

Таксономия в modx revo (custom TV input) — Денис Дыранов

Таксономия, поправьте, если я не прав, — это такой способ классификации и систематизации, при котором один объект может относиться к нескольким классам. Например, у нас есть терьер Тузик, овчарка Рекс, кот Барсик и рыбка Немо. И есть такая структура:

  • Млекопитающие
    • Собаки
      • терьеры
      • овчарки
    • Коты
  • Рыбы

Тузик, будучи терьером, относится и к собакам, и к млекопитающим. То же самое с Рексом, он — собака и млекопитающее. Барсик относится к котам и млекопитающим, а Немо — рыба и млекопитающим не является.

Таксономия может быть очень полезна при разработке сайтов-каталогов, в которых один объект так же может относиться к нескольким категориям и группам категорий. Вот, например, каталог артистов. Артист может быть одновременно и музыкантом, и ведущим, и фокусником. Кроме того, музыку он может исполнять в различных стилях.

Таксономия «из коробки» имеется во многих CMS. Особенно хорошо этот термин знаком пользователям Drupal. Для моего любимого ModX существует плагин Taxonomies, но работает он… несколько странно… Надо что-то делать.

Начнем

Для начала создадим структуру каталога в дереве ресурсов. Для ресурсов в этой структуре нам понадобится отдельный шаблон — назовем его «section». Кроме того, шаблон понадобится и для объектов — назовем его «object».

Так как каждый объект каталога у нас может принадлежать к нескольким категориям, нет никакого смысла хранить объекты внутри категорий. Можно было бы, конечно, создать ресурс внутри одной из категорий, а в остальных сделать ссылку на него, но это, по-моему, извращение. Работать с таким каталогом будет очень не удобно. Поэтому для хранения объектов создадим ещё один ресурс, который будет нашей «Базой данных» 🙂 Чтоб не потеряться среди тысяч дочерних ресурсов «базы» имеет смысл воспользоваться плагином Collections.

Теперь нужно объекты из «базы» как-то привязать к структуре каталога. Причём каждый объект может быть привязан сразу к нескольким категориям. Более того, при выборе дочерней категории, было бы неплохо сразу отмечать и родительские — именно поэтому мы не можем использовать теги — у них нет структуры, они не бывают дочерними/родительскими. В принципе, мы могли бы создать отдельное TV с тегами для каждой группы категорий каталога. Тогда само TV обозначало бы группу, у которой были бы дочерние элементы — теги, но таких TV может получится слишком много, да и каждое TV — это лишние запросы в БД.

TV cо своими параметрами ввода

Итак, нам нужен TV, в котором будет храниться список родительских ресурсов, и нам нужен удобный способ редактирования этого списка. То есть нужен свой TV input. Я сделал такой:

Как делаются custom TV input? Нужно создать 4 файла:

  • /core/model/modx/processors/element/tv/renders/mgr/input/taxonomytv.class.php — основной код на php, который передает данные в шаблон TV.
  • /core/model/modx/processors/element/tv/renders/mgr/inputproperties/taxonomytv.php — вызов шаблона с дополнительными настройками TV.
  • /manager/templates/default/element/tv/renders/input/taxonomytv.tpl — шаблон TV. Форма из смеси JavaScript, EXT.js и Smarty. Обрабатывает данные, полученные от taxonomytv.class.php. Здесь важны id элементов формы из которых modx получит обновленные данные.
  • /manager/templates/default/element/tv/renders/inputproperties/taxonomytvprops.tpl — шаблон дополнительных настроек TV.

Я сделал эти файлы на основе стандартных TV инпутов: resourceList и checkbox.

Ещё раз. Я сделал TV «taxonomy» и назначил ему параметр ввода «taxonomytv», который является кастомным и скачать вы его сможете в конце статьи. Естественно, не забываем назначить TV для шаблона Object.

В настройках TV, во вкладке «параметры ввода» нам нужно указать id родителя структуры. Чекбоксы могут выстраиваться в несколько колонок. width-fix — костыль для правильного отображения чекбоксов, так как у модикса с этим есть некоторые проблемы — неправильно высчитывается ширина блока .x-column-inner. Если у вас не отображаются чекбоксы или колонки чекбоксов слишком широкие, попробуйте включить width-fix.

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

Создаем новую запись в «базе» и видим структуру каталога в TV taxonomy. При выборе овчарки выбираются и собаки и млекопитающие — все родительские элементы. Выключаем чекбокс — выключаются родительские. Вложенность возможна бесконечная.

BIG

Фильтрация в getResources

Теперь в TV taxonomy хранится список id категорий, к которым принадлежит данный ресурс вида: id||id2||id3. Для того, чтобы отобразить все ресурсы в данной категории, нужно задать фильтрацию по TV для getResources в шаблоне Section. В простейшем случае это делается так:


&tvFilters=`taxonomy==%[[*id]]%`

Но проценты здесь — любое продолжение строки, поэтому вместе с ресурсами с id 8 отобразятся и 18 и 88 и все остальные, в id которых присутствует 8. Поэтому параметры фильтрации нужно уточнить:


&tvFilters=`taxonomy==[[*id]]||taxonomy==[[*id]]|%||taxonomy==%|[[*id]]||taxonomy==%|[[*id]]|%`

— получаем 8| или |8| или |8, других вариантов быть не может.

Итак, у нас есть «база данных» — ресурс типа «Коллекция», где хранятся все наши записи. У нас есть структура каталога в виде дерева обычных ресурсов. И есть кастомный TV, чтоб присваивать записям «родителей» из структуры. В шаблоне каталога «section» у нас вызов getresources такого вида:


[[getResources? 
&parents=`9` 
&tpl=`object-list` 
&showHidden=`1` 
&includeContent=`1` 
&includeTVs=`1` 
&processTVs=`1` 
&tvPrefix=`` 
&tvFilters=`taxonomy==[[*id]]||taxonomy==[[*id]]|%||taxonomy==%|[[*id]]||taxonomy==%|[[*id]]|%`
]]

Здесь в качестве параметра parents указан id нашей «базы данных». В принципе, всё уже должно работать. При этом у нас в базе вполне может присутствовать Котопёс и он отобразиться в разделах: Кошки, Собаки и Млекопитающие.

Ссылки на разделы в шаблоне getResources

Не хватает отображения ссылок на родителей под каждой записью — по типу тегов. Если в чанке object-list (шаблон getResources) мы попытаемся отобразить тв, просто написав его название, то на выходе мы получим простую строку из id документов-родителей через разделитель ||. Нужно превратить эту строку из TV taxonomy в осмысленные ссылки на разделы.

Можно было бы написать сниппет, который разбивает строку из TV, ищет по каждому id нужный ресурс и формирует на него ссылку. Но в таком случае, при отображении каждой записи из «базы», для каждого «родителя» этой записи нам нужен был бы отдельный запрос к MySQL (или что у вас там). Более того, можно было бы сделать custom TV output, но у него были бы те же проблемы.

Поэтому я решил сделать 2 сниппета. Первый taxonomyString — вызывается один раз вместе с getResources и формирует строку со всем необходимым для создания ссылки из id в TV. Строка имеет вид: id_родителя1:pagetitle1==id_ресурса1||id_родителя2:pagetitle2==id_ресурса2 — и так для всех категорий каталога.

В качестве параметра taxonomyString принимает id корневого ресурса структуры каталога. Таким образом вызов getResources в шаблоне Section у нас становится таким:


[[!getResources? 
&parents=`9` 
&tpl=`object-list` 
&showHidden=`1` 
&includeContent=`1` 
&includeTVs=`1` 
&processTVs=`1` 
&tvPrefix=`` 
&tvFilters=`taxonomy==[[*id]]||taxonomy==[[*id]]|%||taxonomy==%|[[*id]]||taxonomy==%|[[*id]]|%` 
&string=`[[!taxonomyString? &parent=`12`]]` ​
]]

Заметьте, что parents для getResources — это id базы, а parent для taxonomyString — id корня каталога.

По сути, код taxonomyString — это вызов getResources внутри getResources, так что если вы, например, хотите отображать «папки» категорий, вы можете убрать отсюда 'hideContainers'=>'1'.

Второй сниппет taxonomyLinks вызывается из чанка object-list (tpl getResources). Он принимает два параметра: tvs — это наш TV taxonomy и string — это строка от первого сниппета. В примере чанк object-list выглядит так:


[[+pagetitle]] 
[[!taxonomyLinks? &string=`[[+string]]` &tvs=`[[+taxonomy]]`]] 

TaxonomyLinks как раз и занимается формированием ссылки из id, но при этом он не обращается к БД сайта, а берёт все необходимые данные из строки, полученной от taxonomyString. Каждой ссылке присваивается класс taxonomy и класс в зависимости от id группы: taxgroup5, taxgroup10 и т. д. Ссылка на текущую страницу заменяется span’ом с теми же классами.

Результат:

Скорее всего всё точно так же должно работать и с pdoResources. Достаточно заменить getResources на pdoResources в шаблоне section и в сниппете taxonomyLinks.

Установка

  • Качаем архив taxonomyTV.zip
  • Создаем 2 сниппета taxonomyString и taxonomyLinks и вставляем в них содержимое файлов snippet-taxonomyString.php и snippet-taxonomyLinks.php соответственно.
  • taxonomytv.class.php копируем в /core/model/modx/processors/element/tv/renders/mgr/input/
  • taxonomytv.php копируем в /core/model/modx/processors/element/tv/renders/mgr/inputproperties/
  • taxonomyTV.tpl копируем в /manager/templates/default/element/tv/renders/input/
  • taxonomytvprops.tpl копируем в /manager/templates/default/element/tv/renders/inputproperties/
  • Теперь можно создать TV «taxonomy», присвоить ему параметр ввода taxonomytv и заново перечитать статью следуя всем указаниям 🙂

В очередной раз напомню, что я дизайнер, а не программист и используете вы этот код на свой страх и риск. Если вы найдёте баги, и тем более если вы сможете их исправить, пишите на [email protected]

Как настроить выпадающий список в детской сетке MODX Collections?

Я хочу иметь возможность изменить значение телевизора для ресурсов, отображаемых в сетке «Коллекции», с помощью раскрывающегося списка выбора bo.

Может ли кто-нибудь предоставить пример создания окна выбора в сетке «Коллекция»это либо

  • , заполняемый из опций в существующей переменной шаблона
  • , заполняемый из фиксированного списка, просто опции 1, 2, 3

IЯ понимаю, что это возможно, но не могу найти пример, достаточно близкий к тому, что мне нужно для достижения, и я могу понять это самостоятельно.

То, что я пробовал, это

Я виделПример Сьюзен Отвелл о том, как изменить Создано с помощью поля выбора http://modxcookbook.com/add-ons/collections/editable-grid-view.html

Обсуждение, приведенное ниже, решает аналогичную проблему, но остается без ответа https://forums.modx.com/thread/95984/adding-modx-combo-to-collections-list

Конфигурация и синтаксис MIGX выглядят аналогично, но не близкоДостаточно, чтобы я мог понять, что мне нужно сделать https://forums.modx.com/thread/91403/single-select-listbox-entries-in-migx

MODx.combo.ComboBox документы выглядят так, как будто они содержат некоторые важные детали, но я не знаю достаточно, чтобы понять, если это выseful https://docs.modx.com/revolution/2.x/developing-in-modx/advanced-development/custom-manager-pages/modext/modx.combo.combobox

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

Приведенный выше пример Сьюзан Отвелл создает раскрывающийся список на основе xtype modx-combo-user.Это похоже на то, что мне нужно, но я не могу понять, как адаптировать это для создания выпадающего списка из значений ТВ или фиксированного списка.

{"xtype":"modx-combo-user","renderer":true,"fields": ["fullname","username","id"],"displayField": "fullname","baseParams": {"action": "security/user/getlist","usergroup":2}}

Может кто-нибудь привести пример или указать мне на другой ресурсчто может помочь?

MetroniX / Готовые сайты, темы / Дополнения MODX / modstore.pro

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

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

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

Во второй версии этого дополнения появилось множество нововведений.

Во-первых, обновились стили некоторых элементов и добавлена полноценная поддержка планшетов и телефонов. Да-да! Теперь вы можете администрировать сайт с мобильного телефона.

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

Тема поддерживает следующие дополнения:

Ace

Babel

BannerY

bdAdmin

Collections

controlErrorLog

FormIt

Gallery

MIGX

MiniShop2

ModDevTools

mSearch3

msImportExport

SEO Pro

SEO Tab

shopStats

syncMoySklad

tagElementPlugin

Tagger

Tickets

TinyMCE Rich Text Editor

VersionX

Обсуждение шаблона MetroniX происходят здесь

Видео: MetroniX – Обзор шаблона админки MODX Revo

Скриншоты

Вход

Дашбоард

Системные настройки

Консоль

Файловый менеджер

Пакетный менеджер

Меню

Версия для смартфонов

MODX Revolution — Базовый урок

Всем привет, друзья! Это базовый урок по CMF MODX Revolution, в котором мы познакомимся с системой MODX, выполним установку необходимых плагинов и выполним базовую настройку фреймворка.

Поделиться

Твитнуть

Поделиться

Класснуть

Запинить

Ресурсы базового урока MODX:

Установка и настройка MODx плагинов

Устанавливаем Advanced версию MODX, во время установки указываем, что папка админа будет называться super.

Маст-хэв плагины MODX

Самые популярные и наиболее часто используемые дополнения для MODX:

  1. Ace — редактор кода MODX
  2. Collections — отображение и управление коллекциями ресурсов
  3. pdoTools — набор базовых инструментов MODX
  4. FormIt — работа с формами в MODX
  5. phpThumbOf — работа с изображениями в MODX
  6. TinyMCE / CKEditor (на выбор) — текстовый WYSIWYG редактор для MODX
  7. translit — транслитерация URL в MODX
  8. MIGX — Добавляемые дополнительные поля в MODX
  9. AutoTemplate — «Умное» автоматическое назначение шаблонов ресурсам

Базовые настройки MODX Revolution

Переходим в «Системные настройки».


  1. Раздел: Дружественные URL

    • Транслитерация псевдонимов: russian
    • Использовать дружественные URL: Да
    • Строгий режим дружественных URL: Да
    • Проверять на дублирование URI во всех контекстах: Да
    • Использовать вложенные URL: Да
    • Не забудьте также переименовать ht.access в .htaccess в корне сайта.

  2. Раздел: Панель управления

    • Показывать описание в верхнем меню: Нет

  3. Раздел: Сайт

    • Страница ошибки 404 «Документ не найден»: ID ресурса 404
    • Публиковать по умолчанию: Да
    • Название сайта: Название вашего проекта

  4. Раздел: Система и сервер

    • Отправлять заголовок X-Powered-By: Нет

  5. Пространство имен: ace

    • Размер шрифта: 18px
    • Мягкая табуляция: Нет
    • Размер табуляции: 2
    • Тема редактора (на выбор): ambiance, chaos, chrome, clouds, clouds_midnight, cobalt, crimson_editor, dawn, dreamweaver, eclipse, github, idle_fingers, katzenmilch, kr, kuroir, merbivore, merbivore_soft, mono_industrial, monokai, pastel_on_dark, solarized_dark, solarized_light, terminal, textmate, tomorrow, tomorrow_night, tomorrow_night_blue, tomorrow_night_bright, tomorrow_night_eighties, twilight, vibrant_ink, xcode;
    • Ктоме того, вы можете сделать тему Material в редакторе Ace. Инструкция:
      
      MODX Ace Material Theme
      
      1. Системные настройки > Пространство имен "ace":
      
      Размер шрифта: 15px
      Высота области редактирования: 560
      Невидимые символы: Да
      Мягкая табуляция: Нет
      Размер табуляции: 2
      Тема редактора: tomorrow_night
      
      2. Файлы: Filesystem > super > templates > default > css > index.css:
      (Добавить в конце)
      .ace_editor{line-height: 1.4!important;font-family: 'Menlo','Ubuntu Mono','Consolas','source-code-pro',monospace!important}
      .ace_gutter{color:#666E79!important}
      .ace_active-line,.ace_gutter-active-line{background-color:#2A2F38!important}
      .ace_scroller,.ace_gutter {background-color: #272B33!important}
      .ace_meta.ace_tag{color:#A6B2C0!important}
      .ace_meta.ace_tag.ace_tag-name{color:#DF6A73!important}
      .ace_entity.ace_other.ace_attribute-name{color:#D2945D!important}
      .ace_string{color:#90C378!important}
      
      3. Очистить кеш через меню.
      

Создаваемые базовые ресурсы

  1. Страница 404 — страница для настройки «Документ не найден». Не показывать в меню
  2. sitemap — ресурс для вывода [[pdoSitemap]]. Пустой шаблон. Не показывать в меню. Тип содержимого: XML. Не доступен для поиска. Не использовать HTML-редактор
  3. robots — ресурс для вывода robots.txt. Пустой шаблон. Не показывать в меню. Тип содержимого: text. Не доступен для поиска. Не использовать HTML-редактор

Дополнительные материалы базового урока по MODX

Содержимое сниппета host:


<?php
echo $_SERVER['HTTP_HOST'];

Содержимое robots.txt для MODX с использованием сниппета

host:


User-agent: *
Disallow: /super/
Disallow: /assets/components/
Disallow: /core/
Disallow: /connectors/
Disallow: /index.php
Disallow: /index.html
Disallow: /index
Disallow: *?
Host: [[host]]
Sitemap: http://[[host]]/sitemap.xml

Премиум уроки от WebDesign Master

Другие уроки по теме «MODX»

Коллекции

: настраиваемые представления для типов контента

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

В этом посте мы подробно рассмотрим, как использовать Коллекции, как быстро и легко настроить настраиваемые представления и как настроить собственное средство визуализации для поля изображения (TV).

Что такое «Коллекции»?

Для непосвященных, Collections — это «Extra» (часть программного обеспечения, расширяющая основные функции) для MODX Revolution CMS. Вы можете загрузить и установить его через пункт главного меню «Extras» Installer »в Менеджере (интерфейс администратора MODX). Примечание: скриншоты и инструкции в этом посте будут основаны на последней версии MODX 2.3.1. Предыдущие версии немного отличаются.

Вы также можете скачать Коллекции прямо из репозитория MODX Extras.Официальную документацию по коллекциям можно найти здесь. Коллекции с открытым исходным кодом. Отзывы, проблемы, отчеты об ошибках и предложения приветствуются и приветствуются: Репозиторий Github коллекций.

Коллекции

начинались с простой цели: предоставить альтернативный пользовательский интерфейс для управления ресурсами (по сравнению с традиционным представлением MODX Tree) и повысить производительность в Менеджере. Однако с выпуском версии 2.2.0 Коллекции становятся одним из самых полезных и мощных доступных дополнений.

Как пользоваться?

Основы

Документация поможет новым пользователям начать работу, но вкратце: все, что вам нужно сделать, чтобы превратить стандартный документ MODX в коллекцию, — это изменить тип ресурса на вкладке «Настройки» любого ресурса.

CMP

Самое интересное начинается, когда вы переходите на страницу Custom Manager (CMP). В Диспетчере в пункте главного меню «Дополнительно» выберите «Представления коллекции».

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

Нажмите кнопку «Добавить представление», чтобы создать новое представление.

Давайте рассмотрим каждую настройку:

  • Размер страницы: количество элементов по умолчанию для отображения на странице в сетке. Все еще может быть изменен пользователем.
  • Поле сортировки: поле для сортировки сетки. Это может быть телевизор с префиксом tv_ в названии телевизора или группа Tagger с префиксом tagger_.
  • Направление сортировки: по возрастанию или убыванию. Все еще может быть изменен пользователем.
  • Разрешить массовые действия: включен, это дает кнопку «Массовые действия» (см. Рисунок ниже).
  • Разрешить перетаскивание: включено, это позволяет перетаскивать размещение ресурсов, перечисленных в сетке.
  • Выбор типа ресурса: включен, рядом с кнопкой «Добавить дочерний элемент» отображается раскрывающийся список для выбора типа ресурса (см. Рисунок ниже.)
  • Метка вкладки: настраиваемый текст для вкладки «Дети» (см. Рисунок ниже).
  • Новая метка дочерней кнопки: настраиваемый текст для кнопки «Добавить ребенка» (см. Рисунок ниже).
  • Место содержимого: поместите поле содержимого для ресурса коллекции. Скорее всего, вы не хотите, чтобы поле содержимого было видимым под сеткой, и вы можете полностью удалить его, поскольку дочерние ресурсы, как правило, содержат контент, редактируемый пользователем.

Параметры просмотра коллекций в действии

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

После того, как вы сохранили представление (кнопка «Сохранить» находится вверху справа), вы увидите область ниже, где вы можете добавить столбцы в представление сетки:

Мы рассмотрим добавление столбцов ниже в разделе о пользовательских средствах визуализации.

Примеры пользовательских представлений коллекции

Вот пример того, как может выглядеть окончательный вид настраиваемой сетки для списка продуктов:

…и еще один для блога:

Изображение и другие настраиваемые средства визуализации

В комплект

Collections входит несколько наиболее часто используемых средств визуализации, с помощью которых можно отображать значения в сетке. Начиная с версии 2.2.0 Коллекции, было добавлено средство визуализации изображений. По умолчанию он ставит перед системной настройкой MODX ‘base_url’ префикс необработанного значения TV. Возможно, это не то, что вам нужно. К счастью, автор коллекций Джон Пека встроил для вас простой способ добавления пользовательских средств визуализации.

В документации есть ссылки на ресурсы о том, как создавать собственные пользовательские средства визуализации, но мы кратко рассмотрим это ниже.

Настройки

и ваш собственный файл Javascript
  1. В диспетчере перейдите в область «Параметры системы» и отфильтруйте пространство имен «Коллекции». В настройке «collections.user.js» введите URL-адрес файла Javascript, который будет содержать код JS для средства визуализации (см. Рисунок ниже).
  2. При желании вы можете создать здесь пользовательскую настройку системы, чтобы указать base_url для вашего телевизора с изображениями (см. Рисунок ниже).
  3. Создайте файл JS в указанном месте на сервере.Когда отображается сетка коллекций, включается файл JS.

Коллекции Системные настройки

Содержимое вашего JS-файла будет примерно таким, для средства визуализации изображений:

  1. Сначала мы определяем функцию с именем myimagerenderer (очевидно, имя может быть любым).
  2. Коллекции передают в качестве первого аргумента этой функции необработанное значение TV. Мы проверим, есть ли там что-нибудь.
  3. Мы устанавливаем для переменной baseUrl значение из нашей пользовательской настройки системы (показано выше.Как видите, все системные настройки в этой установке MODX доступны как дочерний объект объекта MODx.config. С таким же успехом вы можете использовать MODx.config.whatever_system_setting.
  4. Мы проверяем значение, чтобы увидеть, начинается ли оно с «http: //», и если да, то мы не будем префикс «baseUrl». Примечание: если вы ожидаете, что ваши значения TV будут содержать ссылки на изображения с https: //, вам также следует проверить это.
  5. Наконец, в строке «7» мы возвращаем фрагмент HTML с добавлением «baseUrl» к значению TV.
В коллекциях CMP

Ранее мы пропустили процесс добавления столбцов в представление сетки. Давайте посмотрим на это сейчас. По умолчанию включены некоторые стандартные поля ресурсов MODX, но вы можете проверить документацию о том, как добавлять средства визуализации и редакторы для определенных полей, таких как TV и теги Tagger.

В CMP, когда вы обновляете представление коллекции, нажмите кнопку «Добавить столбец». Здесь вы указываете отображение / поведение столбцов сетки.Чтобы добавить настраиваемое средство визуализации изображений, введите имя функции JS в поле «средство визуализации». В данном случае это был myimagerenderer.

  • Метка: это то, что пользователи будут видеть в виде сетки.
  • Имя: это имя поля. Если это телевизор, используйте префикс tv_.
  • Renderer: здесь находится имя вашей функции.
  • Ширина: укажите ширину столбца по умолчанию. Это и другие поля являются необязательными.
Другие настраиваемые средства визуализации

Средства визуализации изображений — не единственные типы настраиваемых средств визуализации — вы можете определить функции JS для визуализации практически всего, что захотите. Вот пример того, который отображает временные метки Unix:

Собираем все вместе …

Со всеми этими настраиваемыми параметрами — какие поля отображать в сетке, по каким сортировать, как отображать значения в этих полях и настраиваемые текстовые метки — возможности безграничны. Вы можете создать представление «Коллекция», которое будет выполнять ровно , что нужно вам или вашим клиентам.До сих пор у нас были отличные отзывы о коллекциях, но как насчет вас? Довелось им воспользоваться? Что ваши клиенты говорят о Коллекциях и новом интерфейсе MODX? Прокомментируйте и дайте нам знать.

MODX Revolution — коллекции

Начните с чтения документации — http://rtfm.modx.com/extras/revo/collections

Если вы еще этого не сделали, настройте две переменные шаблона — image для хранения изображения продукта и price для удержания его цены (неужели!).

Перейдите к Extras => Installer и установите Collections

Теперь в разделе Extras вы должны увидеть представлений коллекции , щелкните по нему, а на следующем экране щелкните Добавить представление

Введите следующее в поле Общие настройки

Введите следующее в настройках коллекции и нажмите Сохранить


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

Если ввести следующее — для этого примера должно работать:

Цена Editor : {«xtype»: «numberfield», «allowNegative»: false, «allowDecimal»: true}

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

Чтобы установить эти средства визуализации: в Manager перейдите к Системные настройки и отфильтруйте пространство имен Коллекции .

В постановке сборников.user.js , введите URL-адрес файла Javascript, который будет содержать JS-код для средства визуализации,

… и добавьте запись для collections_renderer_basepath_img

Создайте файл JS в указанном месте на сервере. Когда отображается сетка коллекций, включается JS-файл


Теперь создайте новый ресурс с именем store и установите тип ресурса как Collection

Так как наш магазин будет продавать товары трех разных категорий, компакт-дисков , книг и DVD , настройте их как подколлекции (ресурсы под хранят с типом ресурса , установленным на Коллекция ) с помощью кнопки Создать продукт на уровне магазина .

Примечание: После первоначального сохранения каждой коллекции / вложенной коллекции необходимо отредактировать каждый ресурс, чтобы указать на представление коллекции, которое он должен использовать.

Теперь добавьте продукты в каждую из вложенных коллекций, используя кнопку Create Product на каждом соответствующем уровне.

Пример настройки продукта, в данном случае DVD1, можно увидеть ниже.


Теперь давайте проверим, можем ли мы получить информацию, которую мы только что ввели, используя резервный MODX, getResources .Если вы еще этого не сделали, загрузите и установите getResources , используя Extras => Installer

На соответствующей странице, в моем случае с именем listproducts , вставьте следующий код, не забывая определить необходимые Chunks в данном случае prodRow .

Здесь должны быть перечислены все дочерние ресурсы в формате, продиктованном блоком prodRow , который может выглядеть примерно так:

См. Страницу listproducts здесь.


Конечный результат должен выглядеть примерно так: —

компакт-диски

Компакт-диск 01

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

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

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

9,99 €


Компакт-диск 02

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

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

12,49 €


Компакт-диск 03

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

Полезный или лабрадор грубый, или терьер рыдал, как о большем гну сентиментально, тоскливо кетцаль за спиной против скупой птицы, переосмыслившей меньше света.

Перед каким-то таким братским мамонтом больше и черт возьми безутешно воздвигнуть вау, явно пригнувшись к почтительному пушистому обаятельному дельфину.

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

7,99 €


Компакт-диск 04

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

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

€ 10,00


Компакт-диск 05

Невыносимый такой-то идиот внутри ворчал на эмоционально заметного гиппопотама, громадное облачко, которое, таким образом, было более спортивно сгруппировано, что иррационально рассеянно, парадоксально сарай и возня.

Мотылек до и бородавочник, исключая еще одну чертову чертову чушь, произвольно укололся с далеким и увы лабрадором далеко нерешительно.

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

Это в стороне от того жалкого дерьма, что за пределами нутрии, внутри антилопы нахально или несмотря на то, что постоянно во время скорпиона мурлыкал дорогой, неохотно, увы, один и.

14,66 €


Компакт-диск 06

Был мстительно близок язвительный гребешок вслепую, не особо прикрыв столь резкого машущего барсука.

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

Морские гребешки или больше для сложенного, но грубого помола выбрал выжатый отцовский жест.

6,66 €


Компакт-диск 07

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

Кое-что позорнее, потому что надоедливо угрюмо далеко условно этот сарай очень обширный, так что меньше этого и сурово бормотал манта с ошибками об этом более дорогом.

€ 11,11


Книги

Название книги 1

Наряду с мазохистским блаженством, этот ароматный ай, и еще кое-что, кроме налитого насекомого, вау задумчиво.

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

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

Многое одно чудо со звериным скотом повсюду и, черт возьми, стервятник далеко сиял под ним, не считая того, что лежал в основе.

Фанатично доминантная нанизанная предвкушение выдры, приора, газели, гризли, зайца-гризли, одного мангуста.

24,99 €


Название книги 2

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

Дождевой червь о, черт возьми, очень далеко от волка и вау, хорошо, а часто и добросердечно.

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

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

Ездил рядом в ожидании много где komodo quetzal дикобраз много yikes где подрывно просто ой неофициальный потом много секретный черт возьми.

Перед исключением сбежал, кроме купленной классной курицы штопать за случайным кузнечиком.

Оцепеневшая коровья цапля в таком разрезе цеплялась за черт возьми, за исключением забавной собаки, кроме игуаны.

19,99 €


Название книги 3

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

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

Мягко благородно, напротив, наблюдал за разорением некоторых и очень вредно, в то время как направленный ой ой, ой более вульгарный, таким образом топор через бережно далеко выкопанный фламинго.

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

Смехотворно и но необъяснимо лама фонарь ослышалась скромно более менее бандикут снисходительна эта цапля синяя этически прочная эта энергичная большая джиперы по сравнению с таковыми среди подготовительных перед или далеко.

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

21,49 €


Название книги 4

О, черт возьми, великолепно, где среди кальмаров, неумело потрепанных, это щедро, затем над насекомым, очень мучительно казуар, спрятанный так слабый далеко бабуин.

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

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

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

14,99 €


Название книги 5

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

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

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

€ 22,22


Название книги 6

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

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

Белка Золотая рыбка опасно опередила нюханные фырканья и.

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

Муравьед, бесцельно грубый, как выжатый, забыл, теребил лосося.

Увы зебра внутри но дьявольски отсюда чушь в по-детски загубила как так хорошо соблазнительно какое-то время и.

€ 16,66


Название книги 7

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

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

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

€ 9,87


Название книги 8

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

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

Ну, оцелот, киви и скупо преступно эй, увы, неадекватно, как трубкозуб, ходячий, менее сдержанный лемминг, энергичный, нечестно боролся с военным духом.

Лемминг мягкий, более бдительный, чем больше, но бдительный.

Черт возьми, этот дождевой червяк с тех пор не прочь передать привет, неэффективно, но законно показательно, в отношении хорошо взъерошенного соловья, привет гончая говорил далеко.

€ 18,88


Название книги 9

Казуары, черт возьми, черт возьми, когда, черт возьми, далеко, однако, узнал, что застрял неоседланный мутный тритон.

Однако ой старательный недолгое время носил некую как отсюда стрекозу по матерински поэтому это внутри.

Очень элегантно, застенчиво, одна рыба-глобус, и так много, но беспристрастно лазали, поддерживая щедро.

И этот кролик, ох, ох, среди ох, один.

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

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

С тревогой далеко нескромно, что щипавший мандрил, эй, бородавочник, гораздо поспешнее топорщить, несмотря на то, что китов гораздо меньше.

Заглянул куда раньше ровно меньше на джиперы, один гуманно тупо купленный.

9,99 €


DVD

Это заголовок для DVD 1

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

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

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

€ 11,99


Это название для DVD 2

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

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

€ 13,33


Это название для DVD 3

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

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

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

€ 11,66


Это название для DVD 4

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

Модная ухмылка киви произвольно замерзла и куда меньше эмпирическая моча где-то летаргически и что но и до тех пор, пока бабуин выскочил из-за раздражения и собачьего оцелота утвердительно поздоровался.

10,49 €


Это название для DVD 5

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

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

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

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

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

19,49 €


верх

Создание блога в MODX Revolution

Зачем вести блог с MODX?

Medium, Squarespace, Wix, WordPress, генераторы статических сайтов … список жизнеспособных платформ для ведения блогов можно продолжать и продолжать. Обсуждение того, почему MODX является (или нет) хорошим выбором, исчерпывающе освещено в другом месте. Просто погуглите «почему именно modx» или «modx vs wordpress» или посетите modx.com. Если вам интересно, почему MODX не так популярен, ознакомьтесь с этой статьей.

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

Почему этот учебник?

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

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

Что вам нужно

Помните, это о минимализме. Следующее дает вам только основы и не более того.

Установить MODX

Это описано здесь.

Системные настройки

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

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

  1. getResources. Требуется для перечисления сообщений в блогах.
  2. Tagger. Возможно, потребуется для категоризации контента.
  3. Коллекции. Вероятно, потребуется, так как это значительно упрощает управление структурированным контентом блога.
  4. getPage. Возможно, потребуется, если вы хотите разбить свои объявления на страницы.Плюс это может помочь с производительностью.
Дополнительные бонусы

Они не рассматриваются в этом руководстве, но, скорее всего, вам понадобятся они или альтернатива, обеспечивающая аналогичную функциональность.

  • Редактор Markdown. Вероятно, потребуется какой-то текстовый редактор, иначе публикация была бы неудачной. Есть и другие очень хорошие варианты.
  • FullTextSearch. Это Extra, который я выпустил недавно, поэтому он не пользуется таким же успехом, как другие.Тем не менее, я провел 5 лет в основной команде MODX, и у меня есть несколько дополнений в официальном репозитории, которые я стараюсь поддерживать в относительно хорошем состоянии, если это подавляет чувство отказа от программного обеспечения. FullTextSearch предоставляет полезные функции поиска и настраиваемый индекс без каких-либо сторонних зависимостей. Стандартный стандартный поиск SimpleSearch имеет свои особенности, но он прошел серьезную проверку в боевых условиях и поддерживается различными членами основной команды в течение многих лет.
  • Ace. Редактор кода для использования в Менеджере.Экстра, разработанная сообществом, широко используется, но нечасто обновляется. Он хорошо работает и выглядит красиво, если говорить о кодах.
  • pThumb Если вы хотите изменить размер изображений на веб-сервере, лучшим дополнением для использования IMO является pThumb, несмотря на то, что он устарел. Он по-прежнему хорошо работает и поставляется с механизмом изменения размера, называемым «Resizer», который является быстрым и надежным.

Реализация

Мы будем использовать пример разметки блога Twitter Bootstrap. В этом репозитории на github размещается устанавливаемый Extra, содержащий элементы MODX в этой сборке.

ПРИМЕЧАНИЕ: Если вы новичок в MODX, вы должны знать, что НИ ОДИН из этих элементов не установлен по умолчанию. MODX — это чистый лист. Шаблоны и блоки — это элементы, которые обслуживают уровень представления. Вы помещаете туда HTML, используете синтаксис тегов MODX для их включения, а MODX отображает HTML точно так, как вы его настроили, с заполнением переменных-заполнителей. Это общепринятая передовая практика, хотя все делают по-своему.

Теги и токены MODX

Для краткости в следующих разделах давайте проясним некоторые вещи о синтаксисе тегов MODX.

  • Теги MODX начинаются с [[ и заканчиваются на ]] (Да, иногда это противоречит синтаксису вложенного массива JavaScript. Остерегайтесь этого.)
  • Жетон может следовать за открывающими фигурными скобками.
    • Если токен отсутствует [[ является вызовом сниппета, то есть MODX выполнит некоторую логику, хранящуюся в объекте сниппета с именем, указанным в теге, например [[getResources]] .
    • Если звездочка [[* Token, значение извлекается из текущего обработанного ресурса MODX (страница).
    • Если плюс [[+ Token, значение заполняется либо свойствами содержащего элемента, либо фрагментом, который был настроен для заполнения заполнителей этого типа.
    • Если двойной плюс [[++ Token, значение взято из конфигурации MODX или Settings. Это может быть настройка системы, настройка контекста, настройка группы пользователей или настройка пользователя.
    • Если знак доллара [[$ Token, значение представляет собой отображаемое содержимое блока MODX с именем, указанным в теге, например, [[$ head]] .
    • Если тильда [[~ Token, выходным значением является URI ресурса с идентификатором, указанным в теге. Например, [[~ 1]] создает ссылку на идентификатор ресурса 1 . Вывод может быть изменен с помощью свойства & scheme , чтобы он был полностью сформированным, совместимым со схемой, абсолютным или относительным.
    • Если восклицательный знак [[! Токен (как единственный токен или предшествующий любому другому токену) вывод тега обрабатывается как некэшируемый.Это для контента, который зависит от ввода данных пользователем, или для динамического контента, который может изменяться по запросу. Примечание. НЕ обязательно использовать этот токен для содержимого, которое изменяется для каждого ресурса — только для содержимого, которое изменяется в соответствии с запросом.

Шаблоны

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

Вам действительно нужен только 1 шаблон MODX для ведения минимального блога.Этот шаблон содержит следующие теги MODX, в которых происходят «динамические» MODX-y:

  • [[$ head]] вызывает блок, содержащий глобальный элемент .
  • [[$ header]] включает Чанк с глобальным
    и навигацией.
  • [[$ jumbotron - [[* class_key]]]] — это один из примеров того, как вкладывать теги MODX производительно, но гибко. [[* class_key]] получает атрибут class_key из текущего ресурса.В этой сборке будут использоваться только два значения: CollectionContainer или modDocument . Первый используется для контейнера блога, где последняя запись блога используется для создания jumbotron. Последний предназначен для самих сообщений в блогах, где заголовок сообщения и метаданные попадают в jumbotron. MODX сначала разбирает вложенные теги. В случае сообщения в блоге результирующий тег будет выглядеть так: [[$ jumbotron-modDocument]] , что мы и назвали одним из наших блоков.(Другой — [[$ jumbotron-CollectionContainer]] .)
  • [[[[* class_key: is = `CollectionContainer`: then =`! $ Blog -isting`: else = `$ blog-article`]]]] — еще один хитрый способ создания тегов MODX. Мы запускаем условную проверку во вложенном теге. Для CollectionContainer мы получим [[! $ Blog -isting]] , а для сообщения мы получим [[$ blog-article]] . Эти куски используются по-разному. Обратите внимание на ! Токен для записи блога.Это позволяет нам обслуживать динамический контент, например список сообщений блога, отфильтрованный пользователями.
  • [[$ aside]] отображает элемент боковой панели.

Куски

головка

Содержит только несколько тегов MODX. [[* pagetitle]] будет заполнен заголовком с текущей страницы, аналогично [[* description]] . [[++ modx_charset]] — конфигурация системы, часто «UTF-8». [[~ [[* id]]? & scheme = `full`]] создает полностью сформированный URL-адрес, включая схему, имя хоста, путь и базовое имя, действительный для текущего ресурса. [[$ styles]] вызывает блок стилей , который содержит ссылки CSS и теги стилей.

** ОБНОВЛЕНИЕ: спасибо @lucy_i из сообщества MODX за указание на то, что в этом примере отсутствовал тег , который является общим для сайтов MODX, но не повсеместно используемый метод включения относительных ссылок.MODX по умолчанию генерирует ссылки относительно переменной конфигурации site_url . Если вы не измените это, вы захотите, чтобы базовый тег заставлял внутренние ссылки работать 🙂

Заголовок

Это набор примеров разметки для заголовка с такими функциями, как подписка на рассылку новостей и поиск. Подписки выходят за рамки этого руководства, но вот материал MODX-y:

  • [[++ site_start]] — это идентификатор ресурса, который является домашней страницей сайта.Системная настройка с ключом site_start содержит это значение. Значение по умолчанию — 1 , поэтому внешний тег формируется как: [[~ 1]] , генерируя ссылку на домашнюю страницу. Скоро мы снова увидим [[++ site_start]] .
  • [[++ site_name]] — это еще одна системная настройка, которую мы настроили выше.
  • [[TaggerGetTags? & groups = `2` & rowTpl =` tag_link` & showUnused = `1`]] вызывает сниппет TaggerGetTags, который поставляется с Tagger Extra.Он возвращает список тегов Tagger с использованием блока tag_link в качестве шаблона, в результате чего открывается главное меню сайта. Свойство & showUnused указывает сниппету показывать все теги в теге & groups 2 независимо от того, был ли им помечен ресурс. Вы также можете передать псевдоним группы, например, категория . Обратитесь к документации Tagger для более подробной информации.

jumbotron-Collection Контейнер

Это для контейнера блога.Он извлекает метаданные сообщения из последнего сообщения в блоге и заполняет элемент jumbotron.

  [[getResources?
    & Родители = `[[++ site_start]]`
    & глубина = `0`
    & limit = `1`
    & tpl = `post_meta`
]]
  

getResources — это сниппет утилиты для перечисления ресурсов MODX. Свойство и родители сообщает ему, что он должен перечислить ресурсы, которые являются дочерними по отношению к ресурсу с этим идентификатором. В этом случае мы устанавливаем его на домашнюю страницу, которая также является нашим основным ресурсом контейнера блога.Свойство & depth указывает ему не выполнять рекурсию вниз по дереву ресурсов — в нашем случае все сообщения блога являются непосредственными дочерними элементами контейнера блога. Мы будем обрабатывать таксономию с помощью Tagger Extra и избегать сложной вложенности ресурсов. Свойство & limit указывает ему возвращать только 1 результат. Мы просто хотим заполнить jumbotron, а не перечислить кучу сообщений — это будет позже.

Свойство & tpl , вероятно, наиболее интересно, если вы новичок в MODX.Он ссылается на блок, который будет использоваться в качестве шаблона для каждого возвращаемого сообщения. Шаблон получает все атрибуты ресурса, переданные ему в качестве заполнителей. Мы рассмотрим это дальше.

post_meta

Заполнители здесь заполняются значениями поля Resource вызывающим фрагментом, getResources .

  • [[+ pagetitle]] получает название ресурса.
  • [[+ description: is = `: then =` `: else =`

    [[+ description]]

    `]] — это условное выражение, которое обертывает значение поля описания, только если поле не пустое.

  • [[+ publishedon: date = `% b% d,% Y`]] использует выходной фильтр даты для форматирования метки времени публикации, чтобы ее можно было легко прочитать.

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

jumbotron-mod Документ

Отдельные сообщения блога показывают элемент jumbotron, который немного отличается — он не включает поле описания ресурса.Это пример того, как блоки MODX помогают нам оставаться СУХИМИ. Мы можем вызвать чанк [[$ post_meta]] напрямую. Это не значит, что должен вызываться сниппетом . Мы не передаем свойство & description , поэтому условное выражение внутри блока $ post_meta оценивается как пустая строка и пропускает

.

blog_listing

Здесь мы перечисляем сообщения блога в контейнере блога.

  [[! GetPage @ blog? & cache = `1` & element =` getResources`
    & Родители = `[[++ site_start]]`
    & глубина = `0`
    & limit = `8`
    & includeContent = `1`
    & tpl = `blog_listing-item`
    & where = `[[! TaggerGetResourcesWhere]]`
]]
  

Фрагмент getPage разбивает выходные данные фрагмента, указанного в свойстве & element .Он может и кэшировать результатов на основе параметров запроса. Так, например, & page = 2 будет кэшироваться отдельно от & page = 3 . Остальные свойства передаются и настраиваются в сниппет getResources . Здесь есть одна проблема: и includeContent , о которых полезно знать. По сей день (буквально, когда я пишу это на самом деле) меня ловит этот. Если вы ожидаете получить доступ к полю содержимого ресурса внутри указанного блока & tpl , то вы должны указать getResources от до и includeContent — он отключен по умолчанию для повышения производительности и экономии памяти.

Свойство & where является очень мощной функцией getResources . Подробнее об этом можно прочитать в документации здесь. В этом случае мы вызываем TaggerGetResourcesWhere Snippet. Tagger Extra устанавливает плагин, который направляет запросы к ресурсу MODX, превращая биты URL в параметры GET. Например, https://example.com/category/world будет на сервере https://example.com/?category=world , но в браузере будет сохраняться красивый URL. TaggerGetResources Где превращает параметры GET в предложение WHERE , отформатированное с синтаксисом JSON, которое сниппет getResources может анализировать и добавлять в свой запрос.

Результат тега MODX выше с параметрами GET category = world на английском языке: «Получите до 8 ресурсов, которые являются прямыми дочерними элементами контейнера блога домашней страницы и помечены категорией world , затем шаблон каждого результат с блоком blog_listing-item Chunk.»Подробнее о том, как настроить Tagger, мы расскажем ниже.

blog_listing-item

Этот блок содержит больше заполнителей для полей ресурса. Обратите внимание на синтаксис модификатора вывода, который на самом деле может вызывать пользовательский фрагмент [[+ content: firstp]] . Этот тег передает значение поля содержимого фрагменту firstp в переменной $ input . Фрагмент более подробно описан ниже, но он содержит логику для возврата первого тега

во входных данных.

blog_article

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

в сторону

«Помимо» обычного HTML, здесь есть один тег MODX: [[TaggerGetTags? & groups = `1` & sort =` {"alias": "DESC"} `& rowTpl =` tag_li`]] , который использует указанный блок шаблона для форматирования вывода тегов в & groups 1 .Обратите внимание, что эти теги отсортированы по псевдонимам — подробнее об этом позже.

Фрагменты

firstp

Единственная настраиваемая бизнес-логика в этой сборке сайта создает экземпляр класса DOMDocument php и использует его для извлечения первого элемента

. Остальной код фрагмента и подключаемого модуля устанавливается вместе с дополнительными функциями, перечисленными выше.

Таксономия

Tagger — это универсальная утилита для управления таксономией в MODX.Концептуально это похоже на переменные шаблона MODX (TV) и аналогично имеет высокую степень гибкости, но значения тегов ограничены строками из 100 символов. Запросы сниппетов, которые он выполняет, более производительны, чем запросы, использующие телевизоры для таксономии (наиболее заметны в масштабе).

Tagger устанавливается с помощью так называемой CMP («Custom Manager Page») страницы для управления тегами.

Вы начинаете с групп тегов, потому что каждый тег должен принадлежать к группе. При настройке групп тегов можно выбирать из множества вариантов — все подробности есть в документации Tagger.В нашей сборке у нас Категория и Архив . Одна из обязательных настроек группы — сделать их доступными для нашего шаблона блога.

Затем мы создаем теги под каждой Группой. Основная навигация нашего примера блога демонстрирует общий вариант использования таксономии сообщений блога, в которой каждое сообщение принадлежит к категории, а основная навигация ведет вас на страницу, на которой перечислены все сообщения, отнесенные к определенной категории. Реализация TaggerGetResourcesWhere в контейнере блога обеспечивает это за нас.Нам просто нужно создать теги в группе Category и назначить сообщения (ресурсы) этим тегам.

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

В нашем случае мы только что создали несколько тегов по месяцам.

Здесь стоит отметить одну небольшую хитрость: псевдоним каждого тега использует сортированный формат даты гггг-мм , а имя и ярлык имеют более понятный для человека тип "сентябрь 2019". Это поддерживает вариант использования ссылок на отсортированные архивы дат в блоке $ aside , как описано выше.Однако вы можете настроить его, как хотите.

Ресурсы

Домашняя страница / Блог Контейнер

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

На панели настроек ресурса измените тип ресурса на Коллекции и сохраните.

Теперь вы должны увидеть сетку контейнера коллекций. После того, как вы создали несколько дочерних ресурсов (сообщения в блогах), они должны выглядеть примерно так:

Это представление разбито на страницы, а дополнительные коллекции предоставляют целый ряд удобств и настроек, позволяющих сделать управление коллекцией ресурсов, например блогом, НАМНОГО лучше. Это значительно улучшенная и менее самоуверенная версия движка блога «Статьи». Подробнее о Коллекциях читайте в документации.

Демо

Облачный сайт MODX был развернут только с описанными здесь элементами. Вы можете просмотреть его по адресу: http://example-blog.sepiariver.modxcloud.com/. Чтобы воспроизвести тот же результат:

  1. Начните с новой установки MODX 2.7.1.
  2. Настройте параметры системы, как описано выше.
  3. Установите пакет в репо. Это можно сделать, выбрав «Загрузить пакет» в раскрывающемся списке в установщике дополнительных услуг.
  4. Следуйте инструкциям по установке зависимых дополнительных компонентов.
  5. Внесите изменения в шаблон и тип ресурса на домашней странице, как описано выше.
  6. Настройте Tagger, как описано выше.
  7. Создайте сообщение в блоге.

Это быстрый и простой способ. Удачного использования MODX… или ведения блога… или и того, и другого!

MODX

Фильтр компании:
AllAbletonAccessAdamAIRAlesisApple - LogicArturiaASMAudio TechnicaAvidBehringerBehringerCasioDave Smith Instruments / SequentialElektronEvent ElectronicsFocusriteGatorHalionIk MultimediaKetronKönig & MeyerKorgKurzweilM-AudioMoogMuse ResearchNative InstrumentsNordNovationPresonusQuiklokRadikalRCFRolandsamplesSpectrasonicsSteinbergStudio ElectronicsStudiologicTeenage EngineeringU-HEUltimate SupportWaldorfYamaha

Результаты 1-15 из 70
510152050

Добавьте свой товар! Зарегистрируйтесь бесплатно и начните продавать свои звуки...

Производитель: YOU

256 исполнений, 16 Live Set, 2 Live Set Songs и 19 MIDI-композиций, чтобы расширить возможности Yamaha Modx.

Производитель: GrimFlash Production

Этот набор предназначен для тех, кто любит музыку Pink Floyd.Он предоставляет несколько сэмплов с циклическим воспроизведением и сложные сплиты для вашего Yamaha MODX.

Производитель: мультивендор

Этот новый пакет для Yamaha MODX включает в себя новые формы волны, семплированные легендарными Roland D50 и Korg M1.

Производитель: мультивендор

Этот набор предназначен для тех, кто любит музыку Pink Floyd и Genesis.Он предоставляет несколько сэмплов с циклическим воспроизведением и сложные сплиты для вашего Yamaha MODX.

Производитель: мультивендор

Этот новый комплект для Yamaha MODX включает формы сигналов, сэмплированные легендарными рабочими станциями Korg Triton и Korg M1.

Производитель: мультивендор

Огромный набор для Yamaha MODX, вдохновленный легендарной Steinway Model D.и Steinway Z Upright Piano.

Производитель: мультивендор

Набор звуков, вдохновленных самыми известными песнями Pink Floyd и Toto для Yamaha MODX ... 54 новых звука!

Производитель: fabio

Этот комплект представляет собой сборник сэмплов для фортепиано, тщательно записанных для идеальных живых и студийных выступлений... 16 новых звуков!

Производитель: ITB-Music

Основываясь на недавно записанных сэмплах патча Child Piano знаменитого красного сценического фортепиано, мы тщательно запрограммировали эту библиотеку, чтобы правильно передать прикосновение, динамический диапазон и элегантный, естественный и хорошо сбалансированный тон оригинала... 4 новых звука!

Производитель: ITB-Music

Основываясь на недавно записанных сэмплах патча Silver Grand Piano знаменитого красного сценического фортепиано, мы тщательно запрограммировали эту библиотеку, чтобы правильно передать прикосновение, динамический диапазон и элегантный, естественный и хорошо сбалансированный тон оригинала... 4 новых звука!

Производитель: ITB-Music

Основываясь на недавно записанных сэмплах патча Grand D Piano знаменитого красного сценического фортепиано, мы тщательно запрограммировали эту библиотеку, чтобы правильно передать прикосновение, динамический диапазон и элегантный, естественный и хорошо сбалансированный тон оригинала... 4 новых звука!

Производитель: ITB-Music

Основываясь на недавно записанных сэмплах патча Imperial Grand от знаменитого красного сценического фортепиано, мы тщательно запрограммировали эту библиотеку, чтобы правильно передать прикосновение, динамический диапазон и элегантный, естественный и хорошо сбалансированный тон оригинала... 4 новых звука!

Производитель: ITB-Music

Этот комплект представляет собой сборник сэмплов для фортепиано, тщательно записанных для идеальных живых и студийных выступлений ... 16 новых звуков!

Производитель: ITB-Music

Отличный набор для любителей звука Dream Theater.Обложки с изображениями и словами + сцены из воспоминаний.

Производитель: Inemokeys

Этот сборник содержит все звуки, необходимые для воспроизведения полного студийного альбома "Scenes from a memory" американской прогрессив-метал / рок-группы Dream Theater ...

Производитель: Inemokeys

Yamaha-MODX - Synthcloud

Фильтровать по
All80's80 в Hits80s80s Обложка Pack90'sa100 organA100 Vintage Packamberamerican preludeAmerican Prelude D Pianosb3Best HitsBon Jovibrightbruno marsC-Семь Гранд PianoC7C7 и surroundingschildclassiccompleteComplete Пианино Anthologyconcert pianocontemporary pianoContemporary pianosContemporary Пианино Красный EditionCovercover 80'scover collectioncover packcoverlogiad50D50 Vintage Packdave кузнец instrumentsDefinitive Black & White PianoDepeche Modedrawbarsdream theaterdw 800emulatoremulator IIemulator марочные packEuropeevolutionexpexpansionfamous soundsfazioliFloydian Обложка PackfmgenesisgenesynthGenesynth Обложка Packgrandhammondhammond cloneHammy Clonehitsimagesimperialjazzjd 800jordan rudessJRockJxk amberkevin moorekeyboard toolskeyskorgkorg m1korg tritonLA Родос Электрический Pianolead packLeadsLeads пакет MKIIILight Pianolinear synthesizerm1M1 Vintage PackMellotronMetalMichael JacksonMKII Electric Pianomkii rhodesmodel dmodel г yamahamodxMonstermonster packMonster пакет В.1Monster пакет V.2montagemoreMOXNightwish CollectionNighwishnord pianoone visionOne видения Обложка Packorganorgan vintagePackpadPad soundsPatches Of An Erapeter gabrielpetrofPetroph в вертикальном положении pianoPF Обложка EXPPF Обложка Пакет V3phil collinspianopiano & keysPiano ключи & morePiano Ключи и больше V.2piano librarypianospink floydPinkFloydpower metalProgressiveProph 5 Vintage Packprophet 5queenRealeyety Sound Bankred brightred royalrhodesrichard wrightrihannarockrolandroland d50royalsamplesample librarysampled pianosamplesscenes из memorysfamsilverstan & whyStanWhy Z Вертикально LibrarySteineway pianosteinwayStudio GrandSuper JxSUPER JX-LOGIAsymphonic metalsynthsynthesizert9t9T9T9 Обложка PackT9T9 EvolutionTalk TalkThe Клавиатура Toolstony banksTotoTriton-Logia Урожай PackTron PackTuomas HolopainenUniversal Padsuprightupright pianov3velvetvintagevintage synthvolume 2wordsworkstationwurlitzerWurly 140Byamahayamaha c7Yamaha MODX

Сортировка по
РекомендуемыеЛучшие продажиАлфавит, A-ZАлфавит, Z-APrice, от низкого к высокомуЦена, от высокого к lowDate, от старого к newDate, от нового к старому

Список изменений для коллекций.Коллекции 3.6.0
===================
- Добавить преобразователь таблиц синхронизации
- Добавлены 3 опции для ускорения больших дочерних списков (+ 10К ресурсов)
- Исправлена ​​сортировка D&D для ресурсов в глубине> 1

Коллекции 3.5.0
===================
- Добавить collections.renderer.boolean renderer
- Добавить совместимость с AjaxManager
- Отрегулируйте положение других столбцов при создании / обновлении столбца с указанной позицией
- Добавить параметр excludeResources в фрагмент getSelections
- Предотвратить сброс просмотра Коллекции после быстрого обновления ресурсов
- Используйте лексиконы для кнопки Открыть
- Добавить эллипс переполнения в главный столбец
- Добавить область в системные настройки

Коллекции 3.4.2
===================
- Исправлено сохранение значений телевизора из обновления из сетки
- Исправлено после события сохранения, запущенного при обновлении из сетки

Коллекции 3.4.1
===================
- Исправлена ​​бесконечная перезагрузка Safari.
- Исправить выбор при сортировке по menuindex

Коллекции 3.4.0
===================
- Передать имя столбца средству рендеринга сниппета
- Предотвратить постоянную сортировку, нарушающую сортировку D&D
- Добавить рендерер Collections.renderer.buttons
- Разрешить рендеринг фрагментов в несуществующем столбце
- Добавить имена событий для обновления из процессора сетки
- Показывать папки под коллекциями
- Показывать хлебные крошки при просмотре папок в коллекциях
- Импорт / экспорт представлений коллекции
- Добавить быстрое обновление для сбора и выбора детей
- Запретить сохранение столбцов с помощью модуля рендеринга из сетки
- Добавить новые системные настройки для отображения кнопки создания коллекции / выбора на древовидной панели инструментов.
- Отображение идентификатора ресурса в окне ресурса ссылки
- Настроить цвета в сетке коллекций

Коллекции 3.3.0
===================
- Показать назначенные шаблоны в сетке просмотра Коллекции
- Исправить игнорирование родителей для pdoResources
- Добавить «Условие для окна ресурса ссылки» в качестве настройки для просмотра выбора.
- Исправлено отображение ContentBlocks, когда контент находится на отдельной вкладке
- Исправлена ​​проверка использования шаблона в представлениях.

Коллекции 3.2.2
===================
- Исправлена ​​сортировка D&D для столбцов просмотра Коллекции.
- Добавлен Collections.renderer.pagetitleWithIcons.
- Улучшен обработчик встроенных кнопок действий, позволяющих использовать значки.
- Исправлена ​​сортировка D&D, когда menuindex установлен как поле сортировки по умолчанию
- Переименовать тип сортировки String

Коллекции 3.2.1
===================
- Исправить обновление с предыдущих версий

Коллекции 3.2.0
===================
- Добавить тип сортировки в качестве настройки столбца шаблона новой коллекции
- Добавить постоянную сортировку
- Автоматическая установка метки столбца из заголовка ТВ или имени группы тегов
- Передавать значение столбцов в качестве входных данных для средства визуализации сниппета
- Добавить тип сортировки в качестве новой настройки просмотра коллекции.
- Добавить расположение содержимого в качестве настройки просмотра новой коллекции.
- Добавить родителя в качестве настройки представления новой коллекции
- Сделайте колонки ТВ доступными для поиска
- Используйте modx-> getTableName, чтобы получить имена таблиц для таблиц Tagger
- Показать значение по умолчанию для телевизора в сетке
- Очистить фильтр, использовать поле сортировки и каталог из представления
- Предотвратить ошибку, не передавая шаблоны ресурсов в представлении коллекции

Коллекции 3.1.1
===================
- Исправлено отображение (пустого) шаблона в поле выбора дочернего шаблона.
- Исправлен путь к изображению в рендерере
- Исправлены дочерние элементы, переупорядочивающие D&D при выборе элемента или дерева файлов.
- Исправлена ​​кнопка возврата к сбору / выбору для статических ресурсов / веб-ссылок / символических ссылок.
- Исправлена ​​кнопка возврата к коллекции / выбора при создании новой дочерней страницы.

Коллекции 3.1.0
===================
- Исправлена ​​кнопка сброса фильтра в разделе "Выбор".
- Добавлена ​​возможность установить значения по умолчанию для типа контента для новых детей.
- Добавлена ​​системная настройка для изменения пути к изображению в рендерере изображений.
- Разрешить детям в разделе "Выбор"
- Добавлена ​​возможность добавить колонку quip.
- Исправлен выбор шаблонов в представлении Коллекции в Revo 2.2.x
- Добавлена ​​возможность установить значения по умолчанию для скрытого меню, опубликованного, кешируемого, доступного для поиска и расширенного текста для новых детей.
- Добавлена ​​возможность указать сортировку для поискового запроса ресурса Selections.
- Добавлена ​​возможность установить метку для кнопки «Назад в коллекцию / выбор».
- Исправлено отображение сетки выбора с телевизорами
- Передать целую строку средству рендеринга фрагментов
- Исправлена ​​сортировка по ТВ с тире в названии

Коллекции 3.0.2
===================
- Исправлено сохранение представления коллекций из вкладки настроек ресурса.
- Связать ресурс с выделением можно с помощью поиска по идентификатору
- Исправлена ​​передача формата sort dir int в верхнем регистре в getSelections.
- Удалена опция родителей из вызова getSelections.

Коллекции 3.0,1
===================
- Исправлено обновление из сетки

Коллекции 3.0.0
===================
- Добавлена ​​проверка имени столбца, если он содержит точку
- Добавлен рендерер PHP (сниппет), который будет использоваться для столбца
- Добавлена ​​опция просмотра для определения классов ресурсов, которые будут доступны при выборе типа ресурса.
- Добавлена ​​опция просмотра для определения пунктов контекстного меню.
- Добавлена ​​опция просмотра для определения кнопок и их стиля.
- Исправлено сохранение параметров просмотра из неактивированной вкладки
- Изменен значок дерева по умолчанию для коллекций в Revo 2.3
- Добавлен сниппет getSelections (работает с getPage, getCache и т. Д.)
- Обновлен вид вкладки настроек Коллекции.
- Обновлен просмотр коллекций.
- Добавлен CRC для выбора.
- Добавлена ​​кнопка возврата для дочерних элементов Коллекции и возврат кнопки закрытия к исходной функциональности
- Запускать OnBeforeEmptyTrash и OnEmptyTrash при удалении ресурса через коллекции

Коллекции 2.2.2
===================
- Исправлен рендеринг столбцов TV и Tagger с тире в имени / псевдониме.

Коллекции 2.2.1
===================
- Исправлена ​​совместимость с PHP 5.2.

Коллекции 2.2.0
===================
- Добавлена ​​возможность установить положение поля Контент.
- Добавлены параметры для установки ярлыка вкладки и новой дочерней кнопки.
- Добавлен Collections.renderer.image для рендеринга изображений.
- Добавлены вкладки в представления коллекции, чтобы разделить ее настройки.
- Разделенная вкладка настроек для вкладок vtabs для настроек ресурса и настроек коллекций.
- Улучшена кнопка закрытия в дочерних элементах коллекции.
- Исправлено отображение данных в столбцах ТВ.
- Добавлена ​​возможность безвозвратно удалить удаленный ресурс
- Исправлено повторяющееся действие из контекстного меню.
- Добавлен контроллер данных для отображения страницы обзора ресурсов.
- Исправлено добавление # к URL-адресу менеджера при нажатии кнопки
- Исправить ошибку строгих стандартов (PHP 5.4+) в процессоре ресурсов / списков получения
- Исправить неработающую ссылку для редактирования при щелчке по заголовку страницы в сетке.

Коллекции 2.1.0
===================
- Добавлена ​​возможность дублировать представление Коллекции
- Обновлен макет для создания / обновления столбца представления.
- Добавлен просмотр, обновление, удаление, дублирование, публикация элементов в контекстное меню детской сетки.
- Добавлен дочерний шаблон по умолчанию, тип ресурса по умолчанию и возможность выбора типа ресурса в шаблоны коллекции.
- Исправлена ​​кнопка просмотра
- Исправлены сообщения журнала от плагина

Коллекции 2.0,2
===================
- Исправлены рендеры даты и времени

Коллекции 2.0.1
===================
- Исправлено сохранение контейнера коллекций в Revolution 2.2.x

Коллекции 2.0.0
===================
- Добавлены шаблоны коллекций
- Добавлена ​​возможность создавать разные дочерние типы из сетки
- Поддержка Revolution 2.3

Коллекции 1.3.3
===================
- Удалить вызов отладчика: X

Коллекции 1.3.2
===================
- Исправление для диалога подтверждения навигации
- Исправлен выбор нескольких строк
- Исправлена ​​проверка на Tagger

Коллекции 1.3.1
===================
- Выпуск с правильным номером версии

Коллекции 1.3.0
===================
- Поддержка Tagger в поле поиска на вкладке Children
- Добавлена ​​возможность перетаскивать дочерний элемент в дерево ресурсов для смены родителя.
- Обновлена ​​английская и немецкая лексика.

Коллекции 1.2.0
===================
- Добавлена ​​возможность поиска через созданное по полному имени
- Добавлена ​​возможность поиска через созданное по имени пользователя
- Исправлено переключение ребенка между двумя коллекциями
- Исправлено переключение отличного родителя на Коллекции при перемещении последнего ребенка
- Исправлено имя ребенка после создания дубликата
- Добавлена ​​сортировка перетаскиванием по индексу меню.

Коллекции 1.1.1
===================
- # 20 Исправлено после повторного сохранения дочернего набора show_in_tree 1

Коллекции 1.1.0
===================
- # 9 Добавлена ​​кнопка дублирования
- # 10 Добавлен значок коллекции в дерево ресурсов
- # 11 Сделать сетку с отслеживанием состояния и добавить еще несколько столбцов (до очистки кеша сетка сохраняет отображаемые / скрытые столбцы и их порядок)
- "Сборник" переименован в "Сборник".
- # 7 Добавлен немецкий перевод (спасибо pepebe)
- # 12 Добавлен чешский перевод
- # 14 Добавлен голландский перевод (спасибо @mark_hamstra)
- # 15 Добавлен французский перевод (спасибо @rtripault)
- # 16 # 17 Добавлен русский перевод (спасибо vanchelo)
- # 18 Исправлен конфликт show_in_tree

Коллекции 1.0,0
===================
- Публикуется в дополнениях MODX

Коллекции 0.8.2
===================
- Завершено переименование CollectionsContainer -> CollectionContainer.
- Удалены вызовы журнала chromephp.

Коллекции 0.8.1
===================
- Исправлено отображение псевдонимов в дочерней сетке.

Коллекции 0.8.0
===================
- CollectionsContainer переименован в CollectionContainer.
- Исправлено возвращение правильного количества детей в контейнере для сбора.

Коллекции 0.7.0
===================
- Добавлен обратный преобразователь, который переключит все контейнеры коллекций обратно на modDocument и установит для show_in_tree значение 1 для всех дочерних коллекций при удалении.
- Добавлена ​​поддержка переключения class_key дескриптора из CollectionContainer и в CollectionContainer.

Коллекции 0.6.0
===================
- Исправлено правильное отображение контейнера коллекций под другим контейнером коллекций.
- Исправлено правильное отображение нормальных контейнеров с детьми под CRC.
- Добавлен слушатель для события Before Empty Trash, чтобы скрыть ресурсы, которые находятся в контейнере коллекций и у которых не будет других дочерних элементов после очистки корзины.

Коллекции 0.5.0
===================
- Обновлен плагин для внедрения JS для обработки кнопки отмены на панели обновления ресурсов.

Коллекции 0.4.0
===================
- Добавлен плагин, который обрабатывает правильную установку параметра show_in_tree для ресурсов после создания нового ресурса или сортировки ресурсов.

Коллекции 0.3.0
===================
- Визуальные улучшения для сетки с детьми

Коллекции 0.2.0
===================
- Расширенная панель обновления ресурсов с новой вкладкой, которая содержит сетку с дочерними элементами

Коллекции 0.1.0
===================
- Первый выпуск.

xRS для MODx отображает коллекции и фотографии ResourceSpace | xRS MODX экстра

Action collection_list возвращает список коллекций (наборы фотографий).

По сравнению с collection_single, collection_list отображает несколько наборов фотографий / коллекций с прикрепленными изображениями или без них по категориям.

Возможна фильтрация по категории (тема RS), в этом примере темы RS определяют типы наборов фотографий, такие как Feature , Project и Series . Каждую из этих категорий необходимо определить во время загрузки или редактирования атрибутов коллекции (например, здесь: http://yourresourcesoace.net/pages/collection_manage.php ).

Пример

  [[! Xrs?
    & action = `collection_list`
    & cat = `проект`
    & sortby = `имя`
    & tpl = `xrsCollSingle1`
    & tplImg = `xrsImg1`
    & includeImg = `1`
]]
  

Параметры фрагмента

Опция Значения По умолчанию / Примечания
действие collection_list
кот Должен соответствовать теме RS
тпл отладка
xrsCollSingle1
настраиваемый фрагмент
Внешний шаблон
tplImg xrsImg1
xrsImg2
xrsImg3
xrsImg4
настраиваемый фрагмент
Шаблон для каждого элемента изображения
Сортби название
создано
предел Для использования с pdo Страницы

Démos

xRS collection_list & pdoСтр.

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

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