Viktor
С нами с 04 июля 2015; Место в рейтинге пользователей: #118Polylang
Компонент позволяет создавать мультиязычные сайты без дополнительных контекстов.
Возможности
Возможности
- Локализация полей документов Modx
- Локализация Tv
- Локализация полей miniShop2 (добавленных через msFieldsManager)
- Локализация опций miniShop2
- Изменения типа ввода данных для полей
- Изменения порядка вывода полей в админке
- Изменение порядка вывода языков на сайте
- Автоматический перевод поля или группы полей локализации через google translate или yandex translate
- Задание полей, для которых следует использовать автоматический перевод
- Автоматическое создание локализаций для документа с автоматическим переводом полей
- Индексация полей локализаций в mSearch2
- Авто определение языковой версии сайта при первом его посещении
- URL с слэшем на конце и без
Выдаем вместо кэша html файлик
Предыстория. Возник такой вопрос. Есть какой то сайт, и в нем получается в каталоге было так. В вызов mFilter2 вложено в чанк еще парочка вызовов msProducts ну и так далее. В итоге, раздел грузился за овер 10 секунд. Да, сейчас напишите, что вот надо оптимизировать. Это понятно, но я решил подойти с другой стороны.
Итак, идея была такая, что бы вместо кэша выдавать уже готовую разметку целой страницы.
В итоге, у нас есть плагин:
Вопрос знатокам, на сколько такой подход вообще жизнеспособный по отношению к системе? Очень бы хотелось услышать комментарии.
Спасибо за донаты:
@Павел Бигель
Итак, идея была такая, что бы вместо кэша выдавать уже готовую разметку целой страницы.
В итоге, у нас есть плагин:
<?php
switch($modx->event->name){
case 'OnWebPagePrerender':
// Тут просто условие, чтобы срабатывал только на категории (можно по сути задавать разные условия)
if($modx->resource->class_key != 'msCategory'){
return;
}
//Забираю отрендеренный ресурс
$_output = &$modx->resource->_output; //Забираю отрендеренный ресурс
// Создаю файлик разметки этого ресурса (можно по сути указать любой путь и так далее, сейчас и так сойдет)
$file = MODX_BASE_PATH . 'resourcecache/' . $modx->resource->uri . '/' . $modx->resource->id . '.txt';
if(is_file($file)){
// Если такой файлик уже существует, то просто отдаю его содержимое
$output = file_get_contents($file);
}else{
// Если файлика нету, то записываю туда отрендеренную страницу
$cache = $modx->getCacheManager();
$cache->writeFile($file, $_output);
$output = $_output;
}
// Подменяю вывод на готовый
$modx->resource->_output = $output;
break;
case 'OnLoadWebPageCache':
// Это событие срабатывает до рендера страницы, оно проверяет, есть ли кэш страницы, и если он есть...
$file = MODX_BASE_PATH . 'resourcecache/' . $modx->event->params['resource']->uri . '/' . $modx->event->params['resource']->id . '.txt';
//...мы проверяем файлик, так как страница уже грузилась и файлик есть и подменяем кэш на содержимое неашего файлика.
if(is_file){
$modx->event->params['resource']->_content = file_get_contents($file);
}
break;
}
Итог, раздел грузился за 10 секунд (ну да, такой раздел, идея в другом), после плагина уже за 0.006 секунды, так как выдается готовая разметка.Вопрос знатокам, на сколько такой подход вообще жизнеспособный по отношению к системе? Очень бы хотелось услышать комментарии.
Спасибо за донаты:
@Павел Бигель
AnotherPages. Виртуальные страницы для СЕОшников и не только.
Скрипт подмены конфигов сайта на лету
Надоело каждый раз при переносе сайтов между серверами прописывать конфиги в нескольких местах. Каждый раз напрягаешься, чтобы не перепутать. Написал скрипт, который делает это автоматически в зависимости от $_SERVER['HTTP_HOST'] сервера на котором он запускается.
GoogleSheets. Компонент для работы с Google таблицами.
Возможности
- Cохранение форм
- Cохранение заказов (minishop2)
- Импорт ресурсов / товаров (minishop2)
- Выгрузка данных из таблицы
Localizator - поддержка TV параметров
1. Изменены окна редактирования локализаций, добавлена возможность редактирования TV-параметров
Для вывода на редактирование определенных TV-параметров добавлена настройка локализатора localizator_tv_fields
2. Сделан сниппет Localizator
Для этого нужно изменить настройку pdoFetch.class на pdotools.pdofetchlocalizator
Компонент по прежнему бесплатный и доступен на modstore.pro
Исходники на https://github.com/but1head/localizator
Отправить спасибо можете на Яндекс-кошелек 410015133943061
Для вывода на редактирование определенных TV-параметров добавлена настройка локализатора localizator_tv_fields
2. Сделан сниппет Localizator
{'Localizator' | snippet : [
'snippet' => 'pdoMenu',
'includeTVs' => 'img',
'processTVs' => 'img',
'parents' => 0,
'level' => 1,
]}
TV-параметры будут заменяться на параметры из локализации.Для этого нужно изменить настройку pdoFetch.class на pdotools.pdofetchlocalizator
Компонент по прежнему бесплатный и доступен на modstore.pro
Исходники на https://github.com/but1head/localizator
Отправить спасибо можете на Яндекс-кошелек 410015133943061
[ogImage] — генерация превью с текстом
Нужно красивое превью страницы в соцсетях?
Про новый сайт сообщества
Привет, друзья!
У меня есть отличная новость: разработку нового сообщества теперь спонсируют ребята из нидерландской компании Sterc, в которой я сейчас работаю над MODX 3. Вот такое совпадение, да.
Через это, исходники новой версии сообщества уже доступны на обозрение всем желающим. Темпы разработки не меняются, я так же буду выкладывать отчёты 2 раза в месяц. Но донатить на Patreon больше нет никакой необходимости, только если вам прям сильно хочется. Ну и заметки там теперь тоже открыты, может будет интересно.
По нашей договорённости, Sterc теперь размещает парочку баннеров на сайте — и это баннеры про финансирование MODX 3. Как видите, всё взаимосвязано.
У меня есть отличная новость: разработку нового сообщества теперь спонсируют ребята из нидерландской компании Sterc, в которой я сейчас работаю над MODX 3. Вот такое совпадение, да.
Через это, исходники новой версии сообщества уже доступны на обозрение всем желающим. Темпы разработки не меняются, я так же буду выкладывать отчёты 2 раза в месяц. Но донатить на Patreon больше нет никакой необходимости, только если вам прям сильно хочется. Ну и заметки там теперь тоже открыты, может будет интересно.
По нашей договорённости, Sterc теперь размещает парочку баннеров на сайте — и это баннеры про финансирование MODX 3. Как видите, всё взаимосвязано.
Автоматически разбивать sitemap.xml на файлы
Всем привет!
У меня сайте сейчас 15000 страниц, sitemap.xml формирую через pdoSitemap. Но сервер не позволяет вывести такое количество ссылок сразу, менять сервер на более мощный пока тоже не хочу.
Может есть решение автоматического разбиения sitemap.xml в формате www.sitemaps.org/ru/protocol.html#index на определенное задаваемое количество выводимых ссылок в каждом файле?
У меня сайте сейчас 15000 страниц, sitemap.xml формирую через pdoSitemap. Но сервер не позволяет вывести такое количество ссылок сразу, менять сервер на более мощный пока тоже не хочу.
Может есть решение автоматического разбиения sitemap.xml в формате www.sitemaps.org/ru/protocol.html#index на определенное задаваемое количество выводимых ссылок в каждом файле?
Сборка transport-пакета без установки MODX
Писать свои пакеты для MODX не просто для новичка, да и опытному разработчику иногда не сладко приходится. Но новичок пугается, а опытный разбирается :).
Эта заметка рассказывает о том, как можно написать и собрать пакет компонента для MODX без установки и настройки самого MODX. Уровень выше среднего, так что возможно придется поломать голову в отдельных случаях, но оно того стоит.
За подробностями прошу под кат.