Меню админки(изменение)

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Добавление новых пуктов меню в админ панель. Как?

#1 21 октября 2016 в 15:55
Здравствуйте! Появилась надобность добавить свой пункт меню в админ панель. Вопрос как?
Нашёл где генерируется меню по пунктам в файле /system/controllers/admin/frontend.php. Там я нашёл вот такой метод:
  1. public function getAdminMenu(){
  2.  
  3. return array(
  4.  
  5. 'title' => LANG_CP_SECTION_CONTENT,
  6. 'url' => href_to($this->name, 'content'),
  7. 'options' => array(
  8. 'class' => 'item-content'
  9. )
  10. ),
  11. 'title' => LANG_CP_SECTION_CTYPES,
  12. 'url' => href_to($this->name, 'ctypes'),
  13. 'options' => array(
  14. 'class' => 'item-ctypes'
  15. )
  16. ),
  17. 'title' => LANG_CP_SECTION_MENU,
  18. 'url' => href_to($this->name, 'menu'),
  19. 'options' => array(
  20. 'class' => 'item-menu'
  21. )
  22. ),
  23. 'title' => LANG_CP_SECTION_WIDGETS,
  24. 'url' => href_to($this->name, 'widgets'),
  25. 'options' => array(
  26. 'class' => 'item-widgets'
  27. )
  28. ),
  29. 'title' => LANG_CP_SECTION_CONTROLLERS,
  30. 'url' => href_to($this->name, 'controllers'),
  31. 'options' => array(
  32. 'class' => 'item-controllers'
  33. )
  34. ),
  35. 'title' => LANG_CP_SECTION_USERS,
  36. 'url' => href_to($this->name, 'users'),
  37. 'options' => array(
  38. 'class' => 'item-users'
  39. )
  40. ),
  41. 'title' => LANG_CP_SECTION_SETTINGS,
  42. 'url' => href_to($this->name, 'settings'),
  43. 'options' => array(
  44. 'class' => 'item-settings'
  45. )
  46. ),
  47.  
  48. );
  49.  
  50. }
Пробовал сюда добавлять свой массив пункта меню, всё сработало, но хотелось бы чтобы при обновлении CMS изменения не слетели. А как это сделать не знаю. Вообщем есть ли возможность повлиять на этот метод из своего компонента, который я пишу или пункт меню в админке можно добавить для своего компонента только если править этот метод и по другому никак?

Instant CMS 2.5.1.

#2 21 октября 2016 в 19:55
Способа всё таки нет что ли повлиять на меню админки из компонента?
#3 21 октября 2016 в 21:37

Способа всё таки нет что ли повлиять на меню админки из компонента?

Михаил
Есть. Либо так, как вы сделали, либо сделать вот так:

  1. public function getAdminMenu(){
  2.  
  3. return cmsEventsManager::hook('adminpanel_menu', array(
  4.  
  5. 'title' => LANG_CP_SECTION_CONTENT,
  6. 'url' => href_to($this->name, 'content'),
  7. 'options' => array(
  8. 'class' => 'item-content'
  9. )
  10. ),
  11. 'title' => LANG_CP_SECTION_CTYPES,
  12. 'url' => href_to($this->name, 'ctypes'),
  13. 'options' => array(
  14. 'class' => 'item-ctypes'
  15. )
  16. ),
  17. 'title' => LANG_CP_SECTION_MENU,
  18. 'url' => href_to($this->name, 'menu'),
  19. 'options' => array(
  20. 'class' => 'item-menu'
  21. )
  22. ),
  23. 'title' => LANG_CP_SECTION_WIDGETS,
  24. 'url' => href_to($this->name, 'widgets'),
  25. 'options' => array(
  26. 'class' => 'item-widgets'
  27. )
  28. ),
  29. 'title' => LANG_CP_SECTION_CONTROLLERS,
  30. 'url' => href_to($this->name, 'controllers'),
  31. 'options' => array(
  32. 'class' => 'item-controllers'
  33. )
  34. ),
  35. 'title' => LANG_CP_SECTION_USERS,
  36. 'url' => href_to($this->name, 'users'),
  37. 'options' => array(
  38. 'class' => 'item-users'
  39. )
  40. ),
  41. 'title' => LANG_CP_SECTION_SETTINGS,
  42. 'url' => href_to($this->name, 'settings'),
  43. 'options' => array(
  44. 'class' => 'item-settings'
  45. )
  46. )
  47.  
  48. ));
  49.  
  50. }
Именно так будет выглядеть этот метод в InstantCMS 2.6.0. Я бы дал вам ссылку на гитхаб, где это уже внесено и добавлены другие хуки, да только их DNS лежат и он недоступен везде.
Поэтому замените метод на тот, что я привел и цепляйтесь за хук adminpanel_menu. После обновления все продолжит работать у вас.
#4 21 октября 2016 в 21:59
ХОРОШЕЕ ДОБАВЛЕНИЕ. Вообще в иделае иметь в админке некую кнопку — добавление страницы в закладки для определнных групп, и эта страница добавлялась бы на главную админки, в связи с чем главная страница была бы более полезной и функциональной. так же бы вынес последние добавленные материалы виджетом. админке очень нехватает виджетов
#5 21 октября 2016 в 22:05
Fuze, спасибо огромное!!! Не думал что мне повезёт получить метод из 2.6 версии которая ещё не выпустилась официально. Спасибо!!! С меня +++
#6 21 октября 2016 в 22:19

Не думал что мне повезёт получить метод из 2.6 версии которая ещё не выпустилась официально

Михаил
Так не за что) Вы можете сами следить за разработкой github.com/instantsoft/icms2
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.