function formatButton($name, $attributes = '', $prefix = '', $suffix = '')
 {
     $button = $this->getButton($name);
     if (!$button['status']) {
         return '';
     }
     return sprintf('%s<input type="submit" name="%s" value="%s" tabindex="%s"%s />%s', $prefix, $name, $button['label'], rex_tabindex(false), $attributes, $suffix);
 }
 function getButtons()
 {
     $s = '';
     $id = $this->getId();
     foreach ($this->buttons as $button) {
         foreach ($button as $attr_name => $attr_value) {
             $button[$attr_name] = str_replace('%id%', $id, $attr_value);
         }
         $s .= sprintf('      <a href="%s" tabindex="%s"><img src="media/%s" width="16" height="16" alt="%s" title="%s" /></a>' . "\n", $button['href'], rex_tabindex(false), $button['image'], $button['title'], $button['title']);
     }
     return $s;
 }
Example #3
0
function rex_asd_news_language($curClang, $urlParam)
{
    global $REX;
    global $I18N;
    reset($REX['CLANG']);
    $num_clang = count($REX['CLANG']);
    if ($num_clang > 1) {
        echo '
<div id="rex-clang" class="rex-toolbar">
    <div class="rex-toolbar-content">
        <ul>
            <li>' . $I18N->msg('languages') . ' : </li>';
        $stop = false;
        $i = 1;
        foreach ($REX['CLANG'] as $key => $val) {
            if ($i == 1) {
                echo '<li class="rex-navi-first rex-navi-clang-' . $key . '">';
            } else {
                echo '<li class="rex-navi-clang-' . $key . '">';
            }
            $val = rex_translate($val);
            if (!$REX['USER']->isAdmin() && !$REX['USER']->hasPerm('clang[all]') && !$REX['USER']->hasPerm('clang[' . $key . ']')) {
                echo '<span class="rex-strike">' . $val . '</span>';
                if ($curClang == $key) {
                    $stop = true;
                }
            } else {
                $class = '';
                if ($key == $curClang) {
                    $class = ' class="rex-active"';
                }
                echo '<a' . $class . ' href="index.php?page=' . $REX['PAGE'] . '&amp;clang=' . $key . $urlParam . '"' . rex_tabindex() . '>' . $val . '</a>';
            }
            echo '</li>';
            $i++;
        }
        echo '
        </ul>
    </div>
</div>';
        if ($stop) {
            echo rex_warning('You have no permission to this area');
            require $REX['INCLUDE_PATH'] . '/layout/bottom.php';
            exit;
        }
    }
}
function a587_rexsearch_reindex_article($_params)
{
    global $REX, $I18N;
    $get = $_GET;
    if (!array_key_exists('article_id', $get)) {
        $get['article_id'] = rex_request('article_id', 'int', $REX['ARTICLE_ID']);
    }
    if (!array_key_exists('clang', $get)) {
        $get['clang'] = rex_request('clang', 'int', $REX['CUR_CLANG']);
    }
    if (!array_key_exists('ctype', $get) and array_key_exists('ctype', $_REQUEST)) {
        $get['ctype'] = rex_request('ctype');
    }
    if (!array_key_exists('mode', $get) and array_key_exists('mode', $_REQUEST)) {
        $get['mode'] = rex_request('mode');
    }
    $get['func'] = 'reindex';
    $_params['subject'][] = '<a href="index.php?' . http_build_query($get, null, '&amp;') . '" class="rex-active"' . rex_tabindex() . '>' . $I18N->msg('a587_reindex_article') . '</a>';
    return $_params['subject'];
}
 /**
  * Gibt den HTML Content zurück
  */
 function get()
 {
     $s = '';
     $name = $this->getName();
     $id = $this->getId();
     $value = $this->getValue();
     $attributes = $this->getAttributes();
     $i = 0;
     $s = '<div id="' . $id . '">';
     foreach ($this->getRadios() as $box) {
         $boxid = $id . $i;
         $checked = '';
         if (in_array($box[1], $value)) {
             $checked = ' checked="checked"';
         }
         $s .= sprintf('<input type="radio" name="%s" value="%s" id="%s" tabindex="%s"%s%s /><label for="%s">%s</label>', $name, $box[1], $boxid, rex_tabindex(false), $checked, $attributes, $boxid, $box[0]);
         $i++;
     }
     $s .= '</div>';
     return $s;
 }
    $stop = false;
    $i = 1;
    foreach ($REX['CLANG'] as $key => $val) {
        echo '<li>';
        $val = rex_translate($val);
        if (!$REX_USER->hasPerm('admin[]') && !$REX_USER->hasPerm('clang[all]') && !$REX_USER->hasPerm('clang[' . $key . ']')) {
            echo '<span class="rex-strike">' . $val . '</span>';
            if ($clang == $key) {
                $stop = true;
            }
        } else {
            $class = '';
            if ($key == $clang) {
                $class = ' class="rex-active"';
            }
            echo '<a' . $class . ' href="index.php?page=' . $page . '&amp;clang=' . $key . $sprachen_add . '&amp;ctype=' . $ctype . '"' . rex_tabindex() . '>' . $val . '</a>';
        }
        if ($i != $num_clang) {
            echo ' | ';
        }
        echo '</li>';
        $i++;
    }
    echo '
     </ul>
   </div>
