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

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

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

Добавление пользователя в другую группу

Добрый день!

Натолкнулся на снипет который сделал Николай https://modx.pro/help/9699/, чтобы добавить всех пользователей из одной группы в другую.

<?php
$usergroup = 4;
$c = $modx->newQuery('modUser');
$c->innerJoin ('modUserProfile','Profile');
$c->innerJoin ('modUserGroupMember','UserGroupMembers');
$c->innerJoin ('modUserGroup','UserGroup','`UserGroupMembers`.`user_group` = `UserGroup`.`id`');
$c->leftJoin ('modUserGroupRole','UserGroupRole','`UserGroupMembers`.`role` = `UserGroupRole`.`id`');
$c->where(array(
'UserGroupMembers.user_group' => $usergroup,
'UserGroupMembers.role' => '1',
));
$users = $modx->getCollection('modUser',$c);
foreach($users as $user) {
$user->joinGroup(11,1);
}

Снипет работает, добавляет всех пользователей, но подскажите, что нужно изменить в снипете, чтобы не всех пользователей из одной группы добавляло в другую группу, а только одного. Или может есть другое решение. Нужно для того, чтобы зарегистрированные при нажатии кнопки «Стать партнером» попадали в другую группу.
Александр
02 июня 2017, 12:10
modx.pro
1
1 301
0

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

Выводим количество комментариев (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
1 190
+1

Видео с MODX Meetup Almaty 2017



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

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

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


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

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

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

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

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

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

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

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

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

Хочу анонсировать вам обновление Office, которое стало результатом личной просьбы одного из участников митапа в Казахстане, на прошлой неделе.
Василий Наумкин
05 мая 2017, 16:37
modx.pro
2
2 301
+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
2 227
0

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


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

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



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

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

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

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