Здоров Александр
С нами с 31 октября 2015; Место в рейтинге пользователей: #76Генерация файла sitemap.xml для мультиязычного сайта
Многие из нас делают мультиязычные сайты на контекстах. Контексты в MODx — вообще очень крутая штука, наверное, одна из самых крутых. На текущем большом мультиязычном проекте, SEO оптимизатор скинул мне статью в гугле и сказал, что нужно оптимизировать сайт под неё. Вопрос по теме задавали аж два года назад и ответов не последовало. Но народ вроде дал мотивацию тратить время на статью…
Шпаргалка на все случаи жизни
Полезные ссылки, которые Вам пригодятся в некоторых ситуациях.
[SelectFilters] - выбор фильтров для mFilter2
Всем привет, написал простенькое дополнение которое решает одну очень надоевшую проблему — клиент не может выбирать какие опции miniShop2 попадут в фильтр товаров mFilter2. В общем дополнение добавляет чекбокс в окно создания и редактирования опций, в комплекте также сниппет подготовки поля 'filter'
Плагин ms2Gallery для TinyMCE 4
Всем привет! Давненько я ничего не писал в «Готовые решения».
Данная заметка будет полезна тем, кто не разбирается в WYSIWYG редакторах, в частности для тех, кто никогда не писал для них плагины. Я работаю с TinyMCE RTE, посему если вы тоже работаете на нем, то этот пост для вас. Я переехал в MODx из WP, а как известно я думаю многим, в WP многие плагины работают через, так называемые shortcode. Это код, который выводит что-то из каких-то кастомных плагинов в контент.
Данная заметка будет полезна тем, кто не разбирается в WYSIWYG редакторах, в частности для тех, кто никогда не писал для них плагины. Я работаю с TinyMCE RTE, посему если вы тоже работаете на нем, то этот пост для вас. Я переехал в MODx из WP, а как известно я думаю многим, в WP многие плагины работают через, так называемые shortcode. Это код, который выводит что-то из каких-то кастомных плагинов в контент.
Разноцветные теги с tvSuperSelect
На текущем проекте была задача сделать теги цветными, чтоб каждый тег у посетителей ассоциировался со своим цветом. Да, это редко кому надо, но задача прикольная. Mой вариант решения под катом:
Вывод карточек товара магазина в статьях на сайте
Несколько недель назад от заказчика поступила такая хотелка — надо чтоб в статьи блога на сайте магазина можно было бы вставлять карточки товаров этого самого магазина. Обдумывал разные варианты, но в итоге, совместно с чатиком в телеграме пришел к такому решению:
- В статье в нужном месте менеджер делает конструкцию такого вида: %%34,45,54%%, где 34,45 и 54 — айди товаров в магазине, таких вхождений может быть хоть сколько в статье.
- На событие onWebPagePrerender вешается плагин, который с помощью регулярки выбирает все вхождения нашего паттерна, для каждого вхождения вызывает сниппет msProducts и последним шагом заменяет в контенте страницы паттерны соответствующими результатами сниппета.
Curl клиент modx
Встроенный curl клиент для отправки запросов на сторонние сервисы (RESTful и другие).
Так как все чаще используются сторонние сервисы в повседневной разработке сайтов, для этих целей в modx есть встроенный клиент, с помощью которого можно отправлять запросы:
Так как все чаще используются сторонние сервисы в повседневной разработке сайтов, для этих целей в modx есть встроенный клиент, с помощью которого можно отправлять запросы:
/* @var modRest $client */
$client = $modx->getService('rest', 'rest.modRest');
$response = $client->get('GET запрос');
или
$response = $client->post('POST запрос');
// Обработка полученных данных в json или xml формате и преобразование их в массив
$array = $response->process();
В заметке перечислены способы работы с клиентомОбновление дубликатов страниц (duplicate_updater_modx)
Может кому пригодится, написал скриптец для поиска дублей страниц и обновления последних путем добавление префикса +=1
Инструкция залить duplicate_updater_modx.php в корень сайта и запустить в браузере yousute.ru/duplicate_updater_modx.php
git: github.com/vectorserver/duplicate_updater_modx
Сам код:
Инструкция залить duplicate_updater_modx.php в корень сайта и запустить в браузере yousute.ru/duplicate_updater_modx.php
git: github.com/vectorserver/duplicate_updater_modx
Сам код:
<?php
/**
* Created by PhpStorm.
* User: admin
* Date: 25.06.2019
* Time: 14:19
*/
define('MODX_API_MODE', true);
require 'index.php';
$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_FATAL);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$msg = "";
$table_prefix = $modx->config['table_prefix'];
//Ищем двойников
$find_query = $modx->query("SELECT group_concat(`id`) ids, count(id) c FROM `" . $table_prefix . "site_content` GROUP by concat(uri) HAVING c > 1");
$dubles = $find_query->fetchAll(PDO::FETCH_ASSOC);
//Если нашли
if (count($dubles)) {
foreach ($dubles as $item) {
//Разбивем ID
$ids = explode(",", $item['ids']);
//Сортируем - старые вверх
sort($ids, SORT_NUMERIC);
$count = 0;
foreach ($ids as $doc_id) {
$count++;
//ПРопускаем оригинал
if ($count > 1) {
//Обновляем ресурс
$originalRes = $modx->getObject('modResource', $doc_id);
$generated = $originalRes->cleanAlias($originalRes->get('pagetitle')) . "-" . $count;
$originalRes->set('alias', $generated);
$originalRes->save();
//В лог
$msg .= $originalRes->get('id') . " | " . $originalRes->get('pagetitle') . " - обновлен.\n";
}
}
//Сброрс кеша
$modx->cacheManager->refresh();
}
} else {
$msg .= "Дублей нет\n";
}
echo "<pre>" . $msg;
Создание CMP для вывода в админку с помощью MIGX
Итак, в прошлой статье я рассказал, как можно создавать свой компонент с помощью MIGX. Теперь я покажу, как можно создавать и редактировать данные в админке.
Кто не знает о чем речь, ссылка на первую статью.
Кто не знает о чем речь, ссылка на первую статью.