Elgg  Version 7.1
EntityTrash.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Elgg\Menus;
4 
6 
10 class EntityTrash {
11 
19  public static function registerRestore(\Elgg\Event $event): ?MenuItems {
20  $entity = $event->getEntityParam();
21  if (!$entity->canEdit() || !$entity->hasCapability('restorable') || !$entity->isDeleted()) {
22  return null;
23  }
24 
25  /* @var $return MenuItems */
26  $return = $event->getValue();
27 
28  $container = $entity->getContainerEntity();
29  if ($container instanceof \ElggEntity && !$container->isDeleted()) {
30  $return[] = \ElggMenuItem::factory([
31  'name' => 'restore',
32  'icon' => 'trash-restore-alt',
33  'text' => elgg_echo('restore:this'),
34  'href' => elgg_generate_action_url('entity/restore', [
35  'guid' => $entity->guid,
36  ]),
37  'confirm' => elgg_echo('restoreconfirm'),
38  'priority' => 900,
39  ]);
40  } else {
41  $return[] = \ElggMenuItem::factory([
42  'name' => 'restore_and_move',
43  'icon' => 'trash-restore-alt',
44  'text' => elgg_echo('restore:this:move'),
45  'title' => elgg_echo('restore:this'),
46  'href' => elgg_generate_url('ajax', [
47  'type' => 'form',
48  'segments' => 'entity/chooserestoredestination',
49  'entity_guid' => $entity->guid,
50  ]),
51  'link_class' => 'elgg-lightbox',
52  'priority' => 800,
53  ]);
54  }
55 
56  return $return;
57  }
58 }
$entity
Definition: reset.php:8
$container
Definition: delete.php:23
static factory(array $options)
Create an ElggMenuItem from an associative array.
Models an event passed to event handlers.
Definition: Event.php:11
A collection of menu items.
Definition: MenuItems.php:10
Add items to the entity:trash menu.
Definition: EntityTrash.php:10
static registerRestore(\Elgg\Event $event)
Register the restore menu item.
Definition: EntityTrash.php:19
elgg_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
Definition: languages.php:17
elgg_generate_url(string $name, array $parameters=[])
Generate a URL for named route.
elgg_generate_action_url(string $action, array $query=[], bool $add_csrf_tokens=true)
Generate an action URL.