<!-- *** OUTPUT OF CLANG-TOOLBAR - END *** -->
';
    if ($stop) {
        echo '
<!-- *** OUTPUT OF CLANG-VALIDATE - START *** -->
    /**
     * Gibt das Button Template zurück
     */
    function getLinkButton($id, $article_id, $category = '')
    {
        global $REX;
        $art_name = '';
        $clang = '';
        $art = OOArticle::getArticleById($article_id);
        // Falls ein Artikel vorausgewählt ist, dessen Namen anzeigen und beim öffnen der Linkmap dessen Kategorie anzeigen
        if (OOArticle::isValid($art)) {
            $art_name = $art->getName();
            $category = $art->getCategoryId();
        }
        $open_params = '&clang=' . $REX['CUR_CLANG'];
        if ($category != '') {
            $open_params .= '&category_id=' . $category;
        }
        $media = '
	<div class="rex-wdgt">
		<div class="rex-wdgt-lnk">
          <p class="rex-wdgt-fld">
  			<input type="hidden" name="LINK[' . $id . ']" id="LINK_' . $id . '" value="' . $article_id . '" />
  			<input type="text" size="30" name="LINK_NAME[' . $id . ']" value="' . $art_name . '" id="LINK_' . $id . '_NAME" readonly="readonly" />
  		  </p>
          <p class="rex-wdgt-icons">
          	<a href="#" onclick="openLinkMap(\'LINK_' . $id . '\', \'' . $open_params . '\');return false;"' . rex_tabindex() . '><img src="media/file_open.gif" width="16" height="16" alt="Open Linkmap" title="Open Linkmap" /></a>
 			<a href="#" onclick="deleteREXLink(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_del.gif" width="16" height="16" title="Remove Selection" alt="Remove Selection" /></a>
 		  </p>
 		  <div class="rex-clearer"></div>
 		</div>
 	</div>';
        return $media;
    }
Example #8
0
	<div id="rex-ftr">
		<ul>
			<li><a href="http://www.yakamara.de" target="_blank" class="black"<?php 
echo rex_tabindex();
?>
>yakamara.de</a> | </li>
      <li><a href="http://www.redaxo.de" target="_blank" class="black"<?php 
echo rex_tabindex();
?>
>redaxo.de</a> | </li>
			<?php 
if (isset($REX_USER)) {
    echo '<li><a href="index.php?page=credits" class="black">' . $I18N->msg('credits') . '</a> | </li>';
}
?>
      <li><a href="http://forum.redaxo.de"<?php 
echo rex_tabindex();
?>
>?</a></li>
		</ul>
		<p><?php 
echo showScripttime();
?>
 sec | <?php 
echo rex_formatter::format(time(), 'strftime', 'date');
?>
</p>
	</div>
   </body>
</html>
 /**
  * Gibt das ListButton Template zurück
  */
 static function getMedialistButton($id, $value, $category = '', $args = array())
 {
     global $REX, $I18N;
     $open_params = '';
     if ($category != '') {
         $open_params .= '&amp;rex_file_category=' . $category;
     }
     foreach ($args as $aname => $avalue) {
         $open_params .= '&amp;args[' . $aname . ']=' . urlencode($avalue);
     }
     $wdgtClass = 'rex-widget-medialist';
     if (isset($args['preview']) && $args['preview']) {
         $wdgtClass .= ' rex-widget-preview';
         if (OOAddon::isAvailable('image_manager')) {
             $wdgtClass .= ' rex-widget-preview-image-manager';
         } elseif (OOAddon::isAvailable('image_resize')) {
             $wdgtClass .= ' rex-widget-preview-image-resize';
         }
     }
     $options = '';
     $medialistarray = explode(',', $value);
     if (is_array($medialistarray)) {
         foreach ($medialistarray as $file) {
             if ($file != '') {
                 $options .= '<option value="' . $file . '">' . $file . '</option>';
             }
         }
     }
     $open_class = 'rex-icon-file-open rex-icon-file-open-inactive';
     $add_class = 'rex-icon-file-add rex-icon-file-add-inactive';
     $delete_class = 'rex-icon-file-delete rex-icon-file-delete-inactive';
     $view_class = 'rex-icon-file-view rex-icon-file-view-inactive';
     $open_func = '';
     $add_func = '';
     $delete_func = '';
     $view_func = '';
     if ($REX['USER']->hasMediaPerm()) {
         $open_class = 'rex-icon-file-open';
         $add_class = 'rex-icon-file-add';
         $delete_class = 'rex-icon-file-delete';
         $view_class = 'rex-icon-file-view';
         $open_func = 'openREXMedialist(' . $id . ',\'' . $open_params . '\');';
         $add_func = 'addREXMedialist(' . $id . ',\'' . $open_params . '\');';
         $delete_func = 'deleteREXMedialist(' . $id . ');';
         $view_func = 'viewREXMedialist(' . $id . ',\'' . $open_params . '\');';
     }
     $media = '
     <div class="rex-widget">
         <div class="' . $wdgtClass . '">
             <input type="hidden" name="MEDIALIST[' . $id . ']" id="REX_MEDIALIST_' . $id . '" value="' . $value . '" />
             <p class="rex-widget-field">
                 <select name="MEDIALIST_SELECT[' . $id . ']" id="REX_MEDIALIST_SELECT_' . $id . '" size="8"' . rex_tabindex() . '>
                     ' . $options . '
                 </select>
             </p>
             <p class="rex-widget-icons rex-widget-2col">
                 <span class="rex-widget-column rex-widget-column-first">
                     <a href="#" class="rex-icon-file-top" onclick="moveREXMedialist(' . $id . ',\'top\');return false;" title="' . $I18N->msg('var_medialist_move_top') . '"' . rex_tabindex() . '></a>
                     <a href="#" class="rex-icon-file-up" onclick="moveREXMedialist(' . $id . ',\'up\');return false;" title="' . $I18N->msg('var_medialist_move_up') . '"' . rex_tabindex() . '></a>
                     <a href="#" class="rex-icon-file-down" onclick="moveREXMedialist(' . $id . ',\'down\');return false;" title="' . $I18N->msg('var_medialist_move_down') . '"' . rex_tabindex() . '></a>
                     <a href="#" class="rex-icon-file-bottom" onclick="moveREXMedialist(' . $id . ',\'bottom\');return false;" title="' . $I18N->msg('var_medialist_move_bottom') . '"' . rex_tabindex() . '></a>
                 </span>
                 <span class="rex-widget-column">
                     <a href="#" class="' . $open_class . '" onclick="' . $open_func . 'return false;" title="' . $I18N->msg('var_media_open') . '"' . rex_tabindex() . '></a>
                     <a href="#" class="' . $add_class . '" onclick="' . $add_func . 'return false;" title="' . $I18N->msg('var_media_new') . '"' . rex_tabindex() . '></a>
                     <a href="#" class="' . $delete_class . '" onclick="' . $delete_func . 'return false;" title="' . $I18N->msg('var_media_remove') . '"' . rex_tabindex() . '></a>
                     <a href="#" class="' . $view_class . '" onclick="' . $view_func . 'return false;" title="' . $I18N->msg('var_media_view') . '"' . rex_tabindex() . '></a>
                 </span>
             </p>
             <div class="rex-media-preview"></div>
         </div>
     </div>
     <div class="rex-clearer"></div>
     ';
     return $media;
 }
 function get()
 {
     return sprintf('<input type="text" name="%s" value="%s" id="%s" tabindex="%s"%s />', $this->getName(), $this->getValue(), $this->getId(), rex_tabindex(false), $this->getAttributes());
 }
    /**
     * Gibt das ListButton Template zurück
     */
    function getMedialistButton($id, $value, $category = '', $args = array())
    {
        global $I18N;
        $open_params = '';
        if ($category != '') {
            $open_params .= '&amp;rex_file_category=' . $category;
        }
        foreach ($args as $aname => $avalue) {
            $open_params .= '&amp;args[' . $aname . ']=' . urlencode($avalue);
        }
        $wdgtClass = 'rex-widget-medialist';
        if (isset($args['preview']) && $args['preview'] && OOAddon::isAvailable('image_resize')) {
            $wdgtClass .= ' rex-widget-preview';
        }
        $options = '';
        $medialistarray = explode(',', $value);
        if (is_array($medialistarray)) {
            foreach ($medialistarray as $file) {
                if ($file != '') {
                    $options .= '<option value="' . $file . '">' . $file . '</option>';
                }
            }
        }
        $media = '
    <div class="rex-widget">
      <div class="' . $wdgtClass . '">
        <input type="hidden" name="MEDIALIST[' . $id . ']" id="REX_MEDIALIST_' . $id . '" value="' . $value . '" />
        <p class="rex-widget-field">
          <select name="MEDIALIST_SELECT[' . $id . ']" id="REX_MEDIALIST_SELECT_' . $id . '" size="8"' . rex_tabindex() . '>
            ' . $options . '
          </select>
        </p>
        <p class="rex-widget-icons">
          <a href="#" class="rex-icon-file-top" onclick="moveREXMedialist(' . $id . ',\'top\');return false;"' . rex_tabindex() . '><img src="media/file_top.gif" width="16" height="16" title="' . $I18N->msg('var_medialist_move_top') . '" alt="' . $I18N->msg('var_medialist_move_top') . '" /></a>
          <a href="#" class="rex-icon-file-open" onclick="openREXMedialist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_open.gif" width="16" height="16" title="' . $I18N->msg('var_media_open') . '" alt="' . $I18N->msg('var_media_open') . '" /></a><br />
          <a href="#" class="rex-icon-file-up" onclick="moveREXMedialist(' . $id . ',\'up\');return false;"' . rex_tabindex() . '><img src="media/file_up.gif" width="16" height="16" title="' . $I18N->msg('var_medialist_move_up') . '" alt="' . $I18N->msg('var_medialist_move_top') . '" /></a>
          <a href="#" class="rex-icon-file-add" onclick="addREXMedialist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_add.gif" width="16" height="16" title="' . $I18N->msg('var_media_new') . '" alt="' . $I18N->msg('var_media_new') . '" /></a><br />
          <a href="#" class="rex-icon-file-down" onclick="moveREXMedialist(' . $id . ',\'down\');return false;"' . rex_tabindex() . '><img src="media/file_down.gif" width="16" height="16" title="' . $I18N->msg('var_medialist_move_down') . '" alt="' . $I18N->msg('var_medialist_move_down') . '" /></a>
          <a href="#" class="rex-icon-file-delete" onclick="deleteREXMedialist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_del.gif" width="16" height="16" title="' . $I18N->msg('var_media_remove') . '" alt="' . $I18N->msg('var_media_remove') . '" /></a><br />
          <a href="#" class="rex-icon-file-bottom" onclick="moveREXMedialist(' . $id . ',\'bottom\');return false;"' . rex_tabindex() . '><img src="media/file_bottom.gif" width="16" height="16" title="' . $I18N->msg('var_medialist_move_bottom') . '" alt="' . $I18N->msg('var_medialist_move_bottom') . '" /></a>
        </p>
        <div class="rex-media-preview"></div>
      </div>
    </div>
	 	<div class="rex-clearer"></div>
    ';
        return $media;
    }
Example #12
0
    foreach ($REX['USER']->pages as $p => $pageContainer) {
        $p = strtolower($p);
        if (rex_be_main_page::isValid($pageContainer)) {
            $pageObj =& $pageContainer->getPage();
            $pageObj->setItemAttr('id', 'rex-navi-page-' . strtolower(preg_replace('/[^a-zA-Z0-9\\-_]*/', '', $p)));
            if (!$pageContainer->getBlock()) {
                $pageContainer->setBlock('addons');
            }
            if (!$pageObj->getHref()) {
                $pageObj->setHref('index.php?page=' . $p);
            }
            /*
             if(isset ($REX['ACKEY']['ADDON'][$page]))
                $item['extra'] = rex_accesskey($name, $REX['ACKEY']['ADDON'][$page]);
            else
                $item['extra'] = rex_accesskey($pageArr['title'], $accesskey++);
            */
            $pageObj->setLinkAttr('tabindex', rex_tabindex(false));
            $n->addPage($pageContainer);
        }
    }
    $n->setActiveElements();
    echo $n->getNavigation();
}
?>
</div>


