Pdotools modx revo: pdoTools / Компоненты / docs.modx.pro

Общие параметры / pdoTools / Компоненты / docs.modx.pro

Общие параметры для сниппетов, основанных на pdoTools/pdoFetch.

Параметры выборки ресурсов

Эти параметры определяют, какие объекты будут получены.

Название По умолчанию Описание
&class modResource Класс получаемого объекта
&parents Текущий ресурс Список родителей, через запятую, для поиска результатов. Если поставить 0 — выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключаются из выборки.
&depth 10 Глубина поиска дочерних ресурсов от родителя.
&resources Список ресурсов, через запятую, для вывода в результатах. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки.
&templates Список шаблонов, через запятую, для фильтрации результатов. Если id шаблона начинается с дефиса, ресурсы с ним исключается из выборки.
&context Ограничение выборки по контексту ресурсов.
&where Массив дополнительных параметров выборки, закодированный в JSON.
&showHidden 0 Показывать ресурсы, скрытые в меню.
&showUnpublished 0 Показывать неопубликованные ресурсы.
&showDeleted 0 Показывать удалённые ресурсы.
&hideContainers 0 Отключает вывод контейнеров, то есть, ресурсов с «isfolder = 1».
&hideUnsearchable Отключает вывод спрятанных от поиска ресурсов.
&select Список полей для выборки, через запятую. Можно указывать JSON строку с массивом, например
{«modResource»:»id,pagetitle,content»}
.
&leftJoin Аналог SQL оператора left join
&rightJoin Аналог SQL оператора right join
&innerJoin Аналог SQL оператора inner join
&joinSequence innerJoin,leftJoin,rightJoin Порядок подключения таблиц, через зяпятую.
&sortby pagetitle Любое поле ресурса для сортировки, включая ТВ параметр, если он указан в параметре &includeTVs. Можно указывать JSON строку с массивом нескольких полей. Для случайно сортировки укажите «RAND()»
&sortdir ASC Направление сортировки: по убыванию или возрастанию.
&groupby Указывает поле, по которому группируются результаты
&having Используется, чтобы ограничить выборку сгруппированных строк с помощью условия, относящегося ко всей группе, заданной в &groupby
&limit 0 Ограничение количества результатов выборки. Можно использовать «0».
&offset 0 Пропуск результатов от начала.
&first 1 Номер первой итерации вывода результатов.
&last Автоматически, по формуле (total + first — 1) Номер последней итерации вывода результатов.
&loadModels Список компонентов, через запятую, чьи модели нужно загрузить для построения запроса. Например: &loadModels=`ms2gallery,msearch3`.
&tvFilters Список фильтров по ТВ, с разделителями AND и OR. Разделитель, указанный в параметре &tvFiltersOrDelimiter представляет логическое условие OR и по нему условия группируются в первую очередь. Внутри каждой группы вы можете задать список значений, разделив их &tvFiltersAndDelimiter. Поиск значений может проводиться в каком-то конкретном ТВ, если он указан «myTV==value», или в любом «value». Пример вызова: &tvFilters=`filter2==one,filter1==bar%||filter1==foo`. Обратите внимание: фильтрация использует оператор LIKE и знак «%» является метасимволом. И еще: Поиск идёт по значениям, которые физически находятся в БД, то есть, сюда не подставляются значения по умолчанию из настроек ТВ.
&tvFiltersAndDelimiter «,» Разделитель для условий AND в параметре &tvFilters.
&tvFiltersOrDelimiter «||» Разделитель для условий OR в параметре &tvFilters.
&sortbyTV Дополнительное поле, по которому нужно сортировать результаты. Может быть указано напрямую в параметре &sortby
&sortdirTV Направление сортировки по дополнительному полю, указанному в &sortbyTV. Может быть указано напрямую в параметре &sortby
&sortbyTVType Тип сортировки по ТВ параметру.
Возможные варианты: string, integer, decimal и datetime. Если пусто, то ТВ будет отсортирован в зависимости от его типа: как текст, число или дата.
&checkPermissions Укажите, какие разрешения нужно проверять у пользователя при выводе объектов.
&disableConditions Отключает специфичные для класса modResource параметры выборки.
&fenomModifiers список сниппетов-модификаторов через запятую, для подключения в Fenom. Подробности в соответствующем разделе.

Параметры шаблонов

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

