Skip to content

Commit

Permalink
metainfo: Ablaufoptimierungen (#4878)
Browse files Browse the repository at this point in the history
  • Loading branch information
gharlan committed Nov 3, 2021
1 parent 08fa56e commit ab8b982
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 11 deletions.
4 changes: 2 additions & 2 deletions redaxo/src/addons/metainfo/lib/handler/category_handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ public function extendForm(rex_extension_point $ep)
rex_extension::register('CAT_FORM_ADD', [$catHandler, 'extendForm']);
rex_extension::register('CAT_FORM_EDIT', [$catHandler, 'extendForm']);

rex_extension::register('CAT_ADDED', [$catHandler, 'extendForm']);
rex_extension::register('CAT_UPDATED', [$catHandler, 'extendForm']);
rex_extension::register('CAT_ADDED', [$catHandler, 'extendForm'], rex_extension::EARLY);
rex_extension::register('CAT_UPDATED', [$catHandler, 'extendForm'], rex_extension::EARLY);

rex_extension::register('CAT_FORM_BUTTONS', [$catHandler, 'renderToggleButton']);
4 changes: 2 additions & 2 deletions redaxo/src/addons/metainfo/lib/handler/clang_handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public function extendForm(rex_extension_point $ep)
rex_extension::register('CLANG_FORM_ADD', [$clangHandler, 'extendForm']);
rex_extension::register('CLANG_FORM_EDIT', [$clangHandler, 'extendForm']);

rex_extension::register('CLANG_ADDED', [$clangHandler, 'extendForm']);
rex_extension::register('CLANG_UPDATED', [$clangHandler, 'extendForm']);
rex_extension::register('CLANG_ADDED', [$clangHandler, 'extendForm'], rex_extension::EARLY);
rex_extension::register('CLANG_UPDATED', [$clangHandler, 'extendForm'], rex_extension::EARLY);

rex_extension::register('CLANG_FORM_BUTTONS', [$clangHandler, 'renderToggleButton']);
4 changes: 2 additions & 2 deletions redaxo/src/addons/metainfo/lib/handler/handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -653,14 +653,14 @@ protected static function getSqlFields($prefix, $filterCondition = '')
*
* @return string
*/
public function renderFormAndSave($prefix, array $params)
public function renderFormAndSave($prefix, array $params, bool $fireCallbacks = true)
{
$filterCondition = $this->buildFilterCondition($params);
$sqlFields = static::getSqlFields($prefix, $filterCondition);
$params = $this->handleSave($params, $sqlFields);

// trigger callback of sql fields
if ('post' == rex_request_method()) {
if ($fireCallbacks && 'post' == rex_request_method()) {
$this->fireCallbacks($sqlFields);
}

Expand Down
12 changes: 7 additions & 5 deletions redaxo/src/addons/metainfo/lib/handler/media_handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,8 @@ protected function handleSave(array $params, rex_sql $sqlFields)

parent::fetchRequestValues($params, $media, $sqlFields);

// do the save only when metafields are defined
if ($media->hasValues()) {
// do the save only when EP = MEDIA_ADDED/UPDATED and metafields are defined
if ($params['save'] && $media->hasValues()) {
$media->update();
}

Expand All @@ -179,6 +179,8 @@ protected function renderFormItem($field, $tag, $tagAttr, $id, $label, $labelIt,
public function extendForm(rex_extension_point $ep)
{
$params = $ep->getParams();
$params['save'] = $save = in_array($ep->getName(), ['MEDIA_ADDED', 'MEDIA_UPDATED'], true);

// Nur beim EDIT gibts auch ein Medium zum bearbeiten
if ('MEDIA_FORM_EDIT' == $ep->getName()) {
$params['activeItem'] = $params['media'];
Expand All @@ -194,7 +196,7 @@ public function extendForm(rex_extension_point $ep)
}
}

return $ep->getSubject() . parent::renderFormAndSave(self::PREFIX, $params);
return $ep->getSubject() . parent::renderFormAndSave(self::PREFIX, $params, $save);
}
}

Expand All @@ -203,7 +205,7 @@ public function extendForm(rex_extension_point $ep)
rex_extension::register('MEDIA_FORM_EDIT', [$mediaHandler, 'extendForm']);
rex_extension::register('MEDIA_FORM_ADD', [$mediaHandler, 'extendForm']);

rex_extension::register('MEDIA_ADDED', [$mediaHandler, 'extendForm']);
rex_extension::register('MEDIA_UPDATED', [$mediaHandler, 'extendForm']);
rex_extension::register('MEDIA_ADDED', [$mediaHandler, 'extendForm'], rex_extension::EARLY);
rex_extension::register('MEDIA_UPDATED', [$mediaHandler, 'extendForm'], rex_extension::EARLY);

rex_extension::register('MEDIA_IS_IN_USE', [rex_metainfo_media_handler::class, 'isMediaInUse']);

0 comments on commit ab8b982

Please sign in to comment.