Alpha 3 и план релизов / Русскоязычное сообщество MODX
Это не дословный перевод, а скорее компиляция информации аж из целых трех заметок, вышедших на днях на англоязычных ресурсах. Хотя многие, кто активно участвует в жизни сообщества, об этом и так уже знают. Тем не менее, давайте пройдемся еще раз по новостям.
Сразу дам все ссылки на источники, если кто желает читать в оригинале на английском:
- MODX 3 Alpha3 Release and Release Schedule
- New MODX3 release schedule announced & challenging agencies
- Agencies: take the challenge!
- Ночная сборка MODX 3 Alpha 3
График выпуска версий MODX 3
Ни для кого не секрет, что разработка MODX 3 заняла намного больше времени, чем можно было бы представить. Проведя последние несколько месяцев в работе над наиболее важными задачами, мы, команда разработчиков MODX, подошли к этапу, на котором основное внимание стоит уделить стабилизации и выпуску этого проклятого релиза. 🙂
Команда сосредоточилась на том, чтобы сохранить как можно большую обратную совместимость, перед тем, как перейти к бета-версиям. Мы ценим любой вклад, включая тестирование, все issues и pull requests, которые мы получили во время второго альфа-цикла.
Имея в виду выше сказанное, на прошлой неделе был предложен и одобрен всеми ключевыми участниками, участвующими в процессе, следующий график. Вот ключевые даты:
- 3.0.0-alpha3 – 27 октября
- вы сейчас здесь
- Feature Freeze – 4 ноября
- 3.0.0-beta1 – 8 ноября
- 3.0.0-beta2 – 22 ноября
- 3.0.0-rc1 – 6 января 2022
- 3.0.0-rc2 – 17 января
- 3.0.0-pl – 31 января
При необходимости, 31 января будет выпущен дополнительный релиз-кандидат, а окончательная версия 3.0.0-pl будет отложена на две недели (до 14 февраля).
Если вы не знакомы с именованием релизов, альфа-версия считается версией для разработки новых функций и подходит в основном только для тестирования. Бета-версия – это версия, предназначенная для других разработчиков, которые должны убедиться, что их дополнения готовы к работе с новой версией. Релиз-кандидат (rc) предназначен для более широкой аудитории и ориентирован исключительно на обеспечение стабильности, а релиз pl («уровень исправлений») является стабильным и готовым к эксплуатации.
4 ноября (или примерно) мы начнем заморозку кода, после которого никакие новые функции или улучшения не будут приняты в версию 3.0. Заманчиво конечно продолжать добавлять улучшения, особенно когда релиз находится в разработке так долго, но в какой-то момент мы все должны провести черту и отложить новые функции и улучшения до следующей версии, в данном случае до версии 3.1.
Да, но ведь было уже….
Вы правы, ранее уже обещали выпустить MODX 3 и даже даты называли, но не сдержали обещания, так что некоторый скептицизм вполне закономерен.
На этот раз ситуация отличается тем, что мы, наконец, достигли точки, в которой нет каких-то серьёзных блокирующих изменений или большого рефакторинга, которые нужно завершить. Мы сейчас думаем не столько о будущем развитии, как просто о том, чтобы получить достаточно помощи от сообщества, чтобы к концу января этот выпуск был признан стабильным.
Конечно, список идей и желаний, особенно с теми дикими обещаниями, которые давались в прошлом, огромен. Но на данный момент MODX 3 считается «достаточно хорошим», поэтому мы можем сместить фокус разработки на стабильность и совместимость. После выхода версии 3.0 мы можем перезарядиться и начать искать более амбициозные цели и реализовывать все то, что было когда-то запланировано.
Мы взялись работать в довольно жестких временных рамках, особенно в отношении релизов MODX, и мы полагаемся на активную помощь сообщества.
Нам нужна ваша помощь с тестированием
Как и в случае с любой альфа- или бета-версией, мы надеемся, что участники сообщества опробуют последнюю версию и убедятся, что всё работает должным образом. Если вам интересно, как помочь, есть более подробная статья о том, как тестировать код MODX.
Когда можно будет запускать в production?
Очевидно, что обновлять боевой сайт до альфа-версии или ночной сборки – чистой воды авантюризм.
Мы рекомендуем и даже настаиваем использовать альфа- и бета-версии только в изолированных тестовых окружениях или в промежуточных окружениях (stage), а новые проекты начинать уже с версий RC, ближащая из которых должна быть доступна в январе.
После выпуска 3.0.0-pl рекомендуется сначала обновить существующие сайты в тестовом окружении. Особенно те, которые содержат много собственных функций или специфический код, всё из-за критических изменений в версии 3.0.
Вызов для агентств от Марка
Если вы отвечаете за команду, которая создает сайты с помощью MODX, у modmore есть вызов для вас – активизироваться и принять участие в финальном спринте.
Порекомендуйте своей команде выделить хотя бы один день в неделю для работы над MODX 3, а не над клиентскими проектами. Выделите время и начните с клонирования одного или двух клиентских сайтов в тестовой среде, чтобы протестировать новые сборки MODX 3, а после сообщить о проблемах и неработающих дополнениях. А при возможности, потратить немного времени на внесение исправлений в ядро и дополнения. Как только технические проблемы и совместимость будут решены, привлеките ваших редакторов или маркетологов для тестов, либо попробуйте протестировать более сложный сайт.
Понятно, что клиентские проекты важны и дают выручку, но как можно более плавный запуск MODX 3 также принесет большую пользу вашим клиентам. Клиентам определенно понравится и новый дизайн и новые функции. Тем не менее MODX 3 действительно нуждается в дополнительном тестировании и чем раньше, тем лучше.
Для агентств, которые решат эту задачу в течение как минимум 6 недель, условно считая с сегодняшнего дня и до выпуска 3.0.0-pl, modmore предлагает единовременную 30% скидку на дополнения или 3 бесплатных месяца подписки на SiteDash.
Задача довольно проста:
- Дайте хотя бы одному члену команды четыре часа рабочего времени в неделю, посвященных MODX 3. Вот прям в календаре выделите слот, например, каждую пятницу после обеда.
- Продолжайте в том же духе в течение как минимум 6 недель – это не обязательно должно быть 6 недель подряд, но для того, чтобы претендовать на награды, нужно доказать участие по крайней мере в шесть недель между сегодняшним днем и выпуском 3. 0.0-pl.
- Получите единовременную скидку 30% на любую покупку лицензии или 3 бесплатных месяца подписки SiteDash в течение двух месяцев после выпуска 3.0.0-pl
Чтобы запросить скидку, мы просим вас продемонстрировать, что вы справились с этой задачей. Составьте простой список дат, в которые ваша команда провела четыре часа рабочего времени на MODX 3 и включите соответствующие ссылки на issues, pull requests или краткое описание того, что было сделано или протестировано в этот день.
Напишите на почту в течение 2 месяцев после выпуска MODX 3.0.0-pl, чтобы запросить скидку или подписку на SiteDash. Единственное ограничение скидки – это то, что она предназначена для разовой покупки лицензий дополнений и должна быть использована в течение года; нет никаких ограничений на то, какие лицензии и сколько.
Если вы фрилансер или хотите решить эту задачу в свободное время, вы, конечно, также можете принять участие и получить вознаграждение для себя. 🙂
Мы также рекомендуем (но не требуем), чтобы вы публично заявляли о том, что принимаете участие в испытании. Напишите об этом в Твиттере, прокомментируйте в сообществе или поделитесь им в блоге своей компании или профиле LinkedIn, в зависимости от того, что вам больше подходит. Мы будем следить за вашим прогрессом и напоминать вам, если покажется, что вы не успеваете. Но что более важно, ваше обещание может убедить других присоединиться и это повысит уровень тестирования, которое очень необходимо для MODX 3.
Если вы с пониманием относитесь к этой задаче, но у вас действительно нет свободного времени для компании, просто подумайте о том, чтобы заплатить кому-нибудь еще, чтобы он отработал 4 часа от вашего имени. По сравнению с общей заработной платой агентства, добавление 4 часов в неделю — относительно небольшое вложение, но влияние на MODX 3 будет огромным.
В сообществе есть отличные независимые разработчики, которые были бы рады потратить больше времени на работу над MODX, если бы представилась такая возможность (если это вы, дайте о себе знать, чтобы агентства могли вас найти), Так что это отличный способ по-прежнему сделать значимое влияние на MODX 3, даже если у вас нет времени для работы.
Наконец, все пожертвования, которые мы получим до выпуска 3.0.0-pl, также будут направлены на развитие MODX 3. Мы бы предпочли, чтобы другие люди так же получили возможность поучаствовать в MODX, но мы с радостью добавим дополнительное время к 8-12 часам в неделю, уже указанным в нашем календаре (Марк 4-8 часов, Айзек и Мюррей по 2 часа каждый) по ставке 36 евро в час – 60% от стандартной почасовой ставки. Если мы получим больше пожертвований, чем мы физически можем потянуть, мы предложим вознаграждения за решение конкретных проблем и/или X часов в неделю другим разработчикам.
Что происходит с MODX 3 / Русскоязычное сообщество MODX
Регулярно поступают вопросы «а когда выйдет MODX3», «а что с ним происходит» и т.п. Поэтому решил написать небольшую заметку, чтобы потом на неё ссылаться.
MODX3 почти готов. Всё, что было написано в изначальном плане разработки (и даже сильно больше того) — сделано.
Но есть одна небольшая загвоздка: в текущей версии MODX3 вся модель самой системы — от версии 2.
Сгенерировать модель для дополнений, например miniShop2, чтобы оно работало в MODX3 можно только на MODX2.
Потому что xPDO3 в составе MODX3 генерирует модель с namespaces, которая не работает со старой моделью ядра.
Поэтому текущая задача состоит в том, чтобы:
- Перевести само ядро на модель нового формата. Потому что сейчас сам MODX3 для себя модель генерирует новой версии, а работать с ней не может
- Перевести все сложные дополнения на эту новую модель, чтобы они могли собираться на xPDO3, на котором работает MODX3
Это фундаментальное изменение, которое меняет работу всей системы. Конечно, можно понаделать переходников между старыми дополнениями и новой моделью (в текущей сборке так и сделано) — но это временное костыльное решение. Которое, на мой взгляд, неприемлемо в новой мажорной версии MODX,
Соответственно, я всё и переписал как положено. И даже так, что простые дополнения спокойно встают и работают, а сложные можно обновить для MODX3 за день-два. Этот код даже успешно проходил тесты, которые тоже пришлось немного обновить.
Возможно я увлёкся, и не разбил этот огромный PR на сотню мелких, что делает его ревью очень сложным. Но при таком переписывании трудно что-то разбивать, потому что изменение в одном месте ломает работу, например, всех процессоров. А починка процессоров тянет за собой изменение и ExtJS админки.
В итоге — огромный pull request со 100 000 строк изменений, с namespaces и автозагрузкой классов, где не нужно делать file_exists при вызове классов. И я не ожидал, что его примут, я надеялся посмотреть, как забегает руководство MODX, которое ранее заявляло, что такая переделка практически невозможна.
Но реакция была несколько неожиданной. Типа, «что-то сильно дофига изменений, нам такое не надо, у нас MODXCloud от этого сломается и вообще». С тех пор (а все обсуждения закончились в августе 2018) мы и стоим на месте.
И вот недавно вышел долгожданный MODX 2.7 с огромным количеством изменений, и его уже влили в ветку 3.х, так что теперь мой PR уже технически невозможно принять — его нужно делать заново. А желающих пока не видно.
Еще раз, если кто не понял. В текущей версии MODX3 не генерируется модель ни для его ядра, ни для любых дополнений. Точнее, генерируется, но он сам с ней работать не может.
Когда вы тестируете текущую сборку MODX3, и установку дополнений, сделанных для MODX2, и радуетесь, если всё завелось — это не имеет значения. Потому что на данный момент, обновления этих дополнений для MODX3 нужно собирать на MODX2.
При этом, есть сообщения о том, что это можно сделать как-то лучше и элегантнее, чем сделал я, но никаких подтверждений в коде и PR нет.
В общем, всё и встало. Низы не могут, верхи не хотят — Revolution подтверждает своё название.
Самое забавное, что если раньше был deadline и, типа, поэтому надо было спешить и не раздувать количество изменений, то теперь очевидно, что ни в июне, не вообще в 2018 году MODX3 не вышел.
Так в чём проблема тогда его отрефакторить и выпустить для тестов, чтобы все могли подготовить обновления дополнений? Сломать обратную совместимость, сделать всё как положено в 2019 году?
Весь затык ведь в уже интегрированном xPDO3, который встроен в MODX3 несколько лет назад. Эта работа была начата, но не окончена! И при попытке её закончить, мне говорят о «слишком больших изменениях, которые сломают обратную совместимость». И это в новой мажорной версии, которая по определению может ломать что угодно!
Компания MODX LLC, которая владеет MODX, пока не делает никаких заявлений. На Github идут приготовления патч версии 2.7.1 и правки внешнего вида MODX3. С ядром и моделью, насколько я вижу, никто не работает. Версия 3.x до сих пор не стала в репозитории «по умолчанию».
Пожалуйста, не спрашивайте, что нужно делать и чем помочь. Ничего не нужно делать, и ничем здесь не помочь. Пока самый главный по коду в MODX LLC не решит в каком направлении идти, и насколько можно ломать обратную совместимость с версией 2.
Это вся информация о текущем состоянии MODX3, которая у меня есть. Так что, запасаемся терпением и ждём новостей. И не планируем новые проекты делать на MODX3 в ближайшем времени, конечно.
Создание сайта на MODX Revolution
- История
-
- История версий
- Установка для Revolution
- Параметры общего назначения
- Параметры имени класса CSS
- Параметры включения кода(Code-Embedding)
Cниппет Wayfinder сканирует заданную область дерева документов MODx, находит все документы по заданным критериям (определённым в параметрах), и выводит отформатированный список этих документов. Форматирование выводимых данных выполняется при помощи шаблона, и может содержать любые комбинации HTML, CSS и JavaScript, что обеспечивает большую степень гибкости.
Главная задача Wayfinder — это создание меню навигации, которое будет автоматически обновляться при изменении дерева документов, но он также с успехом может использоваться для других целей.
Поскольку вы можете вызывать Wayfinder на одной странице несколько раз, и каждый вызов может указывать на различные уровни дерева документов, вы можете создать множество меню навигации или списков документов на одной странице. В качестве примера вы можете сделать меню навигации в верхней части страницы, затем сбоку сделать дополительные меню для продуктов, сервисов, команд, и т.д., относящиеся к различным разделам дерева докуметов.
Пожалуйста обратите внимание, что с момента выхода Revolution есть два типа снипетов Wayfinder, — для Evolution и Revolution. Вообще говоря, функционально обе версии идентичны, как и их параметры. В Revolution сниппет вызывается как : [[!Wayfinder? &…]] , а в Evolution как [!Wayfinder? &…!].
Вы можете обсудить Wayfinder на . Дополнительную документацию Wayfinder 2. 0 можно найти .
История
Wayfinder был полностью переработан из первоначального варианта DropMenu, чтобы сделать более простым создание любого необходимого меню с использованием чанков и шаблонов вывода. При использовании шаблонов для гибкого вывода меню, многие параметры, такие как таблицы, маркированный и не маркированный списки, больше не нужны.
Версия | Дата выпуска | MODx версия | Заметки |
---|---|---|---|
0.9 beta 1/2/3 | Aug/Sept 2006 | 0.9.2.1 | Первый выпуск |
1.0 | Oct 23, 2006 | 0.9.2.1 | |
1.0.1 | Nov 07, 2006 | 0.9.2.1 — 0.9.5 | |
2. 0 | Feb 27, 2007 | 0.9.5 + | текущий выпуск для Evolution |
2.1.1 beta 1 | May 21, 2009 | 2.0.0-beta 1 | |
2.1.1 beta 2 | Oct 20, 2009 | 2.0.0-beta 4 | |
2.1.1 beta 4 | Nov 05, 2009 | 2.0.0-beta 5 + | |
2.3.1 | May 18, 2011 | 2.0+ | |
2.3.2 | Sept 20, 2011 | 2.0+ | |
2.3.3 | Oct 31, 2011 | 2. 0+ | текущий выпуск для Revolution |
Установка для Revolution
В MODx Revolution, Wayfinder может быть загружен из меню управления пакетами в панели управления. Перейдите в меню «Система -> управление пакетами», нажмите «Загрузить дополнение» и загрузите Wayfinder. После этого нужно его установить, используя стандартную процедуру.
Минимальный вызов :
[[!Wayfinder? &startId=`0`
&level=`1`
]]
В результате будет выведен многоуровневый ненумерованный список, представляющий все дерево документов сайта MODX, при этом каждый элемент будет являться ссылкой на соответствующий документ.
Параметры общего назначения
Параметры | Описание | Значения по умолчанию | Возможные значения |
&startId | Начальная точка (ID документа) для меню, откуда будут браться выводимые документы. Указывайте 0 для начала меню из корня сайта. | id текущего документа | 0 | id документа | [ [*parent*]] | [ [*id*]] |
&displayStart | Если &displayStart=1, это заставит Wayfinder вывести ссылку на документ, используемый в качестве &startId, согласно шаблона &startItemTpl. Параметр работает, если startId не равно 0. | 0 | 0 | 1 |
&level | Глубина (количество уровней) в меню. 0 — показывать все уровни | 0 | 0 | целое число |
&limit | Максимальное количество пунктов меню. 0 — без ограничения. | 0 | целое число |
&ignoreHidden | Игнорировать чекбокс для документов «Не показывать в меню» и отображать их в меню в любом случае. | 0 | 0 | 1 |
&ph | Весь код результата вместо непосредственной выдачи будет сохранен в переменную, значение которой можно вставить в страницу при помощи плейсхолдера с именем переменной. | — | &ph=`wf_имя переменной` |
&debug | Устанавливайте в «1» для включения режима отладки. | 0 | 0 | 1 |
&hideSubMenus | Устанавливайте в «1» для вывода только активного подменю. | 0 | 0 | 1 |
&removeNewLines | Устанавливайте в «1», чтобы удалить символы переноса строки при выводе (то есть выдаваемый результат будет в одну строку). | 0 | 0 | 1 |
&textOfLinks | Поле, откуда берется фактический текст ссылки. | menutitle | menutitle | id | pagetitle | description | parent | alias | longtitle | introtext |
&titleOfLinks | Поле, откуда берется title ссылки. | pagetitle | menutitle | id | pagetitle | description | parent | alias | longtitle | introtext |
&rowIdPrefix |
Если используется этот параметр, он добавляет уникальный id для каждого элемента. Сформированное значение будет rowIdPrefix + docId. Пример : &rowIdPrefix=`topMenu` выведет для doc # 29: |
нет | — |
&useWeblinkUrl | Вывод ссылки в плейсхолдер wf. link | 0 | 0 | 1 |
&includeDocs | Разделенный запятыми список id документов, которые должны быть включены в меню. | нет | id документов, разделенные запятыми |
&excludeDocs | Разделенный запятыми список id документов, которые должны быть исключены из меню. | нет | id документов, разделенные запятыми |
&cacheResults | Сохранение результатов в кэше при некэшируемом вызове Wayfinder для более быстрой загрузки. | 0 | 0 | 1 |
&cacheTime | Количество секунд хранения меню в кэше, если &cacheResults установлено в «1». Устанавливайте в «0», чтобы данные хранились неограниченное время до сброса кэша вручную. | 3600 | — |
&contexts | Контекст для использования в меню. | текущий контекст | |
&config | Внешний php файл для конфигурирования Wayfinder ( в качестве примера можно посмотреть core/components/wayfinder/configs ) | ||
&sortBy | Параметр sortBy позволяет сортировать выводимые данные по одному из указанных полей на определенном отдельном уровне. Это означает, что каждое подменю будет сортироваться независимо от всех других подменю этого же уровня. Значение Random будет сортировать выходные данные по-разному при каждой загрузке страницы, если сниппет вызывается некэшируемым. | menuindex | id | menutitle | pagetitle | introtext | menuindex | published | hidemenu | parent | isfolder | description | alias | longtitle | type | template | random |
&sortOrder | Позволяет сортировать меню по возрастанию (ASC) или по убыванию (DESC). | ASC | ASC | DESC |
&where |
Вариант фильтрации в стиле JSON. Например, для случая, когда нужно спрятать блог или новости от дополнения Articles : &where=`[{«class_key:!=»: «Article»}]` |
||
&hereTpl | Шаблон hereTpl используется, когда текущий элемент отображается в меню. |
Параметры шаблона
Эти параметры указывают на чанки, содержащие шаблоны для управления выводом Wayfinder.
В существующей версии WayFinder для Revolution вы можете осуществлять доступ к своим tv-параметрам без префикса wf., например, [[+my_TV]].
В настоящий момент возвращается необработанное значение tv-параметра, оно не будет форматировано. Например, если вашим tv-параметром является изображение, при обычном использовании tv-параметра внутри вашего шаблона вы получите тег с полным изображением, а при использовании внутри шаблона WayFinder вы получите только путь к изображению.
&outerTpl — имя чанка, содержащего внешний контейнер для генерируемых WayFinder данных. Все документы и папки будут обрабатываться и вставляться в плейсхолдер [[+wf.wrapper]]. Если &outerTpl не указан, он полагается равным «<ul> [[+wf.wrapper]] </ul>».
Используемые плейсхолдеры :
- [[+wf.classes]] — здесь вставляется указанный класс (включая)
- [[+wf.classnames]] — сюда вставляется только имя указанного класса (без)
- [[+wf.wrapper]] — место, где выводится все содержимое меню. Этот плейсхолдер является обязательным.
Пример &outerTpl или связанного с ним чанка :
<ul[[+wf.classes]]>[[+wf.wrapper]]</ul>
&rowTpl — имя чанка для шаблона пункта меню
Используемые плейсхолдеры :
- [[+wf.classes]] — здесь вставляется указанный класс (включая)
- [[+wf.classnames]] — сюда вставляется только имя указанного класса (без)
- [[+wf.link]] — значение href для вашей ссылки
- [[+wf.title]] — текст атрибута title для ссылки из поля, указанного в параметре &titleOfLinks
- [[+wf. linktext]] — текст для фактической ссылки из поля, указанного в параметре &titleOfLinks
- [[+wf.wrapper]] — место вставки подменю
- [[+wf.id]] — место вставки уникального id. Вам нужно будет указать параметр &rowIdPrefix, чтобы этот плейсхолдер получил значение, которое будет : ваш префикс + id документа
- [[+wf.attributes]] — место вставки атрибутов ссылки
- [[+wf.docid]] — место вставки идентификатора текущего документа
- [[wf.description]] — вывод поля описания текущего документа
- [[wf.level]] — глубина текущего элемента
Примеры &rowTpl или связанного с ним чанка :
<li[[+wf.id]][[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]" [[+wf.attributes]]>[[+wf.linktext]]</a>[[+wf.wrapper]]</li>
<li><a href="[[+wf.link]]">[[+wf. linktext]]</a> - [[+wf.description]] [[+wf.wrapper]]</li>
Далее, в таблице ниже показаны параметры, которые используют те же плейсхолдеры, что и &rowTpl.
Параметр | Описание |
&startItemTpl | Имя чанка, содержащего шаблон для начального документа, если это разрешено при помощи параметра &displayStart. Замечание : шаблон по умолчанию показывает начальный документ, но не дает ссылку на него. Если ссылка вам не нужна, шаблону по умолчанию может быть присвоен класс, используя параметр &firstClass=`className` |
&parentRowHereTpl | Имя чанка, содержащего шаблон для текущего документа, если он контейнер и имеет дочерние ресурсы. Используйте плейсхолдер для выдачи дочерних документов. |
&parentRowTpl | Имя чанка, содержащего шаблон для любого документа, если он контейнер и имеет дочерние ресурсы. Используйте плейсхолдер для выдачи дочерних документов. |
&hereTpl | Имя чанка, содержащего шаблон для текущего документа. |
&innerTpl | Имя чанка, содержащего шаблон для каждого подменю. Если параметр &innerTpl не указан, вместо него используется &outerTpl. |
&innerRowTpl | Имя чанка, содержащего шаблон для пунктов подменю. |
&innerHereTpl | Имя чанка, содержащего шаблон для текущего документа, если он находится в подменю. |
&activeParentRowTpl | Имя чанка, содержащего шаблон для документов, которые являются контейнерами, имеют дочерние ресурсы и в настоящее время активны. |
&categoryFoldersTpl | Имя чанка, содержащего шаблон для папок категорий. Папки категорий задаются путем установки шаблона blank или же атрибутом ссылки rel=»category». |
Параметры имени класса CSS
CSS можно использовать для управления видом (а в некоторых случаях — действием) различных частей выводимых данных. Однако, необходимо указать Wayfinder, какие имена классов CSS используются, и с какими частями выводимых данных они должны быть связаны.
Параметр | Описание | Значение по умолчанию |
&firstClass | Класс CSS для первого элемента на данном уровне меню. | |
&lastClass | Класс CSS для последнего элемента на данном уровне меню. | last |
&hereClass | Класс CSS, определяющий вашу позицию для всей цепочки. | active |
&selfClass | Класс CSS для текущего элемента. | |
&parentClass | Класс CSS для элементов меню, которые являются контейнерами и имеют дочерние элементы. | parent |
&rowClass | Класс CSS для всех пунктов меню. | |
&levelClass | Класс CSS, определяющий уровень каждого пункта меню. Номер уровня будет добавлен к указанному классу (например, level1, level2, level3 и т. д., если вы указали «level»). | |
&outerClass | Класс CSS для внешнего шаблона меню (применяется к контейнеру, использующему outerTpl). | |
&innerClass | Класс CSS внутреннего шаблона меню (применяется к контейнеру, использующему innerTpl). | |
&webLinkClass | Класс CSS для веб-ссылок. |
Параметры включения кода (Code-Embedding)
Если выводимый при вызове Wayfinder фрагмент требует присутствия некоторого фрагмента CSS или JavaScript, можно сохранить CSS в одном чанке, JavaScript — в другом, а затем использовать эти параметры, чтобы указать Wayfinder скопировать один или оба чанка в раздел HEAD той страницы, из которой вызван Wayfinder.
Параметр | Описание |
&cssTpl | Имя чанка, содержащего подключение CSS, которое вы хотите добавить в раздел HEAD той страницы, из которой вызван Wayfinder. |
&jsTpl | Имя чанка, содержащего подключение JavaScript, которое вы хотите добавить в раздел HEAD той страницы, из которой вызван Wayfinder. |
Назад | Вперёд |
2.8.4-pl | 28 апреля 2022 г. (5 месяцев назад) | Подробности Загрузки |
3. 0.1-pl | 28 апреля 2022 г. (5 месяцев назад) | Подробности Загрузки |
3.0.0-pl | 30 марта 2022 г. (6 месяцев назад) | Подробности Загрузки |
3.0.0-rc2 | 03.02.2022 (8 месяцев назад) | Подробности Загрузки |
3. 0.0-rc1 | 20 января 2022 г. (9 месяцев назад) | Подробности Загрузки |
3.0.0-бета2 | 23 ноября 2021 г. (10 месяцев назад) | Подробности Загрузки |
3.0.0-бета1 | 09.11.2021 (11 месяцев назад) | Подробности Загрузки |
3. 0.0-альфа3 | 27 октября 2021 г. (11 месяцев назад) | Подробности Загрузки |
2.8.3-pl | 28 мая 2021 г. (1 год назад) | Подробности Загрузки |
2.8.2-pl | 28 апреля 2021 г. (1 год назад) | Подробности Загрузки |
2. 8.1-pl | 22.10.2020 (1 год назад) | Подробности Загрузки |
2.8.0-pl | 06.10.2020 (2 года назад) | Подробности Загрузки |
2.7.3-pl | 27 февраля 2020 г. (2 года назад) | Подробности Загрузки Объявление |
3. 0.0-альфа2 | 28 января 2020 г. (2 года назад) | Подробности Загрузки |
3.0.0-альфа1 | 12.12.2019 (2 года назад) | Подробности Загрузки |
2.7.2-pl | 26 сентября 2019 г. (3 года назад) | Подробности Загрузки |
2. 7.1-pl | 14.02.2019 (3 года назад) | Подробности Загрузки Объявление |
2.7.0-pl | 27 ноября 2018 г. (3 года назад) | Подробности Загрузки Объявление |
2. 6.5-пл | 11.07.2018 (4 года назад) | Подробности Загрузки Объявление |
2.6.4-pl | 07.06.2018 (4 года назад) | Подробности Загрузки Объявление |
2. 6.3-pl | 19 апреля 2018 г. (4 года назад) | Подробности Загрузки Объявление |
2.6.2-pl | 30 марта 2018 г. (4 года назад) | Подробности Загрузки Объявление |
2. 6.1-pl | 15.12.2017 (4 года назад) | Подробности Загрузки Объявление |
2.6.0-pl | 01.11.2017 (4 года назад) | Подробности Загрузки |
2.5.8-пл | 12 сентября 2017 г. (5 лет назад) | Подробности Загрузки |
2. 5.7-pl | 20 апреля 2017 г. (5 лет назад) | Подробности Загрузки |
2.5.6-pl | 28 марта 2017 г. (5 лет назад) | Подробности Загрузки |
2.5.5-пл | 08.02.2017 (5 лет назад) | Подробности Загрузки |
2. 5.4-pl | 03.01.2017 (5 лет назад) | Подробности Загрузки |
2.5.3-pl | 03.01.2017 (5 лет назад) | Подробности Загрузки |
2.5.2-pl | 14.11.2016 (5 лет назад) | Подробности Загрузки |
2. 5.1-pl | 21 июля 2016 г. (6 лет назад) | Подробности Загрузки |
2.5.0-pl | 21 апреля 2016 г. (6 лет назад) | Подробности Загрузки |
2.5.0-rc2 | 06.04.2016 (6 лет назад) | Подробности Загрузки |
2. 4.4-pl | 05.04.2016 (6 лет назад) | Подробности Загрузки |
2.4.3-pl | 11 февраля 2016 г. (6 лет назад) | Подробности Загрузки |
2.5.0-rc1 | 03.02.2016 (6 лет назад) | Подробности Загрузки |
2. 4.2-pl | 06.10.2015 (7 лет назад) | Подробности Загрузки |
2.4.1-pl | 23 сентября 2015 г. (7 лет назад) | Подробности Загрузки |
2.4.0-pl | 18 августа 2015 г. (7 лет назад) | Подробности Загрузки |
2. 4.0-rc1 | 12 августа 2015 г. (7 лет назад) | Подробности Загрузки |
2.3.5-pl | 25 июня 2015 г. (7 лет назад) | Подробности Загрузки |
2.3.4-pl | 23 июня 2015 г. (7 лет назад) | Подробности Загрузки |
2. 3.3-pl | 29 января 2015 г. (7 лет назад) | Подробности Загрузки |
2.3.2-pl | 21 октября 2014 г. (8 лет назад) | Подробности Загрузки |
2.3.1-pl | 22 июля 2014 г. (8 лет назад) | Подробности Загрузки |
2. 3.0-pl | 15.07.2014 (8 лет назад) | Подробности Загрузки |
2.2.10-pl | 07.10.2013 (9 лет назад) | Подробности Загрузки |
2.2.9-pl | 28 августа 2013 г. (9 лет назад) | Подробности Загрузки |
2. 2.8-pl | 04.06.2013 (9 лет назад) | Подробности Загрузки |
2.2.7-pl | 09.04.2013 (9 лет назад) | Подробности Загрузки |
2.2.6-pl | 03.12.2012 (9 лет назад) | Подробности Загрузки |
2. 2.5-пл | 02.10.2012 (10 лет назад) | Подробности Загрузки |
2.2.4-pl | 14.06.2012 (10 лет назад) | Подробности Загрузки |
2.2.3-pl | 13.06.2012 (10 лет назад) | Подробности Загрузки |
2. 2.2-pl | 02.05.2012 (10 лет назад) | Подробности Загрузки |
2.2.1-pl | 03.04.2012 (10 лет назад) | Подробности Загрузки |
2.2.0-pl2 | 04.01.2012 (10 лет назад) | Подробности Загрузки |
2. 2.0-pl | 04.01.2012 (10 лет назад) | Подробности Загрузки |
2.2.0-rc-3 | 22 декабря 2011 г. (10 лет назад) | Подробности Загрузки |
2.2.0-rc-2 | 16.12.2011 (10 лет назад) | Подробности Загрузки |
2. 2.0-rc-1 | 17 ноября 2011 г. (10 лет назад) | Подробности Загрузки |
2.1.3-pl | 21 июля 2011 г. (11 лет назад) | Подробности Загрузки |
2.1.2-pl | 06.07.2011 (11 лет назад) | Подробности Загрузки |
2. 1.1-pl | 01.06.2011 (11 лет назад) | Подробности Загрузки |
2.1.0-pl | 24 мая 2011 г. (11 лет назад) | Подробности Загрузки |
2.1.0-rc-4 | 29 апреля 2011 г. (11 лет назад) | Подробности Загрузки |
2. 1.0-rc-3 | 11 апреля 2011 г. (11 лет назад) | Подробности Загрузки |
2.1.0-rc-2 | 11 апреля 2011 г. (11 лет назад) | Подробности Загрузки |
2.1.0-rc-1 | 28 марта 2011 г. (11 лет назад) | Подробности Загрузки |
2. 0.7-пл | 14 января 2011 г. (11 лет назад) | Подробности Загрузки |
2.0.6-pl2 | 06.01.2011 (11 лет назад) | Подробности Загрузки |
2.0.6-пл | 20 декабря 2010 г. (11 лет назад) | Подробности Загрузки |
2. 0.5-пл | 08.12.2010 (11 лет назад) | Подробности Загрузки |
2.0.4-pl2 | 15.10.2010 (12 лет назад) | Подробности Загрузки |
2.0.4-пл | 14.10.2010 (12 лет назад) | Подробности Загрузки |
2. 0.3-пл | 30 сентября 2010 г. (12 лет назад) | Подробности Загрузки |
2.0.2-пл | 17 сентября 2010 г. (12 лет назад) | Подробности Загрузки |
2.0.1-pl | 16 сентября 2010 г. (12 лет назад) | Подробности Загрузки |
2. 0.0-pl | 21 июля 2010 г. (12 лет назад) | Подробности Загрузки |
2.0.0-rc-3 | 07.07.2010 (12 лет назад) | Подробности Загрузки |
2.0.0-rc-2 | 27 мая 2010 г. (12 лет назад) | Подробности Загрузки |
2. 0.0-rc-1 | 22 марта 2010 г. (12 лет назад) | Подробности Загрузки |
2.0.0-бета-5 | 15 декабря 2009 г. (12 лет назад) | Подробности Загрузки |
2.0.0-бета-4 | 19 октября 2009 г. (13 лет назад) | Подробности Загрузки |
2. 0.0-бета-3 | 30 июля 2009 г. (13 лет назад) | Подробности Загрузки |
2.0.0-бета-2 | 16.07.2009 (13 лет назад) | Подробности Загрузки |
2.0.0-бета-1 | 28 мая 2009 г. (13 лет назад) | Подробности Загрузки |
2. 0.0-альфа-6 | 25 ноября 2008 г. (13 лет назад) | Подробности Загрузки |
2.0.0-альфа-5 | 09.10.2008 (14 лет назад) | Подробности Загрузки |
2.0.0-альфа-4 | 01.10.2008 (14 лет назад) | Подробности Загрузки |
2. 0.0-альфа-3 | 22 июля 2008 г. (14 лет назад) | Подробности Загрузки |
2.0.0-альфа-2 | 15 июля 2008 г. (14 лет назад) | Подробности Загрузки |
Направляющие Боба | Краткий справочник по объектам MODX 3
Следующий список объектов MODX Revolution генерируется из файла схемы MODX. Нажмите на одну из ссылок ниже, чтобы перейти к объекту, о котором вы хотите узнать.
Примечание. Если фон текста становится для вас синим в нижней части этой страницы, это связано с давней ошибкой в Firefox. Иногда помогает отключение аппаратного ускорения в FF. Если нет, попробуйте другой браузер.
Эта ссылка сокращена для удобства и не содержит указаний на составные индексы, но обычно она более полезна, поскольку показывает унаследованные поля, а Полная ссылка — нет. Здесь объединены совокупные и составные псевдонимы (хотя агрегаты перечислены первыми, а между совокупным и составным псевдонимами есть небольшой дополнительный пробел).
модаксесс
Расширяет: xPDO\Om\xPDOSimpleObject Поля: цель (строка) Principal_class (строка) основной (целое) полномочия (целое число) политика (целое) Индексы: Индексы: target, Principal_class, Principal, Authority, Policy. Псевдонимы: Политика -- используйте getOne('Policy') -- возвращает объект MODX\Revolution\modAccessPolicy Главный -- используйте getOne('Principal') -- возвращает объект MODX\Revolution\modPrincipal GroupPrincipal -- use getOne('GroupPrincipal') -- возвращает объект MODX\Revolution\modUserGroup UserPrincipal -- use getOne('UserPrincipal') -- возвращает объект MODX\Revolution\modUserGroup Минимальная роль -- use getOne('MinimumRole') -- возвращает объект MODX\Revolution\modUserGroupRole
Наверх . . .
modAccessActionDom
Расширяет: MODX\Revolution\modAccess Таблица: modx_access_actiondom Псевдонимы: Цель -- используйте getOne('Target') -- возвращает объект MODX\Revolution\modActionDom
Наверх . . .
modAccessCategory
Расширяет: MODX\Revolution\modAccess Таблица: modx_access_category Поля: context_key (строка) Индексы: Индексы: context_key Псевдонимы: Цель -- use getOne('Target') -- возвращает объект MODX\Revolution\modCategory Контекст -- используйте getOne('Context') -- возвращает объект MODX\Revolution\modContext
Наверх . . .
модакцессконтекст
Расширяет: MODX\Revolution\modAccess Таблица: modx_access_context Псевдонимы: Цель -- используйте getOne('Target') -- возвращает объект MODX\Revolution\modContext
Наверх . . .
модуль доступа к элементу
Расширяет: MODX\Revolution\modAccess Таблица: modx_access_elements Поля: context_key (строка) Индексы: Индексы: context_key Псевдонимы: Цель -- use getOne('Target') -- возвращает объект MODX\Revolution\modElement Контекст -- используйте getOne('Context') -- возвращает объект MODX\Revolution\modContext
Наверх . . .
modAccessMenu
Расширяет: MODX\Revolution\modAccess Таблица: modx_access_menus Псевдонимы: Цель -- use getOne('Target') -- возвращает объект MODX\Revolution\modMenu
Наверх . . .
modAccessNamespace
Расширяет: MODX\Revolution\modAccess Таблица: modx_access_namespace Поля: context_key (строка) Индексы: Индексы: context_key Псевдонимы: Цель -- use getOne('Target') -- возвращает объект MODX\Revolution\modNamespace Контекст -- используйте getOne('Context') -- возвращает объект MODX\Revolution\modContext
Наверх . . .
модаксесспермиссион
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_access_permissions Поля: шаблон (целое число) имя (строка) описание (строка) значение (логическое) Индексы: Индексы: шаблон, имя Псевдонимы: Шаблон -- use getOne('Template') -- возвращает объект MODX\Revolution\modAccessPolicyTemplate
Наверх . . .
modAccessPolicy
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_access_policies Поля: имя (строка) описание (строка) родитель (целое число) шаблон (целое число) класс (строка) данные (json) лексикон (строка) Индексы: Индексы: имя, родитель, класс, шаблон Псевдонимы: Родитель -- используйте getOne('Parent') -- возвращает объект MODX\Revolution\modAccessPolicy Шаблон -- use getOne('Template') -- возвращает объект MODX\Revolution\modAccessPolicyTemplate Дети -- use getMany('Children') -- возвращает массив объектов MODX\Revolution\modAccessPolicy
Наверх . . .
modAccessPolicyTemplate
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_access_policy_templates Поля: template_group (целое число) имя (строка) описание (строка) лексикон (строка) Псевдонимы: Группа шаблонов -- use getOne('TemplateGroup') -- возвращает объект MODX\Revolution\modAccessPolicyTemplateGroup Разрешения -- use getMany('Permissions') -- возвращает массив объектов MODX\Revolution\modAccessPermission Политики -- use getMany('Policies') -- возвращает массив объектов MODX\Revolution\modAccessPolicy
Наверх . . .
modAccessPolicyTemplateGroup
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_access_policy_template_groups Поля: имя (строка) описание (строка) Псевдонимы: Шаблоны -- use getMany('Templates') -- возвращает массив объектов MODX\Revolution\modAccessPolicyTemplate
Наверх . . .
модакцессресаурце
Расширяет: MODX\Revolution\modAccess Таблица: modx_access_resources Поля: context_key (строка) Индексы: Индексы: context_key Псевдонимы: Цель -- use getOne('Target') -- возвращает объект MODX\Revolution\modResource Контекст -- используйте getOne('Context') -- возвращает объект MODX\Revolution\modContext
Наверх . . .
модакцессресаурцеграуп
Расширяет: MODX\Revolution\modAccess Таблица: modx_access_resource_groups Поля: context_key (строка) Индексы: Индексы: context_key, Principal_class Псевдонимы: Цель -- use getOne('Target') -- возвращает объект MODX\Revolution\modResourceGroup Контекст -- используйте getOne('Context') -- возвращает объект MODX\Revolution\modContext
Наверх . . .
modAccessTemplateVar
Расширяет: MODX\Revolution\modAccessElement Таблица: modx_access_templatevars Псевдонимы: Цель -- use getOne('Target') -- возвращает объект MODX\Revolution\modTemplateVar
Наверх . . .
modAccessibleObject
Расширяет: xPDO\Om\xPDOObject
Наверх . . .
modAccessibleSimpleObject
Расширяет: MODX\Revolution\modAccessibleObject Поля: идентификатор (целое число) Индексы: Индексы: ПЕРВИЧНЫЕ
Наверх . . .
modActionDom
Расширяет: MODX\Revolution\modAccessibleSimpleObject Таблица: modx_actiondom Поля: набор (целое число) действие (строка) имя (строка) описание (строка) хтип (строка) контейнер (строка) правило (строка) значение (строка) ограничение (строка) поле_ограничения (строка) ограничение_класс (строка) активный (логический) for_parent (логическое значение) ранг (целое число) Индексы: набор, действие имя, активный for_parent, ранг Псевдонимы: FCSet -- use getOne('FCSet') -- возвращает объект MODX\Revolution\modFormCustomizationSet Доступ -- use getMany('Access') -- возвращает массив объектов MODX\Revolution\modAccessActionDom
Наверх . . .
modActionField
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_actions_fields Поля: действие (строка) имя (строка) тип (строка) вкладка (строка) форма (строка) другое (строка) ранг (целое число) Индексы: Индексы: действие, тип, вкладка Псевдонимы: Действие -- используйте getOne('Action') -- возвращает объект MODX\Revolution\modAction
Наверх . . .
модактивеусер
Расширяет: xPDO\Om\xPDOObject Таблица: modx_active_users Поля: внутренний ключ (целое число) имя пользователя (строка) ластхит (отметка времени) идентификатор (целое число) действие (строка) ip (строка) Индексы: Индексы: internalKey Псевдонимы: Пользователь -- use getOne('User') -- возвращает объект MODX\Revolution\modUser
Наверх . . .
МодКатегория
Расширяет: MODX\Revolution\modAccessibleSimpleObject Таблица: modx_categories Поля: родитель (целое число) категория (строка) ранг (целое число) Индексы: Индексы: родитель, категория, ранг Псевдонимы: Родитель -- используйте getOne('Parent') -- возвращает объект MODX\Revolution\modCategory Куски -- use getMany('Chunks') -- возвращает массив объектов MODX\Revolution\modChunk Фрагменты -- use getMany('Snippets') -- возвращает массив объектов MODX\Revolution\modSnippet Плагины -- use getMany('Plugins') -- возвращает массив объектов MODX\Revolution\modPlugin Шаблоны -- use getMany('Templates') -- возвращает массив объектов MODX\Revolution\modTemplate TemplateVars -- use getMany('TemplateVars') -- возвращает массив объектов MODX\Revolution\modTemplateVar Наборы свойств -- use getMany('PropertySets') -- возвращает массив объектов MODX\Revolution\modPropertySet Дети -- use getMany('Children') -- возвращает массив объектов MODX\Revolution\modCategory ACL -- use getMany('Acls') -- возвращает массив объектов MODX\Revolution\modAccessCategory Предки -- use getMany('Ancestors') -- возвращает массив объектов MODX\Revolution\modCategoryClosure Потомки -- use getMany('Descendants') -- возвращает массив объектов MODX\Revolution\modCategoryClosure
Наверх . . .
модКатегорияЗакрытие
Расширяет: xPDO\Om\xPDOObject Таблица: modx_categories_closure Поля: предок (целое число) потомок (целое число) глубина (целое число) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: Предок -- используйте getOne('Ancestor') -- возвращает объект MODX\Revolution\modCategory Потомок -- use getOne('Descendant') -- возвращает объект MODX\Revolution\modCategory
Наверх . . .
модЧанк
Расширяет: MODX\Revolution\modElement Таблица: modx_site_htmlфрагменты Поля: имя (строка) описание (строка) editor_type (целое число) категория (целое число) cache_type (целое число) фрагмент (строка) заблокировано (логическое) свойства (массив) статический (логический) статический_файл (строка) Индексы: Индексы: имя, категория, заблокированные, статические Псевдонимы: Категория -- используйте getOne('Category') -- возвращает объект MODX\Revolution\modCategory Наборы свойств -- use getMany('PropertySets') -- возвращает массив объектов MODX\Revolution\modElementPropertySet
Наверх . . .
модконтенттип
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_content_type Поля: имя (строка) описание (строка) mime_type (строка) file_extensions (строка) значок (строка) заголовки (массив) двоичный (логический) Индексы: Индексы: имя Псевдонимы: Ресурсы -- use getMany('Resources') -- возвращает массив объектов MODX\Revolution\modResource
Наверх . . .
модКонтекст
Расширяет: MODX\Revolution\modAccessibleObject Таблица: modx_context Поля: ключ (строка) имя (строка) описание (строка) ранг (целое число) Индексы: Индексы: ПЕРВИЧНЫЙ, имя, звание Псевдонимы: Контекстные ресурсы -- use getMany('ContextResources') -- возвращает массив объектов MODX\Revolution\modContextResource Настройки контекста -- use getMany('ContextSettings') -- возвращает массив объектов MODX\Revolution\modContextSetting Исходные элементы -- use getMany('SourceElements') -- возвращает массив объектов MODX\Revolution\Sources\modMediaSourceElement ACL -- use getMany('Acls') -- возвращает массив объектов MODX\Revolution\modAccessContext
Наверх . . .
модконтекстресурс
Расширяет: xPDO\Om\xPDOObject Таблица: modx_context_resource Поля: context_key (строка) ресурс (целое число) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: Контекст -- используйте getOne('Context') -- возвращает объект MODX\Revolution\modContext Ресурс -- use getOne('Resource') -- возвращает объект MODX\Revolution\modResource
Наверх . . .
modContextSetting
Расширяет: xPDO\Om\xPDOObject Таблица: modx_context_setting Поля: context_key (строка) ключ (строка) значение (строка) хтип (строка) пространство имен (строка) площадь (строка) отредактировано (временная метка) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: Контекст -- используйте getOne('Context') -- возвращает объект MODX\Revolution\modContext Системные настройки -- используйте getOne('SystemSetting') -- возвращает объект MODX\Revolution\modSystemSetting
Наверх . . .
панель управления
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_dashboard Поля: имя (строка) описание (строка) hide_trees (логическое значение) настраиваемый (логический) Индексы: Индексы: name, hide_trees Псевдонимы: Группы пользователей -- use getMany('UserGroups') -- возвращает массив объектов MODX\Revolution\modUserGroup Места размещения -- use getMany('Placements') -- возвращает массив объектов MODX\Revolution\modDashboardWidgetPlacement
Наверх . . .
модDashboardWidget
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_dashboard_widget Поля: имя (строка) описание (строка) тип (строка) содержимое (строка) свойства (json) пространство имен (строка) лексикон (строка) размер (строка) разрешение (строка) Индексы: Индексы: имя, тип, пространство имен, лексикон Псевдонимы: Пространство имен -- use getOne('Namespace') -- возвращает объект MODX\Revolution\modNamespace Места размещения -- use getMany('Placements') -- возвращает массив объектов MODX\Revolution\modDashboardWidgetPlacement
Наверх . . .
modDashboardWidgetPlacement
Расширяет: xPDO\Om\xPDOObject Таблица: modx_dashboard_widget_placement Поля: пользователь (целое число) приборная панель (целое число) виджет (целое число) ранг (целое число) размер (строка) Индексы: Индексы: ПЕРВИЧНЫЙ, ранг Псевдонимы: Пользователь -- use getOne('User') -- возвращает объект MODX\Revolution\modUser Приборная доска -- use getOne('Dashboard') -- возвращает объект MODX\Revolution\modDashboard Виджет -- use getOne('Widget') -- возвращает объект MODX\Revolution\modDashboardWidget
Наверх . . .
modDeprecatedCall
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_deprecated_call Поля: метод (целое число) call_count (целое число) звонящий (строка) caller_file (строка) caller_line (целое число) Индексы: Индексы: метод, call_count, caller, caller_file, caller_line Псевдонимы: Метод -- use getOne('Method') -- возвращает объект MODX\Revolution\modDeprecatedMethod
Наверх . . .
модDeprecatedMethod
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_deprecated_method Поля: определение (строка) так как (строка) рекомендация (строка) Индексы: Индексы: определение Псевдонимы: Звонящие -- use getMany('Callers') -- возвращает массив объектов MODX\Revolution\modDeprecatedCall
Наверх . . .
модДокумент
Расширяет: MODX\Revolution\modResource
Вернуться к началу . . .
элемент модели
Расширяет: MODX\Revolution\modAccessibleSimpleObject Таблица: modx_site_element Поля: источник (целое число) property_preprocess (логическое значение) Псевдонимы: КатегорияAcls -- use getMany('CategoryAcls') -- возвращает массив объектов MODX\Revolution\modAccessCategory Источник -- используйте getOne('Source') -- возвращает объект MODX\Revolution\Sources\modMediaSource ACL -- use getMany('Acls') -- возвращает массив объектов MODX\Revolution\modAccessElement
Наверх . . .
набор свойств элемента
Расширяет: xPDO\Om\xPDOObject Таблица: modx_element_property_sets Поля: элемент (целое число) element_class (строка) набор свойств (целое число) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: Элемент -- use getOne('Element') -- возвращает объект MODX\Revolution\modElement набор свойств -- используйте getOne('PropertySet') -- возвращает объект MODX\Revolution\modPropertySet
Вернуться к началу . . .
модевент
Расширяет: xPDO\Om\xPDOObject Таблица: modx_system_eventnames Поля: имя (строка) услуга (целое число) имя группы (строка) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: PluginEvents -- use getMany('PluginEvents') -- возвращает массив объектов MODX\Revolution\modPluginEvent
Наверх . . .
modExtensionPackage
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_extension_packages Поля: пространство имен (строка) имя (строка) путь (строка) table_prefix (строка) service_class (строка) имя_службы (строка) created_at (дата и время) updated_at (дата/время) Индексы: Индексы: пространство имен, имя Псевдонимы: Пространство имен -- use getOne('Namespace') -- возвращает объект MODX\Revolution\modNamespace
Наверх . . .
modFormCustomizationProfile
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_fc_profiles Поля: имя (строка) описание (строка) активный (целое число) ранг (целое число) Индексы: Индексы: имя, ранг, активность Псевдонимы: Наборы -- use getMany('Sets') -- возвращает массив объектов MODX\Revolution\modFormCustomizationSet Группы пользователей -- use getMany('UserGroups') -- возвращает массив объектов MODX\Revolution\modFormCustomizationProfileUserGroup
Наверх . . .
modFormCustomizationProfileUserGroup
Расширяет: xPDO\Om\xPDOObject Таблица: modx_fc_profiles_usergroups Поля: группа пользователей (целое число) профиль (целое число) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: Группа пользователей -- use getOne('UserGroup') -- возвращает объект MODX\Revolution\modUserGroup Профиль -- use getOne('Profile') -- возвращает объект MODX\Revolution\modFormCustomizationProfile
Наверх . . .
modFormCustomizationSet
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_fc_sets Поля: профиль (целое число) действие (строка) описание (строка) активный (целое число) шаблон (целое число) ограничение (строка) поле_ограничения (строка) ограничение_класс (строка) Индексы: Индексы: профиль, действие, активный, шаблон Псевдонимы: Шаблон -- use getOne('Template') -- возвращает объект MODX\Revolution\modTemplate Профиль -- use getOne('Profile') -- возвращает объект MODX\Revolution\modFormCustomizationProfile Правила -- use getMany('Rules') -- возвращает массив объектов MODX\Revolution\modActionDom
Наверх . . .
modLexiconEntry
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_lexicon_entries Поля: имя (строка) значение (строка) тема (строка) пространство имен (строка) язык (строка) создано (дата/время) отредактировано (временная метка) Индексы: Индексы: имя, тема, пространство имен, язык Псевдонимы: Пространство имен -- use getOne('Namespace') -- возвращает объект MODX\Revolution\modNamespace
Наверх . . .
modManagerLog
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_manager_log Поля: пользователь (целое число) произошло (дата-время) действие (строка) classKey (строка) элемент (строка) Индексы: Индексы: user_occurred Псевдонимы: Пользователь -- use getOne('User') -- возвращает объект MODX\Revolution\modUser
Наверх . . .
модМеню
Расширяет: MODX\Revolution\modAccessibleObject Таблица: modx_menus Поля: текст (строка) родитель (строка) действие (строка) описание (строка) значок (строка) индекс меню (целое число) параметры (строка) обработчик (строка) разрешения (строка) пространство имен (строка) Индексы: Индексы: PRIMARY, родительский, действие, пространство имен Псевдонимы: Родитель -- используйте getOne('Parent') -- возвращает объект MODX\Revolution\modMenu Дети -- use getMany('Children') -- возвращает массив объектов MODX\Revolution\modMenu ACL -- use getMany('Acls') -- возвращает массив объектов MODX\Revolution\modAccessMenu
Наверх . . .
modNamespace
Расширяет: MODX\Revolution\modAccessibleObject Таблица: modx_namespaces Поля: имя (строка) путь (строка) assets_path (строка) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: ЛексиконСтатьи -- use getMany('LexiconEntries') -- возвращает массив объектов MODX\Revolution\modLexiconEntry Системные настройки -- use getMany('SystemSettings') -- возвращает массив объектов MODX\Revolution\modSystemSetting Настройки контекста -- use getMany('ContextSettings') -- возвращает массив объектов MODX\Revolution\modContextSetting Пользовательские настройки -- use getMany('UserSettings') -- возвращает массив объектов MODX\Revolution\modUserSetting Пакеты расширений -- use getMany('ExtensionPackages') -- возвращает массив объектов MODX\Revolution\modExtensionPackage ACL -- use getMany('Acls') -- возвращает массив объектов MODX\Revolution\modAccessNamespace
Наверх . . .
модПлагин
Расширяет: MODX\Revolution\modScript Таблица: modx_site_plugins Поля: cache_type (целое число) код плагина (строка) заблокировано (логическое) свойства (массив) отключено (логическое значение) модульгид (строка) статический (логический) статический_файл (строка) Индексы: Индексы: заблокированные, отключенные, статические Псевдонимы: Наборы свойств -- use getMany('PropertySets') -- возвращает массив объектов MODX\Revolution\modElementPropertySet PluginEvents -- use getMany('PluginEvents') -- возвращает массив объектов MODX\Revolution\modPluginEvent
Наверх . . .
modPluginEvent
Расширяет: xPDO\Om\xPDOObject Таблица: modx_site_plugin_events Поля: идентификатор плагина (целое число) событие (строка) приоритет (целое число) набор свойств (целое число) Индексы: Индексы: ПЕРВИЧНЫЕ, приоритетные Псевдонимы: Плагин -- use getOne('Plugin') -- возвращает объект MODX\Revolution\modPlugin Мероприятие -- используйте getOne('Event') -- возвращает объект MODX\Revolution\modEvent набор свойств -- используйте getOne('PropertySet') -- возвращает объект MODX\Revolution\modPropertySet
Наверх . . .
модОсновной
Расширяет: xPDO\Om\xPDOSimpleObject Псевдонимы: ACL -- use getMany('Acls') -- возвращает массив объектов modAccess
Наверх . . .
модпропертисет
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_property_set Поля: имя (строка) категория (целое число) описание (строка) свойства (массив) Индексы: Индексы: название, категория Псевдонимы: Категория -- используйте getOne('Category') -- возвращает объект MODX\Revolution\modCategory Элементы -- use getMany('Elements') -- возвращает массив объектов MODX\Revolution\modElementPropertySet
Наверх . . .
модресурс
Расширяет: MODX\Revolution\modAccessibleSimpleObject Таблица: modx_site_content Поля: тип (строка) название страницы (строка) длинное название (строка) описание (строка) псевдоним (строка) link_attributes (строка) опубликовано (логическое значение) pub_date (отметка времени) unpub_date (отметка времени) родитель (целое число) isfolder (логическое значение) интротекст (строка) содержимое (строка) форматированный текст (логическое значение) шаблон (целое число) индекс меню (целое число) доступный для поиска (логическое значение) кэшируемый (логический) создано (целое число) создано (отметка времени) отредактировано (целое число) отредактировано (временная метка) удалено (логическое) удалено (временная метка) удалено (целое число) опубликовано (отметка времени) опубликовано (целое число) название меню (строка) Donthit (логическое значение) privateweb (логическое значение) privatemgr (логическое значение) content_dispo (целое число) скрытое меню (логическое значение) class_key (строка) context_key (строка) content_type (целое число) ури (строка) uri_override (целое число) hide_children_in_tree (целое число) show_in_tree (целое число) свойства (json) alias_visible (логическое значение) Индексы: псевдоним, опубликовано, pub_date, unpub_date родитель, isfolder, шаблон, индекс меню доступный для поиска, кэшируемый, скрытое меню, class_key context_key, uri, uri_override, hide_children_in_tree show_in_tree, content_ft_idx, cache_refresh_idx Псевдонимы: Родитель -- используйте getOne('Parent') -- возвращает объект MODX\Revolution\modResource Сделано -- use getOne('CreatedBy') -- возвращает объект MODX\Revolution\modUser Отредактировано -- используйте getOne('EditedBy') -- возвращает объект MODX\Revolution\modUser DeletedBy -- use getOne('DeletedBy') -- возвращает объект MODX\Revolution\modUser Опубликовано -- используйте getOne('PublishedBy') -- возвращает объект MODX\Revolution\modUser Шаблон -- use getOne('Template') -- возвращает объект MODX\Revolution\modTemplate TemplateVars -- use getMany('TemplateVars') -- возвращает массив объектов MODX\Revolution\modTemplateVar TemplateVarTemplates -- use getMany('TemplateVarTemplates') -- возвращает массив объектов MODX\Revolution\modTemplateVarTemplate Тип содержимого -- используйте getOne('ContentType') -- возвращает объект MODX\Revolution\modContentType Контекст -- используйте getOne('Context') -- возвращает объект MODX\Revolution\modContext Дети -- use getMany('Children') -- возвращает массив объектов MODX\Revolution\modResource TemplateVarResources -- use getMany('TemplateVarResources') -- возвращает массив объектов MODX\Revolution\modTemplateVarResource ResourceGroupResources -- use getMany('ResourceGroupResources') -- возвращает массив объектов MODX\Revolution\modResourceGroupResource ACL -- use getMany('Acls') -- возвращает массив объектов MODX\Revolution\modAccessResource Контекстные ресурсы -- use getMany('ContextResources') -- возвращает массив объектов MODX\Revolution\modContextResource
Наверх . . .
модресурсгруппа
Расширяет: MODX\Revolution\modAccessibleSimpleObject Таблица: modx_documentgroup_names Поля: имя (строка) private_memgroup (логическое значение) private_webgroup (логическое значение) Индексы: Индексы: имя Псевдонимы: ResourceGroupResources -- use getMany('ResourceGroupResources') -- возвращает массив объектов MODX\Revolution\modResourceGroupResource TemplateVarResourceGroups -- use getMany('TemplateVarResourceGroups') -- возвращает массив объектов MODX\Revolution\modTemplateVarResourceGroup ACL -- use getMany('Acls') -- возвращает массив объектов MODX\Revolution\modAccessResourceGroup
Наверх . . .
modResourceGroupResource
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_document_groups Поля: document_group (целое число) документ (целое число) Индексы: Индексы: document_group, document Псевдонимы: группа ресурсов -- use getOne('ResourceGroup') -- возвращает объект MODX\Revolution\modResourceGroup Ресурс -- use getOne('Resource') -- возвращает объект MODX\Revolution\modResource
Наверх . . .
МодСкрипт
Расширяет: MODX\Revolution\modElement Таблица: modx_site_script Поля: имя (строка) описание (строка) editor_type (целое число) категория (целое число) Индексы: Индексы: название, категория Псевдонимы: Категория -- используйте getOne('Category') -- возвращает объект MODX\Revolution\modCategory
Наверх . . .
модсессион
Расширяет: xPDO\Om\xPDOObject Таблица: modx_session Поля: идентификатор (строка) доступ (отметка времени) данные (строка) Индексы: Индексы: ПЕРВИЧНЫЕ, доступ
Наверх . . .
модсниппет
Расширяет: MODX\Revolution\modScript Таблица: modx_site_snippets Поля: cache_type (целое число) фрагмент (строка) заблокировано (логическое) свойства (массив) модульгид (строка) статический (логический) статический_файл (строка) Индексы: Индексы: заблокированные, moduleguid, статические Псевдонимы: Наборы свойств -- use getMany('PropertySets') -- возвращает массив объектов MODX\Revolution\modElementPropertySet
Наверх . . .
модСтатикРесурс
Расширяет: MODX\Revolution\modResource
Наверх . . .
модSymLink
Расширяет: MODX\Revolution\modResource
Наверх . . .
модСистемсеттинг
Расширяет: xPDO\Om\xPDOObject Таблица: modx_system_settings Поля: ключ (строка) значение (строка) хтип (строка) пространство имен (строка) площадь (строка) отредактировано (временная метка) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: Настройка контекста -- используйте getOne('ContextSetting') -- возвращает объект MODX\Revolution\modContextSetting Пространство имен -- use getOne('Namespace') -- возвращает объект MODX\Revolution\modNamespace
Наверх . . .
шаблон модуля
Расширяет: MODX\Revolution\modElement Таблица: modx_site_templates Поля: имя шаблона (строка) описание (строка) editor_type (целое число) категория (целое число) значок (строка) template_type (целое число) содержимое (строка) заблокировано (логическое) свойства (массив) статический (логический) статический_файл (строка) файл_превью (строка) Индексы: Индексы: имя шаблона, категория, заблокированный, статический Псевдонимы: Категория -- используйте getOne('Category') -- возвращает объект MODX\Revolution\modCategory Ресурсы -- use getMany('Resources') -- возвращает массив объектов MODX\Revolution\modResource Наборы свойств -- use getMany('PropertySets') -- возвращает массив объектов MODX\Revolution\modElementPropertySet TemplateVarTemplates -- use getMany('TemplateVarTemplates') -- возвращает массив объектов MODX\Revolution\modTemplateVarTemplate
Наверх . . .
modTemplateVar
Расширяет: MODX\Revolution\modElement Таблица: modx_site_tmplvars Поля: тип (строка) имя (строка) заголовок (строка) описание (строка) editor_type (целое число) категория (целое число) заблокировано (логическое) элементы (строка) ранг (целое число) дисплей (строка) default_text (строка) свойства (массив) input_properties (массив) output_properties (массив) статический (логический) статический_файл (строка) Индексы: Индексы: имя, категория, заблокированный, ранг, статический Псевдонимы: Категория -- используйте getOne('Category') -- возвращает объект MODX\Revolution\modCategory Наборы свойств -- use getMany('PropertySets') -- возвращает массив объектов MODX\Revolution\modElementPropertySet TemplateVarTemplates -- use getMany('TemplateVarTemplates') -- возвращает массив объектов MODX\Revolution\modTemplateVarTemplate TemplateVarResources -- use getMany('TemplateVarResources') -- возвращает массив объектов MODX\Revolution\modTemplateVarResource TemplateVarResourceGroups -- use getMany('TemplateVarResourceGroups') -- возвращает массив объектов MODX\Revolution\modTemplateVarResourceGroup
Наверх . . .
modTemplateVarResource
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_site_tmplvar_contentvalues Поля: тмплварид (целое число) идентификатор содержимого (целое число) значение (строка) Индексы: Индексы: tmplvarid, contentid, tv_cnt Псевдонимы: TemplateVar -- use getOne('TemplateVar') -- возвращает объект MODX\Revolution\modTemplateVar Ресурс -- use getOne('Resource') -- возвращает объект MODX\Revolution\modResource
Наверх . . .
modTemplateVarResourceGroup
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_site_tmplvar_access Поля: тмплварид (целое число) группа документов (целое число) Индексы: Индексы: tmplvar_template Псевдонимы: TemplateVar -- use getOne('TemplateVar') -- возвращает объект MODX\Revolution\modTemplateVar группа ресурсов -- use getOne('ResourceGroup') -- возвращает объект MODX\Revolution\modResourceGroup
Наверх . . .
modTemplateVarTemplate
Расширяет: xPDO\Om\xPDOObject Таблица: modx_site_tmplvar_templates Поля: тмплварид (целое число) идентификатор шаблона (целое число) ранг (целое число) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: TemplateVar -- use getOne('TemplateVar') -- возвращает объект MODX\Revolution\modTemplateVar Шаблон -- use getOne('Template') -- возвращает объект MODX\Revolution\modTemplate
Наверх . . .
пользователь мода
Расширяет: MODX\Revolution\modPrincipal Таблица: modx_users Поля: имя пользователя (строка) пароль (строка) cachepwd (строка) class_key (строка) активный (логический) remote_key (строка) удаленные_данные (json) hash_class (строка) соль (нитка) основная_группа (целое число) session_stale (массив) судо (логическое) создано (отметка времени) Индексы: Индексы: имя пользователя, ключ_класса, удаленный_ключ, основная_группа Псевдонимы: Созданные ресурсы -- use getMany('CreatedResources') -- возвращает массив объектов MODX\Revolution\modResource Отредактированные ресурсы -- use getMany('EditedResources') -- возвращает массив объектов MODX\Revolution\modResource Удаленные ресурсы -- use getMany('DeletedResources') -- возвращает массив объектов MODX\Revolution\modResource Опубликованные ресурсы -- use getMany('PublishedResources') -- возвращает массив объектов MODX\Revolution\modResource Отправленные сообщения -- use getMany('SentMessages') -- возвращает массив объектов MODX\Revolution\modUserMessage Полученные сообщения -- use getMany('ReceivedMessages') -- возвращает массив объектов MODX\Revolution\modUserMessage Основная группа -- use getOne('PrimaryGroup') -- возвращает объект MODX\Revolution\modUserGroup Профиль -- используйте getOne('Profile') -- возвращает объект aMODX\Revolution\modUserProfile Пользовательские настройки -- use getMany('UserSettings') -- возвращает массив объектов MODX\Revolution\modUserSetting UserGroupMembers -- use getMany('UserGroupMembers') -- возвращает массив объектов MODX\Revolution\modUserGroupMember ActiveUsers -- use getMany('ActiveUsers') -- возвращает массив объектов MODX\Revolution\modActiveUser Панель инструментовВиджеты -- use getMany('DashboardWidgets') -- возвращает массив объектов MODX\Revolution\modDashboardWidgetPlacement
Наверх . . .
модусергруппа
Расширяет: MODX\Revolution\modPrincipal Таблица: modx_membergroup_names Поля: имя (строка) описание (строка) родитель (целое число) ранг (целое число) приборная панель (целое число) Индексы: Индексы: имя, родитель, ранг, информационная панель Псевдонимы: Родитель -- use getOne('Parent') -- возвращает объект MODX\Revolution\modUserGroup Дети -- use getMany('Children') -- возвращает массив объектов MODX\Revolution\modUserGroup Приборная доска -- use getOne('Dashboard') -- возвращает объект MODX\Revolution\modDashboard UserGroupMembers -- use getMany('UserGroupMembers') -- возвращает массив объектов MODX\Revolution\modUserGroupMember ФормаНастройкаПрофили -- use getMany('FormCustomizationProfiles') -- возвращает массив объектов MODX\Revolution\modFormCustomizationProfileUserGroup
Наверх . . .
modUserGroupMember
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_member_groups Поля: группа_пользователей (целое число) член (целое число) роль (целое число) ранг (целое число) Индексы: Индексы: роль, ранг Псевдонимы: UserGroupRole -- use getOne('UserGroupRole') -- возвращает объект MODX\Revolution\modUserGroupRole Группа пользователей -- use getOne('UserGroup') -- возвращает объект MODX\Revolution\modUserGroup Пользователь -- use getOne('User') -- возвращает объект MODX\Revolution\modUser
Наверх . . .
modUserGroupRole
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_user_group_roles Поля: имя (строка) описание (строка) полномочия (целое число) Индексы: Индексы: имя, авторитет Псевдонимы: UserGroupMembers -- use getMany('UserGroupMembers') -- возвращает массив объектов MODX\Revolution\modUserGroupMember
Наверх . . .
modUserGroupSetting
Расширяет: xPDO\Om\xPDOObject Таблица: modx_user_group_settings Поля: группа (целое) ключ (строка) значение (строка) хтип (строка) пространство имен (строка) площадь (строка) отредактировано (временная метка) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: Группа пользователей -- use getOne('UserGroup') -- возвращает объект MODX\Revolution\modUserGroup Пространство имен -- use getOne('Namespace') -- возвращает объект MODX\Revolution\modNamespace
Наверх . . .
modUserMessage
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_user_messages Поля: тип (строка) тема (строка) сообщение (строка) отправитель (целое число) получатель (целое число) частное (целое) date_sent (дата-время) читать (целое число) Псевдонимы: Отправитель -- используйте getOne('Sender') -- возвращает объект MODX\Revolution\modUser Получатель -- используйте getOne('Recipient') -- возвращает объект MODX\Revolution\modUser
Наверх . . .
профиль пользователя
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_user_attributes Поля: внутренний ключ (целое число) полное имя (строка) электронная почта (строка) телефон (строка) мобильный телефон (строка) заблокировано (логическое значение) заблокировано (целое число) заблокировано после (целое число) количество логинов (целое число) последний логин (целое число) этот логин (целое число) failedlogincount (целое число) идентификатор сеанса (строка) доб (целое число) пол (целое число) адрес (строка) страна (строка) город (строка) состояние (строка) почтовый индекс (строка) факс (строка) фото (строка) комментарий (строка) сайт (строка) расширенный (json) Индексы: Индексы: internalKey Псевдонимы: Пользователь -- use getOne('User') -- возвращает объект MODX\Revolution\modUser
Наверх . . .
модусерсеттинг
Расширяет: xPDO\Om\xPDOObject Таблица: modx_user_settings Поля: пользователь (целое число) ключ (строка) значение (строка) хтип (строка) пространство имен (строка) площадь (строка) отредактировано (временная метка) Индексы: Индексы: ПЕРВИЧНЫЕ Псевдонимы: Пользователь -- use getOne('User') -- возвращает объект MODX\Revolution\modUser Пространство имен -- use getOne('Namespace') -- возвращает объект MODX\Revolution\modNamespace
Наверх . . .
модвеблинк
Расширяет: MODX\Revolution\modResource
Наверх . . .
modWorkspace
Расширяет: xPDO\Om\xPDOSimpleObject Таблица: modx_workspaces Поля: имя (строка) путь (строка) создано (отметка времени) активный (логический) атрибуты (массив) Индексы: Индексы: имя, путь, активный Псевдонимы: Пакеты -- use getMany('Packages') -- возвращает массив объектов MODX\Revolution\Transport\modTransportPackage
Наверх . . .
Создание пользовательских пакетов с помощью MODX 3 + GPM
Создание пользовательских пакетов с помощью MODX 3 + GPM
23 июня 2022 г.
MODX 3 вносит множество изменений в способ загрузки пакетов. Наконец-то у нас есть интервал между именами и автозагрузка, совместимые со стандартом FIG, что дает новый способ упаковки ваших дополнений. При обновлении классического приложения GPM или Git Package Management боксер (он же Джон) добавил новую функцию для создания пакета.
На момент написания этой статьи существует ожидающий запрос на закрытие нескольких проблем. Тем не менее, начать работу с новым пакетом очень просто.
В этой статье я расскажу об основных шагах по созданию нового «шаблонного» пакета для MODX 3 с использованием GPM в MODX Cloud.
Предварительные условия
Очевидным предварительным условием является наличие сайта в облаке MODX, чтобы все эти инструкции работали. Вы можете сделать это в другом месте, но вам нужно будет адаптировать инструкции для вашего собственного варианта использования.
Если у вас есть экземпляр MODX Cloud с MODX 3, начните с:
1. SSH на вашем сайте.
2. Сгенерируйте ключ RSA
ssh-keygen -t rsa
3. Установите composer на свой экземпляр
cd ~/www/ завиток http://modx.co/scripts/install.sh | ш source ~/.profile
4. Создайте новую папку, в которой будут храниться ваши пакеты.
компакт-диск ~/www/ mkdir пакеты cd pkgs/
5. Установите GPM в каталог вашего пакета
клон git https://github.com/theboxer/Git-Package-Management.git gpm cd gpm/ядро/компоненты/gpm установка композитора компакт-диск ~/www/pkgs/gpm/bin/ chmod +x ./gpm echo "экспорт PATH=$HOME/www/pkgs/gpm/bin:$PATH" >> ~/.profile источник ~/.профиль gpm gpm:install --corePath=/www/core/
Примечание: Если у вас возникли проблемы с первой командой git clone, которая не может распознать SSL от GitHub, вам может потребоваться временно отключить проверку SSL.
git config --global http. sslVerify false клон git https://github.com/theboxer/Git-Package-Management.git gpm git config --global http.sslVerify true
Исправить системные настройки
Теперь, когда вы установили и настроили GPM, вам, вероятно, потребуется зайти в менеджер MODX и настроить несколько системных настроек. Для начала зайдите в настройки системы и измените пространство имен на gpm , затем проверьте gpm.packages_base_url и gpm.assets_url 9.1294, чтобы убедиться, что они указывают на соответствующий каталог /pkgs/. Ваши настройки должны выглядеть примерно так:
Следующим параметром, который вам нужно настроить, является параметр upload_files . Это не является обязательным требованием, но облегчит разработку. Найдите в системных настройках upload_files и добавьте его с расширениями php и yaml . Это позволит вам более легко редактировать ваши файлы и конфигурацию в пакете, над которым вы работаете.
Создать пакет
Теперь настал момент истины, мы собираемся вернуться в нашу сессию SSH и создать пакет. В этом примере я буду использовать имя «basepackage», окончательные результаты которого вы можете найти по адресу matdave/basepackage. Чтобы создать это, мы будем использовать встроенную команду GPM `package:create`, например:
cd /www/pkgs/ gpm package:create --packageVersion 0.0.1 --lowCaseName basepackage --namespace BasePackage --description "Это базовый пакет для MODX 3" --author matdave --withComposer basepackage BasePackage компакт-диск базовый пакет/ядро/компоненты/базовый пакет/ установка композитора Пакет gpm: установить базовый пакет
Приведенный выше скрипт переходит в каталог пакета, создает пакет, запускает установку композитора для создания зависимостей и, наконец, устанавливает пакет в ваш экземпляр MODX. Теперь вы можете просмотреть пакет в менеджере MODX, чтобы убедиться, что все работает.
Подключение к GitHub
Теперь, когда вы настроили свой пакет, вы можете подключить его к GitHub, чтобы начать разработку. Во-первых, нам понадобится SSH-ключ нашего сайта, который мы создали ранее. Выполните следующую команду и скопируйте вывод.
cat ~/.ssh/id_rsa.pub
Теперь войдите на GitHub.com и создайте новый репозиторий. Вероятно, вы захотите назвать репозиторий так же, как вы назвали свой пакет.
После создания репозитория перейдите в Настройки -> Ключи развертывания и создайте новый ключ развертывания в репозитории. Отсюда вы вставите содержимое id_rsa.pub, которое вы скопировали ранее, в поле Key . Затем присвойте ключу развертывания логический Title 9129.4, обязательно отметьте Разрешить доступ на запись и нажмите Добавить ключ . Теперь вернитесь на главную вкладку Code репозитория и нажмите зеленую кнопку <>Code . Обязательно выберите Локальный > SSH , а затем нажмите кнопку копирования.
Вернитесь в сеанс SSH и выполните следующие команды:
cd /www/pkgs/basepackage/ завиток https://raw.