Пункт в меню {groups:my} 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 346
Есть специальная ссылка {groups:my} | Мои группы (клубы).
1 - Данный пункт есть в "Персональное меню"
2 - Он выводит список групп на которые я подписан.
3 - Выводит это в стиле выпадающего меню.

В Группах в datasets-panel ссылка /groups/index/my | Мои группы - это группы которые я создал.

В чем собственная тема, если я подписан на 100 групп то выпадающий список в "Персональное меню" превратится в портянку (но это не точно).
А вот собственно и сам вопрос, это не ошибка и специальная ссылка {groups:my} и должна выводить список групп на которые я подписан? Или же всё таки список групп которые я создал?

и еще если я не создал группу может мне и не надо показывать в datasets-panel ссылку на /grups/index/my | Мои группы ?
Редактировалось: 6 раз (Последний: 6 апреля 2019 в 01:41)
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2550
Killer's dream:
должна выводить список групп на которые я подписан
Судя по коду метода getUserGroups https://github.com/instantsoft/icms2/blob/2782bcf3bb2bab14d3055bf6c8f306cf55dcd51a/system/controllers/groups/model.php#L292 выводятся все группы, в которых состоит пользователь.
Вы можете:
1.
создать свой шаблон меню по аналогии с templates\default\assets\ui\menu.tpl.php и ограничить там вывод количества групп, затем указать этот шаблон меню в виджете аватар templates\default\controllers\users\widgets\avatar\avatar.tpl.php
2.
воспользоваться возможностями css и js, скрыв группы больше нужного количества
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 346
Zau4man, Спасибо за совет! Но буду думать как сделать пункт в меню "мои группы (те которые создал) " так было бы логичней на мой взгляд. Zau4man, нет случайно на этот счёт у вас совета? )))
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2550
Killer's dream, откройте файл system\controllers\groups\hooks\menu_groups.php и после

Код PHP:
  1.  
  2. if ($action == 'my'){
  3.  
  4. $groups = $this->model->getUserGroups($this->cms_user->id);
  5. if (!$groups) { return false; }
  6.  
  7. foreach($groups as $id => $group){
  8.  
  9. $result['items'][] = array(
  10. 'id' => 'group' . $id,
  11. 'parent_id' => $menu_item_id,
  12. 'title' => $group['title'],
  13. 'childs_count' => 0,
  14. 'url' => href_to($this->name, $group['slug'])
  15. );
  16.  
  17. }
  18.  
  19. }
  20.  
вставить код
Код PHP:
  1.  
  2. if ($action == 'own'){
  3.  
  4. $groups = $this->model->filterEqual('owner_id',$this->cms_user->id)->get('groups');
  5. if (!$groups) { return false; }
  6.  
  7. foreach($groups as $id => $group){
  8.  
  9. $result['items'][] = array(
  10. 'id' => 'group' . $id,
  11. 'parent_id' => $menu_item_id,
  12. 'title' => $group['title'],
  13. 'childs_count' => 0,
  14. 'url' => href_to($this->name, $group['slug'])
  15. );
  16.  
  17. }
  18.  
  19. }
  20.  
и использовать в меню {groups:own} вместо {groups:my}

Не люблю править системные файлы, поэтому рекомендую сделать отдельным хуком.
По аналогии.
Создать пустой компонент. В нем файл манифест со строкой menu_groups
папку hooks
и в ней такой же файл menu_groups
заменяя по аналогии имя компонента на свое и т.п.
Обновить события

Управитесь быстро.
Редактировалось: 1 раз (Последний: 7 апреля 2019 в 10:32)
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
Медаль
Сообщений: 346
Zau4man, Спасибо за развёрнутый ответ!
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.