<div id="rex-wrapper">
<div id="rex-wrapper2">
Example #13
0
             // ***** AddOn
             if (isset($REX['ADDON']['link'][$pageKey]) && $REX['ADDON']['link'][$pageKey] != "") {
                 $item['href'] = $REX['ADDON']['link'][$pageKey];
             } else {
                 $item['href'] = 'index.php?page=' . $pageKey;
             }
             if (isset($REX['ACKEY']['ADDON'][$pageKey])) {
                 $item['extra'] = rex_accesskey($name, $REX['ACKEY']['ADDON'][$pageKey]);
             } else {
                 $item['extra'] = rex_accesskey($pageArr[0], $accesskey++);
             }
             $item['subpages'] = array();
             if (isset($REX['ADDON'][$pageKey]['SUBPAGES'])) {
                 $item['subpages'] = $REX['ADDON'][$pageKey]['SUBPAGES'];
             }
             $item['tabindex'] = rex_tabindex(false);
             if (isset($pageArr['NAVI']) && is_array($pageArr['NAVI'])) {
                 foreach ($pageArr['NAVI'] as $k => $v) {
                     $item[$k] = $v;
                 }
             }
             $navi_addons[$pageArr[0]] = $item;
         }
     }
 }
 echo '<dl class="rex-navi">';
 foreach (array('system' => $navi_system, 'addon' => $navi_addons) as $topic => $naviList) {
     if (count($naviList) == 0) {
         continue;
     }
     $headline = $topic == 'system' ? $I18N->msg('navigation_basis') : $I18N->msg('navigation_addons');
 /**
  * Gibt den HTML Content zurück
  */
 function get()
 {
     $options = '';
     $name = $this->getName();
     $options = $this->outGroup($this->getFirstGroupId());
     if ($this->multiple) {
         $name .= '[]';
         $this->addAttribute('multiple', 'multiple');
         $this->addAttribute('size', '5', false);
     } else {
         $this->addAttribute('size', '3', false);
     }
     return sprintf('<select name="%s" id="%s" tabindex="%s"%s>%s</select>', $name, $this->getId(), rex_tabindex(false), $this->getAttributes(), $options);
 }
 function get()
 {
     return sprintf('<textarea name="%s" id="%s" tabindex="%s"%s>%s</textarea>', $this->getName(), $this->getId(), rex_tabindex(false), $this->getAttributes(), $this->getValue());
 }
/**
 * Backend Search Addon
 *
 * @author markus[dot]staab[at]redaxo[dot]de Markus Staab
 *
 * @package redaxo4
 * @version $Id: extension_search_structure.inc.php,v 1.2 2008/04/12 10:22:30 kills Exp $
 */
function rex_a256_search_structure($params)
{
    global $REX, $REX_USER, $I18N_BE_SEARCH;
    if (!($REX_USER->isAdmin() || $REX_USER->hasPerm('be_search[structure]'))) {
        return $params['subject'];
    }
    $message = '';
    $search_result = '';
    $editUrl = 'index.php?page=content&article_id=%s&mode=edit&clang=%s&a256_article_name=%s';
    $structureUrl = 'index.php?page=structure&category_id=%s&clang=%s&a256_article_name=%s';
    // ------------ globale Parameter
    $page = rex_request('page', 'string');
    $mode = rex_request('mode', 'string');
    $category_id = rex_request('category_id', 'int');
    $article_id = rex_request('article_id', 'int');
    $clang = rex_request('clang', 'int');
    $ctype = rex_request('ctype', 'int');
    // ------------ Parameter
    $a256_article_id = rex_request('a256_article_id', 'int');
    $a256_clang = rex_request('a256_clang', 'int');
    $a256_article_name = rex_request('a256_article_name', 'string');
    $a256_article_name_post = rex_post('a256_article_name', 'string');
    $mode = rex_request('mode', 'string');
    // ------------ Suche via ArtikelId
    if ($a256_article_id != 0) {
        $OOArt = OOArticle::getArticleById($a256_article_id, $a256_clang);
        if (OOArticle::isValid($OOArt)) {
            header('Location:' . sprintf($editUrl, $a256_article_id, $a256_clang, urlencode($a256_article_name)));
            exit;
        }
    }
    // Auswahl eines normalen Artikels => category holen
    if ($article_id != 0) {
        $OOArt = OOArticle::getArticleById($article_id, $clang);
        $category_id = $OOArt->getCategoryId();
    }
    // ------------ Suche via ArtikelName
    // hier nur dne post artikel namen abfragen,
    // da sonst bei vorherigen headerweiterleitungen
    // auch gesucht wuerde
    if ($a256_article_name_post != '') {
        $qry = '
    SELECT id
    FROM ' . $REX['TABLE_PREFIX'] . 'article
    WHERE
      clang = ' . $a256_clang . ' AND
      (
        name LIKE "%' . $a256_article_name . '%" OR
        catname LIKE "%' . $a256_article_name . '%"
      )';
        if ($category_id != 0) {
            $qry .= ' AND path LIKE "%|' . $category_id . '|%"';
        }
        $search = new rex_sql();
        //    $search->debugsql = true;
        $search->setQuery($qry);
        $foundRows = $search->getRows();
        // Suche ergab nur einen Treffer => Direkt auf den Treffer weiterleiten
        if ($foundRows == 1) {
            $OOArt = OOArticle::getArticleById($search->getValue('id'), $a256_clang);
            if ($REX_USER->hasCategoryPerm($OOArt->getCategoryId())) {
                header('Location:' . sprintf($editUrl, $search->getValue('id'), $a256_clang, urlencode($a256_article_name)));
                exit;
            }
        } else {
            if ($foundRows > 0) {
                $search_result .= '<ul class="a256-search-result">';
                for ($i = 0; $i < $foundRows; $i++) {
                    $OOArt = OOArticle::getArticleById($search->getValue('id'), $a256_clang);
                    $label = $OOArt->getName();
                    if ($REX_USER->hasCategoryPerm($OOArt->getCategoryId())) {
                        if ($REX_USER->hasPerm('advancedMode[]')) {
                            $label .= ' [' . $search->getValue('id') . ']';
                        }
                        $s = '';
                        $first = true;
                        foreach ($OOArt->getParentTree() as $treeItem) {
                            $treeLabel = $treeItem->getName();
                            if ($REX_USER->hasPerm('advancedMode[]')) {
                                $treeLabel .= ' [' . $treeItem->getId() . ']';
                            }
                            $prefix = ': ';
                            if ($first) {
                                $prefix = '';
                                $first = false;
                            }
                            $s .= '<li>' . $prefix . '<a href="' . sprintf($structureUrl, $treeItem->getId(), $a256_clang, urlencode($a256_article_name)) . '">' . htmlspecialchars($treeLabel) . ' </a></li>';
                        }
                        $prefix = ': ';
                        if ($first) {
                            $prefix = '';
                            $first = false;
                        }
                        $s .= '<li>' . $prefix . '<a href="' . sprintf($editUrl, $search->getValue('id'), $a256_clang, urlencode($a256_article_name)) . '">' . htmlspecialchars($label) . ' </a></li>';
                        $search_result .= '<li><ul class="a256-search-hit">' . $s . '</ul></li>';
                    }
                    $search->next();
                }
                $search_result .= '</ul>';
            } else {
                $message = rex_warning($I18N_BE_SEARCH->msg('search_no_results'));
            }
        }
    }
    $select_name = 'category_id';
    $add_homepage = true;
    if ($mode == 'edit' || $mode == 'meta') {
        $select_name = 'article_id';
        $add_homepage = false;
    }
    $category_select = new rex_category_select(false, false, true, $add_homepage);
    $category_select->setName($select_name);
    $category_select->setId('rex-a256-category-id');
    $category_select->setSize('1');
    $category_select->setAttribute('onchange', 'this.form.submit();');
    $category_select->setSelected($category_id);
    $form = '  <form action="index.php" method="post">
        <input type="hidden" name="page" id="rex-a256-article-clang" value="' . $page . '" />
        <input type="hidden" name="mode" id="rex-a256-article-clang" value="' . $mode . '" />
        <input type="hidden" name="category_id" id="rex-a256-article-clang" value="' . $category_id . '" />
        <input type="hidden" name="article_id" id="rex-a256-article-clang" value="' . $article_id . '" />
        <input type="hidden" name="clang" id="rex-a256-article-clang" value="' . $clang . '" />
        <input type="hidden" name="ctype" id="rex-a256-article-clang" value="' . $ctype . '" />
        <input type="hidden" name="a256_clang" id="rex-a256-article-clang" value="' . $clang . '" />

		    <div class="rex-f-lft">
	        <label for="rex-a256-article-name">' . $I18N_BE_SEARCH->msg('search_article_name') . '</label>
    	    <input type="text" name="a256_article_name" id="rex-a256-article-name" value="' . htmlspecialchars(stripslashes($a256_article_name)) . '"' . rex_tabindex() . ' />

        	<label for="rex-a256-article-id">' . $I18N_BE_SEARCH->msg('search_article_id') . '</label>
	        <input type="text" name="a256_article_id" id="rex-a256-article-id"' . rex_tabindex() . ' />
    	    <input class="rex-sbmt" type="submit" name="a256_start_search" value="' . $I18N_BE_SEARCH->msg('search_start') . '"' . rex_tabindex() . ' />
		    </div>

    		<div class="rex-f-rght">
    			<label for="rex-a256-category-id">' . $I18N_BE_SEARCH->msg('search_quick_navi') . '</label>';
    $category_select->setAttribute('tabindex', rex_tabindex(false));
    $form .= $category_select->get() . '
    			<noscript>
    			  <input type="submit" name="a256_start_jump" value="' . $I18N_BE_SEARCH->msg('search_jump_to_category') . '" />
    			</noscript>
        </div>
      </form>';
    $search_bar = $message . '<div id="rex-a256-searchbar">
     ' . $form . '
     ' . $search_result . '
   </div>
   <div class="rex-clearer"></div>';
    return $search_bar . $params['subject'];
}
 /**
  * Gibt das ListButton Template zurück
  */
 function getMedialistButton($id, $value, $category = '', $filter = '')
 {
     $open_params = '';
     if ($category != '') {
         $open_params .= '&amp;rex_file_category=' . $category;
     }
     if ($filter != '') {
         $open_params .= '&amp;filter=' . $filter;
     }
     $options = '';
     $medialistarray = explode(',', $value);
     if (is_array($medialistarray)) {
         foreach ($medialistarray as $file) {
             if ($file != '') {
                 $options .= '<option value="' . $file . '">' . $file . '</option>';
             }
         }
     }
     $media = '
 <div class="rex-wdgt">
   <div class="rex-wdgt-mdlst">
     <input type="hidden" name="MEDIALIST[' . $id . ']" id="REX_MEDIALIST_' . $id . '" value="' . $value . '" />
     <p class="rex-slct">
       <select name="MEDIALIST_SELECT[' . $id . ']" id="REX_MEDIALIST_SELECT_' . $id . '" size="8"' . rex_tabindex() . '>
         ' . $options . '
       </select>
     </p>
     <p class="rex-wdgt-icons">
       <a href="#" onclick="moveREXMedialist(' . $id . ',\'top\');return false;"' . rex_tabindex() . '><img src="media/file_top.gif" width="16" height="16" title="Move Selected Item Up To Top" alt="Move Selected Item Up To Top" /></a>
       <a href="#" onclick="openREXMedialist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_open.gif" width="16" height="16" title="Open Mediapool" alt="Open Mediapool" /></a>
       <br />
       <a href="#" onclick="moveREXMedialist(' . $id . ',\'up\');return false;"' . rex_tabindex() . '><img src="media/file_up.gif" width="16" height="16" title="Move Selected Item Upwards" alt="Move Selected Item Upwards" /></a>
       <a href="#" onclick="addREXMedialist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_add.gif" width="16" height="16" title="Add New Media" alt="Add New Media" /></a>
       <br />
       <a href="#" onclick="moveREXMedialist(' . $id . ',\'down\');return false;"' . rex_tabindex() . '><img src="media/file_down.gif" width="16" height="16" title="Move Selected Item Downwards" alt="Move Selected Item Downwards" /></a>
       <a href="#" onclick="deleteREXMedialist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_del.gif" width="16" height="16" title="Remove Selection" alt="Remove Selection" /></a>
       <br />
       <a href="#" onclick="moveREXMedialist(' . $id . ',\'bottom\');return false;"' . rex_tabindex() . '><img src="media/file_bottom.gif" width="16" height="16" title="Move Selected Item Down To Bottom" alt="Move Selected Item Down To Bottom" /></a>
     </p>
     <div class="rex-clearer"></div>
   </div>
 </div>
 ';
     return $media;
 }
    function getLinklistButton($id, $value, $category = '')
    {
        global $REX, $I18N;
        $open_params = '&clang=' . $REX['CUR_CLANG'];
        if ($category != '') {
            $open_params .= '&category_id=' . $category;
        }
        $options = '';
        $linklistarray = explode(',', $value);
        if (is_array($linklistarray)) {
            foreach ($linklistarray as $link) {
                if ($link != '') {
                    if ($article = OOArticle::getArticleById($link)) {
                        $options .= '<option value="' . $link . '">' . htmlspecialchars($article->getName()) . '</option>';
                    }
                }
            }
        }
        $open_class = 'rex-icon-file-open rex-icon-file-open-inactive';
        $delete_class = 'rex-icon-file-delete rex-icon-file-delete-inactive';
        $open_func = '';
        $delete_func = '';
        if ($REX['USER']->hasStructurePerm()) {
            $open_class = 'rex-icon-file-open';
            $delete_class = 'rex-icon-file-delete';
            $open_func = 'openREXLinklist(' . $id . ', \'' . $open_params . '\');';
            $delete_func = 'deleteREXLinklist(' . $id . ');';
        }
        $link = '
  <div class="rex-widget">
    <div class="rex-widget-linklist">
      <input type="hidden" name="LINKLIST[' . $id . ']" id="REX_LINKLIST_' . $id . '" value="' . $value . '" />
      <p class="rex-widget-field">
        <select name="LINKLIST_SELECT[' . $id . ']" id="REX_LINKLIST_SELECT_' . $id . '" size="8"' . rex_tabindex() . '>
          ' . $options . '
        </select>
      </p>
       <p class="rex-widget-icons rex-widget-2col">
       	<span class="rex-widget-column rex-widget-column-first">
					<a href="#" class="rex-icon-file-top" onclick="moveREXLinklist(' . $id . ',\'top\');return false;" title="' . $I18N->msg('var_linklist_move_top') . '"' . rex_tabindex() . '></a>
					<a href="#" class="rex-icon-file-up" onclick="moveREXLinklist(' . $id . ',\'up\');return false;" title="' . $I18N->msg('var_linklist_move_up') . '"' . rex_tabindex() . '></a>
					<a href="#" class="rex-icon-file-down" onclick="moveREXLinklist(' . $id . ',\'down\');return false;" title="' . $I18N->msg('var_linklist_move_down') . '"' . rex_tabindex() . '></a>
	        <a href="#" class="rex-icon-file-bottom" onclick="moveREXLinklist(' . $id . ',\'bottom\');return false;" title="' . $I18N->msg('var_linklist_move_bottom') . '"' . rex_tabindex() . '></a>
       	</span>
       	<span class="rex-widget-column">
					<a href="#" class="' . $open_class . '" onclick="' . $open_func . 'return false;" title="' . $I18N->msg('var_link_open') . '"' . rex_tabindex() . '></a>
					<a href="#" class="' . $delete_class . '" onclick="' . $delete_func . 'return false;" title="' . $I18N->msg('var_link_delete') . '"' . rex_tabindex() . '></a>
        </span>
 	    </p>
    </div>
  </div>
 	<div class="rex-clearer"></div>
    ';
        return $link;
    }
Example #19
0
            }
            // Leerzeichen durch &nbsp; ersetzen, damit Addonnamen immer in einer Zeile stehen
            $name = str_replace(' ', '&nbsp;', $name);
            $liClass = $page == $apage ? $activeClass : '';
            if (current($REX['ADDON']['status']) == 1 && $name != '' && ($perm == '' || $REX_USER->hasPerm($perm) || $REX_USER->hasPerm("admin[]"))) {
                $separator = ' | ';
                if ($first) {
                    $separator = '';
                    $first = false;
                }
                if ($popup == 1) {
                    echo '<li' . $liClass . ' id="rex-mainnavi-' . $apage . '">' . $separator . '<a href="javascript:newPoolWindow(\'index.php?page=' . $apage . '\');"' . rex_tabindex() . $accesskey . '>' . $name . '</a></li>' . "\n";
                } elseif ($popup == '' or $popup == 0) {
                    echo '<li' . $liClass . ' id="rex-mainnavi-' . $apage . '">' . $separator . '<a href="index.php?page=' . $apage . '"' . rex_tabindex() . $accesskey . '>' . $name . '</a></li>' . "\n";
                } else {
                    echo '<li' . $liClass . ' id="rex-mainnavi-' . $apage . '">' . $separator . '<a href="' . $popup . '"' . rex_tabindex() . $accesskey . '>' . $name . '</a></li>' . "\n";
                }
            }
            next($REX['ADDON']['status']);
        }
        echo '</ul>' . "\n";
    }
} else {
    if (!isset($open_header_only)) {
        echo '<p>' . $I18N->msg('logged_out') . '</p>';
    } else {
        echo '<p>&nbsp;</p>';
    }
}
?>
  </div>
        if ($SKAT->getRows() == 1) {
            if ($KATPERM || $REX_USER->hasPerm('csw[' . $catid . ']') || $REX_USER->hasPerm('csr[' . $catid . ']')) {
                $KATout .= '<li>: <a href="index.php?page=structure&amp;category_id=' . $catid . '&amp;clang=' . $clang . '"' . rex_tabindex() . '>' . $catname . '</a> </li>';
                $KATPATH .= $KPATH[$ii] . "|";
                if ($REX_USER->hasPerm('csw[' . $catid . ']')) {
                    $KATPERM = true;
                }
            }
        }
    }
    if ($KATPERM || $REX_USER->hasPerm('csw[' . $category_id . ']') || $REX_USER->hasPerm('csr[' . $category_id . ']')) {
        $catname = str_replace(' ', '&nbsp;', $KAT->getValue('catname'));
        $KATout .= '<li>: <a href="index.php?page=structure&amp;category_id=' . $category_id . '&amp;clang=' . $clang . '"' . rex_tabindex() . '>' . $catname . '</a> </li>';
        $KATPATH .= $category_id . '|';
        if ($REX_USER->hasPerm('csw[' . $category_id . ']')) {
            $KATPERM = true;
        }
    } else {
        $category_id = 0;
        $article_id = 0;
    }
}
$KATout = '
<!-- *** OUTPUT OF CATEGORY-TOOLBAR - START *** -->
  <ul>
    <li>' . $I18N->msg('path') . '</li>
    <li>: <a href="index.php?page=structure&amp;category_id=0&amp;clang=' . $clang . '"' . rex_tabindex() . '>Homepage</a></li>
    ' . $KATout . '
  </ul>
