Готовые решения
Автонумерация алиасов
Этот плагин генерируют алиасов
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:
Отправляем заголовки Last-Modified и Not Modified
Написал небольшой плагинчик для отправки браузеру заголовка Last-Modified и, если браузер спросит If modified since — ответа 304 Not Modified
Вывод RSS сайта через pdoResources
Честно говоря, я не очень люблю всякие рассылки и подписки, мне больше нравится использовать RSS.

Им очень удобно пользоваться — нужно просто зайти скопировать ссылку и вставить её в свой агрегатор новостей, например www.inoreader.com.
Для пущего удобства можно еще установить расширение для Chrome, чтобы вас регулярно уведомляли о свежих записях.
А теперь давайте посмотрим, как можно генерировать RSS с помощью pdoResources.

RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами или онлайн-сервисами.
Им очень удобно пользоваться — нужно просто зайти скопировать ссылку и вставить её в свой агрегатор новостей, например www.inoreader.com.
Для пущего удобства можно еще установить расширение для Chrome, чтобы вас регулярно уведомляли о свежих записях.
А теперь давайте посмотрим, как можно генерировать RSS с помощью pdoResources.