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) { |
||||
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) { |
||||
2 ignored issues
–
show
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...
|
|||||
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.