0.00
60 читателей, 36 топиков

Тестирование отправки почты

Наткнулся на удобный сервис для тестирования отправки почты. Смысл сервиса в том, что он перехватывает письма и сохраняет у себя, то есть на реальный адрес письмо не придет, но зато легко проверить, отправляется ли оно вообще, а если отправляется, то в каком виде. Очень удобно для проверки рассылки всяких уведомлений и форм обратной связи. Сервис бесплатный и простой в использовании.

Читать дальше →

Документация DocLister

Пришла пора исправить положение с документацией к DocLister'у — блог автора закрылся, посылать читать документацию стало некуда. Что-то, конечно, осталось в кэше гугла и закромах Wayback Machine, но удобство пользования там никакое.

Так что я решился на неблагодарную работу и перенес документацию в репозиторий. При этом поделил на разделы и немного дополнил (может дополню и еще, когда просмотрю внимательнее историю коммитов). Не знаю, насколько хорошо получилось, но в любом случае, теперь будет проще вносить изменения.

Если есть какие-то замечания по документации, то пишите в комментариях, а еще лучше отправляйте правки сразу в docs (:

P.S. Делать документацию даже к своим дополнениям — дело унылое, что говорить про не свои, так что не откажусь от пива — R189925059228 ((:

Спасибо за поддержку: Agel_Nash , Fess .

[EVO] SimpleGallery: расширение функционала, часть 3

В develop-сборке Evo Custom v1.1b-d7.1 появилось новое событие OnParseProperties, которое сразу вызвало у меня интерес.

Событие срабатывает при разборе параметров сниппетов и плагинов, что позволяет эти параметры подменять. И хотя параметры плагинов пока обрабатываются как-то криво, можно воспользоваться событием OnParseProperties для вмешательства в работу SimpleGallery.

Есть сайт, где реализовано две галереи с помощью SimpleGallery — в одной картинки с образцами продукции, а во второй хранятся фотографии сотрудников с их биографиями (по смыслу это не совсем галерея, просто удобно их хранить так, а не в документах). Логично было бы вкладки с галереями подписать по-разному, но в SimpleGallery название вкладки (в данном случае — «Галерея») задается в параметрах плагина, который может быть только один. Выход из положения — плагин на событие OnParseProperties:


$e = &$modx->event;
if ($e->name == "OnParseProperties") {
    if ($element == "SimpleGallery") {
        if (isset($args['template']) && $args['template']==6) {
            $out = array ();
	    //задаем новое значение параметра tabName
            $out["tabName"] = "Сотрудники";
	    $e->_output = $out;
        }
    }
}


Теперь для страницы «Список сотрудников» с шаблоном 6 вкладка будет называться «Сотрудники», а во всех остальных случаях — «Галерея». Можно проверять и $args['id'] — id страницы, на которой вызывается плагин.

Немного подумав, я решил сделать возможность подменять в onParseProperties не только параметры плагина, но и свойства соответствущего ему класса. Таким образом появляется возможность использовать произвольные списки загружаемых js- и css-файлов, что в сочетании с параметром controller позволяет (в теории) менять интерфейс и логику работы плагина для разных страниц. Например, для разных типов галерей можно использовать разные наборы дополнительных полей.

Аналогично можно изменить работу и других моих плагинов, тем более, что они все делаются из общей заготовки. Например в SimpleFiles теперь появляется возможность создавать разные типы файловых архивов (например, в одном документе храним только zip, в другом только doc и xls), меняя с помощью события OnParseProperties список разрешенных для загрузки файлов.

[EVO] SimpleGallery: расширение функционала, часть 2

В этой статье речь пойдет о том, как изменить интерфейс SimpleGallery под конкретную задачу. При этом файлы плагина останутся без изменений — а значит, работа не пропадет после обновления SimpleGallery. Дальше много текста и говнокода.

Читать дальше →

[EVO] SimpleGallery: расширение функционала, часть 1

Среди достоинств SimpleGallery есть возможность изменять логику работы, не опасаясь потерять эти изменения с очередным обновлением (ну, почти не опасаясь).
Возможности даже три — можно писать плагины, можно расширять классы, можно загружать свои js-скрипты.
В этой статье опишу события для плагинов, а в следующий раз покажу пример более радикального вмешательства с изменением не только логики работы, но и интерфейса.

Читать дальше →

[EVO] Переползаем с Ditto на Doclister, часть 2

В прошлой статье Grinyaha рассказал о простых примерах использования DocLister — по сути, как вместо Ditto вызвать DocLister. Я покажу пример тоже для новичков, но чуть сложнее — для понимания необходимо минимальное знание PHP.

Читать дальше →

Переползаем с Ditto на Doclister

Итак, после знакомства с Доклистером я прикипел к нему всеми фибрами. Это очень хорошая штука. И если вы еще раздумываете использовать его или нет, то даже не думайте, юзайте на здоровье! Вы еще скажете спасибо, если сталкивались с фильтрацией в дитто, где она сделана через жопу :)
Итак пробегусь по самым основным моментам которые чаще всего встречаются мне. Разберем простой пример (такое написание сниппета работает только если у вас отключен TinyMCE (иначе при переносе строк вставятся BR и ничего не заработает):

Читать дальше →

[Магазин на MODX и ElasticSearch - ч. 2] Основы записи/чтения/обновления данных в ElasricSearch

Итак, в прошлой части мы создали структуру нашей базы со своими хитростями и всем прочим.
Теперь нас должны интересовать 3 основные вещи: запись в Базу данных, чтение данных из базы данных, и обновление.

Читать дальше →

[Магазин на MODX и ElasticSearch - ч. 1] Общая информация по ElasticSearch (установка, настройка)

Изначально я хотел описывать всё, включая разбор данных, но в итоге понял, что это будет просто громадная часть. Так что все эти статьи для тех людей кто хотя бы может преобразовать JSON строку, в нужную ему структуру.

Установка


Читать дальше →