Содержание

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.

А внутри встроен xPDO3 с переходниками.
Сгенерировать модель для дополнений, например miniShop2, чтобы оно работало в MODX3 можно только на MODX2.

Потому что xPDO3 в составе MODX3 генерирует модель с namespaces, которая не работает со старой моделью ядра.

Поэтому текущая задача состоит в том, чтобы:

  • Перевести само ядро на модель нового формата. Потому что сейчас сам MODX3 для себя модель генерирует новой версии, а работать с ней не может
  • Перевести все сложные дополнения на эту новую модель, чтобы они могли собираться на xPDO3, на котором работает MODX3

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

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

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

В итоге — огромный pull request со 100 000 строк изменений, с namespaces и автозагрузкой классов, где не нужно делать file_exists при вызове классов. И я не ожидал, что его примут, я надеялся посмотреть, как забегает руководство MODX, которое ранее заявляло, что такая переделка практически невозможна.

Но реакция была несколько неожиданной. Типа, «что-то сильно дофига изменений, нам такое не надо, у нас MODXCloud от этого сломается и вообще». С тех пор (а все обсуждения закончились в августе 2018) мы и стоим на месте.

Советую вам почитать комментарии под этим PR, там много интересного.

И вот недавно вышел долгожданный MODX 2.7 с огромным количеством изменений, и его уже влили в ветку 3.х, так что теперь мой PR уже технически невозможно принять — его нужно делать заново. А желающих пока не видно.

Еще раз, если кто не понял. В текущей версии MODX3 не генерируется модель ни для его ядра, ни для любых дополнений. Точнее, генерируется, но он сам с ней работать не может.
Когда вы тестируете текущую сборку MODX3, и установку дополнений, сделанных для MODX2, и радуетесь, если всё завелось — это не имеет значения. Потому что на данный момент, обновления этих дополнений для MODX3 нужно собирать на MODX2.

При этом, есть сообщения о том, что это можно сделать как-то лучше и элегантнее, чем сделал я, но никаких подтверждений в коде и PR нет.
В общем, всё и встало. Низы не могут, верхи не хотят — Revolution подтверждает своё название.

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

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

20182019 году?

Весь затык ведь в уже интегрированном xPDO3, который встроен в MODX3 несколько лет назад. Эта работа была начата, но не окончена! И при попытке её закончить, мне говорят о «слишком больших изменениях, которые сломают обратную совместимость». И это в новой мажорной версии, которая по определению может ломать что угодно!

Компания MODX LLC, которая владеет MODX, пока не делает никаких заявлений. На Github идут приготовления патч версии 2.7.1 и правки внешнего вида MODX3. С ядром и моделью, насколько я вижу, никто не работает. Версия 3.x до сих пор не стала в репозитории «по умолчанию».

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

x — ничего никуда не сдвинется.

Это вся информация о текущем состоянии 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 | 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.
Назад Вперёд

История выпусков MODX — SiteDash, возьмите под контроль свои сайты MODX

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.