Elgg  Version 6.2
Tool.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Elgg\Groups;
4 
6 
15 class Tool implements CollectionItemInterface {
16 
17  protected array $options;
18 
25  public function __construct(public string $name, array $options = []) {
26  $defaults = [
27  'label' => null,
28  'default_on' => true,
29  'priority' => 500,
30  ];
31 
32  $this->options = array_merge($defaults, $options);
33  }
34 
38  public function __get($name) {
39  switch ($name) {
40  case 'label':
41  return $this->getLabel();
42 
43  case 'default_on':
44  return $this->isEnabledByDefault();
45  }
46 
47  return elgg_extract($name, $this->options);
48  }
49 
53  public function __set($name, $value) {
54  $this->options[$name] = $value;
55  }
56 
60  public function getID() {
61  return $this->name;
62  }
63 
67  public function getPriority() {
68  return $this->priority;
69  }
70 
76  public function getLabel(): string {
77  $label = elgg_extract('label', $this->options);
78  if (isset($label)) {
79  return $label;
80  }
81 
82  return elgg_echo("groups:tool:{$this->name}");
83  }
84 
90  public function getDescription(): ?string {
91  $lan_key = "groups:tool:{$this->name}:description";
93  return null;
94  }
95 
96  return elgg_echo($lan_key);
97  }
98 
104  public function isEnabledByDefault(): bool {
105  $default_on = elgg_extract('default_on', $this->options, true);
106 
107  if ($default_on === true || $default_on === 'yes') {
108  return true;
109  }
110 
111  return false;
112  }
113 
119  public function mapMetadataName(): string {
120  return "{$this->name}_enable";
121  }
122 
131  public function mapMetadataValue($value = null): string {
132  if (!isset($value)) {
133  $value = $this->default_on;
134  }
135 
136  if ($value === 'yes' || $value === true) {
137  return 'yes';
138  }
139 
140  return 'no';
141  }
142 }
if(! $user||! $user->canDelete()) $name
Definition: delete.php:22
if(! $annotation->delete()) $lan_key
Definition: delete.php:33
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'=>[],]
Definition: actions.php:73
__construct(public string $name, array $options=[])
Constructor.
Definition: Tool.php:25
mapMetadataName()
Get metadata name for DB storage.
Definition: Tool.php:119
__get($name)
{}
Definition: Tool.php:38
getDescription()
Get tool description.
Definition: Tool.php:90
mapMetadataValue($value=null)
Get metadata value for DB storage.
Definition: Tool.php:131
isEnabledByDefault()
Is the tool enabled by default?
Definition: Tool.php:104
array $options
Definition: Tool.php:17
getLabel()
Get tool label.
Definition: Tool.php:76
__set($name, $value)
{}
Definition: Tool.php:53
getPriority()
{Get priority (weight) of the item within a collection.int}
Definition: Tool.php:67
getID()
{Get unique item identifier within a collection.string|int}
Definition: Tool.php:60
if($view &&elgg_view_exists($view)) $label
Definition: field.php:26
elgg_extract($key, $array, $default=null, bool $strict=true)
Checks for $array[$key] and returns its value if it exists, else returns $default.
Definition: elgglib.php:256
$defaults
Generic entity header upload helper.
Definition: header.php:6
$value
Definition: generic.php:51
elgg_language_key_exists(string $key, string $language='en')
Check if a given language key exists.
Definition: languages.php:44
elgg_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
Definition: languages.php:17
if(parse_url(elgg_get_site_url(), PHP_URL_PATH) !=='/') if(file_exists(elgg_get_root_path() . 'robots.txt'))
Set robots.txt.
Definition: robots.php:10
$priority