Есть ли виджет, отображающий списком группы в которые я вступил?
Спасибо.
В крайнем случае, могу попросить, чтобы архив собрали и отправили, а я размещу тут, но это время.
Евгений, Вы мне делали такой виджет. К сожалению собрать полноценный архив для установки я не могу. Если приходится мне что то делать для других своих сайтов — я делаю это через просмотр переписки с Вами на sugata:)) Если не затруднит и есть время, пожалуйста сделайте профессиональный пак этого виджета.Ранее писал для одного сайта, но его нет тут в каталоге (вроде). У меня к сожалению сейчас нет возможности его разместить тут (комп. другой). Может быть с кем делился, поделится им на форуме. Там ничего сложного собственно нет.
1. Делаем бекап базы и файла всего сайта! (копию)
2. Создаем папку и файл по пути:
<?php class widgetGroupsMymenu extends cmsWidget { public $is_cacheable = false; public function run() { $user = cmsUser::getInstance(); $myid = $user->id; if ($myid > 0) { $myid = $myid; } else { $myid = '8'; //подписанные группы пользователя по умолчанию } $controller = cmsCore::getController('groups'); $model = $controller->model; $group = $model->getUserGroups($myid); return [ 'group' => $group, 'myid' => $myid ]; } }
templates/default/controllers/groups/widgets/mymenu/default.tpl.php
<?php $current_group = cmsModel::getCachedResult('current_group'); $grid = $current_group['id']; ?> <h4 class="uk-text-uppercase uk-h6"> Читаю </h4> <div class="body fav"> <?php foreach($group as $my){ ?> <a class="s-my-menu" href="/groups/<?php html($my['slug']); ?>/content/posts"> <div class="s-my-image"> <?php echo html_image($my['logo'], 'small', $my['title']); ?> </div> <?php } else { ?> <div class="s-my-image"> <img src="/templates/default/images/icons/group.png" title="Группа" alt="Группа"> </div> <?php } ?> <span class="s-my-menu-name"> <?php html($my['title']); ?></span></a> <?php } ?> </div> <?php } else { ?> <div> <div class="uk-background-default"> Вы не подписаны ни на одно из пространств. <a href="/groups">Подпишитесь...</a> </div> </div> <?php } ?>
INSERT INTO `ПРЕФИКС_widgets` (`id`, `controller`, `name`, `title`, `author`, `url`, `version`, `is_external`, `files`, `addon_id`) VALUES (NULL, 'groups', 'mymenu', 'Мои подписки (меню)', 'Evg', '', NULL, '1', NULL, NULL);
Без авторизации виджет показывает группы, подписанные на пользователя с id 8, меняем на любого. Мы создали служебный аккаунт, который отвечает за группы. Он отвечает за них и его группы дефолтные. Можно сделать по другому, мы делали так.
Аватарки группы имеет смысл выводить с мин. размерами (у нас small).
P.S. у меня нет возможность проверить сейчас это дело, но вроде должно работать. CSS соотв. нет, т.к. использовался Uikit3. Думаю, тут не должно быть проблем — с 10 строк накидать. Вроде всё.
Дополнение: виджет создан (спасибо, кто помог создать его, просил не называть имя). Файл у меня в профиле. Поддержка данного виджета не планируется. Задача была дать начальный макет (для последующей работы).
Fatal error: Uncaught Error: Class 'widgetGroupsMymenu' not found и там на ядро ссылается, 2.13.1
@Evg, установил виджет из ваших файлов и не работает
Fatal error: Uncaught Error: Class 'widgetGroupsMymenu' not found и там на ядро ссылается, 2.13.1
Тоже самое, а виджет нужный…
Посмотрите. Вроде все должно работать.
Огромное спасибо @Ris за сборку исправленной версии.
Стоит заглушка для неавторизированных участников. Им будут показаны группы пользователя с id 8: — служебный участник (я всегда, во всех системах создают еще несколько "служебных пользователей", для разных задач). Можно изменить на 1, чтобы показывать группы, которые видит админ.
Строка:
$myid = '8'; //подписанные группы пользователя по умолчанию