public function organizePriorities(rex_extension_point $ep) { if ($this->table->equals($ep->getParam('form'))) { $name = $this->getFieldName(); rex_sql_util::organizePriorities($this->table->getTableName(), $name, $this->whereCondition, $name . ', updatedate desc'); } }
public static function wildcardFormControlElement(\rex_extension_point $ep) { if (!\rex::getUser()->getComplexPerm('clang')->hasAll()) { $subject = $ep->getSubject(); unset($subject['delete']); $ep->setSubject($subject); } }
public static function isActive(rex_extension_point $ep) { $sql = rex_sql::factory(); $sql->setTable(rex::getTablePrefix() . 'article_slice'); $sql->setWhere(array('id' => $ep->getParam('slice_id'))); $sql->select(); if ($sql->getValue('active') == 1 || rex::isBackend()) { return $ep->content; } return ''; }
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')]); } } }
/** * Registers an extension point. * * @param rex_extension_point $extensionPoint Extension point * * @return mixed Subject, maybe adjusted by the extensions */ public static function registerPoint(rex_extension_point $extensionPoint) { if (static::hasFactoryClass()) { return static::callFactoryClass(__FUNCTION__, func_get_args()); } $name = $extensionPoint->getName(); foreach ([self::EARLY, self::NORMAL, self::LATE] as $level) { if (isset(self::$extensions[$name][$level]) && is_array(self::$extensions[$name][$level])) { foreach (self::$extensions[$name][$level] as $extensionAndParams) { list($extension, $params) = $extensionAndParams; $extensionPoint->setExtensionParams($params); $subject = call_user_func($extension, $extensionPoint); // Update subject only if the EP is not readonly and the extension has returned something if (!$extensionPoint->isReadonly() && null !== $subject) { $extensionPoint->setSubject($subject); } } } } return $extensionPoint->getSubject(); }
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; } }
/** * Bindet ggf extensions ein. * * @param rex_extension_point $ep */ function rex_metainfo_extensions_handler(rex_extension_point $ep) { $page = $ep->getSubject(); $mainpage = rex_be_controller::getCurrentPagePart(1); $mypage = 'metainfo'; // additional javascripts if ($mainpage == 'metainfo' || $page == 'content/metainfo' || $page == 'structure') { rex_view::addJsFile(rex_url::addonAssets($mypage, 'metainfo.js')); } // include extensions $curDir = __DIR__ . '/..'; if ($page == 'structure') { require_once $curDir . '/lib/handler/category_handler.php'; } elseif ($mainpage == 'mediapool') { require_once $curDir . '/lib/handler/media_handler.php'; } elseif ($mainpage == 'content') { require_once $curDir . '/extensions/extension_content_sidebar.php'; } elseif ($page == 'backup') { require_once $curDir . '/extensions/extension_cleanup.php'; } }
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); }
public static function addFooterForm(rex_extension_point $ep) { $fragment = new rex_fragment(); $fragment->setVar('deletePath', 'index.php?page=content/delete&article_id=' . $ep->getParam('article_id') . '&mode=edit&module_id=' . $ep->getParam('module_id') . '&slice_id=' . $ep->getParam('slice_id') . '&clang=' . $ep->getParam('clang') . '&ctype=' . $ep->getParam('ctype'), false); return $fragment->parse('page/footer.php'); }
public static function mediaUpdated(rex_extension_point $ep) { self::deleteCache($ep->getParam('filename')); }
public static function isActive(rex_extension_point $ep) { $sql = rex_sql::factory(); $sql->setTable(rex::getTablePrefix() . 'article_slice'); $sql->setWhere(array('id' => $ep->getParam('slice_id'))); $sql->select(); $online_from = $sql->getValue('online_from'); $online_to = $sql->getValue('online_to'); if (rex::isBackend() || $sql->getValue('active') == 1 && (empty($online_from) || !empty($online_from) && $online_from < time()) && (empty($online_to) || !empty($online_to) && $online_to >= time())) { $Subject = $ep->getSubject(); if ($sql->getValue('active') != 1 || !empty($online_from) && $online_from > time() || !empty($online_to) && $online_to <= time()) { $Subject = str_replace('rex-slice-output', 'rex-slice-output inactive', $Subject); } if ($_SESSION['slice_ui']['slice_id'] == $ep->getParam('slice_id')) { $Subject = str_replace('rex-slice-output', 'rex-slice-output copied', $Subject); } return $Subject; } return ''; }