<!-- *** OUTPUT OF CATEGORY-TOOLBAR - END *** -->
';
/**
 * Erstellt den nötigen HTML Code um ein Formular zu erweitern
 *
 * @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
 * @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt
 * @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt
 */
function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams)
{
    global $I18N, $REX;
    $s = '';
    // Startwert für MEDIABUTTON, MEDIALIST, LINKLIST zähler
    $media_id = 1;
    $mlist_id = 1;
    $link_id = 1;
    $llist_id = 1;
    $sqlFields->reset();
    for ($i = 0; $i < $sqlFields->getRows(); $i++, $sqlFields->next()) {
        // Umschliessendes Tag von Label und Formularelement
        $tag = 'p';
        $tag_attr = '';
        $name = $sqlFields->getValue('name');
        $title = $sqlFields->getValue('title');
        $params = $sqlFields->getValue('params');
        $typeLabel = $sqlFields->getValue('label');
        $attr = $sqlFields->getValue('attributes');
        $dblength = $sqlFields->getValue('dblength');
        $restrictions = $sqlFields->getValue('restrictions');
        $attr .= rex_tabindex();
        $attrArray = rex_split_string($attr);
        if (isset($attrArray['perm'])) {
            if (!$REX['USER']->hasPerm($attrArray['perm'])) {
                continue;
            }
            unset($attrArray['perm']);
        }
        $defaultValue = $sqlFields->getValue('default');
        if ($activeItem) {
            $itemValue = $activeItem->getValue($name);
            if (strpos($itemValue, '|+|') !== false) {
                // Alte notation mit |+| als Trenner
                $dbvalues = explode('|+|', $activeItem->getValue($name));
            } else {
                // Neue Notation mit | als Trenner
                $dbvalues = explode('|', $activeItem->getValue($name));
            }
        } else {
            $dbvalues = (array) $sqlFields->getValue('default');
        }
        if ($title != '') {
            $label = rex_translate($title);
        } else {
            $label = htmlspecialchars($name);
        }
        $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
        $labelIt = true;
        $field = '';
        switch ($typeLabel) {
            case 'text':
                $tag_attr = ' class="rex-form-text"';
                $rexInput = rex_input::factory($typeLabel);
                $rexInput->addAttributes($attrArray);
                $rexInput->setAttribute('id', $id);
                $rexInput->setAttribute('name', $name);
                if ($dblength > 0) {
                    $rexInput->setAttribute('maxlength', $dblength);
                }
                if ($activeItem) {
                    $rexInput->setValue($activeItem->getValue($name));
                } else {
                    $rexInput->setValue($defaultValue);
                }
                $field = $rexInput->getHtml();
                break;
            case 'checkbox':
                // Beachte auch default values in multiple fields bei ADD.
                // Im EDIT wurde dies bereits vorher gehandelt
                if (!$activeItem) {
                    $defaultValue = explode('|', $defaultValue);
                }
                $name .= '[]';
            case 'radio':
                $values = array();
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    $sql = rex_sql::factory();
                    $value_groups = $sql->getDBArray($params, MYSQL_NUM);
                    foreach ($value_groups as $value_group) {
                        if (isset($value_group[1])) {
                            $values[$value_group[1]] = $value_group[0];
                        } else {
                            $values[$value_group[0]] = $value_group[0];
                        }
                    }
                } else {
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        // check ob key:value paar
                        // und der wert beginnt nicht mit "translate:"
                        if (strpos($value_group, ':') !== false && strpos($value_group, 'translate:') !== 0) {
                            $temp = explode(':', $value_group, 2);
                            $values[$temp[0]] = rex_translate($temp[1]);
                        } else {
                            $values[$value_group] = rex_translate($value_group);
                        }
                    }
                }
                $class_s = $typeLabel;
                $class_p = $typeLabel == 'radio' ? 'radios' : 'checkboxes';
                $oneValue = count($values) == 1;
                if (!$oneValue) {
                    $labelIt = false;
                    $tag = 'div';
                    $tag_attr = ' class="rex-form-col-a rex-form-' . $class_p . '"';
                    $field .= '<p class="rex-form-label">' . $label . '</p><div class="rex-form-' . $class_p . '-wrapper">';
                }
                $attrStr = '';
                $classAdd = '';
                foreach ($attrArray as $key => $value) {
                    if ($key == 'class') {
                        $classAdd = ' ' . $value;
                    } else {
                        $attrStr = ' ' . $key . '="' . $value . '"';
                    }
                }
                if (!$activeItem) {
                    $dbvalues = (array) $defaultValue;
                }
                foreach ($values as $key => $value) {
                    $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $id . $key);
                    // wenn man keine Werte angibt (Boolean Chkbox/Radio)
                    // Dummy Wert annehmen, damit an/aus unterscheidung funktioniert
                    if ($oneValue && $key == '') {
                        $key = 'true';
                    }
                    $selected = '';
                    if (in_array($key, $dbvalues)) {
                        $selected = ' checked="checked"';
                    }
                    if ($oneValue) {
                        $tag_attr = ' class="rex-form-col-a rex-form-' . $class_s . $classAdd . '"';
                        $field .= '<input class="rex-form-' . $class_s . '" type="' . $typeLabel . '" name="' . $name . '" value="' . htmlspecialchars($key) . '" id="' . $id . '" ' . $attrStr . $selected . ' />' . "\n";
                    } else {
                        $field .= '<p class="rex-form-' . $class_s . ' rex-form-label-right' . $classAdd . '">' . "\n";
                        $field .= '<input class="rex-form-' . $class_s . '" type="' . $typeLabel . '" name="' . $name . '" value="' . htmlspecialchars($key) . '" id="' . $id . '" ' . $attrStr . $selected . ' />' . "\n";
                        $field .= '<label for="' . $id . '">' . htmlspecialchars($value) . '</label>';
                        $field .= '</p>' . "\n";
                    }
                }
                if (!$oneValue) {
                    $field .= '</div>';
                }
                break;
            case 'select':
                $tag_attr = ' class="rex-form-select"';
                $select = new rex_select();
                $select->setStyle('class="rex-form-select"');
                $select->setName($name);
                $select->setId($id);
                $multiple = false;
                foreach ($attrArray as $attr_name => $attr_value) {
                    if (empty($attr_name)) {
                        continue;
                    }
                    $select->setAttribute($attr_name, $attr_value);
                    if ($attr_name == 'multiple') {
                        $multiple = true;
                        $select->setName($name . '[]');
                    }
                }
                // Beachte auch default values in multiple fields bei ADD.
                // Im EDIT wurde dies bereits vorher gehandelt
                if ($multiple && !$activeItem) {
                    $dbvalues = explode('|', $defaultValue);
                }
                // hier mit den "raw"-values arbeiten, da die rex_select klasse selbst escaped
                $select->setSelected($dbvalues);
                if (!$multiple) {
                    $select->setSize(1);
                }
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    // Werte via SQL Laden
                    $select->addDBSqlOptions($params);
                } else {
                    // Optionen mit | separiert
                    // eine einzelne Option kann mit key:value separiert werden
                    $values = array();
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        // check ob key:value paar
                        // und der wert beginnt nicht mit "translate:"
                        if (strpos($value_group, ':') !== false && strpos($value_group, 'translate:') !== 0) {
                            $temp = explode(':', $value_group, 2);
                            $values[$temp[0]] = rex_translate($temp[1]);
                        } else {
                            $values[$value_group] = rex_translate($value_group);
                        }
                    }
                    $select->addOptions($values);
                }
                $field .= $select->get();
                break;
            case 'date':
            case 'time':
            case 'datetime':
                $tag_attr = ' class="rex-form-select-date"';
                $active = $dbvalues[0] != 0;
                if ($dbvalues[0] == '') {
                    $dbvalues[0] = time();
                }
                $inputValue = array();
                $inputValue['year'] = date('Y', $dbvalues[0]);
                $inputValue['month'] = date('m', $dbvalues[0]);
                $inputValue['day'] = date('j', $dbvalues[0]);
                $inputValue['hour'] = date('G', $dbvalues[0]);
                $inputValue['minute'] = date('i', $dbvalues[0]);
                $rexInput = rex_input::factory($typeLabel);
                $rexInput->addAttributes($attrArray);
                $rexInput->setAttribute('id', $id);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue($inputValue);
                $field = $rexInput->getHtml();
                $checked = $active ? ' checked="checked"' : '';
                $field .= '<input class="rex-form-select-checkbox rex-metainfo-checkbox" type="checkbox" name="' . $name . '[active]" value="1"' . $checked . ' />';
                break;
            case 'textarea':
                $tag_attr = ' class="rex-form-textarea"';
                $rexInput = rex_input::factory($typeLabel);
                $rexInput->addAttributes($attrArray);
                $rexInput->setAttribute('id', $id);
                $rexInput->setAttribute('name', $name);
                if ($activeItem) {
                    $rexInput->setValue($activeItem->getValue($name));
                } else {
                    $rexInput->setValue($defaultValue);
                }
                $field = $rexInput->getHtml();
                break;
            case 'legend':
                $tag = '';
                $tag_attr = '';
                $labelIt = false;
                // tabindex entfernen, macht bei einer legend wenig sinn
                $attr = preg_replace('@tabindex="[^"]*"@', '', $attr);
                $field = '</div></fieldset><fieldset class="rex-form-col-1"><legend id="' . $id . '"' . $attr . '>' . $label . '</legend><div class="rex-form-wrapper">';
                break;
            case 'REX_MEDIA_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-form-widget"';
                $paramArray = rex_split_string($params);
                $rexInput = rex_input::factory('mediabutton');
                $rexInput->addAttributes($attrArray);
                $rexInput->setButtonId($media_id);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue($dbvalues[0]);
                if (isset($paramArray['category'])) {
                    $rexInput->setCategoryId($paramArray['category']);
                }
                if (isset($paramArray['types'])) {
                    $rexInput->setTypes($paramArray['types']);
                }
                if (isset($paramArray['preview'])) {
                    $rexInput->setPreview($paramArray['preview']);
                }
                $id = $rexInput->getAttribute('id');
                $field = $rexInput->getHtml();
                $media_id++;
                break;
            case 'REX_MEDIALIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-form-widget"';
                $paramArray = rex_split_string($params);
                $name .= '[]';
                $rexInput = rex_input::factory('medialistbutton');
                $rexInput->addAttributes($attrArray);
                $rexInput->setButtonId($mlist_id);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue($dbvalues[0]);
                if (isset($paramArray['category'])) {
                    $rexInput->setCategoryId($paramArray['category']);
                }
                if (isset($paramArray['types'])) {
                    $rexInput->setTypes($paramArray['types']);
                }
                if (isset($paramArray['preview'])) {
                    $rexInput->setPreview($paramArray['preview']);
                }
                $id = $rexInput->getAttribute('id');
                $field = $rexInput->getHtml();
                $mlist_id++;
                break;
            case 'REX_LINK_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-form-widget"';
                $paramArray = rex_split_string($params);
                $category = '';
                if (isset($paramArray['category'])) {
                    $category = $paramArray['category'];
                } elseif ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $rexInput = rex_input::factory('linkbutton');
                $rexInput->addAttributes($attrArray);
                $rexInput->setButtonId($link_id);
                $rexInput->setCategoryId($category);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue($dbvalues[0]);
                $id = $rexInput->getAttribute('id');
                $field = $rexInput->getHtml();
                $link_id++;
                break;
            case 'REX_LINKLIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-form-widget"';
                $paramArray = rex_split_string($params);
                $category = '';
                if (isset($paramArray['category'])) {
                    $category = $paramArray['category'];
                } elseif ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $name .= '[]';
                $rexInput = rex_input::factory('linklistbutton');
                $rexInput->addAttributes($attrArray);
                $rexInput->setButtonId($llist_id);
                $rexInput->setCategoryId($category);
                $rexInput->setAttribute('name', $name);
                $rexInput->setValue(implode(',', $dbvalues));
                $id = $rexInput->getAttribute('id');
                $field = $rexInput->getHtml();
                $llist_id++;
                break;
            default:
                // ----- EXTENSION POINT
                list($field, $tag, $tag_attr, $id, $label, $labelIt) = rex_register_extension_point('A62_CUSTOM_FIELD', array($field, $tag, $tag_attr, $id, $label, $labelIt, 'values' => $dbvalues, 'rawvalues' => $dbvalues, 'type' => $typeLabel, 'sql' => $sqlFields));
        }
        $s .= rex_call_func($formatCallback, array($field, $tag, $tag_attr, $id, $label, $labelIt, $typeLabel), false);
    }
    return $s;
}
/**
 * Erstellt den nötigen HTML Code um ein Formular zu erweitern
 *
 * @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
 * @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt
 * @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt
 */
