30 $type = $this->request->getHttpRequest()->getRoute()?->getOption(
'entity_type');
31 $subtype = $this->request->getHttpRequest()->getRoute()?->getOption(
'entity_subtype');
37 if (empty($entity_class)) {
41 $guid = (int) $this->request->getParam(
'guid');
44 if (!
$entity instanceof $entity_class) {
45 throw new InternalServerErrorException();
49 throw new EntityPermissionsException();
52 $this->is_new_entity =
false;
60 throw new EntityPermissionsException();
76 protected function execute(array $skip_field_names = []): void {
79 foreach ($this->entity->getFields() as
$field) {
81 if (in_array(
$name, $skip_field_names)) {
88 if ($field_type ===
'switch') {
90 }
elseif ($field_type ===
'tags') {
96 if ($field_type ===
'file') {
98 if ($uploaded_file && !$uploaded_file->isValid()) {
111 if ($field_type ===
'file') {
126 parent::executeAfter();
128 if (!$this->entity->save()) {
132 if ($this->request->getParam(
'header_remove')) {
133 $this->entity->deleteIcon(
'header');
135 $this->entity->saveIconFromUploadedFile(
'header',
'header');
146 if ($this->isNewEntity()) {
148 'action_type' =>
'create',
149 'object_guid' => $this->entity->guid,
150 'target_guid' => $this->entity->container_guid,
155 "entity:edit:{$this->entity->getType()}:{$this->entity->getSubtype()}:success",
156 "entity:edit:{$this->entity->getType()}:success",
176 return $this->is_new_entity;
$guid
Reset an ElggUpgrade.
if(! $user||! $user->canDelete()) $name
if(! $entity->save()) $success_keys
if(! $entity->delete(true, true)) $forward_url
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'=>[],]
getType()
Returns the entity type.
canEdit(int $user_guid=0)
Can a user edit this entity?
getSubtype()
Get the entity subtype.
Generic entity edit action controller.
isNewEntity()
Is the entity being saved a new entity or being updated.
executeBefore()
{Preparation before executing the action.void}
execute(array $skip_field_names=[])
{}
executeAfter()
{Action part after the main execution.void}
success(?string $forward_url=null)
{}
Generic action controller.
Thrown when entity can not be edited or container permissions do not allow it to be written.
Thrown when the server encountered a generic error.
Action validation exception.
if($item instanceof \ElggEntity) elseif($item instanceof \ElggRiverItem) elseif($item instanceof \ElggRelationship) elseif(is_callable([ $item, 'getType']))
elgg_extract($key, $array, $default=null, bool $strict=true)
Checks for $array[$key] and returns its value if it exists, else returns $default.
get_entity(int $guid)
Loads and returns an entity object from a guid.
elgg_get_entity_class(string $type, string $subtype)
Return the class name registered as a constructor for an entity of a given type and subtype.
elgg_get_uploaded_file(string $input_name, bool $check_for_validity=true)
Returns a single valid uploaded file object.
elgg_language_key_exists(string $key, string $language='en')
Check if a given language key exists.
elgg_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
elgg_get_friendly_upload_error(int $error_code)
Returns a human-readable message for PHP's upload error codes.
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.
elgg_create_river_item(array $options=[])
Elgg river.
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.