示例#1
0
文件: prio.php 项目: staabm/redaxo
 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');
     }
 }
示例#2
0
 public static function wildcardFormControlElement(\rex_extension_point $ep)
 {
     if (!\rex::getUser()->getComplexPerm('clang')->hasAll()) {
         $subject = $ep->getSubject();
         unset($subject['delete']);
         $ep->setSubject($subject);
     }
 }
示例#3
0
 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 '';
 }
示例#4
0
文件: role.php 项目: staabm/redaxo
 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')]);
         }
     }
 }
示例#5
0
 /**
  * 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();
 }
示例#6
0
 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;
     }
 }
示例#7
0
 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;
     }
 }
示例#8
0
/**
 * 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';
    }
}
示例#9
0
 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);
 }
示例#10
0
 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');
 }
示例#11
0
 public static function mediaUpdated(rex_extension_point $ep)
 {
     self::deleteCache($ep->getParam('filename'));
 }
示例#12
0
 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 '';
 }