Купчинский Михаил
С нами с 19 января 2013; Место в рейтинге пользователей: #524Фильтрация по диапазону цен mFilter2
MOXI - Быстрая настройка Modx Revo после установки
Рассмотрим как автоматизировать начальную настройку modx с помощью готового инструмента.
Вывод данных из БД
Накидал сниппет для вывода нужных данных из БД. Верстку в РНР не хочется делать — долго. Добавил блок для вывода прямо в сниппете. Все работает, но появляется информация о возврате какой-то функции.
Код сниппета(укороченный)
Если выводить таким образом
Просто данных гораздо больше и при их выводе используется довольно сложная верстка и верстать вывод html тегов на php очень не хочется.
Код сниппета(укороченный)
<?php
$sth = $modx->query("SELECT * FROM reg_users");
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $data) {
$regNum = $data['regNum'];
}
?>
<div><?php echo $regNum;?></div>
выводит3173значение переменной $regNum верное. А вот откуда берется return; 1 понять не могу.
return; 1
Если выводить таким образом
<?php
$sth = $modx->query("SELECT * FROM reg_users");
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $data) {
$regNum = $data['regNum'];
}
echo '<div>' .$regNum. '</div>';
?>
то все нормально.Просто данных гораздо больше и при их выводе используется довольно сложная верстка и верстать вывод html тегов на php очень не хочется.
[Мультиязычность] Скрипт массовой связки разных языковых версий (в разных контекстах) по URI [Babel]
Надо добавить мультиязычность на сайт через Babel. Для этого была сделана русская версия (в контексте web) и затем сделаны ее копии (en и de).
Далее нужно было связать все версии языков ресурсов между собой.
Далее нужно было связать все версии языков ресурсов между собой.
Управления плагинам minishop2 или добавление полей в ms2_products через компонент [msAddField]
Все давно уже познакомились с методом добавления полей через плагины который написал Василий еще в каком то 17 или 2018 году, может раньше…
Давно уже написал класс для управления полями через мой компонент который так и не представился миру msCml (синхронизация 1С с характеристикам msOptionsPrice2).
На этих выходных все таки дошли руки и собрал таки компонент msAddField (пока только на github, для самых маленьких))))): там же ссылка на яндекс диск)
Давно уже написал класс для управления полями через мой компонент который так и не представился миру msCml (синхронизация 1С с характеристикам msOptionsPrice2).
На этих выходных все таки дошли руки и собрал таки компонент msAddField (пока только на github, для самых маленьких))))): там же ссылка на яндекс диск)
Отображение превьюшек для svg-картинок в ТВ типа "Изображение"
Сегодня обнаружил, что из коробки тв-шки с картинками не умеют показывать превью после выбора картинки. Всё дело в том, что по-умолчанию все картинки скармливаются phpThumb чтоб сгенерить превью нужного размера. Это логично, но не учитывается вариант с svg — картинка векторная, и пхпТумб не может сгенерить превью.
То, что я сделал — не панацея, и я отдаю себе отчёт почему я это сделал и что это не универсальное решение, но, тем не менее, вероятно кому-то в его ситуации это тоже подойдёт.
То, что я сделал — не панацея, и я отдаю себе отчёт почему я это сделал и что это не универсальное решение, но, тем не менее, вероятно кому-то в его ситуации это тоже подойдёт.
Шпаргалка на все случаи жизни
Полезные ссылки, которые Вам пригодятся в некоторых ситуациях.
[multiSite] - Мультисайт на MODX
Привет! Компонент реализует собственно мультисайт на modx. Что он делает по факту? В зависимости от города он ищет во всей странице ключи в соответствии вашего паттерна и заменяет их на содержимое конкретно этого города.
Обновление дубликатов страниц (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;
Удобная фильтрация в mSearch2 на мобильной версии (внешний вид)
Доброго всем!
дам очень нужную инструкцию для изменения внешнего вида фильтров на мобильной версии (в десктопной ничего не измениться) в mSearch2 совместно с minishop2
На выходе нас ожидает меню куда спрячутся все фильтра, а сбоку, поверх всего будет закреплена кнопка управляющая этим меню (открыть, закрыть). Работает как в bootstrap 3 так и в bootstrap 4. Внешний вид фильтров настраиваете на свой вкус и цвет.
Впринцыпе данный пример можно использовать где угодно, возможно спрячете меню блога, ну там уже на свое усмотрение. Работает через jquery
дам очень нужную инструкцию для изменения внешнего вида фильтров на мобильной версии (в десктопной ничего не измениться) в mSearch2 совместно с minishop2
На выходе нас ожидает меню куда спрячутся все фильтра, а сбоку, поверх всего будет закреплена кнопка управляющая этим меню (открыть, закрыть). Работает как в bootstrap 3 так и в bootstrap 4. Внешний вид фильтров настраиваете на свой вкус и цвет.
Впринцыпе данный пример можно использовать где угодно, возможно спрячете меню блога, ну там уже на свое усмотрение. Работает через jquery