Всего 123 788 комментариев

Ivan K.
02 ноября 2024, 22:21
0
Сегодня столкнулся с подобной проблемой.
MODX3 + php8.1

Выяснил, что причина в слеше в начале твшки с картинкой.
Решил топорным методом.
[[pthumb? &input=`[[+tv.foto:replace=`/assets/files/==assets/files/`]]` &options=`w=250&h=180&zc=1`]]
Вдруг кому пригодится.
Pavel
02 ноября 2024, 18:09
0
вопрос с текстом был решен в «Управление словарями», а вот со скриптами прищлось редактировать php файл сниппета и комментировать некоторые js и css файлы
Pavel
02 ноября 2024, 16:42
0
Спасибо большое за решение, я думаю попробовать его для аренды техники — тоже посуточно.
Правда появились вопросы — везде теперь написано «аренда номера» и надо это как-то мне выпиливать.
И второе — подключается bootstrap и jq которые у меня уже подключены и хотелось бы иметь возможность их отключить ((
Благодарю
newbmod
02 ноября 2024, 12:47
0
Здравствуйте!
Работает только с единичными адресами? Маски, подсети?
Денис Усманов
02 ноября 2024, 10:59
0
Артур, молодец! Очень нужное решение, я долго «выкладывал» свой код по такому же кейсу) Ты оказался быстрее, так держать!
Ivan K.
01 ноября 2024, 12:53
0
Здравствуйте.
Отличное и нужное решение. Обязательно воспользуюсь.
Но хотел уточнить не возникнет ли проблем при использовании MODX3 + php8.1?
И в плане безопасности можно ли использовать в «личном кабинете пользователя» (простые юзеры, которые залогинены в контексте web) данное решение? хотел кастомную таблицу подключить, чтобы юзеры меняли в ней данные.
Евгений
01 ноября 2024, 12:00
0
благодарю, то что нужно!!! сейчас проверим как работает
по идее если там у плагина пакета оставить только на дубликейте событие то он будет урл делать при дубле же? )
Андрей Шевяков
01 ноября 2024, 09:57
+1
Добрый день!
Можно использовать дополнение CustomUrls
Пример как с ним работать тут Ссылка
Сергей
31 октября 2024, 08:24
0
Володя, подскажи пожалуйста на какое событие нужно создать скрипт, что бы при фильтрации через msearch2 выбиралась нужная опция. Сейчас работает только при повторном обновлении страницы в дефолтным классом. И почему у кастомного msopfilters.class.php нет выбора нужной опции при фильтрации. И почему то при добавлении зависимостей, очень медленно работает. Речь о фильтрации и выводе в каталоге.
Дмитрий
30 октября 2024, 13:44
+1
Спасибо! Очень информативно
Сергей Шлоков
30 октября 2024, 11:46
+3
Как по мне, чересчур громоздко. Логика с date и start/end не очевидна. Да и в коде слишком много лишней логики. Я бы предложил вариант с датой и длительностью (просто в целях разминки полушарий)
$date = $modx->getOption('date', $scriptProperties, '');
$duration = $modx->getOption('duration', $scriptProperties, '1');
$chunk = $modx->getOption('tpl', $scriptProperties, '');

if (empty($date) || empty($chunk)) {
  return '';
}

[$day, $month, $year] = sscanf($date, "%d.%d.%d");
$year ??= date('Y');
$date = "$day.$month.$year";

$currentTimestamp = time();
$startTimestamp = strtotime($date);
$endTimestamp = strtotime($date . " + $duration days");

if ($currentTimestamp >= $startTimestamp && $currentTimestamp < $endTimestamp) {
  $pdoTools = $modx->getService('pdoTools');
  return $pdoTools->getChunk($chunk);
}
Указал год — сработает только для него. Не указал, ежегодно. Если длительность не указана, то она равна 1 дню.
Артур Шевченко
28 октября 2024, 19:51
+1
Немного сократил и добавил поддержку файловых чанков.
<?php
$start = $modx->getOption('start', $scriptProperties, '');
$end = $modx->getOption('end', $scriptProperties, '');
$chunk = $modx->getOption('tpl', $scriptProperties, '');

// определяем в каких случаях мы ничего не будем делать, нам важно не перетрудиться.
if((!$start && !$end) || !$chunk){
    return '';
}
// завозим поддержку файловых чанков
if(!$parser = $modx->getService('pdoTools')){
    $parser = $modx;
}

$now = strtotime('d.m.Y');
$currentYear = date('Y');
// предполагается что дада передаётся строкой вида "d.m"
$startTime = strtotime($start . '.' . $currentYear);

// если задана только дата начала, считае, что оформление будет активно только в эту дату
if(!$end){
    if($now === $startTime){
        return $parser->getChunk($chunk);
    }
}

$startParts = explode('.', $start);
$endParts = explode('.', $end);

// проверяем больше месяц даты начала месяца даты окончания
if((int)$startParts[1] > (int)$endParts[1]){
    $endTime = strtotime($end . '.' . ($currentYear + 1));
}else{
    $endTime = strtotime($end . '.' . $currentYear);
}

if ($now < $startTime || $now > $endTime) {
   return '';
}
return $parser->getChunk($chunk);
Артур Шевченко
28 октября 2024, 19:14
0
Ты запускал код который у Ильи на сайте и вообще ни одной буковки не менял?
Дима Касаткин
28 октября 2024, 01:55
0
Вообще чем-то похоже на работу пакета BannerY получилось кстати. Только опять же, со срабатыванием каждый год. На самом деле для ежегодных праздников твой вариант подходит конечно идеально!
Дима Касаткин
28 октября 2024, 01:38
0
Пользуюсь похожей конструкцией, чтобы редактировать TV-шки с фронта. Отличный пример допиливания полезного функционала под проект, спасибо!

P.S. Поправь плиз отступы в форматировании кода во 3 и 4 блоках, а то я shift+tab чуть не нажал машинально, когда читал :)
Сергей
27 октября 2024, 02:05
0
ckeditor.js?v=1.4.6-pl:10528 Uncaught TypeError: Cannot read properties of undefined (reading 'build')
    at Object.build (ckeditor.js?v=1.4.6-pl:10528:76)
    at Object.build (ckeditor.js?v=1.4.6-pl:10528:76)
    at CKEDITOR.dialog.addPage (ckeditor.js?v=1.4.6-pl:10080:160)
    at new CKEDITOR.dialog (ckeditor.js?v=1.4.6-pl:9929:81)
    at a.openDialog (ckeditor.js?v=1.4.6-pl:10616:122)
    at a.<anonymous> (ckeditor.js?v=1.4.6-pl:10620:30)
    at e (ckeditor.js?v=1.4.6-pl:4488:33)
    at Array.y (ckeditor.js?v=1.4.6-pl:4493:105)
    at x (ckeditor.js?v=1.4.6-pl:4498:64)
    at ckeditor.js?v=1.4.6-pl:4511:41
Сергей
27 октября 2024, 01:47
0
Не работает кнопка «Вставить/редактировать ссылку»
Miša Bulic
26 октября 2024, 21:27
0
ну либо напиши пустой сниппет, если не найдёшь.
или установи это
modstore.pro/packages/utilities/dateago