Пошаговые инструкции
Закрываем служебные директории MODX в Apache
В одной статье, касающейся безопасности, Василий дал очень хорошую рекомендацию по защите служебных папок. Реализовав это на своём хостинге, решил написать инструкцию, так как начинающие изучать MODX могут столкнуться с ошибкой 404, как Я например.
Вывести только тикеты с рейтингом больше нуля
1 300
Итак, если вам нужно вывести тикеты с рейтингом выше ноля, то эту задачу можно решить двумя способами. Первый для высоконагруженных проектов, второй для менее нагруженных.
Первый вариант (относительно сложный в реализации, но выигрывает по скорости при большой выборке ресурсов):
Первый вариант (относительно сложный в реализации, но выигрывает по скорости при большой выборке ресурсов):
- Заходите в phpmyadmin.
- Выбираете таблицу modx_site_content
- — Переходите в закладку «структура»
- — Внизу открывшегося окна нажимаете ОК (Добавить 1 поле в конец таблицы)
Имя: ticket_rating Тип: int Длина/значение: 10 По умолчанию: Как определено (0) Null: галочка
- Сохраняем
Правильные username при регистрации пользователя
1 500
Всем привет. Часто встречается ситуация, когда на сайте при регистрации через Office пользователи указывают username вида "--- --", «валя краля», "___ __", «yesy@yesy.ru» и т.д. Хотелось бы, чтобы при регистрации использовали только английские буквы, тире, нижнее подчеркивание и цифры.
Приступим:
1. Создаем плагин с следующим содержанием:
Приступим:
1. Создаем плагин с следующим содержанием:
<?php
if ($modx->event->name == 'OnBeforeUserFormSave') {
if (!preg_match("/^[a-zA-Z0-9-_]+$/", $user->username)) $modx->event->output('Имя пользователя должно содержать английские буквы, символы "-", "_" и цифры');
}
Рейтинг пользователя - общий, тикеты и комментарии
1 500
Выводим рейтинг пользователя как на modx.pro joxi.ru/eAOYVYPI476nQm
Т.е., выводим рейтинг общий, рейтинг за тикеты (Tickets) и рейтинг за комментарии.
1. Создаем сниппет getAuthorRating:
Т.е., выводим рейтинг общий, рейтинг за тикеты (Tickets) и рейтинг за комментарии.
1. Создаем сниппет getAuthorRating:
<?php
$userId = intval($userId);
if ($author = $modx->getObject('TicketAuthor',$userId)) $modx->setPlaceholders($author->toArray());
return;
2. Там где нужно вывести рейтинг:[[!getAuthorRating? &userId=`[[+ID_пользователя]]`]]
<p>Рейтинг [[+rating]]</p>
<p>Рейтинг тикетов + [[+votes_tickets_up]] / - [[+votes_tickets_down]]</p>
<p>Рейтинг комментариев + [[+votes_comments_up]] / - [[+votes_comments_down]]</p>
Закалка MODX Revolution (перевод)
Своего писать я пока сомневаюсь, уровень не тот, а вот перевести полезную статью с официальной документации — это с удовольствием. Перевод местами может показаться несколько вольным, что касается формулировок, — иначе переводить скучно. Но в том, что касается технических деталей, старался быть дотошно точным. Так что, если найдёте технические неточности — ругайтесь в комментах. А на филологию прошу не жаловаться:) И тем более на идеологические расхождения с Вашим мировоззрением — тут все вопросы к авторам доков. Паранойи и почвы для громких споров среди «экспертов по безопасности» в статье предостаточно. Помни, о читатель, всё это касается в первую очередь важных и заметных проектов.
Добро пожаловать под кат.
Добро пожаловать под кат.
Страница пользователя как на modx.pro
1 1 000
Реализация страницы пользователя как на mоdx.pro (https://modx.pro/users/bezumkin/). Не используются дополнения virtualPage и userProfile\userProfile2 из-за их глючности и конфликтов с другими дополнениями. Все протестировано на рабочем проекте.
Скрываем config.core.php
Я давненько на своих сайтах меняю адрес админки и папки /connectors/
Мне нравится, что MODX позволяет это делать и очень сложно обнаружить, что сайт работает на нём. Но тут Николай Ланец смутил меня тем, что MODX можно определить еще и по файлу /config.core.php в корне. Да, он не выдаёт никакой информации, но показывает белый экран, а веб-сервер отдаёт ответ 200.
Мне нравится, что MODX позволяет это делать и очень сложно обнаружить, что сайт работает на нём. Но тут Николай Ланец смутил меня тем, что MODX можно определить еще и по файлу /config.core.php в корне. Да, он не выдаёт никакой информации, но показывает белый экран, а веб-сервер отдаёт ответ 200.
Импорт блога из Wordpress в Tickets
Если вам вдруг, не дай Бог, захотелось перенести блог из wordpress'а в Tickets, то у меня для вас очередной костыль.
Порядок действий:
Ах, да! Вероятно, если вы у контейнера Articles пропишите в настройках шаблон для дочерних документов, то он и подставится к тикетам.
Порядок действий:
- Ставим Тикетс
- Ставим Articles :-)
- Заменяем файлы articlesimport.class.php и articlesimportwordpress.class.php в папке /core/components/articles/model/articles/import/ на эти: yadi.sk/d/dXcAXDKIo83UN
- Создаём раздел Articles и нажимаем кнопку Импортировать. (Во всплывающем окне не работает комбобокс, так что для выбора опции импорта из ворпресса надо как-то исхитриться с клавиатуры — вниз и энтер :-))
- Импортируем XML от WP. Статьи и комментарии станут тикетами.
- Лезем в БД и меням class_key у контейнера со статьями с ArticlesContainer на TicketsSection.
- Удаляем Articles и прочие Quip'ы.
Ах, да! Вероятно, если вы у контейнера Articles пропишите в настройках шаблон для дочерних документов, то он и подставится к тикетам.
Вебинар по MODX для новичков
Ребята, я тут сегодня провел вебинар по MODX для новичков.
Рассматривал как интегрировать шаблон, немного pdoTools, Collections и прав менеджера.
Не думаю, что профессионалам будет интересно, а для новичков, которые только начинают знакомиться с системой, будет в самый раз.
Рассматривал как интегрировать шаблон, немного pdoTools, Collections и прав менеджера.
Не думаю, что профессионалам будет интересно, а для новичков, которые только начинают знакомиться с системой, будет в самый раз.
modImporter. Настройка импорта в minishop2 из 1С
В прошлой статье я писал про импорт из Excel/XLSX. Вчера-сегодня мы настраивали выгрузку из 1С. Правда по этому проекту пока не настраивали прямую выгрузку на сайт непосредственно из 1С (а просто загружали сформированный одинэской файл), но проблем с этим не должно быть, modImporter изначально имел в себе механизмы работы с 1С и до этого не раз тесты проводились успешно. К слову сказать, сейчас мы взялись переносить довольно крупный магазин с битрикса на MODX, так что в ближайшем будущем 1С-импорт будет прокачен как следует, в том числе и выгрузка заказов с сайта в саму 1С и обновление статусов заказов на сайте со стороны 1С.
В этот раз мы выполняли полный импорт, включая импорт картинок товаров, цен, остатков и производителей, многоуровневая вложенность категорий и т.п. (). В итоге получилось почти 1000 строк кода, полный файл лежит здесь.
В этот раз мы выполняли полный импорт, включая импорт картинок товаров, цен, остатков и производителей, многоуровневая вложенность категорий и т.п. (). В итоге получилось почти 1000 строк кода, полный файл лежит здесь.