Elgg /
Elgg
| 1 | <?php |
||||||
| 2 | /** |
||||||
| 3 | * Plugin for creating web pages for your site |
||||||
| 4 | */ |
||||||
| 5 | |||||||
| 6 | /** |
||||||
| 7 | * External pages init |
||||||
| 8 | * |
||||||
| 9 | * @return void |
||||||
| 10 | */ |
||||||
| 11 | function expages_init() { |
||||||
| 12 | |||||||
| 13 | // Register a page handler, so we can have nice URLs |
||||||
| 14 | 31 | elgg_register_page_handler('about', 'expages_page_handler'); |
|||||
| 15 | 31 | elgg_register_page_handler('terms', 'expages_page_handler'); |
|||||
| 16 | 31 | elgg_register_page_handler('privacy', 'expages_page_handler'); |
|||||
| 17 | 31 | elgg_register_page_handler('expages', 'expages_page_handler'); |
|||||
| 18 | |||||||
| 19 | // Register public external pages |
||||||
| 20 | 31 | elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'expages_public'); |
|||||
| 21 | |||||||
| 22 | 31 | elgg_register_plugin_hook_handler('register', 'menu:expages', 'expages_menu_register_hook'); |
|||||
| 23 | |||||||
| 24 | // add a menu item for the admin edit page |
||||||
| 25 | 31 | elgg_register_menu_item('page', [ |
|||||
| 26 | 31 | 'name' => 'configure_utilities:expages', |
|||||
| 27 | 31 | 'text' => elgg_echo('admin:configure_utilities:expages'), |
|||||
| 28 | 31 | 'href' => 'admin/configure_utilities/expages', |
|||||
| 29 | 31 | 'section' => 'configure', |
|||||
| 30 | 31 | 'parent_name' => 'configure_utilities', |
|||||
| 31 | 31 | 'context' => 'admin', |
|||||
| 32 | ]); |
||||||
| 33 | |||||||
| 34 | // add footer links |
||||||
| 35 | 31 | expages_setup_footer_menu(); |
|||||
| 36 | 31 | } |
|||||
| 37 | |||||||
| 38 | /** |
||||||
| 39 | * Extend the public pages range |
||||||
| 40 | * |
||||||
| 41 | * @param string $hook 'public_pages' |
||||||
| 42 | * @param string $handler 'walled_garden' |
||||||
| 43 | * @param array $return current return value |
||||||
| 44 | * @param mixed $params supplied params |
||||||
| 45 | * |
||||||
| 46 | * @return array |
||||||
| 47 | */ |
||||||
| 48 | function expages_public($hook, $handler, $return, $params) { |
||||||
|
2 ignored issues
–
show
The parameter
$params is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
The parameter
$hook is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
|
|||||||
| 49 | $pages = ['about', 'terms', 'privacy']; |
||||||
| 50 | return array_merge($pages, $return); |
||||||
| 51 | } |
||||||
| 52 | |||||||
| 53 | /** |
||||||
| 54 | * Setup the links to site pages |
||||||
| 55 | * |
||||||
| 56 | * @return void |
||||||
| 57 | */ |
||||||
| 58 | function expages_setup_footer_menu() { |
||||||
| 59 | 31 | $pages = ['about', 'terms', 'privacy']; |
|||||
| 60 | 31 | foreach ($pages as $page) { |
|||||
| 61 | 31 | elgg_register_menu_item('walled_garden', [ |
|||||
| 62 | 31 | 'name' => $page, |
|||||
| 63 | 31 | 'text' => elgg_echo("expages:$page"), |
|||||
| 64 | 31 | 'href' => $page, |
|||||
| 65 | ]); |
||||||
| 66 | |||||||
| 67 | 31 | elgg_register_menu_item('footer', [ |
|||||
| 68 | 31 | 'name' => $page, |
|||||
| 69 | 31 | 'text' => elgg_echo("expages:$page"), |
|||||
| 70 | 31 | 'href' => $page, |
|||||
| 71 | 31 | 'section' => 'meta', |
|||||
| 72 | ]); |
||||||
| 73 | } |
||||||
| 74 | 31 | } |
|||||
| 75 | |||||||
| 76 | /** |
||||||
| 77 | * External pages page handler |
||||||
| 78 | * |
||||||
| 79 | * @param array $page URL segements |
||||||
| 80 | * @param string $handler Handler identifier |
||||||
| 81 | * @return bool |
||||||
| 82 | */ |
||||||
| 83 | function expages_page_handler($page, $handler) { |
||||||
| 84 | if ($handler == 'expages') { |
||||||
| 85 | forward($page[1]); |
||||||
| 86 | } |
||||||
| 87 | $type = strtolower($handler); |
||||||
| 88 | |||||||
| 89 | $title = elgg_echo("expages:$type"); |
||||||
| 90 | |||||||
| 91 | $object = elgg_get_entities([ |
||||||
| 92 | 'type' => 'object', |
||||||
| 93 | 'subtype' => $type, |
||||||
| 94 | 'limit' => 1, |
||||||
| 95 | ]); |
||||||
| 96 | |||||||
| 97 | $description = $object ? $object[0]->description : elgg_echo('expages:notset'); |
||||||
| 98 | $description = elgg_view('output/longtext', ['value' => $description]); |
||||||
| 99 | |||||||
| 100 | $content = elgg_view('expages/wrapper', [ |
||||||
| 101 | 'content' => $description, |
||||||
| 102 | ]); |
||||||
| 103 | |||||||
| 104 | if (elgg_is_admin_logged_in()) { |
||||||
| 105 | elgg_register_menu_item('title', [ |
||||||
| 106 | 'name' => 'edit', |
||||||
| 107 | 'text' => elgg_echo('edit'), |
||||||
| 108 | 'href' => "admin/configure_utilities/expages?type=$type", |
||||||
| 109 | 'link_class' => 'elgg-button elgg-button-action', |
||||||
| 110 | ]); |
||||||
| 111 | } |
||||||
| 112 | |||||||
| 113 | $shell = 'default'; |
||||||
| 114 | if (elgg_get_config('walled_garden') && !elgg_is_logged_in()) { |
||||||
| 115 | $shell = 'walled_garden'; |
||||||
| 116 | } |
||||||
| 117 | $body = elgg_view_layout('default', [ |
||||||
| 118 | 'content' => $content, |
||||||
| 119 | 'title' => $title, |
||||||
| 120 | 'sidebar' => false, |
||||||
| 121 | ]); |
||||||
| 122 | echo elgg_view_page($title, $body, $shell); |
||||||
| 123 | |||||||
| 124 | return true; |
||||||
| 125 | } |
||||||
| 126 | |||||||
| 127 | /** |
||||||
| 128 | * Adds menu items to the expages edit form |
||||||
| 129 | * |
||||||
| 130 | * @param string $hook 'register' |
||||||
| 131 | * @param string $type 'menu:expages' |
||||||
| 132 | * @param array $return current menu items |
||||||
| 133 | * @param array $params parameters |
||||||
| 134 | * |
||||||
| 135 | * @return array |
||||||
| 136 | */ |
||||||
| 137 | function expages_menu_register_hook($hook, $type, $return, $params) { |
||||||
| 138 | $type = elgg_extract('type', $params); |
||||||
| 139 | |||||||
| 140 | $pages = ['about', 'terms', 'privacy']; |
||||||
| 141 | foreach ($pages as $page) { |
||||||
| 142 | $return[] = ElggMenuItem::factory([ |
||||||
| 143 | 'name' => $page, |
||||||
| 144 | 'text' => elgg_echo("expages:$page"), |
||||||
| 145 | 'href' => "admin/configure_utilities/expages?type=$page", |
||||||
| 146 | 'selected' => $page === $type, |
||||||
| 147 | ]); |
||||||
| 148 | } |
||||||
| 149 | return $return; |
||||||
| 150 | } |
||||||
| 151 | |||||||
| 152 | return function() { |
||||||
| 153 | 18 | elgg_register_event_handler('init', 'system', 'expages_init'); |
|||||
| 154 | }; |
||||||
| 155 |
This check looks for parameters that have been defined for a function or method, but which are not used in the method body.