Не отображаются превью изображений в файл менеджере в MODx Revo

Не отображаются превью изображений в файлменеджере MODx Revo. Обнаружилось после переезда на выделенный сервер.

После долгих поисков проблемы, было выявлено, что система не корректно работает с eAccelerator-ом. Далее, сервер был установлен memcached + xcache. Все заработало, превью генерируются мгновенно.

Напомню, что для корректной работы MODx Revolution необходимы следующие модули:

gd, hash, iconv, json, mbstring, mysql, pdo, pdo_mysql, session, simplexml, zlib

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

 

MODx Evo — Function split() is deprecated

«MODx Parse Error»
MODx encountered the following error while attempting to parse the requested resource:
«PHP Parse Error»

PHP error debug
Error: Function split() is deprecated
Error type/ Nr.: — 8192
File: ../manager/includes/document.parser.class.inc.php
Line: 844
Line 844 source: $tempSnippetParams= split($splitter, $tempSnippetParams);

Ошибка не критическая, с ней или без нее можно жить спокойно.

В конфигурационном файле /manager/includes/config.inc.php отключаем вывод (строка 13):

error_reporting(E_ALL & ~E_DEPRECATED | E_STRICT);

заменяем на строку

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED)

В manager/includes/document.parser.class.php изменяем строку под номером 2502:

if (error_reporting() == 0 || $nr == 0 || ($nr == 8 && $this->stopOnNotice == false)) {

на

if (error_reporting() == 0 || $nr == 0 || (error_reporting() & $nr) != $nr || ($nr == 8 && $this->stopOnNotice == false)) {

Этими действиями мы игнорируем ошибку и сайт работает далее.

 

 

MODx Evo PHP 5.3 — eregi_replace и preg_replace

В виду того, что в PHP 5.3.x уже нет функции eregi_replace, некоторые сниппеты в MODx Evo перестают работать, ругаясь на эту функцию. В частности, это DirectResize.

Положение исправляем такими маневрами. Ищем в файле /assets/plugins/directresize/directResize.php строки со старой функцией и заменяем их на новые. Продолжить чтение

Админка MODX Revo отображается текстом

После покупки VDS начал перенос всех сайтов и столкнулся с проблемкой — админка MODx Revo отображается текстом, то есть стили не «подтягивает». Искал в интернете решения, ковырял, плясал с бубном, в итоге — нашел. Продолжить чтение

Gallery MODx watermark

Для создания фото галерей на MODx Revolution, практически всегда используют замечательный сниппет Gallery. Документация для него написана прекрасно, все понятно, но есть маленькое НО. Наверняка все сталкивались с задачей и требованиями от клиентов — защитить от копирования фотографии галереи. В этом посте я расскажу, как это можно сделать. Продолжить чтение

MODx Revolution — условия с несколькими вариантами выбора

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

Например, если a=b или a=c или b=e, то f=m. Не важно какое равенство и какие переменные. Чаще всего это оказывается нужным для страниц, например если текущий ID документа равен 1 или 2 или 43, то происходят какие-то разные действия. Продолжить чтение

SimpleSearch проблема с кодировкой

Описание проблемы — в выводе результатов поиска появляются «ромбики» вместо слов, то есть проблема с кодировкой.

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

Нам нужен файл, отвечающий за логику работы поиска. Идем по пути core/components/simplesearch/model/simplesearch/ и открываем файл simplesearch.class.php

Далее нам нужно будет заменить некоторые строки на новые, а именно:

нужно удалить или закомментировать строку 177

//if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));

заменяем строку 247

$text = preg_replace(‘/(\[\[\+.*?\]\])/i’, », $text);

на

$text = preg_replace(‘/(\[\[\+.*?\]\])/iu’, », $text);

заменяем строку 261

$text = trim(preg_replace(‘/\s+/’, ‘ ‘, $this->sanitize($text)));

на

$text = trim(preg_replace(‘/\s+/u’, ‘ ‘, $this->sanitize($text)));

заменяем строку 361

$string = preg_replace(‘/’ . $quoteValue . ‘/i’, ‘<‘.$tag.’variable’>$cls.'»>$0</’.$tag.’>’, $string);

на

$string = preg_replace(‘/’ . $quoteValue . ‘/iu’, ‘<‘.$tag.’variable’>$cls.'»>$0</’.$tag.’>’, $string);

Вывод поля определенного документа MODx Revo

Каждый разработчик на MODx наверняка сталкивался с задачей вывода определенного поля конкретного документа.

Например, ситуация такова:

У нас есть бокс «Услуги». В бекенде — это является документом-папкой, соответственно список всех дочерних документов у нас будет списком услуг. Нам нужно, чтобы заголовок бокса был редактируемым. Т.к. в бекенде у нас уже есть поле со значением «Услуги» (это pagetitle), то нам не нужно создавать дополнительный ТВ-параметр, чтобы реализовать редактирование. Продолжить чтение

Форма обратной связи MODx Revo

Создадим простую форму обратной связи с полями: Имя, Емейл, Тема, Текст сообщения. После нажатия кнопки «Отправить» FormIt отправит два письма, одно — вам, а другое — пользователю с текстом подтверждения отправки. Для подтверждения отправки нам нужно будет создать дополнительный сниппет и чанк. Чанк будет шаблоном отправляемого письма, сниппет будет использовать этот шаблон и выполнять функцию отправки. Продолжить чтение

Вывод даты MODx Revo

В разработке функциональности блока новостей, блога и тд. чаще всего приходится использовать вывод даты публикации документа. А именно важна сама форма выводы даты. Например: 22 Oct 2011, 11.12.2011 и тд. Много информации разбросано в интернете по этому поводу. Я решил собрать все основное в одной статье.

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

Решение очень простое. В шаблоне вывода ресурсов (указывается в параметре &tpl=`имя_чанка_шаблона`) пишем следущее:

<a href=»[[~[[+id]]]]»>[[+pagetitle]]</a><br />
<span>[[+publishedon:strtotime:date=`%d %B %Y`]]</span>

где

<a href=»[[~[[+id]]]]»> — ссылка на анонс,
[[+pagetitle]] — заголовок страницы,

[[+publishedon:strtotime:date=`%d %B %Y`]] — вывод даты публикации с применением phx фильтра. Полное описание комбинаций вывода дат можно просмотреть на сайте PHP.

Вот и все. В результате мы получаем вывод даты публикации в нужном формате, например 20 Март 2011. Хочу заметить, что по умолчанию месяц (день, в зависимости в каком формате будет вывод) будет выведен на английском языке. Чтобы исправить эту ситуацию, нужно прописать в начале index.php в корне значение:

setlocale(LC_TIME, «ru_RU.UTF8»);

Если кодировка win-1251, то

setlocale(LC_TIME, «ru_RU.cp1251»);

Задача решена.