function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams)
{
    global $I18N;
    $s = '';
    // Startwert für MEDIABUTTON, MEDIALIST, LINKLIST zähler
    $media_id = 1;
    $mlist_id = 1;
    $link_id = 1;
    $llist_id = 1;
    $sqlFields->reset();
    for ($i = 0; $i < $sqlFields->getRows(); $i++) {
        // Umschliessendes Tag von Label und Formularelement
        $tag = 'p';
        $tag_attr = '';
        $name = $sqlFields->getValue('name');
        $title = $sqlFields->getValue('title');
        $params = $sqlFields->getValue('params');
        $typeLabel = $sqlFields->getValue('label');
        $attr = $sqlFields->getValue('attributes');
        $dblength = $sqlFields->getValue('dblength');
        $dbvalues = array(htmlspecialchars($sqlFields->getValue('default')));
        $dbvalues_esc = $dbvalues;
        if ($activeItem) {
            $itemValue = $activeItem->getValue($name);
            if (strpos($itemValue, '|+|') !== false) {
                // Alte notation mit |+| als Trenner
                $dbvalues = explode('|+|', $activeItem->getValue($name));
            } else {
                // Neue Notation mit | als Trenner
                $dbvalues = explode('|', $activeItem->getValue($name));
            }
            $dbvalues_esc = array_map('htmlspecialchars', $dbvalues);
        }
        if ($title != '') {
            $label = htmlspecialchars(rex_translate($title));
        } else {
            $label = htmlspecialchars($name);
        }
        $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
        $attr .= rex_tabindex();
        $labelIt = true;
        $field = '';
        switch ($typeLabel) {
            case 'text':
                $field = '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $dbvalues_esc[0] . '" id="' . $id . ' "maxlength="' . $dblength . '" ' . $attr . ' />';
                break;
            case 'checkbox':
                $name .= '[]';
            case 'radio':
                $values = array();
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    $sql = new rex_sql();
                    $value_groups = $sql->getDBArray($params, MYSQL_NUM);
                    foreach ($value_groups as $value_group) {
                        if (isset($value_group[1])) {
                            $values[$value_group[1]] = $value_group[0];
                        } else {
                            $values[$value_group[0]] = $value_group[0];
                        }
                    }
                } else {
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        if (strpos($value_group, ':') !== false) {
                            $temp = explode(':', $value_group);
                            $values[$temp[0]] = $temp[1];
                        } else {
                            $values[$value_group] = $value_group;
                        }
                    }
                }
                $class = $typeLabel == 'radio' ? 'rex-rdo' : 'rex-chckbx';
                $oneValue = count($values) == 1;
                if (!$oneValue) {
                    $tag = '';
                    $labelIt = false;
                    $tag = 'div';
                    $tag_attr = ' class="rex-chckbxs rex-ptag"';
                    $field .= '<p>' . $label . '</p>';
                }
                foreach ($values as $key => $value) {
                    $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $id . $key);
                    $key = htmlspecialchars($key);
                    // wenn man keine Werte angibt (Boolean Chkbox/Radio)
                    // Dummy Wert annehmen, damit an/aus unterscheidung funktioniert
                    if ($oneValue && $key == '') {
                        $key = 'true';
                    }
                    $selected = '';
                    if (in_array($key, $dbvalues_esc)) {
                        $selected = ' checked="checked"';
                    }
                    if ($oneValue) {
                        $tag_attr = ' class="' . $class . '"';
                        $field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
                    } else {
                        $field .= '<p class="' . $class . '">' . "\n";
                        $field .= '<label for="' . $id . '"><span>' . htmlspecialchars($value) . '</span></label>';
                        $field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
                        $field .= '</p>' . "\n";
                    }
                }
                break;
            case 'select':
                $select = new rex_select();
                $select->setName($name);
                $select->setId($id);
                // hier mit den "raw"-values arbeiten, da die rex_select klasse selbst escaped
                $select->setSelected($dbvalues);
                foreach (rex_split_string($attr) as $attr_name => $attr_value) {
                    if (empty($attr_name)) {
                        continue;
                    }
                    $select->setAttribute($attr_name, $attr_value);
                    if ($attr_name == 'multiple') {
                        $select->setName($name . '[]');
                    }
                }
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    // Werte via SQL Laden
                    $select->addDBSqlOptions($params);
                } else {
                    // Optionen mit | separiert
                    // eine einzelne Option kann mit key:value separiert werden
                    $values = array();
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        if (strpos($value_group, ':') !== false) {
                            $temp = explode(':', $value_group);
                            $values[$temp[0]] = $temp[1];
                        } else {
                            $values[$value_group] = $value_group;
                        }
                    }
                    $select->addOptions($values);
                }
                $field .= $select->get();
                break;
            case 'datetime':
            case 'date':
                if ($dbvalues_esc[0] == '') {
                    $dbvalues_esc[0] = time();
                }
                $style = 'class="rex-fdate"';
                $yearStyle = 'class="rex-fdatey"';
                $yearSelect = new rex_select();
                $yearSelect->addOptions(range(2005, date('Y') + 10), true);
                $yearSelect->setName($name . '[year]');
                $yearSelect->setSize(1);
                $yearSelect->setId($id);
                $yearSelect->setStyle($yearStyle);
                $yearSelect->setSelected(date('Y', $dbvalues_esc[0]));
                $monthSelect = new rex_select();
                $monthSelect->addOptions(range(1, 12), true);
                $monthSelect->setName($name . '[month]');
                $monthSelect->setSize(1);
                $monthSelect->setStyle($style);
                $monthSelect->setSelected(date('m', $dbvalues_esc[0]));
                $daySelect = new rex_select();
                $daySelect->addOptions(range(1, 31), true);
                $daySelect->setName($name . '[day]');
                $daySelect->setSize(1);
                $daySelect->setStyle($style);
                $daySelect->setSelected(date('j', $dbvalues_esc[0]));
                if ($typeLabel == 'datetime') {
                    $hourSelect = new rex_select();
                    $hourSelect->addOptions(range(1, 23), true);
                    $hourSelect->setName($name . '[hour]');
                    $hourSelect->setSize(1);
                    $hourSelect->setStyle($style);
                    $hourSelect->setSelected(date('G', $dbvalues_esc[0]));
                    $minuteSelect = new rex_select();
                    $minuteSelect->addOptions(range(0, 59), true);
                    $minuteSelect->setName($name . '[minute]');
                    $minuteSelect->setSize(1);
                    $minuteSelect->setStyle($style);
                    $minuteSelect->setSelected(date('i', $dbvalues_esc[0]));
                    $field = $daySelect->get() . $monthSelect->get() . $yearSelect->get() . '-' . $hourSelect->get() . $minuteSelect->get();
                } else {
                    $field = $daySelect->get() . $monthSelect->get() . $yearSelect->get();
                }
                break;
            case 'textarea':
                $field = '<textarea name="' . $name . '" id="' . $id . '" cols="50" rows="6" ' . $attr . '>' . $dbvalues_esc[0] . '</textarea>';
                break;
            case 'REX_MEDIA_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $field = rex_var_media::getMediaButton($media_id);
                $field = str_replace('REX_MEDIA[' . $media_id . ']', $dbvalues_esc[0], $field);
                $field = str_replace('MEDIA[' . $media_id . ']', $name, $field);
                $id = 'REX_MEDIA_' . $media_id;
                $media_id++;
                break;
            case 'REX_MEDIALIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $name .= '[]';
                $field = rex_var_media::getMediaListButton($mlist_id, implode(',', $dbvalues_esc));
                $field = str_replace('MEDIALIST[' . $mlist_id . ']', $name, $field);
                $id = 'REX_MEDIALIST_' . $mlist_id;
                $mlist_id++;
                break;
            case 'REX_LINK_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $category = '';
                if ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $field = rex_var_link::getLinkButton($link_id, $dbvalues_esc[0], $category);
                $field = str_replace('LINK[' . $link_id . ']', $name, $field);
                $id = 'LINK_' . $link_id;
                $link_id++;
                break;
            case 'REX_LINKLIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $category = '';
                if ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $name .= '[]';
                $field = rex_var_link::getLinklistButton($llist_id, implode(',', $dbvalues), $category);
                $field = str_replace('LINKLIST[' . $llist_id . ']', $name, $field);
                $id = 'REX_LINKLIST_' . $llist_id;
                $llist_id++;
                break;
            default:
                // ----- EXTENSION POINT
                list($field, $tag, $tag_attr, $id, $label, $labelIt) = rex_register_extension_point('A62_CUSTOM_FIELD', array($field, $tag, $tag_attr, $id, $label, $labelIt, 'type' => $typeLabel, 'sql' => $sqlFields));
        }
        $s .= rex_call_func($formatCallback, array($field, $tag, $tag_attr, $id, $label, $labelIt), false);
        $sqlFields->next();
    }
    return $s;
}
 /**
  * Gibt das ListButton Template zurück
  */
 function getMedialistButton($id, $value, $category = '', $filter = '')
 {
     global $I18N;
     $open_params = '';
     if ($category != '') {
         $open_params .= '&amp;rex_file_category=' . $category;
     }
     if ($filter != '') {
         $open_params .= '&amp;filter=' . $filter;
     }
     $options = '';
     $medialistarray = explode(',', $value);
     if (is_array($medialistarray)) {
         foreach ($medialistarray as $file) {
             if ($file != '') {
                 $options .= '<option value="' . $file . '">' . $file . '</option>';
             }
         }
     }
     $media = '
 <div class="rex-wdgt">
   <div class="rex-wdgt-mdlst">
     <input type="hidden" name="MEDIALIST[' . $id . ']" id="REX_MEDIALIST_' . $id . '" value="' . $value . '" />
     <p class="rex-wdgt-fld">
       <select name="MEDIALIST_SELECT[' . $id . ']" id="REX_MEDIALIST_SELECT_' . $id . '" size="8"' . rex_tabindex() . '>
         ' . $options . '
       </select>
     </p>
     <p class="rex-wdgt-icons">
       <a href="#" onclick="moveREXMedialist(' . $id . ',\'top\');return false;"' . rex_tabindex() . '><img src="media/file_top.gif" width="16" height="16" title="' . $I18N->msg('var_medialist_move_top') . '" alt="' . $I18N->msg('var_medialist_move_top') . '" /></a>
       <a href="#" onclick="openREXMedialist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_open.gif" width="16" height="16" title="' . $I18N->msg('var_media_open') . '" alt="' . $I18N->msg('var_media_open') . '" /></a><br />
       <a href="#" onclick="moveREXMedialist(' . $id . ',\'up\');return false;"' . rex_tabindex() . '><img src="media/file_up.gif" width="16" height="16" title="' . $I18N->msg('var_medialist_move_up') . '" alt="' . $I18N->msg('var_medialist_move_top') . '" /></a>
       <a href="#" onclick="addREXMedialist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_add.gif" width="16" height="16" title="' . $I18N->msg('var_media_new') . '" alt="' . $I18N->msg('var_media_new') . '" /></a><br />
       <a href="#" onclick="moveREXMedialist(' . $id . ',\'down\');return false;"' . rex_tabindex() . '><img src="media/file_down.gif" width="16" height="16" title="' . $I18N->msg('var_medialist_move_down') . '" alt="' . $I18N->msg('var_medialist_move_down') . '" /></a>
       <a href="#" onclick="deleteREXMedialist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_del.gif" width="16" height="16" title="' . $I18N->msg('var_media_remove') . '" alt="' . $I18N->msg('var_media_remove') . '" /></a><br />
       <a href="#" onclick="moveREXMedialist(' . $id . ',\'bottom\');return false;"' . rex_tabindex() . '><img src="media/file_bottom.gif" width="16" height="16" title="' . $I18N->msg('var_medialist_move_bottom') . '" alt="' . $I18N->msg('var_medialist_move_bottom') . '" /></a>
     </p>
     <div class="rex-clearer"></div>
   </div>
 </div>
 ';
     return $media;
 }
   /**
    * Gibt das ListButton Template zurück
    */
   function getLinklistButton($id, $value, $category = '')
   {
       global $REX;
       $open_params = '&clang=' . $REX['CUR_CLANG'];
       if ($category != '') {
           $open_params .= '&category_id=' . $category;
       }
       $options = '';
       $linklistarray = explode(',', $value);
       if (is_array($linklistarray)) {
           foreach ($linklistarray as $link) {
               if ($link != '') {
                   $article = OOArticle::getArticleById($link);
                   $options .= '<option value="' . $link . '">' . $article->getName() . '</option>';
               }
           }
       }
       $link = '
 <div class="rex-wdgt">
   <div class="rex-wdgt-mdlst">
     <input type="hidden" name="LINKLIST[' . $id . ']" id="REX_LINKLIST_' . $id . '" value="' . $value . '" />
     <p class="rex-wdgt-fld">
       <select name="LINKLIST_SELECT[' . $id . ']" id="REX_LINKLIST_SELECT_' . $id . '" size="8"' . rex_tabindex() . '>
         ' . $options . '
       </select>
     </p>
     <p class="rex-wdgt-icons">
       <a href="#" onclick="moveREXLinklist(' . $id . ',\'top\');return false;"' . rex_tabindex() . '><img src="media/file_top.gif" width="16" height="16" title="Move Selected Item Up To Top" alt="Move Selected Item Up To Top" /></a>
       <a href="#" onclick="openREXLinklist(' . $id . ', \'' . $open_params . '\');return false;"' . rex_tabindex() . '><img src="media/file_open.gif" width="16" height="16" title="Open Mediapool" alt="Open Mediapool" /></a>
       <br />
       <a href="#" onclick="moveREXLinklist(' . $id . ',\'up\');return false;"' . rex_tabindex() . '><img src="media/file_up.gif" width="16" height="16" title="Move Selected Item Upwards" alt="Move Selected Item Upwards" /></a>
  		  <a href="#" onclick="deleteREXLinklist(' . $id . ');return false;"' . rex_tabindex() . '><img src="media/file_del.gif" width="16" height="16" title="Remove Selection" alt="Remove Selection" /></a>
       <br />
       <a href="#" onclick="moveREXLinklist(' . $id . ',\'down\');return false;"' . rex_tabindex() . '><img src="media/file_down.gif" width="16" height="16" title="Move Selected Item Downwards" alt="Move Selected Item Downwards" /></a>
       <br />
       <a href="#" onclick="moveREXLinklist(' . $id . ',\'bottom\');return false;"' . rex_tabindex() . '><img src="media/file_bottom.gif" width="16" height="16" title="Move Selected Item Down To Bottom" alt="Move Selected Item Down To Bottom" /></a>
     </p>
     <div class="rex-clearer"></div>
   </div>
 </div>
   ';
       return $link;
   }
