Павел Левин

Павел Левин

Был в сети 23 августа 2022, 00:55
Заказы не принимаю
Ок владелец файлов теперь www-data

Другие ошибки:
Could not load vehicle!
PHP notice: Undefined index: guid
Skipping vehicle object of class modPluginEvent (data object exists and cannot be upgraded); criteria: Array ( [pluginid] => 29 [event] => OnEmptyTrash ) 
Could not load vehicle!
PHP notice: Undefined index: guid
Could not load class: ArticlesContainer from mysql.articlescontainer.
Could not load class: ArticlesContainer from mysql.articlescontainer.
Пытаюсь развернуть backup проекта на FLOPS (они дают 2 недели бесплатного теста), соответственно все файлы заливаю, поверх накатываю ту же версию modx с папкой setup и пытаюсь обновиться… ну и тут начинаются пляски)… 10-й раз все переделываю.

Пробовал и твой вариант, но смутили все эти скрипты в конце… у меня там чета не так пошло и я забил. Проще поэтапно идти. Ну выходные я успешно убил и пару ночей с ними… результат) 500-я.
Сейчас популярен принцип игрового вовлечения. Уровни, достижения и т.п. по действиям пользователя.

Допустим, просмотреть 10/100/500/1000 страниц и получить соответствующие достижения, возможно и опыт, если есть шкала уровня. За некоторые достижения, давать наградные звания к примеру, прочел 10000 страниц, получил достижение и звание «Любознательный», которое можно выставить на обозрение. К примеру до имени пользователя или под ним и т.п. Таких затей можно много напридумывать и откопать, есть множество ММОРПГ или к примеру Steam, LinguaLeo.

Всё это мотивирует на действия. Вовлечение пользователя — это большой плюс и нагрузка).
Странно, в документации miniShop2 ничего нет о нем самом. Я так думаю, что системных событий, для подключения плагина тоже нет, если были бы, то можно было бы подключиться к событию добавления товара в корзину и взаимодействовать с массивом данных. Как мне это представляется.

Или это глупости)?

Ладно-ладно, я не оставлю тебя без подсказки.

Вот один из моих старых сниппетов.

<?php
$pubTime = strtotime("-1 day");
$pubTimeEnd = strtotime("+1 day");
$ids = $modx->getChildIds($input);
$count = 0;
$ecount = 0;
$value = 0;
$class = '';

/*новое*/
if (!empty($ids)) {//проверяем дочерние ресурсы
    $count = $modx->getCount('modResource', array(
		'id:IN' => $ids
		,'isfolder' => 0
        ,'deleted' => 0
        //,'editedon' => 0
        ,'publishedon:>' => $pubTime
        ,'publishedon:<=' => $pubTimeEnd
	));
    $class .= ' new';
} else {//проверяем текущий ресурс
    $ids = array($input);
    $count = $modx->getCount('modResource', array(
    	'id:IN' => $ids
		,'isfolder' => 0
        ,'deleted' => 0
        //,'editedon' => 0
        ,'publishedon:>' => $pubTime
        ,'publishedon:<=' => $pubTimeEnd
	));
    $value = 'new';//текст выделения
    $class .= ' new';//класс выделения
}
if($count) {
    return '<span class="last-update '.$class.'">'.($value?$value:$count).'</span>';
} else {
    return ' ';
}

Примеры вызова:
[[+id:LastUpdate]]

или
[[!LastUpdate? &input=`[[+id]]`]]
Ну publishedon это дата. Наверное стоит написать отдельный сниппет для этой задачи. Как? Я не знаю =), но если полазить по поисковой выдаче modx.pro, то можно найти куски кода и соорудить небывалый LEGO сниппет!

Я так обычно делаю =)