Exemplo n.º 1
0
 public static function wildcardFormControlElement(\rex_extension_point $ep)
 {
     if (!\rex::getUser()->getComplexPerm('clang')->hasAll()) {
         $subject = $ep->getSubject();
         unset($subject['delete']);
         $ep->setSubject($subject);
     }
 }
Exemplo n.º 2
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;
     }
 }
Exemplo n.º 3
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;
     }
 }
Exemplo n.º 4
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';
    }
}
Exemplo n.º 5
0
 /**
  * Extension to check whether the given media is still in use.
  *
  * @param rex_extension_point $ep
  *
  * @throws rex_exception
  *
  * @return string
  */
 public static function isMediaInUse(rex_extension_point $ep)
 {
     $params = $ep->getParams();
     $warning = $ep->getSubject();
     $sql = rex_sql::factory();
     $sql->setQuery('SELECT `name`, `type_id` FROM `' . rex::getTablePrefix() . 'metainfo_field` WHERE `type_id` IN(6,7)');
     $rows = $sql->getRows();
     if ($rows == 0) {
         return $warning;
     }
     $where = ['articles' => [], 'media' => []];
     $filename = addslashes($params['filename']);
     for ($i = 0; $i < $rows; ++$i) {
         $name = $sql->getValue('name');
         if (rex_metainfo_meta_prefix($name) == self::PREFIX) {
             $key = 'media';
         } else {
             $key = 'articles';
         }
         switch ($sql->getValue('type_id')) {
             case '6':
                 $where[$key][] = $name . '="' . $filename . '"';
                 break;
             case '7':
                 $where[$key][] = 'FIND_IN_SET("' . $filename . '", ' . $name . ')';
                 break;
             default:
                 throw new rex_exception('Unexpected fieldtype "' . $sql->getValue('type_id') . '"!');
         }
         $sql->next();
     }
     $articles = '';
     $categories = '';
     if (!empty($where['articles'])) {
         $sql->setQuery('SELECT id, clang_id, parent_id, name, catname, startarticle FROM ' . rex::getTablePrefix() . 'article WHERE ' . implode(' OR ', $where['articles']));
         if ($sql->getRows() > 0) {
             foreach ($sql->getArray() as $art_arr) {
                 $aid = $art_arr['id'];
                 $clang = $art_arr['clang_id'];
                 $parent_id = $art_arr['parent_id'];
                 if ($art_arr['startarticle']) {
                     $categories .= '<li><a href="javascript:openPage(\'' . rex_url::backendPage('structure', ['edit_id' => $aid, 'function' => 'edit_cat', 'category_id' => $parent_id, 'clang' => $clang]) . '\')">' . $art_arr['catname'] . '</a></li>';
                 } else {
                     $articles .= '<li><a href="javascript:openPage(\'' . rex_url::backendPage('content', ['article_id' => $aid, 'mode' => 'meta', 'clang' => $clang]) . '\')">' . $art_arr['name'] . '</a></li>';
                 }
             }
             if ($articles != '') {
                 $warning[] = rex_i18n::msg('minfo_media_in_use_art') . '<br /><ul>' . $articles . '</ul>';
             }
             if ($categories != '') {
                 $warning[] = rex_i18n::msg('minfo_media_in_use_cat') . '<br /><ul>' . $categories . '</ul>';
             }
         }
     }
     $media = '';
     if (!empty($where['media'])) {
         $sql->setQuery('SELECT id, filename, category_id FROM ' . rex::getTablePrefix() . 'media WHERE ' . implode(' OR ', $where['media']));
         if ($sql->getRows() > 0) {
             foreach ($sql->getArray() as $med_arr) {
                 $id = $med_arr['id'];
                 $filename = $med_arr['filename'];
                 $cat_id = $med_arr['category_id'];
                 $media .= '<li><a href="' . rex_url::backendPage('mediapool/detail', ['file_id' => $id, 'rex_file_category' => $cat_id]) . '">' . $filename . '</a></li>';
             }
             if ($media != '') {
                 $warning[] = rex_i18n::msg('minfo_media_in_use_med') . '<br /><ul>' . $media . '</ul>';
             }
         }
     }
     return $warning;
 }
Exemplo n.º 6
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 $ep->getSubject() . parent::renderFormAndSave(self::PREFIX, $params);
 }
Exemplo n.º 7
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 '';
 }