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

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

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

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

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

НазваниеПо умолчаниюОписание
&classmodResourceКласс получаемого объекта
&parentsТекущий ресурсСписок родителей, через запятую, для поиска результатов. Если поставить 0 — выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключаются из выборки.
&depth10Глубина поиска дочерних ресурсов от родителя.
&resourcesСписок ресурсов, через запятую, для вывода в результатах. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки.
&templatesСписок шаблонов, через запятую, для фильтрации результатов. Если id шаблона начинается с дефиса, ресурсы с ним исключается из выборки.
&contextОграничение выборки по контексту ресурсов.
&whereМассив дополнительных параметров выборки, закодированный в JSON.
&showHidden0Показывать ресурсы, скрытые в меню.
&showUnpublished0Показывать неопубликованные ресурсы.
&showDeleted0Показывать удалённые ресурсы.
&hideContainers0Отключает вывод контейнеров, то есть, ресурсов с «isfolder = 1».
&hideUnsearchableОтключает вывод спрятанных от поиска ресурсов.
&selectСписок полей для выборки, через запятую. Можно указывать JSON строку с массивом, например
{«modResource»:»id,pagetitle,content»}
.
&leftJoinАналог SQL оператора left join
&rightJoinАналог SQL оператора right join
&innerJoinАналог SQL оператора inner join
&joinSequenceinnerJoin,leftJoin,rightJoinПорядок подключения таблиц, через зяпятую.
&sortbypagetitleЛюбое поле ресурса для сортировки, включая ТВ параметр, если он указан в параметре &includeTVs. Можно указывать JSON строку с массивом нескольких полей. Для случайно сортировки укажите «RAND()»
&sortdirASCНаправление сортировки: по убыванию или возрастанию.
&groupbyУказывает поле, по которому группируются результаты
&havingИспользуется, чтобы ограничить выборку сгруппированных строк с помощью условия, относящегося ко всей группе, заданной в &groupby
&limit0Ограничение количества результатов выборки. Можно использовать «0».
&offset0Пропуск результатов от начала.
&first1Номер первой итерации вывода результатов.
&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.
&conditionalTplsJSON строка с массивом, у которого в ключах указано то, с чем будет сравниваться &tplCondition, а в значениях — чанки, которые будут использованы для вывода, если сравнение будет успешно. Оператор сравнения указывается в &tplOperator. Для операторов типа isempty можно использовать массив без ключей.
&outputSeparatorНеобязательная строка для разделения результатов работы.

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

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

НазваниеПо умолчаниюОписание
&returnchunksОпределяет способ вывода результатов. См. ниже.
&fastMode0Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т. п.) будут вырезаны.
&nestedChunkPrefixpdotools_Префикс для «быстрых плейсхолдеров», включаемых параметром &fastMode
&idxВы можете указать стартовый номер итерации вывода результатов.
&totalVartotal
Имя плейсхолдера для сохранения общего количества результатов.
&includeContent0Включаем поле «content» в выборку.
&includeTVsСписок ТВ параметров для выборки, через запятую. Например: «action,time» дадут плейсхолдеры [[+action]] и [[+time]].
&includeTVListПсевдоним &includeTVs
&prepareTVs1Список ТВ параметров, с файлами из источников медиа, для которых нужно сгенерировать полные пути. Если установить в «1», будут подготовлены все ТВ, указанные в &includeTVs.
&processTVsСписок ТВ параметров, которые нужно обработать и вывести согласно их настроек в менеджере системы. Если установить в «1», будут обработаны все ТВ, указанные в
&includeTVs
. Замедляет работу.
&tvPrefixtv. у pdoResources и пусто у других сниппетовПрефикс для ТВ параметров.
&prepareSnippet1Указывает сниппет, который принимает данные перед выводом в чанк и может их менять или добавлять
&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 родителя начинается с дефиса, он и его потомки исключаются из выборки.
&level0 (не ограниченно)Уровень генерируемого меню.
&resourcesСписок ресурсов для вывода в результатах, через запятую. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки.
&templatesСписок шаблонов для фильтрации результатов, через запятую. Если id шаблона начинается с дефиса, ресурсы с ним исключается из выборки.
&whereМассив дополнительных параметров выборки, закодированный в JSON.
&displayStart0Включить показ начальных узлов меню. Полезно при указании более одного «parents».
&contextОграничение выборки по контексту ресурсов.
&showHidden0Показывать ресурсы, скрытые в меню.
&showUnpublished0Показывать неопубликованные ресурсы.
&previewUnpublished0Включить показ неопубликованных ресурсов, если у пользователя есть на это разрешение.
&hideSubMenus0Спрятать неактивные ветки меню.
&selectСписок полей для выборки, через запятую. Можно указывать JSON-строку с массивом, например &select=`{«modResource»:»id,pagetitle,content»}`
&sortbymenuindexЛюбое поле ресурса для сортировки, включая ТВ-параметр, если он указан в параметре &includeTVs, например &sortby=`{«tvname»:»ASC»,»pagetitle»:»DESC»}`. Можно указывать JSON-строку с массивом нескольких полей. Для случайной сортировки укажите &sortby=`RAND()`
&sortdirASCНаправление сортировки: по убыванию или по возрастанию. Если оставить параметры &sortby и &sortdir пустыми, то сортировка будет идти по порядку ресурсов в &resources.
&limit0Ограничение количества результатов выборки.
&offset0Пропуск результатов от начала. Необходимо использовать вместе с явно указанным &limit
&checkPermissionsУкажите, какие разрешения нужно проверять у пользователя при выводе ресурсов, например &checkPermissions=`list`.
&countChildren0Точный подсчет количества дочерних ресурсов каждой категории и вывод их в плейсхолдер [[+children]]. Делает дополнительные запросы в БД, поэтому по умолчанию отключен.
&toPlaceholderЕсли не пусто, сниппет сохранит все данные в плейсхолдер с этим именем вместо вывода на экран.
&plPrefixwf.Префикс для выставляемых плейсхолдеров.
&showLog0Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контекcте «mgr».
&fastMode0Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т.п.) будут вырезаны.
&cache0Кэширование результатов работы сниппета.
&cacheTime3600Время актуальности кэша, в секундах.
&scheme-1Схема формирования url, передаётся в modX::makeUrl(), поэтому возможные варианты нужно смотреть здесь. Особый тип uri подставляет значение uri ресурса, без запуска функции.
&useWeblinkUrl1Генерировать ссылку с учетом класса ресурса.
&rowIdPrefixПрефикс для выставления идентификатора в чанк.
&hereIdid текущего ресурса для генерируемого меню. Нужно указывать только если скрипт сам его неверно определяет, например при выводе меню из чанка другого сниппета.
&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 не будет опубликован. Обязательные поля помечены *