Example #1
0
 protected function checkPreConditions()
 {
     if (!OOAddon::isAvailable($this->addonkey)) {
         throw new rex_install_functional_exception(sprintf('AddOn "%s" is not available!', $this->addonkey));
     }
     if (!rex_string::versionCompare($this->file['version'], OOAddon::getVersion($this->addonkey), '>')) {
         throw new rex_install_functional_exception(sprintf('Existing version of AddOn "%s" (%s) is newer than %s', $this->addonkey, OOAddon::getVersion($this->addonkey), $this->file['version']));
     }
 }
 /**
  * Gibt ein Array von verf�gbaren Addons zur�ck.
  * 
  * @return array Array der verf�gbaren Addons
  */
 function getAvailableAddons()
 {
     $avail = array();
     foreach (OOAddon::getRegisteredAddons() as $addonName) {
         if (OOAddon::isAvailable($addonName)) {
             $avail[] = $addonName;
         }
     }
     return $avail;
 }
 /**
  * added the metafields
  * @return string
  */
 public static function addFields()
 {
     global $REX;
     $class = '';
     if (OOAddon::isAvailable('tinymce')) {
         $class = 'tinyMCEEditor';
     } elseif (OOAddon::isAvailable('ckeditor')) {
         $class = 'ckeditor';
     }
     return self::checkErrorMessage(a62_add_field('translate:content_category', 'asd_category', 2, '', 3, '', 'SELECT `name`, `id` FROM ' . rex_asd_news_config::getTableCategory()), a62_add_field('translate:asd_news_picture', 'asd_picture', 3, '', 6, ''), a62_add_field('translate:asd_news_text', 'asd_text', 4, 'class=' . $class, 2, ''));
 }
 function rexMediaButtonField($name, $label, $attributes = array(), $id = '')
 {
     global $REX;
     $this->popupButtonField($name, $label, $attributes, $id);
     $this->enablePreview();
     if (OOAddon::isAvailable('image_resize')) {
         $this->setPreviewUrl('index.php?rex_resize=100w__%filename%');
     } else {
         $this->setPreviewUrl($REX['MEDIAFOLDER'] . '/%filename%');
     }
 }
Example #5
0
 protected function textile($string)
 {
     if (OOAddon::isAvailable("textile")) {
         if ($string != "") {
             $string = str_replace("\t", "", $string);
             $string = htmlspecialchars_decode($string);
             $string = str_replace("<br />", "", $string);
             return rex_a79_textile($string);
         }
     } else {
         return $string;
     }
 }
<?php