Название Описание
&tpl
Имя чанка для оформления ресурса. Если не указан, то содержимое полей ресурса будет распечатано на экран.
&tplFirst Имя чанка для первого ресурса в результатах.
&tplLast Имя чанка для последнего ресурса в результатах.
&tplOdd Имя чанка для каждого чётного ресурса (хоть «odd» значит «нечётный», работает для чётных ресурсов).
&tpl_N Имя чанка для N-го ресурса, например, &tpl_4=`tpl4th` установит шаблон для 4-го ресурса.
&tpl_nN Имя чанка для каждого N-го ресурса, например, &tpl_n4=`tplEvery4th` будет применено к каждому 4-му ресурсу.
&tplCondition Поле ресурса, из которого будет получено значение для выбора чанка по условию в
&conditionalTpls
.
&tplOperator Необязательный оператор для проведения сравнения поля ресурса в &tplCondition с массивом значений и чанков в &conditionalTpls.
&conditionalTpls JSON строка с массивом, у которого в ключах указано то, с чем будет сравниваться &tplCondition, а в значениях — чанки, которые будут использованы для вывода, если сравнение будет успешно. Оператор сравнения указывается в &tplOperator. Для операторов типа isempty можно использовать массив без ключей.
&outputSeparator Необязательная строка для разделения результатов работы.

Параметры результатов

Эти параметры дополнительно определяют, какие данные и каким способом будут выводиться.

Название По умолчанию Описание
&return chunks Определяет способ вывода результатов. См. ниже.
&fastMode 0 Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т. п.) будут вырезаны.
&nestedChunkPrefix pdotools_ Префикс для «быстрых плейсхолдеров», включаемых параметром &fastMode
&idx Вы можете указать стартовый номер итерации вывода результатов.
&totalVar total
Имя плейсхолдера для сохранения общего количества результатов.
&includeContent 0 Включаем поле «content» в выборку.
&includeTVs Список ТВ параметров для выборки, через запятую. Например: «action,time» дадут плейсхолдеры [[+action]] и [[+time]].
&includeTVList Псевдоним &includeTVs
&prepareTVs 1 Список ТВ параметров, с файлами из источников медиа, для которых нужно сгенерировать полные пути. Если установить в «1», будут подготовлены все ТВ, указанные в &includeTVs.
&processTVs Список ТВ параметров, которые нужно обработать и вывести согласно их настроек в менеджере системы. Если установить в «1», будут обработаны все ТВ, указанные в
&includeTVs
. Замедляет работу.
&tvPrefix tv. у pdoResources и пусто у других сниппетов Префикс для ТВ параметров.
&prepareSnippet 1 Указывает сниппет, который принимает данные перед выводом в чанк и может их менять или добавлять
&decodeJSON Разбирает поля типа JSON вместо вывода в виде строки
&scheme -1 Схема формирования url, передаётся в modX::makeUrl(), поэтому возможные варианты нужно смотреть здесь. Особый тип uri подставляет значение uri ресурса, без запуска функции.
&useWeblinkUrl Генерировать ссылку с учетом класса ресурса.
&toSeparatePlaceholders Если вы укажете слово в этом параметре, то ВСЕ результаты будут выставлены в разные плейсхолдеры, начинающиеся с этого слова и заканчивающиеся порядковым номером строки, от нуля. Например, указав в параметре «myPl», вы получите плейсхолдеры [[+myPl0]], [[+myPl1]] и т.д.
&additionalPlaceholders Устанавливает дополнительные плейсхолдеры
&cache_key Значение системной настройки cache_resource_key для ресурсов (по умолчанию resource) или default Ключ кеширования
&cache_handler Значение системной настройки cache_resource_handler или xPDOFileCache Обработчик кеша
&cacheTime Значение системной настройки cache_resource_expires или 0 (вечный) Время жизни кеша

Способы вызова чанков

Все чанки могут иметь один из следующих префиксов:

@INLINE или @CODE. В качестве шаблона будет использован код после этого префикса.

[[!pdoResources?
    &parents=`0`
    &tpl=`@INLINE <li>{{+pagetitle}}</li>`
]]

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

Поэтому для INLINE чанков предусмотрена замена [[+]] на {{+}} — такие теги MODX пропускает, а pdoTools при работае конвертирует их как нужно. Конечно, вы всё равно можете использовать теги MODX, если вам нужно, чтобы в чанк попала уже обработанная информация, например:

[[!pdoResources?
    &parents=`0`
    &tplFirst=`@INLINE Текущая страница: [[*pagetitle]]`
    &tpl=`@INLINE <p>{{+id}} - {{+pagetitle}}<p>`
]]

