Василий Столейков

Василий Столейков

С нами с 19 декабря 2012; Место в рейтинге пользователей: #25
Отправить деньги

Как вывести количество комментариев?

Выводим количество комментариев (TicketComments) любых ресурсов (тикеты и простые ресурсы MODX) в любом месте.

Прошелся по страницам сообщества и собрал в один сниппет. Спасибо Василию Наумкину!

Создаем сниппет countComments:
<?php
// считаем комменты тикетов
if ($res = $modx->getObject('Ticket',$id)) {
    if ($res->get('comments') == 0) { return "0";}
    else {return $res->get('comments');}
}

// считаем комменты ресурсов
if ($q = $modx->newQuery('modResource', $id)) {
    $q->leftJoin('TicketThread','TicketThread', "`TicketThread`.`name` = 'resource-{$id}'");
    $q->leftJoin('TicketComment','TicketComment', "`TicketThread`.`id` = `TicketComment`.`thread`");
    $q->select('COUNT(`TicketComment`.`id`) as `comments`');
    
    $count = 0;
    if ($q->prepare() && $q->stmt->execute()) {
    	$count = (integer) $q->stmt->fetch(PDO::FETCH_COLUMN);
    }
    if ($count == 0) { return "0";}
    else {return $count;}
}
Вызывать внутри ресурса так:
[[!countComments? &id = `[[*id]]`]]
Вызывать вне ресурса так:
[[!countComments? &id = `[[+id]]`]]
Василий Stepanov
27 мая 2017, 06:52
modx.pro
3
929
+1

Видео с MODX Meetup Almaty 2017



Не так давно прошел MODX Meetup Almaty 2017. Теперь мы все можем посмотреть доклады участников.
Михаил
26 мая 2017, 04:18
modx.pro
4
6 096
+23

[msFavorites] - апгрейд компонента.

msFavorites — списки избранного.


— работа с любыми ресурсами
— работа с любыми пользователями

Основное отличие от ранних версий работа без каких либо сниппетов, нужно только инициализировать скрипт.
Интерактивные примеры тут msfavorites.vgrish.ru/

Володя
25 мая 2017, 16:34
modx.pro
4
6 143
+7

Как загрузить/обновить" изображение к тикету?

Приветствую!
Стояла задача: при создании тикета из фронтенда загружать главное изображение, которое будет использоваться в превью и отображаться на странице самого тикета в начале.

В качестве решения можно было бы использовать, например, первое изображение из встроенной загрузки файлов для тикета, но желание экспериментировать перебороло.

Кратко:
1. В форму создания тикета добавляем поле input type=«file»
2. Создаем плагин на событие сохранения формы с загрузкой и изменением размеров изображения.
Василий Stepanov
19 мая 2017, 13:45
modx.pro
2
1 313
+2

[Office] Версия 1.4.6 - повтор заказов

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

Хочу анонсировать вам обновление Office, которое стало результатом личной просьбы одного из участников митапа в Казахстане, на прошлой неделе.
Василий Наумкин
05 мая 2017, 16:37
modx.pro
2
2 027
+11

Удаление профиля пользователя по нажатию кнопки

Добрый день.
Подскажите, как сделать удаление профиля пользователя по нажатию кнопки.
Сделал такую форму:
<form action="" method="post">
	<input type="hidden" name="uid" value="[[!+modx.user.id]]">
	<input type="hidden" name="remove_profile" value="1">
	<button type="submit" class="btn btn-danger" name="remove" value="remove" onclick="return confirm('Удалить Ваш профиль?')">Удалить</button>
</form>
и такой сниппет, вызываемый также на странице с формой
<?php
if ($_POST['remove'] && ($_POST['remove_profile'] == 1)) {
        $processor = 'user/delete';
    }
$processorProps = array('processors_path' => $modx->getOption('core_path'). 'model/modx/processors/security/');
$response = $modx->runProcessor($processor, $_POST, $processorProps);
return true;
Но что-то не работает…
Где я ошибся?
Андрей
01 мая 2017, 14:13
modx.pro
1
1 882
0

Пишем свой информер погоды для сайта


Данный тикет не относится к разработке под MODX, но так как информер я разместил на MODX-сайте, то делюсь наработками здесь.
Вкратце: скрипт парсит XML с погодой и по нескольким условиям выводит результат на сайте.
Итак, XML для своего города берем тут и вставляем ссылку с дописанным /data/ в $rss = simplexml_load_file(...).
Значки «погоды» прилагаются.
Пример работы посмотреть можно тут.
Василий Stepanov
29 апреля 2017, 15:02
modx.pro
4
1 608
+1

[localizator] Мультиязычность, СЕО, автоперевод...



Языковые версии \ сателиты без контекстов, с автоматическим переводом всех полей ресурса + сео, да еще и автоперевод лексиконов — это я уместил в названии localizator.
but1head
23 апреля 2017, 20:57
modx.pro
42
30 437
+32

Удаление группы у пользователя

Добрый вечер.
Прошу помощи, не могу понять как удалить определенную группу у пользователя через api.

Процесс создания группы нашел и успешно использую
$user->leaveGroup(1);
$user->joinGroup(3);                    
$user->save();
Ruslan Butakov
18 апреля 2017, 22:22
modx.pro
1
1 277
0

Вставка копирайтов при копировании текста на сайте

Головная боль многих новостных сайтов — копирование оригинального текста и его использование на других сайтах.
В качестве официального решения проблемы — предлагается автоматическое добавление копирайтов при копировании текста в буфер обмена. Копирайт может содержать ссылку на сайт-источник, что дает дополнительное SEO преимущество.
Ниже я предлагаю найденное мною и немного оптимизированное решение этого вопроса.
Николай Савин
18 апреля 2017, 16:43
modx.pro
18
4 317
+7