Пошаговые инструкции

Закрываем служебные директории MODX в Apache

В одной статье, касающейся безопасности, Василий дал очень хорошую рекомендацию по защите служебных папок. Реализовав это на своём хостинге, решил написать инструкцию, так как начинающие изучать MODX могут столкнуться с ошибкой 404, как Я например.
Борода
01 марта 2016, 10:41
modx.pro
32
6 783
+5

Вывести только тикеты с рейтингом больше нуля

1 300
Итак, если вам нужно вывести тикеты с рейтингом выше ноля, то эту задачу можно решить двумя способами. Первый для высоконагруженных проектов, второй для менее нагруженных.

Первый вариант (относительно сложный в реализации, но выигрывает по скорости при большой выборке ресурсов):

  1. Заходите в phpmyadmin.
  2. Выбираете таблицу modx_site_content
  3. — Переходите в закладку «структура»
  4. — Внизу открывшегося окна нажимаете ОК (Добавить 1 поле в конец таблицы)
    Имя: ticket_rating
    Тип: int
    Длина/значение: 10
    По умолчанию: Как определено (0)
    Null: галочка
  5. Сохраняем
Таким способом мы расширили дефолтную таблицу MODX'a со списком ресурсов.
Wassi Wassinen
26 февраля 2016, 03:31
modx.pro
10
3 750
+2

Правильные username при регистрации пользователя

1 500
Всем привет. Часто встречается ситуация, когда на сайте при регистрации через Office пользователи указывают username вида "--- --", «валя краля», "___ __", «yesy@yesy.ru» и т.д. Хотелось бы, чтобы при регистрации использовали только английские буквы, тире, нижнее подчеркивание и цифры.

Приступим:

1. Создаем плагин с следующим содержанием:

<?php
if ($modx->event->name == 'OnBeforeUserFormSave') {
    if (!preg_match("/^[a-zA-Z0-9-_]+$/", $user->username)) $modx->event->output('Имя пользователя должно содержать английские буквы, символы "-", "_" и цифры');
}
Wassi Wassinen
22 февраля 2016, 19:20
modx.pro
9
2 972
+1

Рейтинг пользователя - общий, тикеты и комментарии

1 500
Выводим рейтинг пользователя как на modx.pro joxi.ru/eAOYVYPI476nQm

Т.е., выводим рейтинг общий, рейтинг за тикеты (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>
Wassi Wassinen
18 февраля 2016, 14:49
modx.pro
20
3 901
+7

Закалка MODX Revolution (перевод)

Своего писать я пока сомневаюсь, уровень не тот, а вот перевести полезную статью с официальной документации — это с удовольствием. Перевод местами может показаться несколько вольным, что касается формулировок, — иначе переводить скучно. Но в том, что касается технических деталей, старался быть дотошно точным. Так что, если найдёте технические неточности — ругайтесь в комментах. А на филологию прошу не жаловаться:) И тем более на идеологические расхождения с Вашим мировоззрением — тут все вопросы к авторам доков. Паранойи и почвы для громких споров среди «экспертов по безопасности» в статье предостаточно. Помни, о читатель, всё это касается в первую очередь важных и заметных проектов.
Добро пожаловать под кат.
mngatoff
15 февраля 2016, 02:03
modx.pro
62
22 110
+13

Страница пользователя как на modx.pro

1 1 000
Реализация страницы пользователя как на mоdx.pro (https://modx.pro/users/bezumkin/). Не используются дополнения virtualPage и userProfile\userProfile2 из-за их глючности и конфликтов с другими дополнениями. Все протестировано на рабочем проекте.
Wassi Wassinen
14 февраля 2016, 17:03
modx.pro
37
7 560
0

Скрываем config.core.php

Я давненько на своих сайтах меняю адрес админки и папки /connectors/

Мне нравится, что MODX позволяет это делать и очень сложно обнаружить, что сайт работает на нём. Но тут Николай Ланец смутил меня тем, что MODX можно определить еще и по файлу /config.core.php в корне. Да, он не выдаёт никакой информации, но показывает белый экран, а веб-сервер отдаёт ответ 200.
Илья Уткин
13 февраля 2016, 14:56
modx.pro
30
13 193
+5

Импорт блога из Wordpress в Tickets

Если вам вдруг, не дай Бог, захотелось перенести блог из wordpress'а в Tickets, то у меня для вас очередной костыль.

Порядок действий:
  1. Ставим Тикетс
  2. Ставим Articles :-)
  3. Заменяем файлы articlesimport.class.php и articlesimportwordpress.class.php в папке /core/components/articles/model/articles/import/ на эти: yadi.sk/d/dXcAXDKIo83UN
  4. Создаём раздел Articles и нажимаем кнопку Импортировать. (Во всплывающем окне не работает комбобокс, так что для выбора опции импорта из ворпресса надо как-то исхитриться с клавиатуры — вниз и энтер :-))
  5. Импортируем XML от WP. Статьи и комментарии станут тикетами.
  6. Лезем в БД и меням class_key у контейнера со статьями с ArticlesContainer на TicketsSection.
  7. Удаляем Articles и прочие Quip'ы.
Проверено 2 раза. Если что-то сломается — я не виноват :-)

Ах, да! Вероятно, если вы у контейнера Articles пропишите в настройках шаблон для дочерних документов, то он и подставится к тикетам.
Денис Дыранов
01 февраля 2016, 16:54
modx.pro
2
2 780
+3

Вебинар по MODX для новичков

Ребята, я тут сегодня провел вебинар по MODX для новичков.
Рассматривал как интегрировать шаблон, немного pdoTools, Collections и прав менеджера.
Не думаю, что профессионалам будет интересно, а для новичков, которые только начинают знакомиться с системой, будет в самый раз.
Лев Вербицкий
29 января 2016, 20:19
modx.pro
4
6 505
+10

modImporter. Настройка импорта в minishop2 из 1С

В прошлой статье я писал про импорт из Excel/XLSX. Вчера-сегодня мы настраивали выгрузку из 1С. Правда по этому проекту пока не настраивали прямую выгрузку на сайт непосредственно из 1С (а просто загружали сформированный одинэской файл), но проблем с этим не должно быть, modImporter изначально имел в себе механизмы работы с 1С и до этого не раз тесты проводились успешно. К слову сказать, сейчас мы взялись переносить довольно крупный магазин с битрикса на MODX, так что в ближайшем будущем 1С-импорт будет прокачен как следует, в том числе и выгрузка заказов с сайта в саму 1С и обновление статусов заказов на сайте со стороны 1С.

В этот раз мы выполняли полный импорт, включая импорт картинок товаров, цен, остатков и производителей, многоуровневая вложенность категорий и т.п. (). В итоге получилось почти 1000 строк кода, полный файл лежит здесь.
Fi1osof
24 января 2016, 18:22
modx.pro
7
5 472
+4