18 protected ?\Elgg\Router\Route
$route =
null;
33 $this->page_owner = $this->route?->resolvePageOwner();
36 $parsed_route = $this->
parseRoute($route_name);
41 'type' => $parsed_route[
'type'],
42 'subtype' => $parsed_route[
'subtype'],
45 $listing_function =
'list' . str_replace(
' ',
'', ucwords(str_replace([
'_',
'-'],
' ', $parsed_route[
'page'])));
46 if (!is_callable([$this, $listing_function])) {
61 final protected function parseRoute(
string $route_name): array {
62 $name_parts = explode(
':', $route_name);
63 if (count($name_parts) < 3) {
67 if (!in_array($name_parts[0], [
'default',
'collection'])) {
72 'type' => $name_parts[1],
73 'subtype' => $name_parts[2],
74 'page' => $name_parts[3] ??
'all',
84 return $this->route?->getOption(
'group_tool');
110 $sidebar_view = $this->route?->getOption(
'sidebar_view');
114 'entity' => $this->page_owner,
136 'title' =>
elgg_echo(
"collection:{$options['type']}:{$options['subtype']}:all"),
137 'content' =>
elgg_view(
'page/list/all', [
141 'filter_value' =>
'all',
157 if (!$this->page_owner instanceof \
ElggUser) {
164 'relationship' =>
'friend',
165 'relationship_guid' => $this->page_owner->guid,
166 'relationship_join_on' =>
'owner_guid',
170 'title' =>
elgg_echo(
"collection:{$options['type']}:{$options['subtype']}:friends"),
171 'content' =>
elgg_view(
'page/list/all', [
172 'entity' => $this->page_owner,
173 'options' => array_merge(
$options, $friends_options),
197 $group_tool = $this->getGroupToolOption();
198 if (isset($group_tool)) {
205 'container_guid' => $this->page_owner->guid,
206 'preload_containers' =>
false,
210 'title' =>
elgg_echo(
"collection:{$options['type']}:{$options['subtype']}:group"),
211 'content' =>
elgg_view(
'page/list/all', [
212 'entity' => $this->page_owner,
213 'options' => array_merge(
$options, $group_options),
216 'filter_id' =>
"{$options['subtype']}/group",
217 'filter_value' =>
'all',
233 if (!$this->page_owner instanceof \
ElggUser) {
240 'owner_guid' => $this->page_owner->guid,
241 'preload_owners' =>
false,
245 'title' =>
elgg_echo(
"collection:{$options['type']}:{$options['subtype']}:owner", [$this->page_owner->getDisplayName()]),
246 'content' =>
elgg_view(
'page/list/all', [
247 'entity' => $this->page_owner,
return[ 'admin/delete_admin_notices'=>['access'=> 'admin'], 'admin/menu/save'=>['access'=> 'admin'], 'admin/plugins/activate'=>['access'=> 'admin'], 'admin/plugins/activate_all'=>['access'=> 'admin'], 'admin/plugins/deactivate'=>['access'=> 'admin'], 'admin/plugins/deactivate_all'=>['access'=> 'admin'], 'admin/plugins/set_priority'=>['access'=> 'admin'], 'admin/security/security_txt'=>['access'=> 'admin'], 'admin/security/settings'=>['access'=> 'admin'], 'admin/security/regenerate_site_secret'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['access'=> 'admin'], 'admin/site/flush_cache'=>['access'=> 'admin'], 'admin/site/icons'=>['access'=> 'admin'], 'admin/site/set_maintenance_mode'=>['access'=> 'admin'], 'admin/site/set_robots'=>['access'=> 'admin'], 'admin/site/theme'=>['access'=> 'admin'], 'admin/site/unlock_upgrade'=>['access'=> 'admin'], 'admin/site/settings'=>['access'=> 'admin'], 'admin/upgrade'=>['access'=> 'admin'], 'admin/upgrade/reset'=>['access'=> 'admin'], 'admin/user/ban'=>['access'=> 'admin'], 'admin/user/bulk/ban'=>['access'=> 'admin'], 'admin/user/bulk/delete'=>['access'=> 'admin'], 'admin/user/bulk/unban'=>['access'=> 'admin'], 'admin/user/bulk/validate'=>['access'=> 'admin'], 'admin/user/change_email'=>['access'=> 'admin'], 'admin/user/delete'=>['access'=> 'admin'], 'admin/user/login_as'=>['access'=> 'admin'], 'admin/user/logout_as'=>[], 'admin/user/makeadmin'=>['access'=> 'admin'], 'admin/user/resetpassword'=>['access'=> 'admin'], 'admin/user/removeadmin'=>['access'=> 'admin'], 'admin/user/unban'=>['access'=> 'admin'], 'admin/user/validate'=>['access'=> 'admin'], 'annotation/delete'=>[], 'avatar/upload'=>[], 'comment/save'=>[], 'diagnostics/download'=>['access'=> 'admin'], 'entity/chooserestoredestination'=>[], 'entity/delete'=>[], 'entity/mute'=>[], 'entity/restore'=>[], 'entity/subscribe'=>[], 'entity/trash'=>[], 'entity/unmute'=>[], 'entity/unsubscribe'=>[], 'login'=>['access'=> 'logged_out'], 'logout'=>[], 'notifications/mute'=>['access'=> 'public'], 'plugins/settings/remove'=>['access'=> 'admin'], 'plugins/settings/save'=>['access'=> 'admin'], 'plugins/usersettings/save'=>[], 'register'=>['access'=> 'logged_out', 'middleware'=>[\Elgg\Router\Middleware\RegistrationAllowedGatekeeper::class,],], 'river/delete'=>[], 'settings/notifications'=>[], 'settings/notifications/subscriptions'=>[], 'user/changepassword'=>['access'=> 'public'], 'user/requestnewpassword'=>['access'=> 'public'], 'useradd'=>['access'=> 'admin'], 'usersettings/save'=>[], 'widgets/add'=>[], 'widgets/delete'=>[], 'widgets/move'=>[], 'widgets/save'=>[],]
Generic controller to handle entity listing routes.
listGroup(array $options)
Group content item listing.
listFriends(array $options)
Friends content item listing.
getListingOptions(string $page, array $options)
Get additional options to use for elgg_list_entities()
listAll(array $options)
All content item listing.
getPageOptions(string $page, array $options)
Get additional options to use when viewing a page.
parseRoute(string $route_name)
Parse the route name to usable parts.
__invoke(\Elgg\Request $request)
Handle a listing request.
listOwner(array $options)
Owner content item listing.
getGroupToolOption()
Get the name of the group tool option for group routes.
Thrown when request is malformatted.
Action validation exception.
getRoute()
Get the name of the route.
getHttpRequest()
Get the HttpRequest for this request.
if($who_can_change_language==='nobody') elseif($who_can_change_language==='admin_only' &&!elgg_is_admin_logged_in()) $options
elgg_push_collection_breadcrumbs(string $entity_type, string $entity_subtype, ?\ElggEntity $container=null, bool $friends=false)
Resolves and pushes collection breadcrumbs for a container.
elgg_register_title_button(string $name='add', string $entity_type='', string $entity_subtype='')
Convenience function for registering a button to the title menu.
elgg_group_tool_gatekeeper(string $tool_name, ?int $group_guid=null)
Checks if a group has a specific tool enabled.
elgg_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
elgg_view_exists(string $view, string $viewtype='', bool $recurse=true)
Returns whether the specified view exists.
elgg_view_page(string $title, string|array $body, string $page_shell='default', array $vars=[])
Assembles and outputs a full page.
elgg_view(string $view, array $vars=[], string $viewtype='')
Return a parsed view.
elgg_ok_response($content='', string|array $message='', ?string $forward_url=null, int $status_code=ELGG_HTTP_OK)
Prepares a successful response to be returned by a page or an action handler.
if(parse_url(elgg_get_site_url(), PHP_URL_PATH) !=='/') if(file_exists(elgg_get_root_path() . 'robots.txt'))
Set robots.txt.
elgg_get_logged_in_user_guid()
Return the current logged in user by guid.
if(! $entity instanceof \ElggGroup) $owner_options