@FILE. Вместо чанка из базы данных используется содержимое файла. Путь до файла указывается в систеной настройке pdotools_elements_path. Имя файла должно быть с расширением .tpl или .html.

[[!pdoResources?
    &tpl=`@FILE fileBasedRow.tpl`
]]

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

[[!pdoResources?
    &tpl=`@TEMPLATE 10`
]]

@CHUNK. Аналогично простому указанию имени чанка, оставлено для совместимости со сторонними сниппетами.

[[!pdoResources?
    &tpl=`@CHUNK tpl.Resource.row`
]]
[[!pdoResources?
    &tpl=`tpl.Resource.row`
]]

Подробнее про возможности pdoParser можно прочитать в соответствующем разделе.

Возвращаемые значения

pdoTools умеет возвращать данные в разном виде, в зависимости от параметр &return. В основном это используют сами сниппеты для внутренних нужд, но вы можете указывать &return в pdoResources:

[[!pdoResources?
    &parents=`0`
    &return=`json`
]]
  • chunks — оформленные чанки, по умолчанию.
  • sql — подготовленный сырой SQL, полезно для отладки. Сам запрос не выполняется, только выводится на экран.
  • data — готовый массив данных. Из-за особенностей работы сниппетов MODX этот вариант имеет смысл использовать только при вызове pdoFetch::run() напрямую из своего сниппета, в противном случае вы получите только строку «Array».
  • ids — возвращает только идентификаторы документов, через запятую. Удобно для подстановки в качестве параметра другим сниппетам. Параметр &returnIds использует именно этот тип.
  • json — возврат массива данных JSON строкой.
  • serialize — возврат массива данных сериализованной строкой. Иногда, по непонятным причинам, может вызвать нехватку памяти. Лучше использовать json.

pdoMenu / Сниппеты / pdoTools / docs.modx.pro

Сниппет генерации меню. Может заменять Wayfinder, и позволяет более гибко указывать параметры.

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

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

Параметры

По умолчанию pdoMenu принимает общие параметры pdoTools и некоторые свои:

Название По умолчанию Описание
&parents Текущий ресурс Список родителей для поиска результатов, через запятую. Если поставить &parents=`0` — выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключаются из выборки.
&level 0 (не ограниченно) Уровень генерируемого меню.
&resources Список ресурсов для вывода в результатах, через запятую. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки.
&templates Список шаблонов для фильтрации результатов, через запятую. Если id шаблона начинается с дефиса, ресурсы с ним исключается из выборки.
&where Массив дополнительных параметров выборки, закодированный в JSON.
&displayStart 0 Включить показ начальных узлов меню. Полезно при указании более одного «parents».
&context Ограничение выборки по контексту ресурсов.
&showHidden 0 Показывать ресурсы, скрытые в меню.
&showUnpublished 0 Показывать неопубликованные ресурсы.
&previewUnpublished 0 Включить показ неопубликованных ресурсов, если у пользователя есть на это разрешение.
&hideSubMenus 0 Спрятать неактивные ветки меню.
&select Список полей для выборки, через запятую. Можно указывать JSON-строку с массивом, например &select=`{«modResource»:»id,pagetitle,content»}`
&sortby menuindex Любое поле ресурса для сортировки, включая ТВ-параметр, если он указан в параметре &includeTVs, например &sortby=`{«tvname»:»ASC»,»pagetitle»:»DESC»}`. Можно указывать JSON-строку с массивом нескольких полей. Для случайной сортировки укажите &sortby=`RAND()`
&sortdir ASC Направление сортировки: по убыванию или по возрастанию. Если оставить параметры &sortby и &sortdir пустыми, то сортировка будет идти по порядку ресурсов в &resources.
&limit 0 Ограничение количества результатов выборки.
&offset 0 Пропуск результатов от начала. Необходимо использовать вместе с явно указанным &limit
&checkPermissions Укажите, какие разрешения нужно проверять у пользователя при выводе ресурсов, например &checkPermissions=`list`.
&countChildren 0 Точный подсчет количества дочерних ресурсов каждой категории и вывод их в плейсхолдер [[+children]]. Делает дополнительные запросы в БД, поэтому по умолчанию отключен.
&toPlaceholder Если не пусто, сниппет сохранит все данные в плейсхолдер с этим именем вместо вывода на экран.
&plPrefix wf. Префикс для выставляемых плейсхолдеров.
&showLog 0 Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контекcте «mgr».
&fastMode 0 Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т.п.) будут вырезаны.
&cache 0 Кэширование результатов работы сниппета.
&cacheTime 3600 Время актуальности кэша, в секундах.
&scheme -1 Схема формирования url, передаётся в modX::makeUrl(), поэтому возможные варианты нужно смотреть здесь. Особый тип uri подставляет значение uri ресурса, без запуска функции.
&useWeblinkUrl 1 Генерировать ссылку с учетом класса ресурса.
&rowIdPrefix Префикс для выставления идентификатора в чанк.
&hereId id текущего ресурса для генерируемого меню. Нужно указывать только если скрипт сам его неверно определяет, например при выводе меню из чанка другого сниппета.
&includeTVs Список ТВ-параметров для выборки, через запятую. Например &includeTVs=`action,time` дадут плейсхолдеры [[+action]] и [[+time]].
&prepareTVs Список ТВ-параметров, с файлами из источников медиа, для которых нужно сгенерировать полные пути. Если установить &prepareTVs=`1`, будут подготовлены все ТВ, указанные в &includeTVs.
&processTVs Список ТВ-параметров, которые нужно обработать и вывести согласно их настроек в менеджере системы. Если установить &processTVs=`1`, будут обработаны все ТВ, указанные в &includeTVs. Замедляет работу.
&tvPrefix Префикс для ТВ-параметров.

