0.00
84 читателя, 77 топиков

[REVO] Выносим админку на субдомен

Если честно, я пока не нашел практического применения этой фишке. Как вариант — таким образом можно решить конфликт ISPManager. В документации описано как можно перенести папку manager. Также там сказано, что имеется возможность вынести админку на субдомен, однако описания этого процесса нет. Я решил восполнить этот пробел.

Для начала условимся что файл конфирурации в папке core трогать не будем, также не будем вобще трогать начальные папки manager и connectors — это для подстраховки.

И так, допустим у нас такая структура папок:

/home/
     /core/
     /manager/
             /connectors/
             /config.core.php
             /index.php
     /www/
         /assets/
         /config.core.php
         /index.php


У нас есть сайт site.ru, мы хотим админку на manager.site.ru (или mgr.site.ru или secretroom.site.ru и т.д)

Для начала отключим compress_js и compress_css
Затем правим файл /home/manager/config.core.php:

<?php
define('MODX_CONFIG_KEY', 'config');
define('MODX_CORE_PATH', dirname(dirname(__FILE__)) . '/core/');
define('MODX_CONNECTORS_PATH', dirname(__FILE__) . '/connectors/');
define('MODX_CONNECTORS_URL', '/connectors/');
define('MODX_MANAGER_PATH', str_replace('\\', '/', dirname(__FILE__)) . '/');
define('MODX_MANAGER_URL', '/');
define('MODX_SITE_URL', 'http://site.ru/');
define('MODX_ASSETS_PATH', dirname(dirname(__FILE__)) . '/www/assets/');
define('MODX_ASSETS_URL', MODX_SITE_URL . 'assets/');
?>


Желательно указать абсолютные пути к папкам. В качестве MODX_SITE_URL указываем url своего сайта.

Далее правим файл /home/manager/connecors/config.core.php:
<?php
define('MODX_CONFIG_KEY', 'config');
define('MODX_CORE_PATH', dirname(dirname(dirname(__FILE__))) . '/core/');
define('MODX_MANAGER_PATH', dirname(dirname(__FILE__)) . '/');
define('MODX_MANAGER_URL', '/');
?>


Теперь админка должна заработать по адресу manager.site.ru. Старая админка конечно же тоже будет работать.

Теперь о плохом. Компоненты, имеющие свои панели, работать не будут. Проблема в том, что js-файлы и коннекторы компонентов обычно неверно располагают в /assets/components/, что конечно же неправильно. Ибо что js-файлы, что коннекторы должны располагаться в том контексте, в котором предполагается их использовать. Тоесть js-файлы должны быть в {manager_path}assets/components/ а коннекторы в {connectors_path}components.

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

Заплати лайком

Сразу скажу, что я не любитель этой фигни. Но мой основной заказчик крутится в сфере инфобизнеса. А там свои законы, правила и понимание интернета. В общем пришлось мне для него на скорую руку накидать социальный замок. Подробнее описано тут. Валяется значит это у меня в копилке и ждет своего следующего заказчика…

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

[EVO] Исправляем ошибку валидации расширения файла в менеджере файлов

Заметил багу в MODX ветки Evolution
Нет возможности загрузить файлы с расширением написаном в другом регистре. Например, файлы *.JPG, *.JPg и т.п. мы не сможем загрузить, если в настройках прописано .jpg.

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

Видео youtube и vimeo в контексте | MODX Revolution и Evolution

modx youtube and vimeo

Сделал небольшой сниппет, так как очередной заказчик ленивый и ему тяжело нажимать и искать кнопочки или вставлять какой-то код.
Одним словом, цель была с простых сылок в ресурсе формировать вставку видео с youtube и vimeo.
Я уже делал вывод видео на сайт. но с помощью галлереи
Читать дальше →

[EVO] Отключение сниппета на определенной странице без использования phx

В поисках велосипеда для Shopkeeper`а Димой (Dmi3yy ) был придуман вариант как обойти phx, если необходимо не вызывать корзину на определенной странице. Очень быстро выяснилось, что в Shk это решается проще, и решение было сгоряча снесено, хотя на самом деле оно очень нужное и универсальное. Поэтому, с благословения автора я, как успевший утащить решение в копилку знаний, возвращаю его отдельным топиком. Ведь фактически так можно прятать любой сниппет на определенной странице без использования phx!

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

Снова о кешировании. Генерируем меню только один раз

Иногда бывает необходимость сделать меню большим. Ну, реально большим и разветвленным. Например, как на сайтах fsknmsk.ru, medicinskiy-center.ru, www.withoutdrugs.ru, narcononekb.ru

Если Wayfinder вызывается кешируемым, т. е. [[Wayfinder &startId=`0`]] (без восклицательного знака), и изменения на сайте вносятся нечасто, то проблем особых нет — после первого посещения каждой страницы, вывод сниппета кешируется и для этой страницы код меню уже не генерируется.

Если изменения вносятся часто, но на меню они особо не влияют (например, просто выкладываются новости или статьи, которые в меню не появляются), то используем getCache (статья)

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

Поделюсь своим решением, использующим самый простой вариант пользовательского кеширования в MODX

Читать дальше →
на community.modx-cms.ru

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

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

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

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

[EVO] Ошибки в opere из-за WebloginPE и групп ресурсов

Заметил интересный баг который проявляется только в опере. В общем если на странице с ограниченым доступом (страница 403 в настройках MODx) вызвать WebloginPE, то опера через раз отдает контент. Даже не через раз, а с третьего раза.

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

[REVO] Немного о Memcached

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