msFilter2 использование слайдера для выбора диапазона дат публикации

Помогите разобраться в выводом msFilter2
необходимо вывести слайдер с датами по аналогии с ценами

'filters' => ' publishedon:number',
 'tplFilter.outer.resource|publishedon' => 'tpl.mFilter2.filter.slider',
'tplFilter.row.resource|publishedon' => '@FILE chunks/filter_slider_year.tpl'
чанк filter_slider_year.tpl
{var $key = $table ~ $delimeter ~ $filter}
<div class="col-md-6">
    <label for="mse2_{$key}_{$idx}" class="d-flex align-items-center">
        {$title}
        <input type="text" name="{$filter_key}" id="mse2_{$key}_{$idx}" value="{$value| date : 'Y'}"
               data-current-value="{$current_value| date : 'Y'}" class="form-control ml-1"/>
    </label>
</div>
Слайдер с годами выводится, но фильтрация не производится
пытался отдельно дописать фильтр year в сниппете mFilter2, чтоб использовать как прописать 'filters' => ' publishedon:year,, но соображалки не хватило (
или может не использовать | date: 'Y' а как-то решить через css?
SYAN
22 января 2024, 13:25
modx.pro
281
0

Как добавить watermark к изображению??

Обращение к альбому делаю, а чанк вывода такой

<a data-fancybox="gal" class="a_gal" 
    href="[[+url:is=``:then=`[[+image]]`:else=`[[+url]]`]]" [[+link_attributes]]>
        
    <img class="gal_img [[+imgCls]]" src="[[+thumbnail]]"  alt="[[+name]]" [[+image_attributes]] />
</a>
Картинки выводятся прекрасно, при клике галерея…
А теперь появилась задача — добавить на картинки текст или изображение…

Весь вечер убил, но увы… Не понимаю… куда копать??
Матвей
21 января 2024, 22:41
modx.pro
462
0

Сниппет для вывода ресурсов кириллицей в алфавитном порядке с разбивкой на 3 колонки

может кому пригодится немного модифицированный pdoAtoZ

вызов сниппета

$_modx->runSnippet("@FILE snippets/pdoatoz.php", [
'select' => 'id,pagetitle,uri,parent',
'limit' => '0',
'depth' => $cat_depth,
'parents' => $parents,
'tpl' => '@INLINE <a href="{$uri}" class="abc-item-list">{$pagetitle}</a>',
'tplDelimiter' => '</div><div class="col-lg-4 col-md-12 col-sm-12 col-sx-12">',
'ClassRow' => 'row col-12 abc-list pb-5',
'ClassCol' => 'col-lg-4 col-md-12 col-sm-12 col-sx-12',
'ClassIndex' => 'abc-index text-center',
'indexDelimiter' => ' '
])

сам сниппет

<?php
/**
 * pdoAtoZ
 */
 
$parents = $modx->getOption('parents', $scriptProperties, 0);
$select = $modx->getOption('select', $scriptProperties, 0);
$includeTVs = $modx->getOption('includeTVs', $scriptProperties, '');
$processTVs = $modx->getOption('processTVs', $scriptProperties, '');
$limit = $modx->getOption('limit', $scriptProperties, '10');
$depth = $modx->getOption('depth', $scriptProperties, '10');
$sortby = $modx->getOption('sortby', $scriptProperties, 'pagetitle');
$itemTpl = $modx->getOption('tpl', $scriptProperties, false);
$ClassRow = $modx->getOption('ClassRow', $scriptProperties, 'row');
$ClassCol = $modx->getOption('ClassCol', $scriptProperties, 'col');
$ClassIndex = $modx->getOption('ClassIndex', $scriptProperties, 'alpha-index');
$tplDelimiter = $modx->getOption('tplDelimiter', $scriptProperties, '');
$indexDelimiter = $modx->getOption('indexDelimiter', $scriptProperties, ' | ');

if (!$itemTpl) return;

$pdo = $modx->getService('pdoFetch');

//Get collection of resources
$items = $pdo->getCollection('modResource', array(
    'published' => true,
    'deleted' => false
), array(
    'parents' => $parents,
    'select' => $select,
    'includeTVs' => $includeTVs,
    'processTVs' => $processTVs,
    'limit' => $limit,
    'sortby' => $sortby,
    'sortdir' => $sortdir,
    'depth' => $depth
));

