Готовые решения
pdoMenu Исправление циклических ссылок
Очередной решения для сео продвижения modx revolution с помощью pdoTools.
Если вы установили pdoMenu на главной странице сайта то seo анализ выводи ошибку
На вашем сайте выявлено XX циклических ссылок — страницы ссылающиеся сами на себя
XX это количество урл на меню примеру:
modx.pro
Блоги и Пользователи когда активна страница то код вывода
Правильный варианты
1
Циклические ссылки — это ссылки, направляющие пользователя на ту же страницу, где он находится. Они крайне нежелательны на сайте, поскольку вводят посетителя в заблуждение. Ссылочный вес по таким ссылкам не передаётся и для продвижения они бесполезны.
Если вы установили 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>`
Сниппет получения всех возможных значений 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. Найти с ходу решение в сети не получилось и я сам нашёл довольно интересное решение. Для тех кому интересно решение — прошу под кат.