start.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace AU\GroupTagMenu;
  3. /**
  4. * Group tag menu
  5. * allows tags to become menu items in groups
  6. * Jon Dron (jond@athabascau.ca)
  7. * copyright Athabasca University 2013
  8. * GPL2 licence - see manifest.xml
  9. */
  10. const PLUGIN_ID = 'au_group_tag_menu';
  11. elgg_register_event_handler('init', 'system', __NAMESPACE__ . '\\init');
  12. function init() {
  13. // add settings for tools
  14. elgg_extend_view('groups/edit','au_group_tag_menu/tagmenu_settings');
  15. //add the tag menu at the bottom of the sidebar
  16. elgg_extend_view('page/elements/sidebar','au_group_tag_menu/sidebar/tagmenu');
  17. // register group option to show tag menu
  18. add_group_tool_option("tag_menu",elgg_echo("au_group_tag_menu:enable"),true);
  19. //register action to save settings
  20. elgg_register_action("au_group_tag_menu/groups/save_tagmenu", __DIR__ . "/actions/groups/save_tagmenu.php");
  21. //register the tag type for menu tags
  22. elgg_register_tag_metadata_name('menu_tags');
  23. //register the page to show results
  24. elgg_register_page_handler('group_tag_menu', __NAMESPACE__ . '\\group_tag_menu_page_handler');
  25. }
  26. function group_tag_menu_page_handler($page){
  27. $content = false;
  28. //show the page of search results
  29. // assumes url of group/guid/tag
  30. // if the tag is 'all' then will display a tagcloud
  31. switch ($page[0]){
  32. case 'group':
  33. $entity = get_entity($page[1]);
  34. $content = elgg_view('resources/au_group_tag_menu/group', array(
  35. 'entity' => $entity,
  36. 'page' => $page
  37. ));
  38. break;
  39. }
  40. if ($content) {
  41. echo $content;
  42. return true;
  43. }
  44. return false;
  45. }