$total=count($items);
$column2=intval($total/3);
$column3=intval($total/3*2);
$counter=0;

//create an array keyed with alphabet letters

$alphas = array();
foreach (range(chr(0xC0),chr(0xDF)) as $v)
  $alphas[$v] = iconv('CP1251','UTF-8',$v);

$alphaGroups = array();
foreach($alphas as $key=>$value){
    $alphaGroups[$value] = array();
}

// organize the resources by first letter
foreach ($items as $item) {
$firstLetter = mb_strtoupper(mb_substr($item['pagetitle'], 0, 1));
$item['url'] = $modx->makeUrl($item['id']);
// check to see if first letter is a letter, if not don't do anything with it
if (!preg_match('/[А-ЯЁ]/u', $firstLetter)) continue;

    array_push($alphaGroups[$firstLetter], $item);
}

$alphaIndex = array();
$output = '';

$id = $modx->getOption('id', $scriptProperties, $modx->resource->get('id'));
$url = $modx->makeUrl($id);

foreach ($alphaGroups as $alpha => $alphaGroup) {
    if (count($alphaGroup) == 0) {
        
    } else {

        array_push($alphaIndex, '<a href="' . $url . '#' . $alpha . '">' . $alpha . '</a>');
        $formattedGroup = '';
        // to separate collumns    
        if ($counter >= $column2 && $col2 != 1 && $col2 != 1) { $formattedGroup .= $tplDelimiter; $col2 = 1;} 
        if ($counter >= $column3 && $col2 == 1 && $col3 != 1) { $formattedGroup .= $tplDelimiter; $col3 = 1;}
        $formattedGroup .= '<h3 id="' . $alpha . '" class="">' . $alpha . '</h3>'; 
        foreach ($alphaGroup as $item) {
            $formattedGroup .= $pdo->getChunk($itemTpl, $item);
            // uncomment the following line to see the item printed out in json format
            //$formattedGroup .= json_encode($item, JSON_PRETTY_PRINT);
        }
        $counter = $counter + count($alphaGroup);
        $output .= $formattedGroup;
    }
}

//return $alphaIndex + this list of resources grouped by letter;
return '<div class="'. $ClassIndex .'">' . implode($indexDelimiter, $alphaIndex) . '</div>' . '<div class="' . $ClassRow . '"><div class="' . $ClassCol . '">'. $output .'</div></div>';
SYAN
19 января 2024, 17:51
modx.pro
1
456
0

Контекст при создании кастомного кеша

Хочу кешировать вывод снипета из админки, при редактировании ресурсов (не знаю правильно это или нет?).
Делаю так:
<?php
$modx->cacheManager->delete('newLotsIndex', array(xPDO::OPT_CACHE_KEY=>'custom_cache'));
$date_from = strtotime('-2 month');
$res = $modx->runSnippet('msProducts', array(
	'parents' => 2,
	'limit' => 16,
	'where' => ["publishedon:>" => $date_from, "Data.remains:>=" => 1 ],
        'sortby' => '{"publishedon": "desc"}',
        'tpl' => '@FILE chunks/tovarPreview4row.tpl',
        'includeThumbs' => '140x140'
));
$modx->cacheManager->set('newLotsIndex', $res, 0, array(xPDO::OPT_CACHE_KEY=>'custom_cache'));
Все работает, но в логи забиваются этим:
[2024-01-19 06:12:41] (INFO in modContext::makeUrl @ /var/www/xxxx/www/core/model/modx/modcontext.class.php : 325) Resource with id 140625 was not found in context mgr
[2024-01-19 06:12:41] (WARN @ /var/www/xxxx/www/core/model/modx/modcontext.class.php : 248) `140623` was requested but no alias was located.
[2024-01-19 06:12:41] (INFO in modContext::makeUrl @ /var/www/xxxx/www/core/model/modx/modcontext.class.php : 325) Resource with id 140623 was not found in context mgr
[2024-01-19 06:12:41] (WARN @ /var/www/xxxx/www/core/model/modx/modcontext.class.php : 248) `140623` was requested but no alias was located.


