Рассмотрим базовые функции применения API Modx Revo, такие как получение документа, поля документа, дополнительного параметра, вызов сниппетов и чанков.
Подключаем Modx API.
define(‘MODX_API_MODE’, true); require_once($_SERVER[‘DOCUMENT_ROOT’].’/index.php’); $modx = new modX(); $modx->initialize(‘web’);
Получаем коллекцию документов
$docs = $modx->getCollection(‘modResource’, array(‘parent’ => 3)); // Перебираем документы foreach ($docs as $doc) < echo $doc->id.’ — ‘.$doc->pagetitle; >
Еще один способ получения коллекции.
Он «шире» первого и позволяет задавать дополнительные условия, например, сортировку
$q = $modx->newQuery(‘modResource’); $q->where(array( ‘parent’ => 5 )); $q->sortby(‘menuindex’, ‘asc’); $docs = $modx->getCollection(‘modResource’, $q);
Получаем документ
$doc = $modx->getObject(‘modResource’, 14); // Или так $doc = $modx->getObject(‘modResource’, array(‘alias’ => ‘our-alias’));
Получаем поля документа
echo $doc->pagetitle.’ — ‘.$doc->content;
Работаем с tv-параметрами
$tags = $doc->getTVValue(‘tags’); echo $tags; $tags = ‘Modx, Modx API, бекэнд’; $doc->setTVValue(‘tags’, $tags);
Примечание
Видеоурок 5. Использование компонента pdoTools в CMS MODX
При создании нового ресурса, если мы назначаем ему TV-параметр, то нужно вызвать метод save() после каждого задания параметра. В противном случае есть вариант, что дополнительный параметр не сохранится.
Вызываем сниппет с параметрами
$res = $modx->runSnippet(‘print_word’, array(‘word’ => ‘test’)); echo $res;
Получаем и выводим содержимое чанка
$chunk = $modx->getChunk(‘item_post’); echo $chunk;
Заходите в группу в контакте — https://vk.com/webdevkin
Анонсы статей, обсуждения интернет-магазинов, vue, фронтенда, php, гита.
Истории из жизни айти и обсуждение кода.
Источник: webdevkin.ru
Динамический список значений в TV-параметре
Если Вы используете в своих проектах TV-параметры, то наверняка знаете, что для них можно задавать список возможных значений. А что же делать, если список должен быть динамическим? Для чего это нужно, лучше проиллюстрировать на примере.
На сайте есть раздел «Каталог авто». Каждый дочерний документ в каталоге – это марка машины. Кроме этого, есть раздел «Статьи», конечно же на тему автомобилей:) В каждой статье может упоминаться об одной или нескольких марках машин. И мы решили, для лучшей навигации сайта, указывать, о каких марках идёт речь в конкретной статей (можно провести аналогию с тегами).
Рис.1 — Дерево документов
Создаём TV-параметр, назовём его autolist. В поле «Возможные значения» можем просто перечислить все марки из нашего каталога. Но у этого способа есть ряд недостатков. Во-первых, нам лень делать это вручную. Во-вторых, если в каталог добавится ещё хоть одна марка, мы должны не забыть дописать ее в этот списке.
Перенос верстки в MODx. Дополнительные поля TV MODx
В-третьих, используя статический список (например, BMW||Honda||Porshe) в базе данных значение параметра autolist будет хранится в таком же (словесном) виде. И если вдруг придётся переименовать, или исправить ошибку в названии марки авто, такие записи в таблице станут нерабочими.
Рис.2 — Статический список значений TV-параметра
Чтобы забыть про все эти проблемы создадим динамический список автомобилей. В списке авто, на странице статьи, будут выводится все текущие документы (марки) из папки «Каталог авто». Для этого в поле «Возможные значения» в режиме редактирования TV-параметра, вызовем сниппет:
Рис.3 — Динамический список значений TV-параметра
Скорее всего, для многих уже стало всё предельно ясно, но я продолжу. Итак создаём сниппет формирования списка авто:
//—————————————————————————- // выбираем неудалённые документы их папки «каталог авто» (3) //—————————————————————————- $query=»SELECT id, pagetitle FROM modx_site_content WHERE parent=3 AND deleted=0 ORDER by pagetitle»; $result=mysql_query($query) or die(‘Database query error!’); $Autos=array(); while ($Data=mysql_fetch_object($result))< $Autos[$Data->id]=$Data->pagetitle; > //—————————————————————————- // формируем строку для вывода в поле «Возможные значения» // в формате (||название==id||название==id) //—————————————————————————- $list=»; foreach ($Autos as $id=>$auto) < $list.=’||’.$auto.’==’.$id; > return $list; ?>
Стоит пояснить формат вывода: ||название==id||название==id:
- первый разделитель с строке «возможные значения» даст в результате пустой первый элемент списка
- || — разделить (отделяет один пункт списка от другого)
- название – видимая часть пункта списка
- id — значение пункта списка
То есть html-код вывода TV-параметра autolist на странице документа будет следующий:
«tvauto[]» name=»tvauto[]» multiple=»multiple» onchange=»documentDirty=true;» size=»8″> «»> «10»>Audi «4»>BMW . «15»>Volkswagen
Рис.5 — TV-параметр с динамическим списком значений на странице документа
В базе данных значение TV-параметра будет следующим:
Рис.6 — Запись в базе данных
Полезное
- Подсветка php-кода для сайта
- Сколько зарабатывают веб-разработчики?
- Рассуждения о задачах разработчика
- Правила работы с UTF-8
- Подходы к реализации меню
CMS MODx
- Перенос сайта на новый хостинг (на примере CMS Modx)
- Динамический список значений в TV-параметре
CMS MODx — админка
- Общий вид
- Наполнение сайта
- Состояние документа
- Конфигурации сайта
- Словарь терминов
PHP
- Слияние массивов в PHP
- Задачки на знание PHP для начинающих
- Unable to load dynamic library php_curl.dll
- Изображение [] не может быть показано, так как содержит ошибки.
Источник: scabbiaza.net
MODX: Управление сайтом
Как быстро создать новые страницы на сайте? Сложно ли изменить текст на странице и цену товаров? Как управлять сайтом на модекс?
3.5K открытий
О системе MODX
MODX — это инструмент (CMS) для управления, редактирования, обновления контента на сайте.
Почему стоит выбрать MODX
Modx не ограничивает веб-мастера в свободе выражения, предлагая сделать сайт любого типа — от простого одностраничника с предложением услуги до корпоративного сайта или интернет-магазина.
- Простая, интуитивно понятная панель администратора.
- Удобный и функциональный модуль SEO, позволяющий указать настройки, необходимые для внутренней оптимизации и продвижения страницы в поисковых системах.
- Адекватные требования к хостингу. Для работы Modx достаточно наличия базы данных MySQL, веб-сервера Apache или IIS и поддержка PHP.
- Собственный синтаксис тегов. Сначала это кажется необычным, но на практике становится ясно, что такой подход позволяет оставлять код шаблона чистым и понятным, в отличие от других Open Source CMS.
- Благодаря быстрому и удобному шаблонизатору Fenom можно значительно ускорить разработку проекта, время на выполнение запросов, сократить количество чанков, использовать циклы в чанках/шаблонах и многое другое. Если говорить простым языком — проект будет работать быстро, а разработчику CMS не будет вставлять палки в колеса.
Меня зовут Татьяна Кукушкина, я работаю в веб-студии Zingy Projects, специализирующейся на разработке веб-сайтов на платформе modx и фреймворках Laravel, Yii2.
На написание этой статьи меня сподвигли частые вопросы наших клиентов о том, как использовать модекс. Если вы никогда не сталкивались с этой системой, и опасаетесь, что потратите слишком много времени, чтобы разобраться в ней, то не беспокойтесь. После прочтения статьи вы во всем разберетесь. Время чтения этого текста составляет всего 5 минут.
Мировому сообществу и нам нравится эта система, она бесплатная (Open Source) и удобная, поэтому она эффективно решает бытовые вопросы ведения веб-сайта. Я часто сравниваю ее использование с созданием странички в ВК, когда объясняю заказчикам, как они будут вносить информацию на сайт. Много полей, заполняешь, сохраняешь и смотришь как выглядит страница. Все очень просто! Убедитесь сами!
Изменить текст на главной
Изменение текста на главной странице я покажу на сайте нашей компании, на других сайтах я не имею права проводить такие эксперименты. Вот тут вы можете посмотреть, как выглядит главная страница —
Открываем админку, нажимаем на нужный раздел и сразу видим список товаров с ценами.
Цену можно изменить прямо тут. Нужно кликнуть мышкой два раза на цену и появится окно редактирования. Далее нажимаем ENTER и все! Очень удобно и не надо проваливаться в карточку товара.
Также можно и провалиться в карточку товара и изменить цену там.
Нажав на правую клавишу мыши (открывается окно с выбором действия). Выбираем изменить и сохраняем. Все!
Изменение цены по двойному щелчку без открытий карточек товаров и лишних махинаций. Модекс очень удобная и простая система, к ней нужно только привыкнуть, если вы работали на другой.
Надеюсь, что теперь Вам стало понятнее, как работать с системой администрирования Modx. Задавайте вопросы, на все отвечу.
Источник: vc.ru