// setze Variable mit Addonnamen
if (!isset($AKTUELLER_ADDON_NAME) or $AKTUELLER_ADDON_NAME == '') {
    $AKTUELLER_ADDON_NAME = 'guestbook';
} else {
    // Diese hier definierte Variable darf noch nirgends in Redxo verwendet worden sein.
    echo 'Schwerere Fehler aufegtreten! Die Variable <span style="font-style:italic;">"' . $AKTUELLER_ADDON_NAME . '"</span> ist bereits belegt. Wende dich an Modulersteller.';
}
// ist das Addon aktiv?
if (OOAddon::isAvailable($AKTUELLER_ADDON_NAME)) {
    require_once $REX['INCLUDE_PATH'] . '/addons/' . $AKTUELLER_ADDON_NAME . '/modules/module.list.inc.php';
    $f1 = <<<EOD
REX_VALUE[1]
EOD;
    $f2 = <<<EOD
REX_VALUE[2]
EOD;
    $f3 = <<<EOD
REX_VALUE[3]
EOD;
    $f4 = <<<EOD
REX_VALUE[4]
EOD;
    $f5 = <<<EOD
REX_VALUE[5]
EOD;
    $f6 = <<<EOD
REX_VALUE[6]
EOD;
    if ($f1 == '') {
Example #7
0
    function showDetail()
    {
        $this->language == 1 ? $I18_prefix = 'en_en_utf8' : ($I18_prefix = 'de_de_utf8');
        $I18N_NEWS_DB = new i18n($I18_prefix, REX_INCLUDE_PATH . '/addons/' . MY_PAGE . '/lang');
        if ($this->active == 0) {
            $addSQL = 'AND status = "0"';
        }
        if ($this->active == 1) {
            $addSQL = 'AND status = "1"';
        }
        if ($this->language != "") {
            $addSQL .= 'AND clang = ' . $this->language;
        }
        $qry = 'SELECT *
				FROM ' . TBL_NEWS . ' 
				WHERE id = "' . $_REQUEST['newsid'] . '"
				' . $addSQL . '
				';
        $sql = new rex_sql();
        if ($this->debug == 1) {
            $sql->debugsql = true;
        }
        $data = $sql->getArray($qry);
        if (is_array($data) and sizeof($data) > 0) {
            include 'redaxo/include/addons/news/libs/Smarty.class.php';
            $t = new Smarty();
            $t->debugging = false;
            $t->caching = false;
            $t->cache_lifetime = 120;
            $t->config_dir = 'redaxo/include/addons/news/view/configs/';
            $t->compile_dir = 'redaxo/include/addons/news/view/templates_c/';
            $t->cache_dir = 'redaxo/include/addons/news/view/cache/';
            $t->template_dir = 'redaxo/include/addons/news/view/templates/';
            /* Fuer spaeter - Bilderslider Header oder so
                        if ($data[0]["image_header"] != "") // Bildausgabe Header
            			{
            				$images_header = explode(",", $data[0]["image_header"]);
            				foreach ($images_header as $i)
            				{
            					$s = getimagesize("files/".$i);
            					($s[0]<=620) ? $b[] = $i : $b[] = "index.php?rex_img_type=rex_rbw_620&rex_img_file=".$i;
            				}
            				if (is_array($images_header) and sizeof($images_header)>0) $headerBilder = headerBilder($b, $REX['CUR_CLANG']);
            				print '<div id="newsSlider" class="slideshow flexslider">'.$headerBilder."</div>\n";
            			}*/
            if ($data[0]["image"] != "") {
                $_images = explode(",", $data[0]["image"]);
                foreach ($_images as $k => $file) {
                    if (file_exists($REX['HTDOCS_PATH'] . "files/" . $file)) {
                        $fileobj = OOMedia::getMediaByName($file, $REX['CUR_CLANG']);
                        $images[$k]['file'] = $fileobj->_name;
                        $images[$k]['item'] = !empty($fileobj->_title) ? $fileobj->_title : $fileobj->_name;
                        $_filesizeis = filesize($REX['HTDOCS_PATH'] . "files/" . $fileobj->_name);
                        $images[$k]['size'] = $this->getfilesize($_filesizeis);
                        $images[$k]['description'] = $fileobj->_med_description;
                        $images[$k]['copyright'] = $fileobj->_med_copyright;
                        $images[$k]['date'] = date("d.m.Y", $fileobj->_updatedate);
                        $images[$k]['time'] = date("H:i", $fileobj->_updatedate);
                        $images[$k]['typ'] = substr(strrchr($fileobj->_name, "."), 1);
                    }
                }
            }
            $item[$i]['name'] = $data[0]["name"];
            $item[$i]['source'] = $data[0]["source"];
            $item[$i]['keywords'] = $data[0]["keywords"];
            $item[$i]['teaser'] = $data[0]["teaser"];
            $item[$i]['date'] = $this->rex_news_format_date($data[0]["online_date"], $this->language);
            if (OOAddon::isAvailable("textile")) {
                if ($data[0]["article"] != "") {
                    $output = $data[0]["article"];
                    $text = $output;
                    if ($text != "") {
                        $text = str_replace("\t", "", $text);
                        $text = htmlspecialchars_decode($text);
                        $text = str_replace("<br />", "", $text);
                        $item[$i]['text'] = rex_a79_textile($text);
                    }
                }
            }
            // Download
            if ($data[0]["filelist"] != "") {
                $filelist = explode(",", $data[0]["filelist"]);
                foreach ($filelist as $k => $file) {
                    if (file_exists($REX['HTDOCS_PATH'] . "files/" . $file)) {
                        $fileobj = OOMedia::getMediaByName($file, $REX['CUR_CLANG']);
                        $files[$k]['file'] = $fileobj->_name;
                        $files[$k]['item'] = !empty($fileobj->_title) ? $fileobj->_title : $fileobj->_name;
                        $_filesizeis = filesize($REX['HTDOCS_PATH'] . "files/" . $fileobj->_name);
                        $files[$k]['size'] = $this->getfilesize($_filesizeis);
                        $files[$k]['description'] = $fileobj->_med_description;
                        $files[$k]['copyright'] = $fileobj->_med_copyright;
                        $files[$k]['date'] = date("d.m.Y", $fileobj->_updatedate);
                        $files[$k]['time'] = date("H:i", $fileobj->_updatedate);
                        $files[$k]['typ'] = substr(strrchr($fileobj->_name, "."), 1);
                    }
                }
            }
            $item[$i]['back'] = $I18N_NEWS_DB->msg('back');
            $t->assign("files", $files);
            $t->assign("images", $images);
            $t->assign("data", $item);
            $t->display('news_detail.tpl');
        } else {
            // Fehlermeldung, falls URL-Manipulation
            print "<h1>Fehler</h1> Es ist ein Fehler aufgetreten. <br />Diesen Artikel gibt es nicht oder nicht mehr oder Sie haben nicht die notwendige Berechtigung. <br /><br />Bitte gehen Sie <a href=\"javascript:history.back()\">hier zur&uml;ck</a>. ";
        }
    }
Example #8
0
 /**
  * Checks whether the requirements are met.
  *
  * @return boolean
  */
 protected static function checkRequirements($config)
 {
     global $REX;
     $errors = array();
     if ($config['rex_version'] != '') {
         $rex_version = $REX['VERSION'] . '.' . $REX['SUBVERSION'] . '.' . $REX['MINORVERSION'];
         if (version_compare($rex_version, $config['rex_version'], '<')) {
             $errors['de_de'][] = 'Die REDAXO Version reicht nicht aus. Es wird mindestens Version ' . $config['rex_version'] . ' benötigt. Sie nutzen aktuell die Version ' . $rex_version;
             $errors['en_en'][] = 'The REDAXO version is not sufficient. At least version ' . $config['rex_version'] . ' is needed. Currently version ' . $rex_version . ' is installed.';
         }
     }
     if ($config['php_version'] != '') {
         if (version_compare(PHP_VERSION, $config['php_version']) < 0) {
             $errors['de_de'][] = 'PHP version >=' . $config['php_version'] . ' wird gebraucht!';
             $errors['en_en'][] = 'PHP version >=' . $config['php_version'] . ' needed!';
         }
     }
     if (count($config['required_addons']) >= 1) {
         foreach ($config['required_addons'] as $addon_name => $addon_version) {
             if (is_numeric($addon_name)) {
                 $addon_name = $addon_version;
                 $addon_version = '';
             }
             if (!\OOAddon::isAvailable($addon_name)) {
                 $de = $addon_version != '' ? ' in der Version "' . $addon_version . '"' : '';
                 $en = $addon_version != '' ? ' in version "' . $addon_version . '"' : '';
                 $errors['de_de'][] = 'Installiere und aktiviere das AddOn "' . $addon_name . '"' . $de . '.';
                 $errors['en_en'][] = 'Install and activate the addon "' . $addon_name . '"' . $en . '.';
             }
             if (\OOAddon::isAvailable($addon_name) && $addon_version != '' && version_compare(\OOAddon::getVersion($addon_name), $addon_version, '<')) {
                 $errors['de_de'][] = 'Die Version des AddOns "' . $addon_name . '" reicht nicht aus. Es wird mindestens Version ' . $addon_version . ' benötigt. Sie nutzen aktuell die Version ' . \OOAddon::getVersion($addon_name);
                 $errors['en_en'][] = 'The version of the addon "' . $addon_name . '" is not sufficient. At least version ' . $addon_version . ' is needed. Currently version ' . \OOAddon::getVersion($addon_name) . ' is installed.';
             }
         }
     }
     if (count($errors) >= 1) {
         $lang = $REX['LOGIN']->getLanguage();
         $lang = $lang != 'de_de' ? 'en_en' : $lang;
         $style = ' style="position: relative; display: block; padding-left: 10px; font-weight: 400;"';
         $bullet = '<i style="position: absolute; left: 0;">&bullet;</i>';
         $warning = '<b' . $style . '>' . $bullet . implode('</b><b' . $style . '>' . $bullet, $errors[$lang]) . '</b>';
         self::$message = $warning;
         return false;
     }
     return true;
 }
 /**
  * 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;
 }
<?php

/**
 * editme
 *
 * @author jan@kristinus.de
 *
 * @package redaxo4
 * @version svn:$Id$
 */
$error = '';
if (!OOAddon::isAvailable('xform')) {
    $error = 'AddOn "XForm" ist nicht installiert und aktiviert.';
} elseif (OOAddon::getVersion('xform') < '2.2') {
    $error = 'Das AddOn "XForm" muss mindestens in der Version 2.2 vorhanden sein.';
} elseif (!rex_xform_manager::createBasicSet('em')) {
    $error = 'Der XForm Manager hat das "em" BasicSet nicht installieren können.';
}
if ($error == '') {
    $REX['ADDON']['install']['editme'] = 1;
} else {
    $REX['ADDON']['installmsg']['editme'] = $error;
}
<?php

$mypage = 'import_export';
if ($REX['REDAXO'] && is_object($REX["USER"])) {
    $I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/lang/');
    $REX['ADDON']['rxid'][$mypage] = '1';
    $REX['ADDON']['name'][$mypage] = $I18N->msg("im_export_importexport");
    $REX['ADDON']['perm'][$mypage] = 'import_export[export]';
    $REX['ADDON']['version'][$mypage] = "1.3";
    $REX['ADDON']['author'][$mypage] = "Jan Kristinus, Markus Staab";
    $REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de';
    $REX['PERM'][] = 'import_export[export]';
    $REX['PERM'][] = 'import_export[import]';
    $REX['ADDON']['pages'][$mypage] = array();
    if ($REX["USER"]->hasPerm('import_export[import]') || $REX["USER"]->isAdmin()) {
        $REX['ADDON']['pages'][$mypage][] = array('import', $I18N->msg('im_export_import'));
    }
    $REX['ADDON']['pages'][$mypage][] = array('', $I18N->msg('im_export_export'));
}
if (OOAddon::isAvailable('cronjob')) {
    require_once dirname(__FILE__) . '/classes/class.cronjob.inc.php';
    rex_register_extension('CRONJOB_TYPES', array('rex_cronjob_manager', 'registerExtension'), array('class' => 'rex_cronjob_export'));
}
 function a401_perform_ajax($_rex_ajax, $rxa, $REX)
 {
     $rxa['ajaxdir'] .= $REX['REDAXO'] ? 'backend/' : 'frontend/';
     if (!$REX['REDAXO'] and !$rxa['settings']['frontend_active']) {
         return;
     }
     if ($REX['REDAXO'] and !$rxa['settings']['backend_active']) {
         return;
     }
     if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
         $rxa['ajaxdir'] = str_replace("/", "\\", $rxa['ajaxdir']);
     }
     // Code ausführen falls die Datei vorhanden ist
     if (file_exists($rxa['ajaxdir'] . $_rex_ajax . '.inc.php')) {
         @ob_end_clean();
         @ob_end_clean();
         // Fix für REDAXO < 4.2.x
         if (isset($REX_ARTICLE)) {
             $REX['ARTICLE'] = $REX_ARTICLE;
         }
         // Include der Datei
         include_once $rxa['ajaxdir'] . $_rex_ajax . '.inc.php';
         exit;
     } else {
         if (trim($REX["ADDON"][$rxa['name']]["settings"]["errormail"]) != '') {
             $_subject = 'REX_Ajax Error ' . $REX['SERVER'] . ' ' . $REX['SERVERNAME'];
             $_mailtext = $_subject . "\n\n" . date('d.m.Y h:i:s') . "\n\n";
             ob_start();
             var_dump($_REQUEST);
             $_mailtext .= "_REQUEST\n";
             $_mailtext .= ob_get_contents();
             ob_end_clean();
             ob_start();
             var_dump($_SESSION);
             $_mailtext .= "\n_SESSION\n";
             $_mailtext .= ob_get_contents();
             ob_end_clean();
             ob_start();
             var_dump($_SERVER);
             $_mailtext .= "\n_SERVER\n";
             $_mailtext .= ob_get_contents();
             ob_end_clean();
             $_to = $REX["ADDON"][$rxa['name']]["settings"]["errormail"];
             $_header = 'From: ' . $REX['ERROR_EMAIL'] . "\r\n" . 'Reply-To: ' . $REX['ERROR_EMAIL'] . "\r\n" . 'X-Mailer: PHP/' . phpversion();
             if (OOAddon::isAvailable('phpmailer')) {
                 if (!isset($I18N)) {
                     $I18N = rex_create_lang($REX['LANG']);
                 }
                 include $REX['INCLUDE_PATH'] . '/addons/phpmailer/config.inc.php';
                 $mail = new rex_mailer();
                 $mail->From = $REX['ERROR_EMAIL'];
                 $mail->Subject = $_subject;
                 $mail->Body = $_mailtext;
                 $mail->AddAddress($_to, '');
                 $mail->Send();
             } else {
                 @mail($_to, $_subject, $_mailtext, $_header);
             }
         }
     }
 }
    /**
     * 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 #14
0
 /**
  * @param $addons,...
  */
 public static function setSeoAddon($addons)
 {
     $addons = func_get_args();
     foreach ($addons as $addon) {
         if (OOAddon::isAvailable($addon)) {
             self::$seoAddon = $addon;
             // Kompatibilität erhalten
             rex_asd_news::$SEO_ADDON = self::$seoAddon;
         }
     }
     self::$seoSettings = self::setSeoSettings();
     if (self::$seoAddon) {
         self::$urlControlPlugin = OOPlugin::isAvailable(self::$seoAddon, 'url_control');
     }
     // Kompatibilität erhalten
     rex_asd_news::$SEO_URL_CONTROL = self::$urlControlPlugin;
 }
Example #15
0
$myself = 'seo42';
$myroot = $REX['INCLUDE_PATH'] . '/addons/' . $myself;
$error = array();
// append lang file
$I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/seo42/lang/');
// includes
require_once $REX['INCLUDE_PATH'] . '/addons/seo42/classes/class.seo42_utils.inc.php';
// check redaxo version
if (version_compare($REX['VERSION'] . '.' . $REX['SUBVERSION'] . '.' . $REX['MINORVERSION'], '4.4.1', '<=')) {
    $error[] = $I18N->msg('seo42_install_rex_version');
}
// check for concurrent addons
$disable_addons = array('url_rewrite', 'yrewrite', 'rexseo', 'rexseo42', 'resource_includer');
foreach ($disable_addons as $a) {
    if (OOAddon::isInstalled($a) || OOAddon::isAvailable($a)) {
        $error[] = $I18N->msg('seo42_install_concurrent') . ' ' . $a;
    }
}
// auto install plugins
$returnmsg = seo42_utils::autoInstallPlugins('seo42', array());
// no plugins yet to auto install
if ($returnmsg != '') {
    $error[] = $returnmsg;
}
// setup seo db fields
if (count($error) == 0) {
    $sql = new rex_sql();
    //$sql->debugsql = true;
    // IMPORTANT: if adding/removing db fields here, check also for uninstall.inc.php and seo42_utils::afterDBImport() and seo42::emptySEODataAfterClangAdded()
    $sql->setQuery('ALTER TABLE `' . $REX['TABLE_PREFIX'] . 'article` ADD `seo_title` TEXT, ADD `seo_description` TEXT, ADD `seo_keywords` TEXT, ADD `seo_custom_url` TEXT, ADD `seo_canonical_url` TEXT, ADD `seo_noindex` VARCHAR(1), ADD `seo_ignore_prefix` VARCHAR(1)');
 /**
  * @access public
  */
 function toImage($params = array())
 {
     global $REX;
     if (!is_array($params)) {
         $params = array();
     }
     $path = $REX['HTDOCS_PATH'];
     if (isset($params['path'])) {
         $path = $params['path'];
         unset($params['path']);
     }
     // Ist das Media ein Bild?
     if (!$this->isImage()) {
         $path = 'media/';
         $file = 'file_dummy.gif';
         // Verwenden einer statischen variable, damit getimagesize nur einmal aufgerufen
         // werden muss, da es sehr lange dauert
         static $dummyFileSize;
         if (empty($dummyFileSize)) {
             $dummyFileSize = getimagesize($path . $file);
         }
         $params['width'] = $dummyFileSize[0];
         $params['height'] = $dummyFileSize[1];
     } else {
         $resize = false;
         // ResizeModus festlegen
         if (isset($params['resize']) && $params['resize']) {
             unset($params['resize']);
             // Resize Addon installiert?
             if (OOAddon::isAvailable('image_resize')) {
                 $resize = true;
                 if (isset($params['width'])) {
                     $resizeMode = 'w';
                     $resizeParam = $params['width'];
                     unset($params['width']);
                 } elseif (isset($params['height'])) {
                     $resizeMode = 'h';
                     $resizeParam = $params['height'];
                     unset($params['height']);
                 } elseif (isset($params['crop'])) {
                     $resizeMode = 'c';
                     $resizeParam = $params['crop'];
                     unset($params['crop']);
                 } else {
                     $resizeMode = 'a';
                     $resizeParam = 100;
                 }
                 // Evtl. Größeneinheiten entfernen
                 $resizeParam = str_replace(array('px', 'pt', '%', 'em'), '', $resizeParam);
             }
         }
         // Bild resizen?
         if ($resize) {
             $file = 'index.php?rex_resize=' . $resizeParam . $resizeMode . '__' . $this->getFileName();
         } else {
             // Bild 1:1 anzeigen
             $path .= 'files/';
             $file = $this->getFileName();
         }
     }
     $title = $this->getTitle();
     // Alternativtext hinzufügen
     if (!isset($params['alt'])) {
         if ($title != '') {
             $params['alt'] = htmlspecialchars($title);
         }
     }
     // Titel hinzufügen
     if (!isset($params['title'])) {
         if ($title != '') {
             $params['title'] = htmlspecialchars($title);
         }
     }
     // Evtl. Zusatzatrribute anfügen
     $additional = '';
     foreach ($params as $name => $value) {
         $additional .= ' ' . $name . '="' . $value . '"';
     }
     return sprintf('<img src="%s"%s />', $path . $file, $additional);
 }
Example #17
0
<?php

/**
 * XForm
 * @author jan.kristinus[at]redaxo[dot]org Jan Kristinus
 * @author <a href="http://www.yakamara.de">www.yakamara.de</a>
 */
$addonname = 'xform';
$I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/xform/lang/');
$msg = '';
if ($REX['VERSION'] != '4' || $REX['SUBVERSION'] < '5') {
    $msg = $I18N->msg('xform_install_redaxo_version_problem', '4.5');
} elseif (version_compare(PHP_VERSION, '5.3.0', '<')) {
    $msg = $I18N->msg('xform_install_checkphpversion', PHP_VERSION);
} elseif (OOAddon::isAvailable('phpmailer') != 1 || OOAddon::getVersion('phpmailer') < '2.8') {
    $msg = $I18N->msg('xform_install_phpmailer_version_problem', '2.8');
} else {
    // AUTOINSTALL THESE PLUGINS
    $autoinstall = array('email', 'setup', 'manager');
    // GET ALL ADDONS & PLUGINS
    $all_addons = rex_read_addons_folder();
    $all_plugins = array();
    foreach ($all_addons as $_addon) {
        $all_plugins[$_addon] = rex_read_plugins_folder($_addon);
    }
    // DO AUTOINSTALL
    $pluginManager = new rex_pluginManager($all_plugins, $addonname);
    foreach ($autoinstall as $pluginname) {
        // INSTALL PLUGIN
        if (($instErr = $pluginManager->install($pluginname)) !== true) {
            $msg = $instErr;
<?php

/**
 * Guestbook Addon 
 * @author staab[at]public-4u[dot]de Markus Staab
 * @author <a href="http://www.public-4u.de">www.public-4u.de</a>
 * @package redaxo3
 * @version $Id: install.inc.php,v 1.2 2007/06/11 11:55:01 kills Exp $
 */
$error = '';
if (!OOAddon::isAvailable('addon_framework')) {
    $error .= 'Required addon "addon_framework" is either not installed or not activated!';
}
if ($error != '') {
    $REX['ADDON']['installmsg']['guestbook'] = $error;
} else {
    $REX['ADDON']['install']['guestbook'] = 1;
}
 /**
  * @param rex_news_form $form
  * @param $id
  * @param $clang
  */
 public static function saveOverLangValues(rex_news_form $form, $id, $clang)
 {
     global $REX;
     $lang = new rex_sql();
     $lang->setQuery('SELECT `id` FROM `' . $REX['TABLE_PREFIX'] . 'clang` WHERE `id` != ' . $clang);
     for ($i = 1; $i <= $lang->getRows(); $i++) {
         $sql = new rex_sql();
         $sql->setTable($form->getTableName());
         $sql->setDebug(true);
         $sql->setWhere('`id` = ' . $id . ' AND `clang` = ' . $lang->getValue('id'));
         $sql->select('id');
         $sql->setTable($form->getTableName());
         $sql->setDebug(true);
         $sql->setWhere('`id` = ' . $id . ' AND `clang` = ' . $lang->getValue('id'));
         if (OOAddon::isAvailable('metainfo')) {
             $sql->setValues($form->getMetaValues());
         }
         if ($sql->getRows()) {
             $sql->setValues(array_intersect_key($form->getValues(), array_flip($form->getOverSavedFields())));
             $sql->setValue('clang', $lang->getValue('id'));
             $sql->setValue('id', $id);
             $sql->update();
         } else {
             $sql->setValues($form->getValues());
             $sql->setValue('clang', $lang->getValue('id'));
             $sql->setValue('id', $id);
             $sql->insert();
         }
         $lang->next();
     }
 }
 // Damit nur die neueste Version in der Liste erscheint, müssen wir hier
 // noch mal eine Sortierungsfunktion aufrufen
 usort($addon, "cmp");
 $addon_status = '';
 if (OOAddon::isAvailable($addon[0]['addon_key'])) {
     $addon_status = '<img src="media/addons/installer/play.gif" title="Installert und aktiviert" alt="Installiert und aktiviert" />';
 } elseif (OOAddon::isInstalled($addon[0]['addon_key']) && !OOAddon::isActivated($addon[0]['addon_key'])) {
     $addon_status = '<img src="media/addons/installer/pause.gif" title="Installiert, jedoch nicht aktiviert" alt="Nicht aktiviert" />';
 } elseif (Installer_check_if_addon_exists($REX['INCLUDE_PATH'] . "/addons/" . $addon[0]['addon_key'])) {
     $addon_status = '<img src="media/addons/installer/on_server.gif" title="Im AddOn Ordner vorhanden" alt="Im AddOn Ordner vorhanden" />';
 } else {
     $addon_status = '<img src="media/addons/installer/addon.gif" title="Nicht auf Server vorhanden" alt="Nicht auf dem Server" />';
 }
 if (OOAddon::isAvailable($addon[0]['addon_key']) && !OOAddon::getVersion($addon[0]['addon_key'])) {
     $systemVersion = '<img src="media/addons/installer/no_version.gif" title="Versionsangabe in der config.inc.php fehlt" alt="Versionsangabe in der config.inc.php fehlt" />';
 } elseif (!OOAddon::isAvailable($addon[0]['addon_key'])) {
     $systemVersion = '-';
 } else {
     $systemVersion = OOAddon::getVersion($addon[0]['addon_key']);
 }
 $updateAvailable = "";
 if (checkAddonVersion(OOAddon::getVersion($addon[0]['addon_key']), $addon[0]['file_version'])) {
     $updateAvailable = 'updateAvailable';
     $updatesAvailable++;
     // Wert für Verfügbare Addons hochzählen
 }
 if ($addon[0]['addon_key'] == "installer") {
     $installer_version = $addon[0]['file_version'];
     $installer_direkt_install_url = '?page=installer&subpage=addon_installer&pluginpage=install&addonurl=' . $addon[0]['file_path'] . '&addonid=' . $key . '&installname=' . $addon[0]['addon_key'];
 }
 $addonList .= '<tr class="' . $updateAvailable . ' searchable" data-addon="?page=installer&subpage=addon_installer&pluginpage=install&addonurl=' . $addon[0]['file_path'] . '&addonid=' . $key . '&installname=' . $addon[0]['addon_key'] . '">';
Example #21
0
$this_REX = $REX['VERSION'] . '.' . $REX['SUBVERSION'] . '.' . ($REX['MINORVERSION'] = "1");
if (version_compare($this_REX, $requiered_REX, '<')) {
    $REX['ADDON']['installmsg'][$mypage] = 'Dieses Addon ben&ouml;tigt Redaxo Version ' . $requiered_REX . ' oder h&ouml;her.';
    $REX['ADDON']['install'][$mypage] = 0;
    $do_install = false;
}
// CHECK PHP VERSION
////////////////////////////////////////////////////////////////////////////////
if (intval(PHP_VERSION) < $requiered_PHP) {
    $REX['ADDON']['installmsg'][$mypage] = 'Dieses Addon ben&ouml;tigt mind. PHP ' . $requiered_PHP . '!';
    $REX['ADDON']['install'][$mypage] = 0;
    $do_install = false;
}
// CHECK REQUIERED ADDONS
////////////////////////////////////////////////////////////////////////////////
foreach ($requiered_addons as $a) {
    if (!OOAddon::isInstalled($a)) {
        $REX['ADDON']['installmsg'][$mypage] = '<br />Addon "' . $a . '" ist nicht installiert.  >>> <a href="index.php?page=addon&addonname=' . $a . '&install=1">jetzt installieren</a> <<<';
        $do_install = false;
    } else {
        if (!OOAddon::isAvailable($a)) {
            $REX['ADDON']['installmsg'][$mypage] = '<br />Addon "' . $a . '" ist nicht aktiviert.  >>> <a href="index.php?page=addon&addonname=' . $a . '&activate=1">jetzt aktivieren</a> <<<';
            $do_install = false;
        }
    }
}
// DO INSTALL
////////////////////////////////////////////////////////////////////////////////
if ($do_install) {
    $REX['ADDON']['install'][$mypage] = 1;
}
 function a720_echotextile($msg)
 {
     global $REX;
     if (OOAddon::isAvailable("textile")) {
         if ($msg != '') {
             $msg = str_replace("\t", "", $msg);
             // tabs entfernen
             if (strpos($REX['LANG'], 'utf')) {
                 echo rex_a79_textile($msg);
             } else {
                 echo utf8_decode(rex_a79_textile($msg));
             }
         }
     } else {
         $fallback = rex_warning('WARNUNG: Das <a href="index.php?page=addon">Textile Addon</a> ist nicht aktiviert! Der Text wird ungeparst angezeigt..');
         $fallback .= '<pre>' . $msg . '</pre>';
         echo $fallback;
     }
 }
<?php

/**
 *
 * @package redaxo4
 * @version svn:$Id$
 */
// *************************************** CONFIG
$thumbs = true;
$image_manager = OOAddon::isAvailable('image_manager');
$image_resize = OOAddon::isAvailable('image_resize');
// *************************************** KATEGORIEN CHECK UND AUSWAHL
// ***** kategorie auswahl
$db = rex_sql::factory();
$file_cat = $db->getArray('SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'file_category ORDER BY name ASC');
// ***** select bauen
$sel_media = new rex_mediacategory_select($check_perm = false);
$sel_media->setId("rex_file_category");
$sel_media->setName("rex_file_category");
$sel_media->setSize(1);
$sel_media->setStyle('class="rex-form-select"');
$sel_media->setSelected($rex_file_category);
$sel_media->setAttribute('onchange', 'this.form.submit();');
$sel_media->addOption($I18N->msg('pool_kats_no'), "0");
// ----- EXTENSION POINT
echo rex_register_extension_point('PAGE_MEDIAPOOL_HEADER', '', array('subpage' => $subpage, 'category_id' => $rex_file_category));
// ***** formular
$cat_out = '<div class="rex-form" id="rex-form-mediapool-selectcategory">
              <form action="index.php" method="post">
                <fieldset class="rex-form-col-1">
                  <legend>' . $I18N->msg('pool_select_cat') . '</legend>
Example #24
0
// Update 1.4
// check if old fields exists
$sql = new rex_sql();
$rows = $sql->showColumns(rex_asd_news_config::getTable());
$metaCols = false;
foreach ($rows as $row) {
    if ($row['name'] == 'category') {
        $metaCols = true;
        break;
    }
}
if (!OOAddon::isAvailable('metainfo')) {
    $REX['ADDON']['update'][rex_asd_news_config::getName()] = 0;
    $REX['ADDON']['updatemsg'][rex_asd_news_config::getName()] = 'Metainfo Addon nicht gefunden';
}
if (OOAddon::isAvailable('metainfo') && $metaCols) {
    include_once __DIR__ . '/classes/metainfo/rex_asd_metainfo_install.php';
    rex_asd_metainfo_install::setProperty();
    if ($error = rex_asd_metainfo_install::addFields()) {
        $REX['ADDON']['update'][rex_asd_news_config::getName()] = 0;
        $REX['ADDON']['updatemsg'][rex_asd_news_config::getName()] .= $error;
    } else {
        // Einträge Übernehmen
        $sql->setQuery('UPDATE `' . rex_asd_news_config::getTable() . '` SET
        `asd_category` = `category`,
        `asd_picture` = `picture`,
        `asd_text` = `text`');
        // Alte Felder löschen
        $sql->setQuery('ALTER TABLE `' . rex_asd_news_config::getTable() . '`
            DROP `category`,
            DROP `picture`,
Example #25
0
    });

    </script>';
}
if ($func == 'add' || $func == 'edit') {
    if (rex_asd_news_config::isControlPlugin()) {
        foreach (array('REX_FORM_SAVED', 'REX_FORM_DELETED') as $extension) {
            rex_register_extension($extension, 'url_generate::generatePathFile');
        }
    }
    $title = $func == 'add' ? $I18N->msg('add') : $I18N->msg('edit');
    $form = new rex_news_form(rex_asd_news_config::getTable(), ucfirst($title), 'id=' . $id . ' AND clang = ' . $clang);
    $form->divId = 'asd_news-addon-editmode';
    $field = $form->addTextField('title');
    $field->setLabel($I18N->msg('asd_news_title'));
    if (OOAddon::isAvailable('metainfo')) {
        $form->addRawField($form->getMetainfoExtension());
    }
    $form->addHiddenField('clang', (int) $clang);
    $form->addHiddenField('updatedAt', $now->format('Y-m-d H:i:s'));
    $form->addHiddenField('updatedBy', $REX['USER']->getValue('user_id'));
    $form->addParam('clang', (int) $clang);
    $form->addParam('id', (int) $id);
    if ($func == 'add') {
        $id = rex_asd_news::getLastNewsId() + 1;
    }
    $form->addHiddenField('id', $id);
    if ($func == 'add') {
        $form->addHiddenField('createdAt', $now->format('Y-m-d H:i:s'));
        $form->addHiddenField('createdBy', $REX['USER']->getValue('user_id'));
        rex_register_extension('REX_FORM_SAVED', function ($subject) use($clang, $REX, $id) {
Example #26
0
     $status = $I18N->msg('addon_yes') . ' - <a href="' . $addonurl . 'activate=0">' . $I18N->msg('addon_deactivate') . '</a>';
 } elseif (OOAddon::isInstalled($addon)) {
     $status = $I18N->msg('addon_no') . ' - <a href="' . $addonurl . 'activate=1">' . $I18N->msg('addon_activate') . '</a>';
 } else {
     $status = $I18N->msg('addon_notinstalled');
 }
 echo '
         <tr class="rex-addon">
             <td class="rex-icon rex-col-a"><span class="rex-i-element rex-i-addon"><span class="rex-i-element-text">' . htmlspecialchars($addon) . '</span></span></td>
             <td class="rex-col-b">' . htmlspecialchars($addon) . ' [<a href="index.php?page=addon&amp;subpage=help&amp;addonname=' . $addon . '">?</a>]</td>
             <td class="rex-col-c">' . $install . '</td>
             <td class="rex-col-d">' . $status . '</td>
             <td class="rex-col-e">' . $uninstall . '</td>
             <td class="rex-col-f">' . $delete . '</td>
         </tr>' . "\n   ";
 if (OOAddon::isAvailable($addon)) {
     foreach ($PLUGINS[$addon] as $plugin) {
         $pluginurl = 'index.php?page=addon&amp;addonname=' . $addon . '&amp;pluginname=' . $plugin . '&amp;';
         $delete = '<a href="' . $pluginurl . 'delete=1" onclick="return confirm(\'' . htmlspecialchars($I18N->msg('plugin_delete_question', $plugin)) . '\');">' . $I18N->msg('addon_delete') . '</a>';
         if (OOPlugin::isInstalled($addon, $plugin)) {
             $install = $I18N->msg('addon_yes') . ' - <a href="' . $pluginurl . 'install=1">' . $I18N->msg('addon_reinstall') . '</a>';
             $uninstall = '<a href="' . $pluginurl . 'uninstall=1" onclick="return confirm(\'' . htmlspecialchars($I18N->msg('plugin_uninstall_question', $plugin)) . '\');">' . $I18N->msg('addon_uninstall') . '</a>';
         } else {
             $install = $I18N->msg('addon_no') . ' - <a href="' . $pluginurl . 'install=1">' . $I18N->msg('addon_install') . '</a>';
             $uninstall = $I18N->msg('addon_notinstalled');
         }
         if (OOPlugin::isActivated($addon, $plugin)) {
             $status = $I18N->msg('addon_yes') . ' - <a href="' . $pluginurl . 'activate=0">' . $I18N->msg('addon_deactivate') . '</a>';
         } elseif (OOPlugin::isInstalled($addon, $plugin)) {
             $status = $I18N->msg('addon_no') . ' - <a href="' . $pluginurl . 'activate=1">' . $I18N->msg('addon_activate') . '</a>';
         } else {
Example #27
0
     if ($as !== false) {
         // --- addon gefunden
         $perm = $REX['ADDON']['perm'][$as];
         $hasPerm = $perm == '' || $REX_USER->hasPerm($perm) || $REX_USER->hasPerm('admin[]');
         // Suche zuerst nach einem Addon, dass so heisst wie die aktuelle page
         // z.b addons/structure/pages/index.inc.php
         $addon_page = $REX['INCLUDE_PATH'] . '/addons/' . $page . '/pages/index.inc.php';
         if (file_exists($addon_page) && $hasPerm && OOAddon::isAvailable($page)) {
             $withheader = false;
             $REX['PAGEPATH'] = $addon_page;
         } else {
             // Kein Addon gefunden, also suchen wir nach einem Addon,
             // dass vorgegeben hat, eine Page zu haben, die so heisst, wie die aktuelle
             // z.b addons/xxx/pages/structure.inc.php
             $addon_page = $REX['INCLUDE_PATH'] . '/addons/' . $as . '/pages/' . $page . '.inc.php';
             if (file_exists($addon_page) && $hasPerm && OOAddon::isAvailable($as)) {
                 $withheader = false;
                 $REX['PAGEPATH'] = $addon_page;
             }
         }
     }
 }
 // ----- standard pages
 if ($REX['PAGEPATH'] == '' && $page == 'addon' && ($REX_USER->hasPerm('addon[]') || $REX_USER->hasPerm('admin[]'))) {
     $page_name = $I18N->msg('addon');
 } elseif ($REX['PAGEPATH'] == '' && $page == 'specials' && ($REX_USER->hasPerm('specials[]') || $REX_USER->hasPerm('admin[]'))) {
     $page_name = $I18N->msg('specials');
 } elseif ($REX['PAGEPATH'] == '' && $page == 'module' && ($REX_USER->hasPerm('module[]') || $REX_USER->hasPerm('admin[]'))) {
     $page_name = $I18N->msg('modules');
 } elseif ($REX['PAGEPATH'] == '' && $page == 'template' && ($REX_USER->hasPerm('template[]') || $REX_USER->hasPerm('admin[]'))) {
     $page_name = $I18N->msg('template');
<?php

/**
 *
 * @package redaxo4
 * @version svn:$Id$
 */
// *************************************** CONFIG
$thumbs = true;
$thumbsresize = true;
if (!OOAddon::isAvailable('image_resize')) {
    $thumbsresize = false;
}
// *************************************** KATEGORIEN CHECK UND AUSWAHL
// ***** kategorie auswahl
$db = new rex_sql();
$file_cat = $db->getArray('SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'file_category ORDER BY name ASC');
// ***** select bauen
$sel_media = new rex_select();
$sel_media->setId("rex_file_category");
$sel_media->setName("rex_file_category");
$sel_media->setSize(1);
$sel_media->setStyle('class="rex-form-select"');
$sel_media->setSelected($rex_file_category);
$sel_media->setAttribute('onchange', 'this.form.submit();');
$sel_media->addOption($I18N->msg('pool_kats_no'), "0");
$mediacat_ids = array();
if ($rootCats = OOMediaCategory::getRootCategories()) {
    foreach ($rootCats as $rootCat) {
        rex_mediapool_addMediacatOptions($sel_media, $rootCat, $mediacat_ids);
    }
/**
 * Hilfsfunktion zur Installation.
 *
 * @param int $step Installationsschritt
 * @return string
 */
function _a_63_install($step = 0)
{
    global $REX;
    /**
     * init
     */
    $error = '';
    $tmpFolder = $REX['MEDIAFOLDER'] . '/' . $REX['TEMP_PREFIX'] . '/';
    $mediaFolder = $REX['MEDIAFOLDER'] . '/' . $REX['TEMP_PREFIX'] . '/guestbook_63/';
    $cssPathSource = '/addons/guestbook/css/';
    $cssFile = 'guestbook.css';
    static $_a63_checkTabelle = '';
    switch ($step) {
        case 1:
            /**
             * pruefe config/ auf Schreibrechte
             */
            $error = rex_is_writable(dirname(__FILE__) . '/config');
            break;
        case 2:
            /**
             * pruefe config/status.txt auf Schreibrechte
             */
            $error = rex_is_writable(dirname(__FILE__) . '/config/status.txt');
            break;
        case 3:
            /**
             * das addon_framework muss installiert und aktiviert sein
             */
            if (!OOAddon::isAvailable('addon_framework')) {
                $error = 'Required addon "addon_framework" is either not installed or not activated!';
            }
            break;
        case 4:
            // erstelle tmp-Ordner, wenn nicht schon vorhanden
            if (!is_dir($tmpFolder) && !mkdir($tmpFolder)) {
                $error = 'Unable to create folder "' . $tmpFolder . '"';
            }
            @chmod($tmpFolder, $REX['DIRPERM']);
            break;
        case 5:
            // erstelle AddOn-Ordner im tmp-Ordner
            if (!is_dir($mediaFolder) && !mkdir($mediaFolder)) {
                $error = 'Unable to create folder "' . $mediaFolder . '"';
            }
            @chmod($mediaFolder, $REX['DIRPERM']);
            break;
        case 6:
            // kopiere CSS in Mediafolder
            $cssSrc = $REX['INCLUDE_PATH'] . $cssPathSource . $cssFile;
            $cssDst = $mediaFolder . $cssFile;
            if (!file_exists($cssDst) && !copy($cssSrc, $cssDst)) {
                $error = 'Unable to copy file to "' . $cssDst . '"';
            }
            // setze Rechte nach master.inc.php-Vorgabe
            @chmod($cssDst, $REX['FILEPERM']);
            break;
        case 7:
            // Gibt es die GB-Tabelle schon?
            $_a63_checkTabelle = rex_a63_CheckTabelle();
            // SQL wird nur ausgefuehrt, wenn die Tabelle noch nicht in der DB existiert.
            if (!$_a63_checkTabelle) {
                $error = rex_install_dump(dirname(__FILE__) . '/install_tabelle.sql', false);
            }
            break;
        case 8:
            // installiere die benoetigten Module und Aktionen
            // ToDo: eine Ueberpruefung ob die Module und Aktionen schon installiert ist waere notwendig
            // ToDo: aber dazu fehlen noch einige Vorraussetzungen in den Redaxotabellen selbst
            $error = rex_install_dump(dirname(__FILE__) . '/install_moduleaction.sql', false);
            break;
        case 9:
            // DB-Daten installiert? Dann hiermit weiter.
            include dirname(__FILE__) . '/install.php';
            // rex_a63_installAction2Modul(Name des Modules, Name der Action)
            $error = rex_a63_installAction2Modul('Gaestebuch - Eintragsliste', 'Gaestebuch - Eintragsliste StatusPerDatei');
            break;
        default:
            $error = $I18N_A63('Fehler bei der Installation. Kein passender Installationsschritt gefunden.');
            break;
    }
    return $error;
}
    // Termin
    getKachelboxTitel($REX['ADDON']['d2u_kurse']['settings']['termin_titel'], $REX['ADDON']['d2u_kurse']['settings']['termin_bild'], $REX['ADDON']['d2u_kurse']['settings']['termin_farbe'], kurse_utils::getStartkachelURL($REX['ADDON']['d2u_kurse']['settings']['termin_titel'], $REX['CUR_CLANG'], TRUE));
    print '</div>';
    print '<div class="col-xs-8 col-sm-2 head-search-bottom">';
    print '<div class="view_head_search"><a href="' . rex_getUrl($REX['ADDON']['d2u_kurse']['settings']['anmeldung_artikel']) . '"><img src="' . seo42::getImageManagerFile("leere_kachel.png", "d2u_kurse_header") . '" alt=""></a></div>';
    print '<form action="' . rex_getUrl($REX['ADDON']['d2u_kurse']['settings']['kurse_artikel']) . '" method="post">';
    print '<input type="text" class="suche" name="suche" value="' . $_SESSION['suche'] . '">';
    print '</form>';
    print '</div>';
} else {
    print '<div class="col-xs-8 col-sm-6 logo-start">';
    print '<img src="' . seo42::getMediaFile("dks-logo-gr.png") . '" alt="Dieter-Kaltenbach-Stiftung">';
    print '</div>';
    print '<div class="col-xs-0 col-sm-4">';
    print '</div>';
    if (OOAddon::isAvailable('d2u_kurse')) {
        print '<div class="col-xs-4 col-sm-2">';
        print '<div class="view_head_search_start"><a href="' . rex_getUrl($REX['ADDON']['d2u_kurse']['settings']['anmeldung_artikel']) . '"><img src="' . seo42::getImageManagerFile("leere_kachel.png", "d2u_kurse_header") . '" alt=""></a></div>';
        print '<form action="' . rex_getUrl($REX['ADDON']['d2u_kurse']['settings']['kurse_artikel']) . '" method="post">';
        print '<input type="text" class="suche" name="suche" value="' . $_SESSION['suche'] . '">';
        print '</form>';
        print '</div>';
    }
}
?>
			</div>
		</div>
	</header>
	<section class="section">
		<div class="container">
			<div class="row">