Как можно это исправить? Где указать контекст? Заранее спасибо.
ViktorK
19 января 2024, 09:22
modx.pro
423
0

Get из mFilter2

Вообщем и сам вопрос
есть ссылка
site.ru/catalog/dveri-s-zerkalom?vendor=14
получаю get
{$.get.vendor}
естественно если в фильтре я изменяю значение, то get не изменяется
Как вывести значение VENDER так чтобы при смене оно изменялось
vit
vit
19 января 2024, 00:50
modx.pro
357
0

Использование pdoResources для вывода взаимосвязанных ресурсов разных уровней

Здравствуйте! Пытаюсь поближе познакомиться с modx, но столкнулся с проблемой при использовании pdoResources.

Есть такой макет:


И есть вот такая файловая структура:


Имеется вот такая разметка:


Каким образом можно вывести в одну строку ресурсы второго уровня — Россия, Италия — в блок навигации, а ресурсы третьего уровня — выводить ниже, при этом сохранив привязку между блоками? Переключение табов будет осуществляться на js, поэтому эта привязка нужна. То есть нужно вывести в меню дочерний ресурс, а рядом на этом же уровне вывести дочерние ресурсы этого ресурса.

Возможно, не совсем понятно всё объяснил, но готов дополнить картину, если кто-то сможет помочь с этим. Заранее спасибо!
Сергей
18 января 2024, 13:25
modx.pro
278
0

RBS payment ссылка на оплату

Здравствуйте!
Подскажите, пожалуйста, как настроить модуль интернет-эквайеринга RBS 1.4.3 от Альфабанка, чтобы он сохранял ссылку на оплату в $payment_link, чтобы ее можно было вывести в шаблоне письма пользователю? Изначально эта переменная пуста.
В настройках модуля включен коллбек. При включенном дебаге в журнал ошибок приходит ссылка на оплату в том числе.
Владимир
18 января 2024, 06:12
modx.pro
214
0

Админка подвисает с ошибкой 500

Всем привет!

Перевел тяжеловатый сайт с minishop2 (более 6 396 товаров + страниц много) на другой хостинг, версия PHP та же, что на старом: 7.1
Админка при попытке открытия категории/товара отдает ошибку 500 и открывает страницу через 2-3 попытки обновления. Кэши при переносе сбрасывал…
В журнале вот такая ошибка:
[2024-01-17 18:12:09] (ERROR @ .../public_html/core/xpdo/xpdo.class.php : 1247) Problem getting service msaddfield, instance of class msAddField, from path .../public_html/core/components/msaddfield/model/
Есть у кого-нибудь идеи в чем может быть проблема?
steve.kon
17 января 2024, 18:17
modx.pro
423
0

Перестал работать Formalicious

Привет друзья!

Перестал работать Formalicious.
Работающие ранее формы перешли в статус “неопуликовано”, при сохранении формы вылетает ALERT
“formalicious.form_err_save”.

Лог ошибок:
Лог ошибок:
[2024-01-17 13:36:17] (ERROR @ /*****www/core/xpdo/om/xpdoobject.class.php : 1452) Error 22007 executing statement:
UPDATE `modx_formalicious_forms` SET `published_from` = '1970-01-01 00:00:00',`published_till` = '1970-01-01 00:00:00',`emailcontent` = 'анкета по декларации' WHERE `id` = 2
Array
(
    [0] => 22007
    [1] => 1292
    [2] => Incorrect datetime value: '1970-01-01 00:00:00' for column `nameBase`.`modx_formalicious_forms`.`published_from` at row 1
)
Подскажите, в чем может быть трабла?
________
MODX Revolution 2.8.5-pl
PHP Version 7.4.3-4
Григорий
17 января 2024, 14:02
modx.pro
307
0

Как правильно сделать редирект на другой домен, но сохраняя возможность входа в админку?

Есть редирект и она работает и даже получается не перенаправлять /manager/
только проблема в том, что админку пустая на старом домене
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !^/manager/.*$ [NC]

RewriteCond %{HTTP_HOST} ^vkusnoem.od.ua$ [NC]
RewriteRule (.*) https://smakuemo.od.ua/$1 [R=301,L]
подскажете в чем может быть проблема?
alexandr.skyrda
17 января 2024, 00:38
modx.pro
311
0