Параметры шаблонов

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

Название Описание
&tplOuter Чанк оформления всего блока меню. По умолчанию: @INLINE <ul [[+classes]]>[[+wrapper]]</ul>
&tpl Чанк оформления пункта меню. Если не указан, то содержимое полей ресурса будет распечатано на экран. По умолчанию: @INLINE <li [[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>
&tplHere Чанк оформления текущего пункта меню.
&tplStart Чанк оформления корневого пункта, при условии, что включен &displayStart. По умолчанию: @INLINE <h3 [[+classes]]>[[+menutitle]]</h3>[[+wrapper]]
&tplParentRow Чанк оформления родителя с потомками, не подпадающего под условия &tplCategoryFolder. Например: @INLINE <li><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>
&tplParentRowHere Чанк оформления текущего документа, если он содержит потомков.
&tplParentRowActive Чанк оформления родителей с потомками в активной ветке меню.
&tplCategoryFolder Специальный чанк оформления категории. Категорией считается родитель с потомками, у которого указан пустой шаблон или rel="category" в поле link_attributes.
&tplInner Чанк оформления всего блока подпунктов меню. Если пуст — будет использовать &tplOuter. Например: @INLINE <ul>[[+wrapper]]</ul>
&tplInnerRow Чанк оформления подпункта меню. Например: @INLINE <li><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>
&tplInnerHere Чанк оформления активного подпункта меню.

Параметры CSS классов

Эти параметры задают значение плейсхолдеров [[+classnames]] и [[+classes]] для различных элементов меню. Плейсхолдер [[+classnames]] выводит только название класса без атрибута class=»», в отличие от плейсхолдера [[+classes]].

Название Описание
&firstClass Класс для первого пункта меню. По умолчанию: first
&lastClass Класс последнего пункта меню. По умолчанию: last
&hereClass Класс для активного пункта меню. По умолчанию: active
&parentClass Класс категории меню.
&rowClass Класс пункта меню.
&outerClass Класс обертки блока меню.
&innerClass Класс обертки блока подпунктов меню.
&levelClass Класс уровня меню. Например если укажите «level», то будет «level1», «level2» и т.д.
&selfClass Класс текущего ресурса в меню.
&webLinkClass Класс ресурса-ссылки.

Примеры

Обычный вывод меню из корня сайта в один уровень:

[[pdoMenu?
    &parents=`0`
    &level=`1`
]]

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

[[pdoMenu?
    &parents=`-10,-15`
    &level=`2`
    &checkPermissions=`load,list,view`
]]

Вывод меню сразу из двух родителей, с показом корневых точек:

[[pdoMenu?
    &parents=`10,15`
    &displayStart=`1`
]]

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

[[pdoMenu?
    &parents=`0`
    &level=`2`
    &tplInner=`@INLINE [[+wrapper]]`
    &tplParentRow=`@INLINE <li [[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a> ([[+children]])</li>[[+wrapper]]`
    &countChildren=`1`
]]

MODX Revolution — Базовый туториал.

MODX Революция Головна / Построю уборку

Официальный сайт MODX

http://modx.com/

Первичные материалы о создании сайтов на MODx

Параметры сниппетов

http://wiki.modxcms.com/index.php/Category:Фрагменты

Остальной дистрибутив можно скачать по адресу http://modx.com/download/evolution/

Последовательность создания сайта на MODx эволюция

  1. Создайте базу данных с тем же префиксом, который назначает хостер, чтобы не редактировать файл config.inc.php.
  2. Установить MODx. Зробити налаштування.
  3. Скопируйте шаблон на сайт в папку assets/templates.
  4. Скопируйте код шаблона index.html из шаблона «Минимальные шаблоны».
  5. Все посередине напишите путь

    .

  6. Написать пути к скриптам, картинкам, стилям (img, ссылка, scrypts). Например,
  7. Назначение шаблонов ссылок на сайте.
  8. Увидев спальни, со всех сторон часть смрада будет кусками. Кусочки появляются на косточках фигурных висков. Например, ((ГОЛОВА))
  9. Грязное меню сайта можно списать на окремый кусок. .
  10. Меню сайта Эта карта сайта отображается в виде фрагмента Wayfinder. Описание фрагмента Wayfinder.
  11. Список ресурсов для этого номера с описаниями, картинками, сообщениями… отображается вместе с сниппетом Ditto. Опишите и прикрепите фрагмент Ditto.
  12. Навигационный фонарь «Хлебные крошки» отображается во фрагменте «Хлебные крошки». Описание фрагмента хлебных крошек.
  13. Поиск по сайту осуществляется с помощью сниппета AjaxSearch. Описание сниппета AjaxSearch.
  14. Форма зв’азку- Сниппет eForm. Приклад складной формы зворотной звязки с использованием сниппета eForm.
  15. Плагин Phx назначения для перепроверки наличия изображения в ТВ-параметрах с указанием полномочий отца и внутр.
  16. Необходимо дополнительно прописать кильку стилей.
  17. После переноса сайта на хостинг:
  • Создать карту сайта для поке систем. Сервис для сайтов до 500 сторон
    http://www.xml-sitemaps.com
  • Файл обновления .htaccess .
  • Удалить записи из файла robots.txt . Для сайтов на MODx отредактируйте файл sample-robots.txt. Например:

    # Исключения modx по умолчанию
    User-agent: *# права индексации распространяются на любого робота
    Disallow: /assets/cache/
    Disallow: /assets/docs/
    Disallow: /assets/export/
    Disallow: / assets/import/
    Запретить: /assets/modules/
    Запретить: /assets/plugins/
    Запретить: /assets/snippets/
    Запретить: /assets/packages/
    Запретить: /assets/tvs/
    Запретить: /install/
    Disallow: /manager/
    # Для автообнаружения sitemaps.xml. Раскомментируйте, если он у вас есть.
    хост: веб-сайт
    Карта сайта: http://site/sitemap.xml

  • В Яндекс Мастери напомнить потыкать системе о файле sitemap.xml и robots.txt .
  • В Яндекс Метрика зарегистрировать лицензию, вставить на сайте.
  • Всем привет, друзья! Это основной урок решения CMF MODX Revo Насколько мы знаем из системы MODX, мы установим необходимые плагины и установим базовую структуру.

    Хлопок

    Запинити

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

    • Документация по pdoTools: docs.modx.pro/components/pdotools/

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

    Installable Advanced Версия MODx, при установке указано, что папка будет называться по имени администратора super .

    Обязательный плагин MODx

    Самые популярные и чаще всего злые дополнения для MODx:

    1. Ace — Редактор кода MODx;
    2. Коллекции — введение и управление коллекциями ресурсов;
    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
      • Транслитерация псевдонимов: русский;
      • Подходит для взбивания URL: So;
      • Suvory дружественный режим URL: So;
      • Изменить на дублирование URI во всех контекстах: Итак;
      • URL избранных материалов: So;
      • Не забудьте также изменить имя ht.access в .htaccess в корне сайта.
    2. Раздел: Панель керування
      • Показать описание в верхнем меню: Ni.
    3. Роздол: Веб-сайт
      • Сторинка помилования 404 «Документ не найден»: Идентификатор ресурса 404;
      • Для изоляции: Итак;
      • Имя сайта: Назовите свой проект.
    4. Розділ: Система и сервер
      • Заголовок Nadsilati X-Powered-By: Ni.
    5. Пространство имен: туз
      • Размер шрифта: 18px;
      • Мягкая таблица: Привет;
      • Розмир таблица: 2;
      • Тема редактора (необязательно): атмосфера, хаос, хром, облака, облака_полночь, кобальт, малиновый_редактор, рассвет, мечтатель, затмение, github, idle_fingers, katzenmilch, kr, kuroir, merbivore, merbivore_soft, mono_indrk, завтра_ночь, завтра_ночь_синий, завтра_ночь_яркий, завтра_ночь_восьмидесятые, сумерки, яркие_чернила, xcode ;
      • Кроме того, вы можете изменить тему на материал с помощью редактора Ace. Инструкция:

        MODx Ace Material Theme 1. Настройка системы > «ace» Пространство имен: Размер шрифта: 15px Высота области редактирования: 560 Невидимые символы: Tak Soft Tab: N Размер вкладки: 2 Тема редактора: Завтра_ночь 2. Файлы: super > default > css > index.css: (Добавить в css) !важно) .ace_gutter(color:#666E79!важно) .ace_active-line,.ace_gutter-active-line(цвет фона: #2A2F38!важно) . ace_scroller,.ace_gutter (цвет фона: #272B33!важно) . ace_meta.ace_tag(цвет:#A6B2C0!важно) .ace_meta.ace_tag.ace_tag-name(цвет:#DF6A73!важно) .ace_entity.ace_other.ace_attribute-name(цвет:#D2945D!важно) !важно) 3. Очистить кэш через меню.

    Создание базовых ресурсов

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

    На прошлых уроках мы установили и исправили modx, а также установили пакеты, которые будут необходимы для создания сайта. Сегодняшний урок посвящен переносу отличного HTML/CSS/JS в дизайн MODX Revo. Где взять дизайн, я писал в статье: Шаблоны MODX — что это такое, что это такое? Для своего сайта я выбрал готовый платный адаптивный бутстрап шаблон на theforest за 17$ под названием Brightbox (кликните по названию, чтобы просмотреть демонстрацию йоги и описание). Обыграть можно абсолютно все, все равно без каких-либо затрат — так вы понимаете весь принцип растяжки все быстрее и быстрее.

    HTML-структура темы

    Практичная тема скина может иметь html, css, js и файлы изображений + иметь больше файлов php- Обробник формы.

    На мой взгляд, в папке assets лежат css и js файлы (в отдельных директориях), в папке images — картинки и красные файлы (можно и не красные — все хранится в установленном за замком браузере ) — это html-файлы.

    Портирование шаблона на Modx

    Самый простой способ — просто залить все файлы с папками (кремовый html) в корень сайта. Але, я пойду по складной тропе. Поскольку у меня нет файлов modx и каталогов ресурсов, я буду загружать ресурсы (подпапки css и js) в корень сайта и изображения в корень.

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

    Редактирование базового шаблона

    В дереве языков перейдите на вкладку «Элементы» и откройте шаблон початка (можно просто нажать ЛКМ или ПКМ и выбрать редактирование).

    Можем посмотреть и заменить на код из index.html (в корень сайта не клали).

    HTML файл можно открыть с помощью отличного блокнота, а еще лучше написать специальный редактор например

    Перейдем на главную страницу сайта.

    Основная сторона при этом выглядит криво.

    Случилось тому, кто поменял пути к скриптам и css.

    Исправление путей

    Так сразу выглядят пути.

    До речи троха, тема замечательная, озвучьте путь через косую черту /, и \, исправьте.

    Если вы уже установили пакет ace, вы можете легко и просто найти замену, для чего можно нажать на код и далее нажать на клавиши Ctrl+H (работает в Linux и windows), в верхнее поле ввести \, а внизу / я нажимаю все.

    Упаковка чего угодно, от целых сайтов до одного элемента

    Teleport — это скриптовый инструмент командной строки для MODX Revolution. С Revo 2.4 он действительно становится мощнее. Его можно использовать для создания транспортных пакетов, но его также можно использовать практически для любых задач управления. Пример, приведенный в GitHub README, — это создание пользователей.

    Мы будем немного менее амбициозны и просто создадим транспортный пакет для шаблона, его поддержку CSS, JS, файлы шрифтов и изображений, а также один ресурс для его использования. И мы начнем с предположения, что у вас уже есть установка MODX с рабочим шаблоном, который вы хотите упаковать.

    Я работаю на локальном хосте Mac с установленным веб-стеком MAMP. Все, что вам нужно, это терминал командной строки и возможность запускать PHP из командной строки. В моем случае мне просто нужно было добавить одну строку в мой файл .profile, чтобы я мог использовать простой «php» в командной строке —

     
     псевдоним php="/Applications/MAMP/bin/php/php5.6.10/ bin/php" 

    Настройка

    Первым делом я создал необходимую файловую структуру для Телепорта. В моем домашнем каталоге я создал новый каталог «телепорт» и поместил в него каталоги «профиль», «tpl» и «рабочее пространство».

    Как видите, моим следующим шагом было загрузить файл teleport.phar с github. Ссылка для скачивания находится в разделе «Установка» файла README. Обязательно получите его там, чтобы получить последнюю версию. Теперь вы можете запустить Teleport со своего терминала.

    Профили

    Теперь вы готовы начать использовать Teleport. А теперь вам нужно создать профиль для вашего проекта. Это файл .json, который идет… подождите… в директорию профиля! По сути, он сообщает Teleport, где находится ваша установка MODX.

    К счастью, нам не нужно самим писать этот файл .json, Teleport создаст его за нас. Просто дайте ему имя проекта и путь к ядру вашей установки MODX, очень похоже на файлы config.core.php.

     php teleport.phar --action=Profile --name="SmallBusiness" --code=smallbusiness --core_path=/Applications/MAMP/htdocs/templates.modx/core/ --config_key=config 

     { "name":"SmallBusiness","code":"smallbusiness","properties":{"modx":{"core_path":"\/Applications\/MAMP\/htdocs\/templates. modx\/core\/ ","config_key":"config","context_mgr_path":"\/Приложения\/MAMP\/htdocs\/templates.modx\/manager\/","context_mgr_url":"\/templates.modx\/manager\ /","context_connectors_path":"\/Приложения\/MAMP\/htdocs\/templates.modx\/connectors\/","context_connectors_url":"\/templates.modx\/connectors\/","context_web_path": "\/Приложения\/MAMP\/htdocs\/templates.modx\/","context_web_url":"\/templates.modx\/"}}} ​​

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

    Tpls

    Что ж, легкая часть позади… теперь самое неприятное. Вам нужен еще один файл .json, а точнее файл .tpl.json, чтобы точно указать Teleport, что вы хотите, чтобы он делал. В настоящее время просто нет возможности самостоятельно погрузиться в JSON. Однако можно обмануть и скопировать разделы, похожие на то, что вы хотите, из tpls в репозитории GitHub.

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

     {
    {
    "name": "smallbusiness",
    "description": "Шаблон Bootstrap SmallBusiness",
    "автор": "sottwell",
    "атрибуты": {
    "changelog": {
    "sourceType": "fileContent",
    "source": "{+properties.modx.core_path}components/test/docs/changelog.txt"
    },
    "readme": {
    "sourceType": "fileContent",
    "source": "{+properties.modx.core_path}components/test/docs/readme.txt"
    },
    "license": {
    "sourceType": "fileContent",
    "source": "{+properties.modx.core_path}components/test/docs/license.txt"
    },
    "requires": {
    "pdoTools": "~2.1.9"
    }
    },
    "автомобили": [
    {
    "класс_транспорта":"xPDOObjectVehicle",
    "объект":{
    "класс":"modTemplate ",
    "критерии":["id = 2"],
    "граф":{
    "Категория":[],
    "PropertySets":{
    "PropertySet": []
    }
    },
    "package":"modx"
    },
    "attributes":{
    "preserve_keys":false,
    "update_object": true,
    "unique_key":"templatename",
    "related_objects":true,
    "related_object_attributes":{
    "Category":{
    "preserve_keys":false,
    "update_object":true,
    "unique_key":"category"
    },
    "PropertySets":{
    "preserve_keys":true,
    "update_object":true,
    "unique_key":["element", "element_class", "property_set"],
    "related_objects":true,
    "related_object_attributes":{
    "PropertySet":{
    "preserve_keys": false,
    "update_object":false,
    "unique_key":"name"
    }
    }
    }
    }
    }
    },
    {
    "vehicle_class": "xPDOObjectVehicle",
    "object": {
    "class": "modResource",
    "criteria": [
    "id = 22"
    ] ,
    "graph": {
    "Шаблон": [
    ],
    "ContentT ype": [
    ],
    "TemplateVarResources": {
    "TemplateVar": [
    ]
    },
    "ResourceGroupResources": {
    "ResourceGroup": [
    ]
    },
    "ContextResources": {
    "Context": [
    ]
    }
    },
    "package": "modx"
    },
    "attributes": {
    "preserve_keys": false,
    "update_object": true,
    "unique_key": [
    "context_key",
    "uri"
    ],
    "related_objects": true,
    "related_object_attributes": {
    "Template": {
    "preserve_keys": false,
    "update_object": true,
    "unique_key": "templatename"
    },
    "ContentType": {
    "preserve_keys": false,
    "update_object": true,
    "unique_key": "name"< br>},
    "TemplateVarResources": {
    "preserve_keys": false,
    "update_object": true,
    "unique_key": [
    "tmplvarid",
    "contentid "
    ],
    "related_objects": true,
    "related_object_attributes": {
    "TemplateVar": {
    "preserve_keys": false,
    "update_object": true,< br>"unique_key": "name"
    }
    }
    },
    "ResourceGroupResources": {
    "preserve_keys": false,
    "update _object": true,
    "unique_key": [
    "document_group",
    "document"
    ],
    "related_objects": true,
    "related_object_attributes": {
    "ResourceGroup": {
    "preserve_keys": false,
    "update_object": true,
    "unique_key": "name"
    }
    }
    },
    "ContextResources": {
    "preserve_keys": true,
    "update_object": true,
    "related_objects": true,
    "related_object_attributes": {
    "Context": {
    "preserve_keys": true,
    "update_object": false
    }
    }
    }
    }
    }
    },
    {
    "класс_транспортного средства" :"xPDOFileVehicle",
    "object":{
    "source":"{+properties. modx.context_web_path}активы/тема",
    "target":"return MODX_ASSETS_PATH;"
    } ,
    "атрибуты":{
    "класс_транспортного средства":"xPDOFileVehicle"
    }
    }
    ]
    }

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

    Атрибуты

    Файл начинается с названия проекта, описания и автора. Затем он попадает в некоторые атрибуты. Я сказал ему добавить три основных текстовых файла, changelog.txt, readme.txt и license.txt, и сказал, где их найти.

     {...
    "attributes": {
    "changelog": {
    "sourceType": "fileContent",
    "source": "{+properties.modx.core_path}components /test/docs/changelog.txt"
    },
    "readme": {
    "sourceType": "fileContent",
    "source": "{+properties.modx.core_path}components /test/docs/readme.txt"
    },
    "license": {
    "sourceType": "fileContent",
    "source": "{+properties. modx.core_path}components /test/docs/license.txt"
    },
    ...

    Новая функция Teleport с Revo 2.4 — зависимости. Шаблону нужен фрагмент для создания меню. В этом случае я использовал pdoMenu, часть пакета pdoTools. Поэтому я указал зависимость от pdoTools с упоминанием последней версии на данный момент.

     ...
    "requires": {
    "pdoTools": "~2.1.9"
    }
    ...

    Транспорт

    Затем садимся в транспорт. Они в основном сообщают Teleport, какие объекты вы хотите добавить в пакет. Единственными изменениями, которые я сделал в шаблоне и транспортных средствах ресурсов, которые я скопировал, было поле «критерии», где я указал идентификаторы шаблона и ресурса, который я хотел.

     ...
    {
    "класс_транспортного средства":"xPDOObjectVehicle",
    "объект":{
    "класс":"modTemplate",
    "критерии":["id = 2"],
    ...
    {
    "класс_транспортного средства": "xPDOObjectVehicle",
    "объект": {
    "класс": "modResource",
    "критерии" : ["id = 22"],
    ...

    Файловый транспорт намного проще; все, что ему нужно знать, это откуда взять файлы и куда их установить. Я сказал, что мне нужен каталог assets/theme, и он был установлен обратно в каталог assets.

    И Извлечение

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

     php teleport.phar --action=Extract --profile=profile/bootstrap_small_business.profile.json --tpl=tpl/bootstrap_small_business.tpl.json --name=BootstrapSmallBusiness --version=1.0.0 --release=pl 

    Аргумент имени устанавливает имя пакета вместе с версией и выпуском. По умолчанию код профиля и имя tpl объединяются с помощью _ для формирования имени пакета.

    ZIP-файл пакета будет помещен в каталог «рабочая область». Это обычный пакет transport.zip, который можно установить в установщике MODX Manager, как и любой другой пакет.

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

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