Наверх

Советы и решения

Добавляем подпись к каждой картинке на сайте

25 сентября 2013, 12:44

Для того, чтобы на сайте все картинки в статьях были с подписью,
например, с адресом сайта, нужно поставить компонент DirectResize и в файле core/components/directresize/elements/plugins/plugin.directresize.php
между 180 и 181 строчкой (после ImageDestroy($image);) прописать следующий код:
$imagePath = $img_min_path_name;
$image = new Imagick($imagePath);
$draw = new ImagickDraw();
$draw->setFillColor('black');
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 12 );
$image->annotateImage($draw, 11, $img_min_h_calc - 11, 0, $_SERVER['HTTP_HOST']);
$draw->setFillColor('white');
$image->annotateImage($draw, 10, $img_min_h_calc - 10, 0, $_SERVER['HTTP_HOST']);
$image->writeImage($imagePath);

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

Автоматизиуем расстановку ссылок в анкорах для SAPE

31 июля 2013, 20:47

Недавно знакомый SEO-шник попросил помочь облегчить работу с биржей ссылок SAPE. Для тех, кто не знает, объясню проблему:
В SAPE прежде чем начать закупку ссылок, нужно добавить список текстов ссылок. В текстах нужно выделить, какая часть текста является ссылкой, например, вот так:

Предлагаем #a#автобусные экскурсии#/a# по Москве

тогда ссылкой будет текст «автобусные экскурсии».
Вот он и попросил меня написать скриптик, который будет выделять нужное словосочетание в нескольких текстах сразу, чтобы можно было их пакетно добавить в SAPE.

Скрипт я разместил по адресу http://ilyaut.ru/sape/, уже можно пользоваться. Для тех, кто хочет разместить такой скрипт у себя на сайте, привожу код формы и сниппета.
Читать дальше

Вечный кеш для чанков. Запрещаем удалять кеш даже по событию обновления сайта

30 июля 2013, 18:16

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

В статье Оптимизация сайта на MODX Revolution — уменьшение времени загрузки страницы есть сниппет chunk, который помогает закешировать блоки с первого отображения и вплоть до внесения изменений на сайт.

Сниппет longCache действует анологично, только создает кеш блока, который не очищается при каждом обновлении информации на сайте.
Читать дальше

Решаем проблему с getPage и несуществующими страницами

30 июля 2013, 15:08

Недавно в блоге bezumkin'а подняли тему генерации страниц сниппетом getPage:
подскажите по поводу пагинации. допустим имею две страницы: page 1, page 2.
но если в адресную строку ввести несуществующий адрес/?page=N то открывается пустая страница, а не 404?
кто нибудь решал этот вопрос?

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

Небольшой скрипт, улучшающий отображение картинок в статьях

26 июля 2013, 13:01

Так как сайты заполняют в основном контент-менеджеры, которые о CSS знают лишь понаслышке, я давно заметил, что контент страниц выглядит некрасиво. Дело в том, что картинки имеют неправильные отступы (обычно ставят выравнивание и отступы по обоим сторонам от картинки). Получается что-то типа такого:
Читать дальше

Изменяем алгоритм подсчета просмотров страниц в компоненте Tickets

17 апреля 2013, 16:33

Мой блог работает на Tickets от bezumkin, однако Tickets считает просмотры только зарегистрированными пользователями. А у меня в блоге много читателей, кто получает обновления, например, по RSS и не регистрируются. Вот и решил я сделать так, чтобы любые просмотры писались в базу.

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

Ну и добавляем новую запись о просмотре в базу (объект TicketView)
Читать дальше

Кастомизация форм в MODX Revolution

14 апреля 2013, 13:24


В MODX есть интересная возможность — вы можете менять внешний вид формы редактирования ресурсов практически как вам хочется. Причем вы можете сделать разные формы для разных групп пользователей, и даже для разных ресурсов. Можно выбирать разные профили форм для данного ресурса в зависимости от его шаблона, родителя или других свойств.

И для этого нам не придется писать ни одной строчки кода!

Давайте, посмотрим, что, например, можно сделать с формами
Читать дальше

Подписка на новости для вашего сайта

12 апреля 2013, 15:55

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

Так как на начальном этапе подписчиков будет немного, то отправку писем я реализовал с помощью простого плагина на событие OnDocFormSave
Читать дальше

Оптимизация сайта на MODX Revolution — уменьшение времени загрузки страницы

10 апреля 2013, 15:17

Советы по оптимизации сайта штатными средствами MODX

Всегда вызывайте сниппеты кешируемыми


Многие разработчики привыкли писать так:
[[!getResource?
  &parents=`5`
  &tpl=`tpl.news`
]]
Это в корне неверно. Убирайте восклицательные знаки везде. Исключение составляют те сниппеты, которые обрабатывают какую-то информацию, которая поступает от пользователя, т. е.:
  • FormIt (пользователь заполняет форму и сниппет должен данные обработать);
  • Login, Register (точно так же — обработка пользовательских данных, например, логин и пароль);
  • getPages (ссылки на разные страницы формируются с GET-параметрами, типа /?page=3, соответственно сниппет должен обработать этот GET-параметр);
  • Ну и другие сниппеты, например, на моем сайте — это сниппеты Loginza для авторизации и TicketsComments, с помощью которого можно оставлять комментарии к статье.
Остальные сниппеты (такие как Wayfinder, getResources, Breadcrumb и пр.) должны вызываться без восклицательного знака.
Читать дальше

Обработка большого количества документов на слабом хостинге

09 апреля 2013, 17:00

Иногда возникает необходимость обработать сразу большое количество ресурсов, например вдруг решили, что у всех отзывов должен быть URL /review-25.html (у каждого свой id), а сейчас на сайте около 200 отзывов и у них URL формировались обычным translit'ом (ну или не совсем обычным))). Все бы ничего, да вот хостинг слабенький и на нем жестко прописано ограничение на время выполнения скрипта. И максимальное количество документов, которые успевают обработаться — 10-15.

Можно, конечно как-то оптимизировать скрипт, например, не использовать процессоры, можно вносить изменения прямо в базу через phpMyAdmin, можно запускать скрипт 20 раз вручную, пока не обработаются все ресурсы… Каждый выбирает сам.

Для себя я сделал сниппет для пошаговой работы php-скрипта, который вполне может обрабатывать и ресурсы MODX.
Читать дальше

Авторизация

через сервис Loginza:


Шаблоны MODX

1 2 Дальше »

Объектная
модель
MODX