Как убрать часть 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.
Читать дальше
Оптимизация загрузки сайта. Количество запросов.
12 ноября 2018, 12:04
Часто возникает необходимость посмотреть какое количество запросов идёт к сайту, для его последующей оптимизации для загрузки страниц. Вот такой код нужно вставить в ваш шаблон или чанк и вы сможете посмотреть все необходимые параметры:
Выводит время потраченное на запросы к базе данных - [^qt^]
Выводит количество запросов к базе данных - [^q^]
Выводит время потраченное на работу PHP скриптов - [^p^]
Выводит общее время потраченное на генерацию страницы - [^t^]
Выводит источник содержимого (база данных или кэш) - [^s^]
Тег [^s^] выведите на странице — будет видно, откуда берется страница, из кеша или генерируется.
Читать дальше
Обзор компонента SEO Pro
03 октября 2018, 09:55
Недавно совершенно случайно наткнулся на компонент SEO Pro от компании sterc (которая разрабатывает MODX3). Компонент будет незаменим для SEO специалистов, т.к. он добавляет к полям подсказки (сколько символов в title или в meta тэге description), а также добавляет пример отображения вашего содержимового в сниппете Google. В шаблоне же, вы можете использовать такие конструкции для вывода ваших заголовков:
{'seoPro.title' | placeholder}
{'seoPro.keywords' | placeholder}
Также у компонента есть системные настройки, чтобы вы могли сами выставить количество символов, которое вам необходимо.
Читать дальше
Настройка 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
Читать дальше
ComboBox с данными из другой таблицы modExtra
27 сентября 2018, 19:09
При написании своего компонента на заготовке modExtra не редко встаёт задача сделать в какой-то таблицы возможность добавления данными через select из другой таблицы. На выходе у нас должно получиться что-то типа этого:
Читать дальше
Fenom в MODX (шпаргалки)
01 июля 2018, 13:13
Fenom — это быстрый и удобный шаблонизатор, который очень схож со Smarty (в плане синтаксиса), но является намного лучше! С его помощью Вы можете ускорить разработку, время на выполнение запросов, сократить количество чанков, использовать циклы прям в чанках/шаблонах и многое другое.
В MODX шаблонизатор Fenom появился в 2015 году, с выходом обновления pdoTools 2.0. Теперь когда вы устанавливается pdoTools, парсер Fenom уже активен, но не обрабатывает страницы и шаблоны сайта.
Для того, чтобы включить fenom (обработку страниц и шаблонов сайта), необходимо активировать параметр pdotools_fenom_parser в системных настройках.
Читать дальше
mFilter2 и фильтрация через select по (Популярным товарам и их Ценам)
28 марта 2018, 18:05
Вывод сниппета 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',
]}
Читать дальше
Дополнительные поля профиля User (не extended)
28 марта 2018, 17:39
Потребовалось на одном проекте в форму профиля добавить для пользователей дополнительные поля. Отдельно Имя, Фамилия, Отчество и поля для добавления ссылок на социальные группы.
Инструкция получения дополнительных полей, как на скриншоте выше
Первым делом идём в 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;
Читать дальше
Проблемы с провайдерами VK и Facebook в HybridAuth
28 марта 2018, 16:27
Недавно заметил что авторизация через VK и Facebook перестали работать, после долгих поисков решения оно было найдено. Сейчас подробно опишу действия которые нужно сделать для того чтобы всё у вас заработало. Начнём с провайдера Vkontakte. Для начала нужно зайти на сервер и заменить содержание файла по пути /www/site.com/core/components/hybridauth/vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/Vkontakte.php
следующим содержимым:
Читать дальше
22 марта 2016, 18:08
Андрей 1