Кирилл

Кирилл

Был в сети Вчера в 13:28
Заказы не принимаю
Вот еще вариант для списка пользователей:

[[!pdoPage?
    &element=`pdoUsers`
    &tpl=`users_list_tpl`
    &sortdir=`asc`
    &leftJoin=`{"Author":{"class":"TicketAuthor","on":"Author.id=modUser.id"}}`
    &select=`{"modUser":"*", "Author":"createdon,visitedon,tickets,comments,rating"}`
]]

[[+createdon]] — дата регистрации
[[+visitedon]] — дата последней активности
[[+tickets]] — количество тикетов
[[+comments]] — количество комментариев
[[+rating]] — общий рейтинг
Странно, у меня регистр не имеет значения. Посмотрим, может кто еще отпишется по поводу этой проблемы, сделаем немного по другому. Сейчас вот таким образом проверка идет:

foreach ($words as $word) if (stripos($data, trim($word)) !== false) return true;

Документация: stripos — Возвращает позицию первого вхождения подстроки без учета регистра
Создаем сниппет getTicketAuthor

<?php
$userId = intval($userId);
if ($author = $modx->getObject('TicketAuthor',$userId)) $modx->setPlaceholders($author->toArray());
return;

В чанке профиля, где необходимо вывести информацию о рейтинге, вставляем:

[[!getTicketAuthor? &userId=`[[+internalKey]]`]]

<p>Рейтинг [[+rating]]</p>
<p>Рейтинг тикетов + [[+votes_tickets_up]] / - [[+votes_tickets_down]]</p>
<p>Рейтинг комментариев + [[+votes_comments_up]] / - [[+votes_comments_down]]</p>
По этим параметрам исключаются внешние ссылки, которые не должны обрабатываться плагином. Допустим, ссылки на modx.pro и на modstore.pro надо оставить в неизменном виде, в stop_words пишем «modx.pro,modstore.pro» (без кавычек). Таким образом, если в ссылке содержится хоть одна из этих фраз, она вообще никак не модифицируется. Поиск идет по атрибуту «href».

Параметр stop_classnames работает несколько иначе. Он ищет совпадение слов в полном коде ссылки. У меня за это отвечает класс «extlink». Например, эти ссылки плагин не тронет:

<a href="http://modx.com" class="extlink">modx.com</a>
<a href="http://modx.com" data-link="extlink">modx.com</a>
<a href="http://modx.com" id="extlink">modx.com</a>
А зачем вычислять минимальную цену перебором всех товаров? Можно через xPDO выбрать MIN(value), наверное вот так:

$q = $modx->newQuery('msProduct');
$q->select("MIN(price) AS min_price");
$q->where(array(
	'published' => 1,
	'deleted' => 0,
	'price:>' => 0,
	'parent' => $parent->get('id')
));
if ($q->prepare() && $q->stmt->execute()) {
    $arr = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
}
$minPrice = $arr[0]['min_price'];
Я использовал вот такой вариант http://modx.com/extras/package/resizeimageonupload2. Правда, подойдет только для новых загруженных картинок.

А то уже думал писать сниппет и через него вызывать контент, что значительно замедлило бы работу сайта!))
Выше предложенное дополнение работает примерно по такому же принципу, почитайте его описание.