Для разработчиков

[ms2gallery] Источник файлов для разных шаблонов

Небольшой плагин, позволяющий автоматически установить нужный источник файлов при создании ресурса с использованием дополнения ms2gallery.
Наумов Алексей
04 сентября 2014, 09:51
modx.pro
30
4 202
+5

Вывод суммы прописью

Специально по просьбе Wassi Wassinen достал из нафталина, отряхнул пыль и публикую свой класс вывода сумм прописью, который основан на вот этих методах.

В оригинальной версии копейки писались цифрами, а теперь — буквами. Ради этого пришлось переписать больше половины кода.
Василий Наумкин
30 марта 2014, 11:19
modx.pro
6
3 200
+5

Использование xPDO без MODX

Некоторое время назад подписался помочь хорошему проекту Критиканство в написании парсера для автоматической загрузки скриншотов игр.
«Критиканство» — это крупнейший в российском сегменте интернета агрегатор критических отзывов на фильмы и игры. В нашей базе более 150 печатных и интернет-изданий, а количество рецензий на момент запуска (на март 2013 года) составило более 60 000.
Этот проект был запущен ребятами с прекрасного сайта kino-govno.com, к которому я питаю очень теплые чувства. Шутка ли, его создали авторы из лучшего журнала про игры — Game.EXE, который я до дыр зачитывал еще в школе.

Админка Критиканства создавалась в разное время разными специалистами и выглядит немного разрозненной. Тоже касается и таблиц базы данных — каждый разработчик мудрил с ними по своему.

Сам сайт сделан очень олдскульно и «чисто для себя». То есть, работает быстро, но все что можно зашито прямо в php код. Никаких ORM, никаких шаблонов, только то, что нужно.

Для разработки парсера мне предоставили полную свободу действий, поэтому я набросал новую версию админки с использованием шаблонов, xPDO и других любимых методик.
Василий Наумкин
18 марта 2014, 16:10
modx.pro
3
5 977
+3

Подключаем к Tickets Яндекс карты при помощи Mapex

Данное решение позволяет привязать к Tickets Яндекс карты.

1. Устанавливаем Mapex2 по инструкции
Александр Наумов
23 февраля 2014, 08:12
modx.pro
1
4 023
+3

Метод sendForward() и сохранение полей ресурса

Могие знают полезный метод в MODX — sendForward('id'), который позволяет загрузить некий ресурс без изменения url. При помощи этого метода работает выдача страниц «404 не найдено» и «401 требуется авторизация».

Но немногие знают, что можно выдавать заменяющую страницу, сохранив оригинальные pagetitle, introtext и другие поля.
Василий Наумкин
18 ноября 2013, 01:11
modx.pro
12
5 043
0

Генерация расписания занятий на pdoTools


Увидел недавно вопрос на сообществе — человек хочет сгенерировать таблицу с расписанием занятий по дням.

Казалось бы, задача несложная, но это совсем не так. Стандартные сниппеты не предназначены для такой работы и их приходится запускать на каждый день недели. И даже если вас не волнует скорость работы, то в итоговой таблице будут пропущенные ячейки, что совсем не айс.

Можно сделать свой компонент расписаний, но это нужно далеко не всем, тем более, для вывода всего одной недели из дерева.

Поэтому предлагаю вам готовое решение, а заодно и демонстрацию работы с pdoTools. Конечно, можно было бы обойтись и родными методами MODX, но с ним быстрее.

Все нужные данные выбираются за один запрос, а дальше очень быстрая обработка и оформление на PHP.
Василий Наумкин
05 октября 2013, 03:56
modx.pro
17
6 013
0

Phpthumb наложение водяного знака

Долго искал эту документацию по наложению ватермарок на изображения.
По-итогу все оказалось просто, документация ниже по ссылке, и выдержка здесь.

Мой пример: (Ватермарка по центру изображения)

Настройки источника файлов, параметр thumbnails
{"w":500,"h":378,"q":95,"zc":"1","bg":"000000","fltr":"wmt|текст-ватермарки|20|C|48a4a5|Ubuntu-R.ttf|90|20|5||0|"}
wmt|текст|размер-шрифта|выравнивание|цвет|шрифт|прозрачность|отступ|поворот|цвет-фона|прозрачность-фона|направление
Игорь Зябко
29 июля 2013, 07:07
modx.pro
13
19 309
0

Подавление ошибок php

Некоторое время назад мне сделали замечание, что использовать @ — «плохая привычка». На предложение доказать, что это именно так, я получил ссылку на Хабр, со статьей про управление ошибками.

Окей, наконец-то я узнал, как именно ими управлять, но чем же плоха привычка подавлять сообщения об ошибках, если ты знаешь, что делаешь?

На мой взгляд, плохого здесь нет и быть не может. Применение @ — это такое же управление ошибками, как и функция error_reporting() или директива в php.ini.

Однако, детальный разбор показал несколько иное.
Василий Наумкин
06 июля 2013, 16:45
modx.pro
3
11 206
0

Первичный ключ xPDOObject

Как известно, при создании собственных таблиц в MODX принято наследовать или xPDOSimpleObject, или xPDOObject.

Отличие между ними ровно одно — в SimpleObject уже прописан первичный ключ id, а в Object — нет. То есть, если вы хотите, чтобы у вашей таблицы создавалось поле id с становилось primary key — нужно наследовать SimpleObject.

Я, однако, люблю простые таблицы ключ-значение, в которые добавляю первичным ключом два и более полей сразу. Например, в репозитории пакет может быть в нескольких категориях, значит нужно создать таблицу extraCategoryMember из двух полей category_id и package_id.

Ключ id мне здесь совершенно не нужен, ведь он будет расти при каждой операции добавления пакета в категорию, а таких операций может быть очень много. Конечно, вряд ли INT(10) скоро закончится, но зачем хранить лишнее?
Василий Наумкин
11 мая 2013, 12:42
modx.pro
9
5 205
0

Установка компонентов через MODX API

Предлагаю всем желающим готовую функцию для установки компонентов через Api.

Можно делать из консоли, можно из сниппета — не важно. Собственно загрузка файла выделена в отдельную функцию, которая пытается работать через file_get_contents(), если это не запрещено. Иначе использует cUrl.

Параметров всего 2: имя компонента и id провайдера пакетов (по умолчанию — 1, то есть, modx.com).
Василий Наумкин
21 марта 2013, 07:57
modx.pro
8
5 056
0