public static function removeOrReplaceItem(rex_extension_point $ep) { $params = $ep->getParams(); $key = $params['key']; $item = '|' . $params['item'] . '|'; $new = isset($params['new']) ? '|' . $params['new'] . '|' : '|'; $sql = rex_sql::factory(); $sql->setQuery('SELECT id, perms FROM ' . rex::getTable('user_role')); $update = rex_sql::factory(); $update->prepareQuery('UPDATE ' . rex::getTable('user_role') . ' SET perms = ? WHERE id = ?'); foreach ($sql as $row) { $perms = json_decode($row->getValue('perms'), true); if (isset($perms[$key]) && strpos($perms[$key], $item) !== false) { $perms[$key] = str_replace($item, $new, $perms[$key]); $update->execute([json_encode($perms), $row->getValue('id')]); } } }
public function extendForm(rex_extension_point $ep) { $params = $ep->getParams(); if (isset($params['sql'])) { $params['activeItem'] = $params['sql']; } $result = ' <tr id="' . self::CONTAINER . '" class="collapse mark"> <td colspan="2"></td> <td colspan="6"> <div class="rex-collapse-content"> ' . parent::renderFormAndSave(self::PREFIX, $params) . ' </div> </td> </tr>'; // Bei CLANG_ADDED und CLANG_UPDATED nur speichern und kein Formular zurückgeben if ('CLANG_UPDATED' == $ep->getName() || 'CLANG_ADDED' == $ep->getName()) { return $ep->getSubject(); } else { return $ep->getSubject() . $result; } }
public function extendForm(rex_extension_point $ep) { $params = $ep->getParams(); if (isset($params['category'])) { $params['activeItem'] = $params['category']; // Hier die category_id setzen, damit beim klick auf den REX_LINK_BUTTON der Medienpool in der aktuellen Kategorie startet $params['activeItem']->setValue('category_id', $params['id']); } $result = ' <tr id="' . self::CONTAINER . '" class="collapse mark"> <td colspan="2"></td> <td colspan="5"> ' . parent::renderFormAndSave(self::PREFIX, $params) . ' </td> </tr>'; // Bei CAT_ADDED und CAT_UPDATED nur speichern und kein Formular zur�ckgeben if ('CAT_UPDATED' == $ep->getName() || 'CAT_ADDED' == $ep->getName()) { return $ep->getSubject(); } else { return $ep->getSubject() . $result; } }
public function extendForm(rex_extension_point $ep) { $params = $ep->getParams(); // Nur beim EDIT gibts auch ein Medium zum bearbeiten if ($ep->getName() == 'MEDIA_FORM_EDIT') { $params['activeItem'] = $params['media']; unset($params['media']); // Hier die category_id setzen, damit keine Warnung entsteht (REX_LINK_BUTTON) // $params['activeItem']->setValue('category_id', 0); } elseif ($ep->getName() == 'MEDIA_ADDED') { $sql = rex_sql::factory(); $qry = 'SELECT id FROM ' . rex::getTablePrefix() . 'media WHERE filename="' . $params['filename'] . '"'; $sql->setQuery($qry); if ($sql->getRows() == 1) { $params['id'] = $sql->getValue('id'); } else { throw new rex_exception('Error occured during file upload!'); } } return parent::renderFormAndSave(self::PREFIX, $params); }