Example #25
0
    <legend>Login</legend>
    <input type="hidden" name="javascript" value="0" id="javascript" />
    
    <div class="rex-form-wrapper">
    
    	<div class="rex-form-row">
		    <p class="rex-form-col-a rex-form-text">
    			<label for="rex-form-login">' . $I18N->msg('login_name') . ':</label>
      		<input type="text" value="' . stripslashes(htmlspecialchars($rex_user_login)) . '" id="rex-form-login" name="rex_user_login"' . rex_tabindex() . ' />
    		</p>
    	</div>
    	<div class="rex-form-row">
		    <p class="rex-form-col-a rex-form-password">
      		<label for="REX_UPSW">' . $I18N->msg('password') . ':</label>
      		<input class="rex-form-password" type="password" name="rex_user_psw" id="REX_UPSW"' . rex_tabindex() . ' />
	    		<input class="rex-form-submit" type="submit" value="' . $I18N->msg('login') . '"' . rex_tabindex() . ' />
	    	</p>
	    </div>
	  </div>
  </fieldset>
</form>
</div>
<script type="text/javascript">
   <!--
  jQuery(function($) {
    $("#rex-form-login").focus();
    $("#javascript").val("1");
    ' . $js . '
  });
   //-->
</script>
Example #26
0
        </p>

        <p>
          <label for="redaxo_user_pass">' . $I18N->msg("setup_047") . ':</label>
          <input type="text" value="' . $redaxo_user_pass . '" id="redaxo_user_pass" name="redaxo_user_pass"' . rex_tabindex() . '/>
        </p>';
    if ($user_sql->getRows() > 0) {
        echo '
        <p>
          <input class="rex-chckbx" type="checkbox" id="noadmin" name="noadmin" value="1"' . rex_tabindex() . '/>
          <label class="rex-lbl-right" for="noadmin">' . $I18N->msg("setup_048") . '</label>
        </p>';
    }
    echo '
        <p>
          <input class="rex-sbmt" type="submit" value="' . $I18N->msg("setup_049") . '"' . rex_tabindex() . ' />
        </p>

      </fieldset>
    </form>';
}
// ---------------------------------- MODUS 5 | Setup verschieben ...
if ($checkmodus == 5) {
    $master_file = $REX['INCLUDE_PATH'] . '/master.inc.php';
    $cont = rex_get_file_contents($master_file);
    $cont = ereg_replace("(REX\\['SETUP'\\].?\\=.?)[^;]*", '\\1false', $cont);
    if (rex_put_file_contents($master_file, $cont)) {
        $errmsg = "";
    } else {
        $errmsg = $I18N->msg('setup_050');
    }
                $out .= '
              <fieldset class="rex-form-col-1">
                <legend>' . $I18N->msg('content_submitmovecategory') . '</legend>

					      <div class="rex-form-wrapper">
					      
					      	<div class="rex-form-row">
								  	<p class="rex-form-col-a rex-form-select">
											<label for="category_id_new">' . $I18N->msg('move_category') . '</label>
											' . $move_a->get() . '
									  </p>
									</div>
									
					      	<div class="rex-form-row">
									  <p class="rex-form-col-a rex-form-submit">
											<input class="rex-form-submit" type="submit" name="movecategory" value="' . $I18N->msg('content_submitmovecategory') . '"' . rex_tabindex() . ' onclick="return confirm(\'' . $I18N->msg('content_submitmovecategory') . '?\')" />
									  </p>
									</div>

									<div class="rex-clearer"></div>
							  </div>
              </fieldset>';
            }
            // ------------------------------------------------ KATEGROIE/STARTARTIKEL VERSCHIEBEN ENDE
            if ($out != '') {
                echo '<div class="rex-form-section">';
                echo $out;
                echo '</div>';
            }
            // ------------------------------------------------------------- SONSTIGES ENDE
            echo '
