MODX

Как убрать часть URL при сохранении Tickets

20 января 2020, 17:56

Возникла необходимость обрезания URL'ов для сайта modx.one, чтобы все тикеты сохранялись с короткой и однообразной ссылкой вида https://modx.one/t/657/. Для этого необходимо произвести следующие действия. У секции с тикетами нужно настроить "Формирование URI" следующим образом:

%id%ext

Чтобы %ext не выводил по умолчанию .html нужно в верхнем меню зайти в Содержимое -> Типы содержимого и изменить поле .html на слэш /.

После чего вешаем плагин

<?php
switch ($modx->event->name) {
    case 'OnDocFormSave':
        $resid = $resource->get('id');
        $uriedit = 't/'. $resid . '/';
        $resource->set('uri', $uriedit);
        $resource->save();
        break;
    case 'OnBeforeDocFormSave':
        $resid = $resource->get('id');
        $uriedit = 't/'. $resid . '/';
        $resource->set('uri', $uriedit);
        $resource->save();
        break;
    case 'OnTicketThreadOpen':
        $resid = $resource->get('id');
        $uriedit = 't/'. $resid . '/';
        $resource->set('uri', $uriedit);
        $resource->save();
        break;
}

на события OnDocFormSave, OnBeforeDocFormSave, OnTicketThreadOpen.


Читать дальше
MODX.ONE
0    12796    4
+2

Оптимизация загрузки сайта. Количество запросов.

12 ноября 2018, 12:04

Часто возникает необходимость посмотреть какое количество запросов идёт к сайту, для его последующей оптимизации для загрузки страниц. Вот такой код нужно вставить в ваш шаблон или чанк и вы сможете посмотреть все необходимые параметры:

Выводит время потраченное на запросы к базе данных - [^qt^]
Выводит количество запросов к базе данных - [^q^]
Выводит время потраченное на работу PHP скриптов - [^p^]
Выводит общее время потраченное на генерацию страницы - [^t^]
Выводит источник содержимого (база данных или кэш) - [^s^]

Тег [^s^] выведите на странице — будет видно, откуда берется страница, из кеша или генерируется.


Читать дальше
MODX.ONE
0    2741    0
0

Обзор компонента SEO Pro

03 октября 2018, 09:55

Обзор компонента SEO Pro

Недавно совершенно случайно наткнулся на компонент SEO Pro от компании sterc (которая разрабатывает MODX3). Компонент будет незаменим для SEO специалистов, т.к. он добавляет к полям подсказки (сколько символов в title или в meta тэге description), а также добавляет пример отображения вашего содержимового в сниппете Google. В шаблоне же, вы можете использовать такие конструкции для вывода ваших заголовков:

{'seoPro.title' | placeholder} 
{'seoPro.keywords' | placeholder}

Также у компонента есть системные настройки, чтобы вы могли сами выставить количество символов, которое вам необходимо.

системные настройки SEO Pro


Читать дальше
MODX.ONE
0    3494    0
+2

Настройка MySQL 5.7 для работы pdoTools

02 октября 2018, 09:18

Существует проблема с выводом данных через компонент pdoTools, а связано это с настройками sql-mode в MySQL 5.7

Чтобы пофиксить эту проблему нужно изменить параметр sql-mode и перезапустить сервер MySQL. Вот что должно получиться:

sql-mode

NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Читать дальше
MODX.ONE
1    2568    0
+1

ComboBox с данными из другой таблицы modExtra

27 сентября 2018, 19:09


При написании своего компонента на заготовке modExtra не редко встаёт задача сделать в какой-то таблицы возможность добавления данными через select из другой таблицы. На выходе у нас должно получиться что-то типа этого:


Читать дальше
MODX.ONE
1    4579    1
+4

Fenom в MODX (шпаргалки)

01 июля 2018, 13:13

Fenom — это быстрый и удобный шаблонизатор, который очень схож со Smarty (в плане синтаксиса), но является намного лучше! С его помощью Вы можете ускорить разработку, время на выполнение запросов, сократить количество чанков, использовать циклы прям в чанках/шаблонах и многое другое.

