Готовые решения

Вывод товаров с определенным цветом

Вывод товаров определенного цвета:
[[!msProducts?
	&parents=`0`
	&innerJoin=`{"Options":{"class":"msProductOption"}}`
	&groupby=`msProduct.id`
	&where=`{"Options.key":"color","Options.value:IN":["Белый","Белая"]}`
]]
Вывод товаров с нужным именем файла-изображения:
[[!msProducts?
	&parents=`0`
	&innerJoin=`{"msProductFile":{"alias":"File","on":"msProduct.id = File.product_id"}}`
	&groupby=`msProduct.id`
	&where=`{"File.name:LIKE":"%IMG_0049%"}`
]]
Не больше 2х LIKE, если не знаешь точного имени:
&where=`{"File.name:LIKE":"%file1%","OR:File.name:LIKE":"%file2%"}`
или сколько угодно в IN, если знаешь:
&where=`{"File.name:IN":["file1.jpg","file2.jpg"]}`
Wassi Wassinen
27 сентября 2014, 18:23
7
2 324
0

Сниппет проверки прав доступа по группам

Простой сниппет для проверки прав доступа, при выполнении которого выводится чанк.

Может пригодится для вывода кнопок редактирования/добавления страницы соответствующим группам (журналисты, модераторы и тд).
+ существует проверка доступа, если авторизованный пользователь = автор страницы.
Razer
25 сентября 2014, 08:50
7
1 686
0

pdoMenu Исправление циклических ссылок

Очередной решения для сео продвижения modx revolution с помощью pdoTools.

Циклические ссылки — это ссылки, направляющие пользователя на ту же страницу, где он находится. Они крайне нежелательны на сайте, поскольку вводят посетителя в заблуждение. Ссылочный вес по таким ссылкам не передаётся и для продвижения они бесполезны.

Если вы установили pdoMenu на главной странице сайта то seo анализ выводи ошибку
На вашем сайте выявлено XX циклических ссылок — страницы ссылающиеся сами на себя

XX это количество урл на меню примеру:

modx.pro
Блоги и Пользователи когда активна страница то код вывода
<li class="active"><a href="https://modx.pro/users/">Пользователи</a></li>
Что открытая страница ссылают сам на себя.
Правильный варианты
1
<li class="active"><a href="https://modx.pro/users/" rel="nofollow">Пользователи</a></li>
2
<li class="active"><a href="#">Пользователи</a></li>
3
<li class="active">Пользователи</li>
За вывод этого кода отвечает
&tplHere=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>`
TITAN-UZ
10 сентября 2014, 15:47
1
3 568
+1

Сниппет получения всех возможных значений 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/
Выложено с соглания автора
Николай Загумённов
10 сентября 2014, 13:48
2
938
+2

pdoCrumbs Разметка с помощью microdata

Разметка «хлебных крошек» с помощью microdata

Стандартный шаблон 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
TITAN-UZ
07 сентября 2014, 14:40
12
4 222
+3

Автонумерация алиасов

Этот плагин генерируют алиасов
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)
TITAN-UZ
19 августа 2014, 11:31
4
886
+2

Ловля ошибок при отправке почты с сайта

Добрый день, сообщество!

Как многим известно, у объекта modUser есть замечательный метод modUser::sendEmail, который позволяет отправлять пользователю письмо буквально в одну строчку. Не надо вручную инициировать службу modPHPMailer, выяснять email пользователя — всё это уже сделали за Вас разработчики MODX в этом методе.

Но есть один недостаток — метод возвращает только булево значение.
Антон Фомичёв
18 июля 2014, 07:57
13
1 928
+10

[alpha] Реализация магазинов пользователей

Все выстроиол на поле weight (ниразу им не пользовался по назначению).

Смысл работы:

Пользователь регистрируется и попадает в группу usershop.
Есть страница создания товара, на ней выводится usCreateProduct, при создании сниппет получает id пользователя и записывает его в weight.
Внутри товара выводится сниппет usEditProduct который проверяет пользователя на наличие группы usershop и поле weight на соответствие id пользователя.

На странице заказов выводится usOrders который получает все заказы, в которых ищет weight=id пользователя (тот, что в группе usershop) и выводит заказанные товары ну и все поля заказа.
but1head
16 июля 2014, 21:34
6
1 473
+3

Повышаем конверсию на сайте...

Компонент предназначенный для увеличения конверсии на сайте.
Выводит модальное окно с каким либо призывом или формой.
Можно указать сниппет для вывода формы или еще чего…

Володя
23 июня 2014, 18:15
6
1 327
+7

Реализация выбора города

Василий, большое спасибо за уроки по созданию компонента! Весь день усиленно вчитываюсь)
Маленькая проба пера — компонент по выбору города.
Есть на демо сайте — тут
joxi.ru/J3acU_3JTJAsY2beWkM
Володя
14 июня 2014, 16:16
12
7 294
+7