Василий Столейков
С нами с 19 декабря 2012; Место в рейтинге пользователей: #25Как вывести количество комментариев?
Выводим количество комментариев (TicketComments) любых ресурсов (тикеты и простые ресурсы MODX) в любом месте.
Прошелся по страницам сообщества и собрал в один сниппет. Спасибо Василию Наумкину!
Создаем сниппет countComments:
Прошелся по страницам сообщества и собрал в один сниппет. Спасибо Василию Наумкину!
Создаем сниппет 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]]`]]
Видео с MODX Meetup Almaty 2017
Не так давно прошел MODX Meetup Almaty 2017. Теперь мы все можем посмотреть доклады участников.
[msFavorites] - апгрейд компонента.
msFavorites — списки избранного.
— работа с любыми ресурсами
— работа с любыми пользователями
Основное отличие от ранних версий работа без каких либо сниппетов, нужно только инициализировать скрипт.
Интерактивные примеры тут msfavorites.vgrish.ru/
— работа с любыми ресурсами
— работа с любыми пользователями
Основное отличие от ранних версий работа без каких либо сниппетов, нужно только инициализировать скрипт.
Интерактивные примеры тут msfavorites.vgrish.ru/
Как загрузить/обновить" изображение к тикету?
Приветствую!
Стояла задача: при создании тикета из фронтенда загружать главное изображение, которое будет использоваться в превью и отображаться на странице самого тикета в начале.
В качестве решения можно было бы использовать, например, первое изображение из встроенной загрузки файлов для тикета, но желание экспериментировать перебороло.
Кратко:
1. В форму создания тикета добавляем поле input type=«file»
2. Создаем плагин на событие сохранения формы с загрузкой и изменением размеров изображения.
Стояла задача: при создании тикета из фронтенда загружать главное изображение, которое будет использоваться в превью и отображаться на странице самого тикета в начале.
В качестве решения можно было бы использовать, например, первое изображение из встроенной загрузки файлов для тикета, но желание экспериментировать перебороло.
Кратко:
1. В форму создания тикета добавляем поле input type=«file»
2. Создаем плагин на событие сохранения формы с загрузкой и изменением размеров изображения.
[Office] Версия 1.4.6 - повтор заказов
Удаление профиля пользователя по нажатию кнопки
Добрый день.
Подскажите, как сделать удаление профиля пользователя по нажатию кнопки.
Сделал такую форму:
Где я ошибся?
Подскажите, как сделать удаление профиля пользователя по нажатию кнопки.
Сделал такую форму:
<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;
Но что-то не работает…Где я ошибся?
Пишем свой информер погоды для сайта
Данный тикет не относится к разработке под MODX, но так как информер я разместил на MODX-сайте, то делюсь наработками здесь.
Вкратце: скрипт парсит XML с погодой и по нескольким условиям выводит результат на сайте.
Итак, XML для своего города берем тут и вставляем ссылку с дописанным /data/ в $rss = simplexml_load_file(...).
Значки «погоды» прилагаются.
Пример работы посмотреть можно тут.
[localizator] Мультиязычность, СЕО, автоперевод...
Удаление группы у пользователя
Добрый вечер.
Прошу помощи, не могу понять как удалить определенную группу у пользователя через api.
Процесс создания группы нашел и успешно использую
Прошу помощи, не могу понять как удалить определенную группу у пользователя через api.
Процесс создания группы нашел и успешно использую
$user->leaveGroup(1);
$user->joinGroup(3);
$user->save();
Вставка копирайтов при копировании текста на сайте
Головная боль многих новостных сайтов — копирование оригинального текста и его использование на других сайтах.
В качестве официального решения проблемы — предлагается автоматическое добавление копирайтов при копировании текста в буфер обмена. Копирайт может содержать ссылку на сайт-источник, что дает дополнительное SEO преимущество.
Ниже я предлагаю найденное мною и немного оптимизированное решение этого вопроса.
В качестве официального решения проблемы — предлагается автоматическое добавление копирайтов при копировании текста в буфер обмена. Копирайт может содержать ссылку на сайт-источник, что дает дополнительное SEO преимущество.
Ниже я предлагаю найденное мною и немного оптимизированное решение этого вопроса.