В MODX шаблонизатор Fenom появился в 2015 году, с выходом обновления pdoTools 2.0. Теперь когда вы устанавливается pdoTools, парсер Fenom уже активен, но не обрабатывает страницы и шаблоны сайта.

Для того, чтобы включить fenom (обработку страниц и шаблонов сайта), необходимо активировать параметр pdotools_fenom_parser в системных настройках.


Читать дальше
MODX.ONE
0    9306    0
0

mFilter2 и фильтрация через select по (Популярным товарам и их Ценам)

28 марта 2018, 18:05

mFilter2 и фильтрация через select по (Популярным товарам и их Ценам)

Вывод сниппета mFilter2 выглядит у нас следующим образом:

{'!mFilter2' | snippet : [
                    'parents' => $_modx->resource.id,
                    'limit' => 12,
                    'class' => 'msProduct',
                    'element' => 'msProducts',
                    'tpl' => 'tpl.Site.msFilter2.productTpl',
                    'tplOuter' => 'tpl.Site.mFilter2.outerTpl',
                    'tplPageWrapper' => '@INLINE [[+pages]]',
                    'tplPage' => '@INLINE <a href="[[+href]]">[[+pageNo]]</a>',
                    'tplPageActive' => '@INLINE <a class="selected" href="[[+href]]">[[+pageNo]]</a>',
                    'where' => '{"class_key":"msProduct"}',
                    'suggestions' => 'true',
                    'filters' => '
                        ms|width:select,
                        ms|height:select,
                        ms|length:select,
                        ms|made_in:checkbox,
                        ms|vendor:vendors,
                    ',
                    'sort' => '
                        ms|price:desc
                    ',
                    'tplFilter.outer.ms|vendor' => 'tpl.Site.mFilter2.filter.outer',
                    'tplFilter.row.ms|vendor' => 'tpl.Site.mFilter2.filter.checkbox',
                    'tplFilter.outer.ms|made_in' => 'tpl.Site.mFilter2.filter.outer',
                    'tplFilter.row.ms|made_in' => 'tpl.Site.mFilter2.filter.checkbox',
                    'tplFilter.outer.ms|width' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.outer.ms|height' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.outer.ms|length' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.row.ms|width' => 'tpl.Site.mFilter2.filter.select.whl',
                    'tplFilter.row.ms|height' => 'tpl.Site.mFilter2.filter.select.whl',
                    'tplFilter.row.ms|length' => 'tpl.Site.mFilter2.filter.select.whl',
                    'tplFilter.outer.ms|popular' => 'tpl.Site.mFilter2.filter.outer.whl',
                    'tplFilter.row.ms|popular' => 'tpl.Site.mFilter2.filter.select.whl',
]}

Читать дальше
SEQUEL.ONE
1    7190    0
+1

Дополнительные поля профиля User (не extended)

28 марта 2018, 17:39

Дополнительные поля профиля User (не extended) modx revo

Потребовалось на одном проекте в форму профиля добавить для пользователей дополнительные поля. Отдельно Имя, Фамилия, Отчество и поля для добавления ссылок на социальные группы.

Инструкция получения дополнительных полей, как на скриншоте выше

Первым делом идём в phpMyAdmin (или что-то подобное) и создаём:

столбец name в таблице modx_user_attributes:

ALTER TABLE `modx_user_attributes` ADD `name` VARCHAR(255) NOT NULL;

столбец surname в таблице modx_user_attributes:

ALTER TABLE `modx_user_attributes` ADD `surname` VARCHAR(255) NOT NULL;

столбец lastname в таблице modx_user_attributes:

ALTER TABLE `modx_user_attributes` ADD `lastname` VARCHAR(255) NOT NULL;

Читать дальше
SEQUEL.ONE
1    6996    0
+1

Проблемы с провайдерами VK и Facebook в HybridAuth

28 марта 2018, 16:27

Недавно заметил что авторизация через VK и Facebook перестали работать, после долгих поисков решения оно было найдено. Сейчас подробно опишу действия которые нужно сделать для того чтобы всё у вас заработало. Начнём с провайдера Vkontakte. Для начала нужно зайти на сервер и заменить содержание файла по пути /www/site.com/core/components/hybridauth/vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/Vkontakte.php следующим содержимым:


Читать дальше
SEQUEL.ONE
1    13702    0
+1