/**
 * Erstellt den nötigen HTML Code um ein Formular zu erweitern
 *
 * @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
 * @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt
 * @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt
 */
function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams)
{
    global $I18N;
    $s = '';
    // Startwert für MEDIABUTTON, MEDIALIST, LINKLIST
    $media_id = 1;
    $mlist_id = 1;
    $link_id = 1;
    $sqlFields->reset();
    for ($i = 0; $i < $sqlFields->getRows(); $i++) {
        // Umschliessendes Tag von Label und Formularelement
        $tag = 'p';
        $tag_attr = '';
        $name = $sqlFields->getValue('name');
        $title = $sqlFields->getValue('title');
        $params = $sqlFields->getValue('params');
        $typeLabel = $sqlFields->getValue('label');
        $attr = $sqlFields->getValue('attributes');
        $dbvalues = array('');
        if ($activeItem) {
            $dbvalues = explode('|+|', $activeItem->getValue($name));
        }
        if ($title != '') {
            $label = rex_translate($title);
        } else {
            $label = htmlspecialchars($name);
        }
        $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
        $attr .= rex_tabindex();
        $labelIt = true;
        $field = '';
        switch ($typeLabel) {
            case 'text':
                $field = '<input type="' . $sqlFields->getValue('label') . '" name="' . $name . '" value="' . $dbvalues[0] . '" id="' . $id . '" ' . $attr . ' />';
                break;
            case 'checkbox':
                $name .= '[]';
            case 'radio':
                $values = array();
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    $sql = new rex_sql();
                    $value_groups = $sql->getDBArray($params, MYSQL_NUM);
                    foreach ($value_groups as $value_group) {
                        if (isset($value_group[1])) {
                            $values[$value_group[1]] = $value_group[0];
                        } else {
                            $values[$value_group[0]] = $value_group[0];
                        }
                    }
                } else {
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        if (strpos($value_group, ':') !== false) {
                            $temp = explode(':', $value_group);
                            $values[$temp[0]] = $temp[1];
                        } else {
                            $values[$value_group] = $value_group;
                        }
                    }
                }
                //        if($epParams['extension_point'] != 'CAT_META_FORM_EDIT')
                //          $field .= '<span>'. $label .'</span>';
                $class = $typeLabel == 'radio' ? 'rex-rdo' : 'rex-chckbx';
                $oneValue = count($values) == 1;
                if (!$oneValue) {
                    $tag = '';
                    $labelIt = false;
                    $tag = 'div';
                    $tag_attr = ' class="rex-chckbxs rex-ptag"';
                    $field .= '<p>' . $label . '</p>';
                }
                foreach ($values as $key => $value) {
                    $id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $id . $key);
                    // wenn man keine Werte angibt (Boolean Chkbox/Radio)
                    // Dummy Wert annehmen, damit an/aus unterscheidung funktioniert
                    if ($oneValue && $key == '') {
                        $key = 'true';
                    }
                    $selected = '';
                    if (in_array($key, $dbvalues)) {
                        $selected = ' checked="checked"';
                    }
                    if ($oneValue) {
                        $tag_attr = ' class="' . $class . '"';
                        $field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
                    } else {
                        $field .= '<p class="' . $class . '">' . "\n";
                        $field .= '<label for="' . $id . '"><span>' . htmlspecialchars($value) . '</span></label>';
                        $field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
                        $field .= '</p>' . "\n";
                    }
                }
                break;
            case 'select':
                $select = new rex_select();
                $select->setName($name);
                $select->setId($id);
                $select->setSelected($dbvalues);
                foreach (explode(' ', $attr) as $pair) {
                    if (strpos($pair, '=') === false) {
                        continue;
                    }
                    $temp = explode('=', $pair);
                    $select->setAttribute($temp[0], str_replace(array('"', "'"), '', $temp[1]));
                    if ($temp[0] == 'multiple') {
                        $select->setName($name . '[]');
                    }
                }
                if (rex_sql::getQueryType($params) == 'SELECT') {
                    $select->addDBSqlOptions($params);
                } else {
                    $values = array();
                    $value_groups = explode('|', $params);
                    foreach ($value_groups as $value_group) {
                        if (strpos($value_group, ':') !== false) {
                            $temp = explode(':', $value_group);
                            $values[$temp[0]] = $temp[1];
                        } else {
                            $values[$value_group] = $value_group;
                        }
                    }
                    $select->addOptions($values);
                }
                $field .= $select->get();
                break;
            case 'datetime':
            case 'date':
                if ($dbvalues[0] == '') {
                    $dbvalues[0] = time();
                }
                $style = 'class="rex-fdate"';
                $yearStyle = 'class="rex-fdatey"';
                $yearSelect = new rex_select();
                $yearSelect->addOptions(range(2005, date('Y') + 2), true);
                $yearSelect->setName($name . '[year]');
                $yearSelect->setSize(1);
                $yearSelect->setId($id);
                $yearSelect->setStyle($yearStyle);
                $yearSelect->setSelected(date('Y', $dbvalues[0]));
                $monthSelect = new rex_select();
                $monthSelect->addOptions(range(1, 12), true);
                $monthSelect->setName($name . '[month]');
                $monthSelect->setSize(1);
                $monthSelect->setStyle($style);
                $monthSelect->setSelected(date('m', $dbvalues[0]));
                $daySelect = new rex_select();
                $daySelect->addOptions(range(1, 31), true);
                $daySelect->setName($name . '[day]');
                $daySelect->setSize(1);
                $daySelect->setStyle($style);
                $daySelect->setSelected(date('j', $dbvalues[0]));
                if ($typeLabel == 'datetime') {
                    $hourSelect = new rex_select();
                    $hourSelect->addOptions(range(1, 23), true);
                    $hourSelect->setName($name . '[hour]');
                    $hourSelect->setSize(1);
                    $hourSelect->setStyle($style);
                    $hourSelect->setSelected(date('G', $dbvalues[0]));
                    $minuteSelect = new rex_select();
                    $minuteSelect->addOptions(range(0, 59), true);
                    $minuteSelect->setName($name . '[minute]');
                    $minuteSelect->setSize(1);
                    $minuteSelect->setStyle($style);
                    $minuteSelect->setSelected(date('i', $dbvalues[0]));
                    $field = $daySelect->get() . $monthSelect->get() . $yearSelect->get() . '-' . $hourSelect->get() . $minuteSelect->get();
                } else {
                    $field = $daySelect->get() . $monthSelect->get() . $yearSelect->get();
                }
                break;
            case 'textarea':
                $field = '<textarea name="' . $name . '" id="' . $id . '" ' . $attr . ' cols="50" rows="6">' . $dbvalues[0] . '</textarea>';
                break;
            case 'REX_MEDIA_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $field = rex_var_media::getMediaButton($media_id);
                $field = str_replace('REX_MEDIA[' . $media_id . ']', $dbvalues[0], $field);
                $field = str_replace('MEDIA[' . $media_id . ']', $name, $field);
                $id = 'REX_MEDIA_' . $media_id;
                $media_id++;
                break;
            case 'REX_MEDIALIST_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $name .= '[]';
                $field = rex_var_media::getMediaListButton($mlist_id, implode(',', $dbvalues));
                $field = str_replace('MEDIALIST[' . $mlist_id . ']', $name, $field);
                $id = 'REX_MEDIALIST_' . $mlist_id;
                $mlist_id++;
                break;
            case 'REX_LINK_BUTTON':
                $tag = 'div';
                $tag_attr = ' class="rex-ptag"';
                $category = '';
                if ($activeItem) {
                    $category = $activeItem->getValue('category_id');
                }
                $field = rex_var_link::getLinkButton($link_id, $dbvalues[0], $category);
                $field = str_replace('LINK[' . $link_id . ']', $name, $field);
                $id = 'LINK_' . $link_id;
                $link_id++;
                break;
        }
        $s .= rex_call_func($formatCallback, array($field, $tag, $tag_attr, $id, $label, $labelIt), false);
        $sqlFields->next();
    }
    return $s;
}
/**
 * Helper function, die den Subtitle generiert
 */
