4 use Elgg\Traits\Entity\PluginSettings;
29 parent::initializeAttributes();
31 $this->attributes[
'type'] =
'group';
32 $this->attributes[
'subtype'] =
'group';
49 $options[
'inverse_relationship'] =
true;
71 return ($this->membership === self::MEMBERSHIP_INVITE_ONLY);
81 $mode = $this->content_access_mode;
84 if ($this->isPublicMembership()) {
85 $mode = self::CONTENT_ACCESS_MODE_UNRESTRICTED;
87 $mode = self::CONTENT_ACCESS_MODE_MEMBERS_ONLY;
92 if (
$mode === self::CONTENT_ACCESS_MODE_MEMBERS_ONLY) {
96 return self::CONTENT_ACCESS_MODE_UNRESTRICTED;
108 if (!
$mode && $this->content_access_mode) {
113 if (
$mode !== self::CONTENT_ACCESS_MODE_MEMBERS_ONLY) {
114 $mode = self::CONTENT_ACCESS_MODE_UNRESTRICTED;
117 $this->content_access_mode =
$mode;
136 return $user->hasRelationship($this->guid,
'member');
148 if (!
$user->addRelationship($this->guid,
'member')) {
175 return $user->removeRelationship($this->guid,
'member');
183 $object->name = $this->getDisplayName();
202 $tool = $this->getTool(
$name);
203 if (!$tool instanceof
Tool) {
207 $md_name = $tool->mapMetadataName();
208 $setting = $this->$md_name;
210 if (!isset($setting)) {
211 return $tool->isEnabledByDefault();
214 return $setting ==
'yes';
226 $tool = $this->getTool(
$name);
227 if (!$tool instanceof
Tool) {
231 $md_name = $tool->mapMetadataName();
232 $md_value = $tool->mapMetadataValue(
'yes');
234 $this->$md_name = $md_value;
248 $tool = $this->getTool(
$name);
249 if (!$tool instanceof
Tool) {
253 $md_name = $tool->mapMetadataName();
254 $md_value = $tool->mapMetadataValue(
'no');
256 $this->$md_name = $md_value;
285 if ($this->getContentAccessMode() == self::CONTENT_ACCESS_MODE_MEMBERS_ONLY) {
290 return $this->isMember(
$user) ||
$user->isAdmin();
$mode
Configure site maintenance mode.
if(! $user||! $user->canDelete()) $name
$params
Saves global plugin settings.
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/clear'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['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', 'controller'=> \Elgg\Diagnostics\DownloadController::class,], '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'=>[],]
getGUID()
Returns the guid.
isPublicMembership()
Returns whether the current group has open membership or not.
canAccessContent(?\ElggUser $user=null)
Check if current user can access group content based on his/her membership status and group's content...
prepareObject(\Elgg\Export\Entity $object)
{Prepare an object copy for toObject()Object representation of the entity\Elgg\Export\Entity}
initializeAttributes()
{Initialize the attributes array.This is vital to distinguish between metadata and base parameters....
enableTool(string $name)
Enables a tool option.
const CONTENT_ACCESS_MODE_MEMBERS_ONLY
isMember(?\ElggUser $user=null)
Is the given user a member of this group?
leave(\ElggUser $user)
Remove a user from the group.
const CONTENT_ACCESS_MODE_UNRESTRICTED
join(\ElggUser $user, array $params=[])
Join a user to this group.
isInviteOnlyMembership()
Returns whether the current group has an invitation only membership.
disableTool(string $name)
Disables a tool option.
getContentAccessMode()
Return the content access mode.
const MEMBERSHIP_INVITE_ONLY
getMembers(array $options=[])
Get an array of group members.
isToolEnabled(string $name)
Checks if a tool option is enabled.
setContentAccessMode(string $mode)
Set the content access mode.
getTool(string $name)
Returns the registered tool configuration.
if(count($css_vars)< 2) $options
if($email instanceof \Elgg\Email) $object
_elgg_services()
Get the global service provider.
elgg_get_entities(array $options=[])
Fetches/counts entities or performs a calculation on their properties.
if(parse_url(elgg_get_site_url(), PHP_URL_PATH) !=='/') if(file_exists(elgg_get_root_path() . 'robots.txt'))
Set robots.txt.