Elgg  Version 6.2
PluginSettings.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Elgg\Traits\Entity;
4 
10 trait PluginSettings {
11 
21  public function setPluginSetting(string $plugin_id, string $name, $value): bool {
22  $value = _elgg_services()->events->triggerResults('plugin_setting', $this->getType(), [
23  'entity' => $this,
24  'plugin_id' => $plugin_id,
25  'name' => $name,
26  'value' => $value,
27  ], $value);
28 
29  $name = $this->getNamespacedPluginSettingName($plugin_id, $name);
30 
31  return elgg_call(ELGG_DISABLE_SYSTEM_LOG, function() use ($name, $value) {
32  return $this->setMetadata($name, $value);
33  });
34  }
35 
46  public function getPluginSetting(string $plugin_id, string $name, $default = null) {
47  $plugin = _elgg_services()->plugins->get($plugin_id);
48  if (!$plugin instanceof \ElggPlugin || !$plugin->isActive()) {
49  return $default;
50  }
51 
52  $name = $this->getNamespacedPluginSettingName($plugin_id, $name);
53 
54  return $this->getMetadata($name) ?? $default;
55  }
56 
65  public function removePluginSetting(string $plugin_id, string $name): bool {
66  $name = $this->getNamespacedPluginSettingName($plugin_id, $name);
67 
68  return elgg_call(ELGG_DISABLE_SYSTEM_LOG, function() use ($name) {
69  return $this->deleteMetadata($name);
70  });
71  }
72 
81  final public function getNamespacedPluginSettingName(string $plugin_id, string $name): string {
82  return "plugin:{$this->getType()}_setting:{$plugin_id}:{$name}";
83  }
84 }
if(! $user||! $user->canDelete()) $name
Definition: delete.php:22
$plugin_id
Remove all user and plugin settings from the give plugin ID.
Definition: remove.php:8
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
Plugin class containing helper functions for plugin activation/deactivation, dependency checking capa...
Definition: ElggPlugin.php:17
const ELGG_DISABLE_SYSTEM_LOG
Definition: constants.php:125
_elgg_services()
Get the global service provider.
Definition: elgglib.php:353
elgg_call(int $flags, Closure $closure)
Calls a callable autowiring the arguments using public DI services and applying logic based on flags.
Definition: elgglib.php:306
$value
Definition: generic.php:51
$default
Definition: checkbox.php:30
setMetadata(string $name, mixed $value, string $value_type='', bool $multiple=false)
Set metadata on this entity.
Definition: Metadata.php:78
getMetadata(string $name)
Return the value of a piece of metadata.
Definition: Metadata.php:27
deleteMetadata(?string $name=null)
Deletes all metadata on this object (metadata.entity_guid = $this->guid).
Definition: Metadata.php:198
$plugin