function rex_get_subtitle($subline, $attr = '')
{
    global $REX_USER;
    if (empty($subline)) {
        return '';
    }
    $subtitle_str = $subline;
    $subtitle = $subline;
    $cur_subpage = rex_request('subpage', 'string');
    $cur_page = rex_request('page', 'string');
    if (is_array($subline) && count($subline) > 0) {
        $subtitle = array();
        $numPages = count($subline);
        foreach ($subline as $subpage) {
            if (!is_array($subpage)) {
                continue;
            }
            $link = $subpage[0];
            $label = $subpage[1];
            $perm = !empty($subpage[2]) ? $subpage[2] : '';
            $params = !empty($subpage[3]) ? rex_param_string($subpage[3]) : '';
            // Berechtigung prüfen
            if ($perm != '') {
                // Hat der User das Recht für die aktuelle Subpage?
                if (!$REX_USER->hasPerm('admin[]') && !$REX_USER->hasPerm($perm)) {
                    // Wenn der User kein Recht hat, und diese Seite öffnen will -> Fehler
                    if ($cur_subpage == $link) {
                        exit('You have no permission to this area!');
                    } else {
                        continue;
                    }
                }
            }
            // Falls im Link parameter enthalten sind, diese Abschneiden
            if (($pos = strpos($link, '&')) !== false) {
                $link = substr($link, 0, $pos);
            }
            $active = empty($cur_subpage) && $link == '' || !empty($cur_subpage) && $cur_subpage == $link;
            // Auf der aktiven Seite den Link nicht anzeigen
            if ($active) {
                // $format = '%s';
                // $subtitle[] = sprintf($format, $label);
                $format = '<a href="?page=' . $cur_page . '&amp;subpage=%s%s"%s' . rex_tabindex() . ' class="rex-subpage-active">%s</a>';
                $subtitle[] = sprintf($format, $link, $params, $attr, $label);
            } elseif ($link == '') {
                $format = '<a href="?page=' . $cur_page . '%s"%s' . rex_tabindex() . '>%s</a>';
                $subtitle[] = sprintf($format, $params, $attr, $label);
            } else {
                $format = '<a href="?page=' . $cur_page . '&amp;subpage=%s%s"%s' . rex_tabindex() . '>%s</a>';
                $subtitle[] = sprintf($format, $link, $params, $attr, $label);
            }
        }
        if (!empty($subtitle)) {
            $items = '';
            $num_parts = count($subtitle);
            $i = 1;
            foreach ($subtitle as $part) {
                if ($i != $num_parts) {
                    $part .= ' | ';
                }
                $items .= '<li>' . $part . '</li>
        ';
                $i++;
            }
            $subtitle_str = '
      <ul>
        ' . $items . '
      </ul>
      ';
        }
    }
    // \n aus Quellcode formatierungsgründen
    return $subtitle_str;
}
Example #30
0
            }
            // Leerzeichen durch &nbsp; ersetzen, damit Addonnamen immer in einer Zeile stehen
            $name = str_replace(' ', '&nbsp;', $name);
            $liClass = $page == $apage ? $activeClass : '';
            if (current($REX['ADDON']['status']) == 1 && $name != '' && ($perm == '' || $REX_USER->hasPerm($perm) || $REX_USER->hasPerm("admin[]"))) {
                $separator = ' | ';
                if ($first) {
                    $separator = '';
                    $first = false;
                }
                if ($popup == 1) {
                    echo '<li' . $liClass . '>' . $separator . '<a href="javascript:newPoolWindow(\'index.php?page=' . $apage . '\');"' . rex_tabindex() . $accesskey . '>' . $name . '</a></li>' . "\n";
                } elseif ($popup == '' or $popup == 0) {
                    echo '<li' . $liClass . '>' . $separator . '<a href="index.php?page=' . $apage . '"' . rex_tabindex() . $accesskey . '>' . $name . '</a></li>' . "\n";
                } else {
                    echo '<li' . $liClass . '>' . $separator . '<a href="' . $popup . '"' . rex_tabindex() . $accesskey . '>' . $name . '</a></li>' . "\n";
                }
            }
            next($REX['ADDON']['status']);
        }
        echo '</ul>' . "\n";
    }
} else {
    if (!isset($open_header_only)) {
        echo '<p>' . $I18N->msg('logged_out') . '</p>';
    } else {
        echo '<p>&nbsp;</p>';
    }
}
?>
  </div>