Готовые решения
Сниппет получения всех возможных значений TV
Получает список всех возможных значений и обертывает их в тэги
Выложено с соглания автора
[[!getTvList?name=`название TV`]]
<?
$tv = $modx->getObject('modTemplateVar', array('name' => $name));
$elements = $tv->get('elements');
$element = explode('||', $elements);
$els = array();
$output='';
foreach($element as $e)
{
list($elName, $elId) = explode("==", $e);
//$els[$elId] = $elName;
$output .= '<option value="'.($elId ? $elId : $elName).'">'.$elName.'</option>';
}
return $output;
Автор: modx.pro/users/2430/Выложено с соглания автора
pdoCrumbs Разметка с помощью microdata
Разметка «хлебных крошек» с помощью microdata
Стандартный шаблон pdoCrumbs работает без микродатой чтоб исправит эту надо добавит в шаблон этот код
Обновил код теперь он валидный на w3
Стандартный шаблон pdoCrumbs работает без микродатой чтоб исправит эту надо добавит в шаблон этот код
[[pdoCrumbs? &showAtHome=`0`&showHome=`1` &outputSeparator=``
&tplCurrent=`@INLINE <li><span>[[+menutitle]]</span></li>`
&tpl=`@INLINE <li itemtype="http://data-vocabulary.org/Breadcrumb" itemscope><a href="[[+link]]" itemprop="url" ><span itemprop="title">[[+menutitle]]</span></a><span> / </span></li>`
&tplWrapper=`@INLINE <ul class="breadcrumbs">[[+output]]</ul>`
]]
css.breadcrumbs {float:left; padding:0; margin:0; border:0;}
.breadcrumbs li {display: inline-table;}
Проверит разметкуОбновил код теперь он валидный на w3
Автонумерация алиасов
Этот плагин генерируют алиасов
site.ru/news/1/
site.ru/news/2/
site.ru/news/1/
site.ru/news/2/
Включите Дружественные URL и Автоматически генирировать псевдонимСоздайте новый плагин событиям OnDocFormSave
<?php
if ($modx->event->name == 'OnDocFormSave') {
// Категории
if (in_array($resource->parent, array(1,2,3,4))) {
$i = 1;
$where = array('parent' => $resource->parent, 'alias' => $i, 'id:!=' => $resource->id);
if ($modx->getCount('modResource', $where) > 0)
{
while ($modx->getCount('modResource', $where) > 0)
{
$i++;
$where['alias'] = $i;
}
}
// Устанавливаем алиас
$resource->set('alias', $i);
$resource->save();
// Удаляем из URI суффикс .html
$uri = preg_replace('@\.html$@', '', $resource->uri);
// Устанавливаем URI. Пример /catalog/1
$resource->set('uri', $uri);
$resource->set('uri_override', 1);
$resource->save();
}
}
Автор плагина: Брежнев Иван (vanchelo) Ловля ошибок при отправке почты с сайта
Добрый день, сообщество!
Как многим известно, у объекта modUser есть замечательный метод modUser::sendEmail, который позволяет отправлять пользователю письмо буквально в одну строчку. Не надо вручную инициировать службу modPHPMailer, выяснять email пользователя — всё это уже сделали за Вас разработчики MODX в этом методе.
Но есть один недостаток — метод возвращает только булево значение.
Как многим известно, у объекта modUser есть замечательный метод modUser::sendEmail, который позволяет отправлять пользователю письмо буквально в одну строчку. Не надо вручную инициировать службу modPHPMailer, выяснять email пользователя — всё это уже сделали за Вас разработчики MODX в этом методе.
Но есть один недостаток — метод возвращает только булево значение.
[alpha] Реализация магазинов пользователей
Все выстроиол на поле weight (ниразу им не пользовался по назначению).
Смысл работы:
Пользователь регистрируется и попадает в группу usershop.
Есть страница создания товара, на ней выводится usCreateProduct, при создании сниппет получает id пользователя и записывает его в weight.
Внутри товара выводится сниппет usEditProduct который проверяет пользователя на наличие группы usershop и поле weight на соответствие id пользователя.
На странице заказов выводится usOrders который получает все заказы, в которых ищет weight=id пользователя (тот, что в группе usershop) и выводит заказанные товары ну и все поля заказа.
Смысл работы:
Пользователь регистрируется и попадает в группу usershop.
Есть страница создания товара, на ней выводится usCreateProduct, при создании сниппет получает id пользователя и записывает его в weight.
Внутри товара выводится сниппет usEditProduct который проверяет пользователя на наличие группы usershop и поле weight на соответствие id пользователя.
На странице заказов выводится usOrders который получает все заказы, в которых ищет weight=id пользователя (тот, что в группе usershop) и выводит заказанные товары ну и все поля заказа.
Повышаем конверсию на сайте...
Реализация выбора города
Василий, большое спасибо за уроки по созданию компонента! Весь день усиленно вчитываюсь)
Маленькая проба пера — компонент по выбору города.
Есть на демо сайте — тут
joxi.ru/J3acU_3JTJAsY2beWkM
Маленькая проба пера — компонент по выбору города.
Есть на демо сайте — тут
joxi.ru/J3acU_3JTJAsY2beWkM
Объектная модель MODX
Недавно обнаружил в репозитории сниппет ObjectExplorer от Боба Рея. Этот сниппет позволяет на своем сайте сделать справочную страничку со списком всех объектов MODX.

5 колонок в Twitter Bootstrap
Эта тема не имеет прямого отношения к MODx, но может пригодится тем кто использует Theme.Bootstrap.
В последнем проекте понадобилось вывести контент в 5 колонок, при этом сохранить полную работоспособность Twitter Bootstrap 3. Найти с ходу решение в сети не получилось и я сам нашёл довольно интересное решение. Для тех кому интересно решение — прошу под кат.
В последнем проекте понадобилось вывести контент в 5 колонок, при этом сохранить полную работоспособность Twitter Bootstrap 3. Найти с ходу решение в сети не получилось и я сам нашёл довольно интересное решение. Для тех кому интересно решение — прошу под кат.
Фильтрация по выпадающему списку для mFilter2
Может кому-то пригодится небольшое решение с подключением Bootstrap-select
Пример рабочего select с поиском без правки скрипта, благодаря label:
Пример рабочего select с поиском без правки скрипта, благодаря label: