/**
 * Addon Funktionen
 * @package redaxo4
 * @version $Id: function_rex_addons.inc.php,v 1.3 2008/02/25 09:51:18 kills Exp $
 */
function rex_install_addon($addons, $addonname, $installDump = true)
{
    global $REX, $I18N;
    $state = true;
    $install_dir = $REX['INCLUDE_PATH'] . '/addons/' . $addonname;
    $install_file = $install_dir . '/install.inc.php';
    $install_sql = $install_dir . '/install.sql';
    $config_file = $install_dir . '/config.inc.php';
    // Prüfen des Addon Ornders auf Schreibrechte,
    // damit das Addon später wieder gelöscht werden kann
    $state = rex_is_writable($install_dir);
    if ($state === true) {
        if (is_readable($install_file)) {
            require $install_file;
            // Wurde das "install" Flag gesetzt, oder eine Fehlermeldung ausgegeben? Wenn ja, Abbruch
            if (!OOAddon::isInstalled($addonname) || !empty($REX['ADDON']['installmsg'][$addonname])) {
                $state = $I18N->msg('addon_no_install', $addonname) . '<br />';
                if ($REX['ADDON']['installmsg'][$addonname] == '') {
                    $state .= $I18N->msg('addon_no_reason');
                } else {
                    $state .= $REX['ADDON']['installmsg'][$addonname];
                }
            } else {
                // check if config file exists
                if (is_readable($config_file)) {
                    if (!OOAddon::isActivated($addonname)) {
                        require $config_file;
                    }
                } else {
                    $state = $I18N->msg('addon_config_not_found');
                }
                if ($installDump === true && $state === true && is_readable($install_sql)) {
                    $state = rex_install_dump($install_sql);
                    if ($state !== true) {
                        $state = 'Error found in install.sql:<br />' . $state;
                    }
                }
                // Installation ok
                if ($state === true) {
                    // regenerate Addons file
                    $state = rex_generateAddons($addons);
                }
            }
        } else {
            $state = $I18N->msg('addon_install_not_found');
        }
    }
    if ($state !== true) {
        $REX['ADDON']['install'][$addonname] = 0;
    }
    return $state;
}
/**
 * Addon Funktionen 
 * @package redaxo3
 * @version $Id: function_rex_addons.inc.php,v 1.2 2005/12/30 09:34:47 kills Exp $
 */
function rex_install_addon($addons, $addonname)
{
    global $REX, $I18N;
    $state = true;
    $install_dir = $REX['INCLUDE_PATH'] . "/addons/{$addonname}";
    $install_file = $install_dir . "/install.inc.php";
    $config_file = $install_dir . "/config.inc.php";
    // Prüfen des Addon Ornders auf Schreibrechte,
    // damit das Addon später wieder gelöscht werden kann
    $state = rex_is_writable($install_dir);
    if ($state === true) {
        if (is_readable($install_file)) {
            include $install_file;
            // Wurde das "install" Flag gesetzt, oder eine Fehlermeldung ausgegeben? Wenn ja, Abbruch
            if (!OOAddon::isInstalled($addonname) || !empty($REX['ADDON']['installmsg'][$addonname])) {
                $state = $I18N->msg("addon_no_install", $addonname) . "<br/>";
                if ($REX['ADDON']['installmsg'][$addonname] == "") {
                    $state .= $I18N->msg("addon_no_reason");
                } else {
                    $state .= $REX['ADDON']['installmsg'][$addonname];
                }
            } else {
                // check if config file exists
                if (is_readable($config_file)) {
                    // skip config if it is a reinstall !
                    if (!OOAddon::isActivated($addonname)) {
                        // if config is broken installation prozess will be terminated -> no install -> no errors in redaxo
                        include $config_file;
                    }
                } else {
                    $state = $I18N->msg("addon_config_not_found");
                }
                // Installation ok
                if ($state === true) {
                    // regenerate Addons file
                    $state = rex_generateAddons($addons);
                }
            }
        } else {
            $state = $I18N->msg("addon_install_not_found");
        }
    }
    return $state;
}
" />
							</a>
							<a href="#" onclick="deleteREXLink(3);return false;">
								<img src="media/file_del.gif" width="16" height="16" title="<?php 
echo $I18N_KURSE->msg('remove_link');
?>
" alt="<?php 
echo $I18N_KURSE->msg('remove_link');
?>
" />
							</a>
						</p>
					</div>
					
					<?php 
if (OOAddon::isActivated('multinewsletter')) {
    ?>
					<div class="rex-form-row rex-form-element-v1">
						<p class="rex-form-text">
							<label for="multinewsletter_group"><?php 
    echo $I18N_KURSE->msg('multinewsletter_gruppe');
    ?>
</label>
							<?php 
    require_once $REX['INCLUDE_PATH'] . '/addons/multinewsletter/classes/class.multinewsletter_group.inc.php';
    $groups = new rex_select();
    $groups->setSize(1);
    $groups->setAttribute('class', 'myrex_select');
    $groups->addOption($I18N_KURSE->msg('multinewsletter_nicht_anmelden'), '0');
    $newsletter_groups = MultinewsletterGroupList::getAll($REX['TABLE_PREFIX']);
    foreach ($newsletter_groups as $group) {
/**
* Schreibt Addoneigenschaften in die Datei include/addons.inc.php
* @param array Array mit den Namen der Addons aus dem Verzeichnis addons/
*/
function rex_generateAddons($ADDONS, $debug = false)
{
    global $REX;
    natsort($ADDONS);
    $content = "";
    foreach ($ADDONS as $cur) {
        if (!OOAddon::isInstalled($cur)) {
            $REX['ADDON']['install'][$cur] = 0;
        }
        if (!OOAddon::isActivated($cur)) {
            $REX['ADDON']['status'][$cur] = 0;
        }
        $content .= "\$REX['ADDON']['install']['{$cur}'] = " . $REX['ADDON']['install'][$cur] . ";\n" . "\$REX['ADDON']['status']['{$cur}'] = " . $REX['ADDON']['status'][$cur] . ";\n\n";
    }
    // Da dieser Funktion öfter pro request aufgerufen werden kann,
    // hier die caches löschen
    clearstatcache();
    $file = $REX['INCLUDE_PATH'] . "/addons.inc.php";
    if (!rex_replace_dynamic_contents($file, $content)) {
        return 'Datei "' . $file . '" hat keine Schreibrechte';
    }
    return true;
}
Beispiel #5
0
 	  </thead>
 	  <tbody>';
   foreach ($ADDONS as $cur) {
       if (OOAddon::isSystemAddon($cur)) {
           $delete = $I18N->msg("addon_systemaddon");
       } else {
           $delete = '<a href="index.php?page=addon&amp;addonname=' . $cur . '&amp;delete=1" onclick="return confirm(\'' . htmlspecialchars($I18N->msg('addon_delete_question', $cur)) . '\');">' . $I18N->msg("addon_delete") . '</a>';
       }
       if (OOAddon::isInstalled($cur)) {
           $install = $I18N->msg("addon_yes") . ' - <a href="index.php?page=addon&amp;addonname=' . $cur . '&amp;install=1">' . $I18N->msg("addon_reinstall") . '</a>';
           $uninstall = '<a href="index.php?page=addon&amp;addonname=' . $cur . '&amp;uninstall=1" onclick="return confirm(\'' . htmlspecialchars($I18N->msg("addon_uninstall_question", $cur)) . '\');">' . $I18N->msg("addon_uninstall") . '</a>';
       } else {
           $install = $I18N->msg("addon_no") . ' - <a href="index.php?page=addon&amp;addonname=' . $cur . '&amp;install=1">' . $I18N->msg("addon_install") . '</a>';
           $uninstall = $I18N->msg("addon_notinstalled");
       }
       if (OOAddon::isActivated($cur)) {
           $status = $I18N->msg("addon_yes") . ' - <a href="index.php?page=addon&amp;addonname=' . $cur . '&amp;activate=0">' . $I18N->msg("addon_deactivate") . '</a>';
       } elseif (OOAddon::isInstalled($cur)) {
           $status = $I18N->msg("addon_no") . ' - <a href="index.php?page=addon&amp;addonname=' . $cur . '&amp;activate=1">' . $I18N->msg("addon_activate") . '</a>';
       } else {
           $status = $I18N->msg("addon_notinstalled");
       }
       echo '
       <tr>
         <td class="rex-icon"><img src="media/addon.gif" alt="' . htmlspecialchars($cur) . '" title="' . htmlspecialchars($cur) . '"/></td>
         <td>' . htmlspecialchars($cur) . ' [<a href="index.php?page=addon&amp;spage=help&amp;addonname=' . $cur . '">?</a>]</td>
         <td>' . $install . '</td>
         <td>' . $status . '</td>
         <td>' . $uninstall . '</td>
         <td>' . $delete . '</td>
       </tr>' . "\n   ";
<?php

$mypage = 'd2u_stellenmarkt';
// Jetzt das SQL dieses Addons installieren
$error = rex_install_dump(dirname(__FILE__) . '/install.sql');
if (!OOAddon::isActivated('xoutputfilter')) {
    // xoutputfilter aktivieren
    $error = "Das Addon XOutputFilter ist für die Installation notwendig";
}
if ($error != 1) {
    $REX['ADDON']['installmsg'][$mypage] = $error;
} else {
    $REX['ADDON']['install'][$mypage] = true;
}
 function isAvailable($addon)
 {
     return OOAddon::isInstalled($addon) && OOAddon::isActivated($addon);
 }
<?php

$mypage = 'd2u_stellenmarkt';
// Sprachobjekt
$I18N_STELLEN = new i18n($REX['LANG'], $REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/lang');
$REX['ADDON']['page'][$mypage] = $mypage;
$REX['ADDON']['name'][$mypage] = "Stellenmarkt";
$REX['ADDON']['version'][$mypage] = '2.0.7';
$REX['ADDON']['perm'][$mypage] = $mypage . '[]';
$REX['ADDON']['author'][$mypage] = "www.design-to-use.de - Tobias Krais - http://www.design-to-use.de/";
$REX['PERM'][] = $mypage . '[]';
// SEO42 Erweiterung
if (OOAddon::isActivated('seo42')) {
    // SEO42
    require_once dirname(__FILE__) . "/extensions/seo42.inc.php";
    // URLs fuer SEO42 bekannt machen
    rex_register_extension('SEO42_PATHLIST_CREATED', 'd2u_stellenmarkt_extended_urls');
    // URLs in Sitemap eintragen
    rex_register_extension('SEO42_SITEMAP_ARRAY_CREATED', 'd2u_stellenmarkt_extended_sitemap');
}
rex_register_extension('OOMEDIA_IS_IN_USE', 'rex_d2u_stellenmarkt_media_is_in_use');
// add subpages
$REX['ADDON'][$mypage]['SUBPAGES'] = array(array('', $I18N_STELLEN->msg('stellenangebote')), array('kategorien', $I18N_STELLEN->msg('kategorien')), array('kontakte', $I18N_STELLEN->msg('kontakte')));
if (OOPlugin::isAvailable('d2u_stellenmarkt', 'hr4you_sync')) {
    array_push($REX['ADDON'][$mypage]['SUBPAGES'], array('hr4you_sync', 'HR4YOU Sync'));
}
/**
 * Prüft ob dieses Addon Medien im Medienpool nutzt.
 * @global array $REX Redaxo Einstellungen
 * @param type $params Übergabeparameter des Extension Points
 * @return string Warnnachricht als Array
/**
* Schreibt Addoneigenschaften in die Datei include/addons.inc.php
* @param array Array mit den Namen der Addons aus dem Verzeichnis addons/
*/
function rex_generateAddons($ADDONS, $debug = false)
{
    global $REX;
    natsort($ADDONS);
    $content = "// --- DYN\n\n";
    foreach ($ADDONS as $cur) {
        if (!OOAddon::isInstalled($cur)) {
            $REX['ADDON']['install'][$cur] = 0;
        }
        if (!OOAddon::isActivated($cur)) {
            $REX['ADDON']['status'][$cur] = 0;
        }
        $content .= "\$REX['ADDON']['install']['{$cur}'] = " . $REX['ADDON']['install'][$cur] . ";\n" . "\$REX['ADDON']['status']['{$cur}'] = " . $REX['ADDON']['status'][$cur] . ";\n\n";
    }
    $content .= "// --- /DYN";
    $file = $REX['INCLUDE_PATH'] . "/addons.inc.php";
    // Sichergehen, dass die Datei existiert und beschreibbar ist
    if (is_writable($file)) {
        if (!($h = fopen($file, "r"))) {
            return 'Konnte Datei "' . $file . '" nicht lesen';
        }
        $fcontent = fread($h, filesize($file));
        $fcontent = ereg_replace("(\\/\\/.---.DYN.*\\/\\/.---.\\/DYN)", $content, $fcontent);
        fclose($h);
        if (!($h = fopen($file, "w+"))) {
            return 'Konnte Datei "' . $file . '" nicht zum schreiben oeffnen';
        }
        //if (!fwrite($h, $fcontent, strlen($fcontent))) {
        if (!fwrite($h, $fcontent, strlen($fcontent))) {
            return 'Konnte Inhalt nicht in Datei "' . $file . '" schreiben';
        }
        fclose($h);
        // alles ist gut gegangen
        return true;
    } else {
        return 'Datei "' . $file . '" hat keine Schreibrechte';
    }
}
Beispiel #10
0
<?php

$parent = 'rexsearch';
$mypage = 'reindex';
$REX['ADDON']['version'][$mypage] = '0.1';
$REX['ADDON']['author'][$mypage] = 'Robert Rupf';
$REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de';
$REX['EXTRAPERM'][] = $parent . '[' . $mypage . ']';
include_once dirname(__FILE__) . '/functions/function.reindex.inc.php';
include_once dirname(__FILE__) . '/functions/function.reindex_article.inc.php';
if ($REX['REDAXO'] and is_object($REX['USER']) and ($REX['USER']->hasPerm($parent . '[' . $mypage . ']') or $REX['USER']->isAdmin())) {
    $I18N->appendFile(dirname(__FILE__) . '/lang/');
    if (rex_get('func') == 'reindex' and rex_get('article_id', 'int') and 0 <= rex_get('clang', 'int', -1)) {
        rex_register_extension('ADDONS_INCLUDED', function () {
            global $REX;
            $rexsearch = new RexSearch();
            $rexsearch->indexArticle($REX['ARTICLE_ID'], $REX['CUR_CLANG']);
            rex_register_extension('PAGE_CONTENT_OUTPUT', function ($_params) {
                global $I18N;
                echo rex_info($I18N->msg('a587_reindex_done'));
            });
        });
    }
}
if (OOAddon::isActivated('rexsearch') or class_exists('rexsearch')) {
    rex_register_extension('REX_FORM_SAVED', 'a587_rexsearch_reindex');
    rex_register_extension('REX_XFORM_SAVED', 'a587_rexsearch_reindex');
    rex_register_extension('REX_FORM_DELETED', 'a587_rexsearch_reindex');
    rex_register_extension('PAGE_CONTENT_MENU', 'a587_rexsearch_reindex_article');
}
Beispiel #11
0
 } else {
     $delete = '<a href="' . $addonurl . 'delete=1" onclick="return confirm(\'' . htmlspecialchars($I18N->msg('addon_delete_question', $addon)) . '\');">' . $I18N->msg('addon_delete') . '</a>';
 }
 if (OOAddon::isInstalled($addon)) {
     $install = $I18N->msg('addon_yes') . ' - <a href="' . $addonurl . 'install=1">' . $I18N->msg('addon_reinstall') . '</a>';
     if (count(OOPlugin::getInstalledPlugins($addon)) > 0) {
         $uninstall = $I18N->msg('plugin_plugins_installed');
         $delete = $I18N->msg('plugin_plugins_installed');
     } else {
         $uninstall = '<a href="' . $addonurl . 'uninstall=1" onclick="return confirm(\'' . htmlspecialchars($I18N->msg('addon_uninstall_question', $addon)) . '\');">' . $I18N->msg('addon_uninstall') . '</a>';
     }
 } else {
     $install = $I18N->msg('addon_no') . ' - <a href="' . $addonurl . 'install=1">' . $I18N->msg('addon_install') . '</a>';
     $uninstall = $I18N->msg('addon_notinstalled');
 }
 if (OOAddon::isActivated($addon)) {
     $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   ";
/**
 * Schreibt Addoneigenschaften in die Datei include/addons.inc.php
 *
 * @param array Array mit den Namen der Addons aus dem Verzeichnis addons/
 *
 * @return TRUE bei Erfolg, sonst FALSE
 */
function rex_generateAddons($ADDONS)
{
    global $REX;
    natsort($ADDONS);
    $content = '';
    foreach ($ADDONS as $addon) {
        if (!OOAddon::isInstalled($addon)) {
            OOAddon::setProperty($addon, 'install', 0);
        }
        if (!OOAddon::isActivated($addon)) {
            OOAddon::setProperty($addon, 'status', 0);
        }
        foreach (array('install', 'status') as $prop) {
            $content .= sprintf("\$REX['ADDON']['%s']['%s'] = '%d';\n", $prop, $addon, OOAddon::getProperty($addon, $prop));
        }
        $content .= "\n";
    }
    // Da dieser Funktion öfter pro request aufgerufen werden kann,
    // hier die caches löschen
    clearstatcache();
    $file = $REX['INCLUDE_PATH'] . '/addons.inc.php';
    if (rex_replace_dynamic_contents($file, $content) === false) {
        return 'Datei "' . $file . '" hat keine Schreibrechte';
    }
    return true;
}
     print '<label class="text" for="rechnungsformular-iban">IBAN *</label>';
     print '<input type="text" class="text" name="rechnungsformular[iban]" id="rechnungsformular-iban" maxlength="35" value="" required>';
     print '</p>';
     print '<p class="formtext formlabel-bic" id="xform-formular-bic">';
     print '<label class="text" for="rechnungsformular-bic">BIC *</label>';
     print '<input type="text" class="text" name="rechnungsformular[bic]" id="rechnungsformular-bic" maxlength="11" value="" required>';
     print '</p>';
     if ($REX['ADDON']['d2u_kurse']['settings']['vhsagb_artikel'] > 0) {
         print '<p>&nbsp;</p>';
         print '<p class="formcheckbox formlabel-vhsagb" id="xform-formular-vhsagb">';
         print '<input type="checkbox" class="checkbox" name="rechnungsformular[agb]" id="rechnungsformular-agb" value="ja" required>';
         $agb_article = OOArticle::getArticleById($REX['ADDON']['d2u_kurse']['settings']['vhsagb_artikel'], $REX['CUR_CLANG']);
         print '<label class="checkbox" for="rechnungsformular-agb">Hiermit stimme ich den <a href="' . rex_getUrl($REX['ADDON']['d2u_kurse']['settings']['vhsagb_artikel']) . '" target="blank">' . $agb_article->getName() . '</a> zu. *</label>';
         print '</p>';
     }
     if (OOAddon::isActivated('multinewsletter') && $REX['ADDON']['d2u_kurse']['settings']['multinewsletter_group'] > 0) {
         print '<p class="formcheckbox formlabel-multinewsletter" id="xform-formular-vhsagb">';
         print '<input type="checkbox" class="checkbox" name="rechnungsformular[multinewsletter]" id="rechnungsformular-multinewsletter" value="ja">';
         print '<label class="checkbox" for="rechnungsformular-multinewsletter">Bitte informieren Sie per E-Mail Newsletter über ein neues VHS Programm. Sie erhalten 2 bis 4 Newsletter pro Jahr. Ihre Anmeldung können Sie jederzeit widerrufen.</label>';
         print '</p>';
     }
     print '<br><br>* Pflichtfeld<br><br>';
     print '<p class="formsubmit formsubmit">';
     print '<input type="submit" class="submit" name="rechnungsformular[submit]" id="rechnungsformular-submit" value="Jetzt verbindlich buchen">';
     print '</p>';
     print '</form>';
     print '</div>';
     print '</div>';
 } else {
     // Warenkorb
     print '<div class="col-sm-12 col-md-2 abstand">';
Beispiel #14
0
echo $I18N->msg("credits_author");
?>
</th>
				<th><?php 
echo $I18N->msg("credits_supportpage");
?>
</th>
			</tr>
			</thead>

			<tbody>

		<?php 
$ADDONS = rex_read_addons_folder();
foreach ($ADDONS as $cur) {
    $isActive = OOAddon::isActivated($cur);
    $version = OOAddon::getVersion($cur);
    $author = OOAddon::getAuthor($cur);
    $supportPage = OOAddon::getSupportPage($cur);
    if ($isActive) {
        $cl = 'rex-clr-grn';
    } else {
        $cl = 'rex-clr-red';
    }
    echo '<tr><td><span class="' . $cl . '">' . $cur . '</span> [<a href="index.php?page=addon&amp;spage=help&amp;addonname=' . $cur . '">?</a>]</td><td class="' . $cl . '">';
    if ($version) {
        echo '[' . $version . ']';
    }
    echo '</td><td class="' . $cl . '">';
    if ($author) {
        echo $author;
Beispiel #15
0
<?php

// add lang file
$I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/website_manager/lang/');
if (!OOAddon::isActivated('website_manager')) {
    // don't allow uninstall if website manager is not active. otherwise codeline hint msg won't be shown.
    $REX['ADDON']['installmsg']['website_manager'] = $I18N->msg('website_manager_uninstall_activate_first');
    $REX['ADDON']['install']['website_manager'] = 1;
} else {
    if (isset($REX['WEBSITE_MANAGER']) && $REX['WEBSITE_MANAGER']->getWebsiteCount() > 1) {
        // user has to manually delete websites first
        $REX['ADDON']['installmsg']['website_manager'] = $I18N->msg('website_manager_uninstall_delete_generated');
        $REX['ADDON']['install']['website_manager'] = 1;
    } else {
        if (!$REX['WEBSITE_MANAGER_SETTINGS']['allow_uninstall']) {
            // user has manually set this option so we can safly proceed with uninstallation
            $REX['ADDON']['installmsg']['website_manager'] = $I18N->msg('website_manager_uninstall_allow_uninstall');
            $REX['ADDON']['install']['website_manager'] = 1;
        } else {
            if (isset($REX['WEBSITE_MANAGER_DO_UNINSTALL']) && !$REX['WEBSITE_MANAGER_DO_UNINSTALL']) {
                // don't allow uninstall if user still has codeline in master.inc.php
                $REX['ADDON']['installmsg']['website_manager'] = $I18N->msg('website_manager_uninstall_codeline_hint');
                $REX['ADDON']['install']['website_manager'] = 1;
            } else {
                $sql = new rex_sql();
                //$sql->debugsql = true;
                $sql->setQuery('DROP TABLE IF EXISTS `rex_website`');
                rex_website_manager_utils::rrmdir(WEBSITE_MANAGER_DATA_DIR);
                rex_generateAll();
                $REX['ADDON']['install']['website_manager'] = 0;
            }
<?php

$myself = 'xmediapool_password';
// add metainfo field
if (OOAddon::isActivated('metainfo')) {
    a62_delete_field('med_' . $myself . '_password');
}
$REX['ADDON']['install'][$myself] = 0;
    $_SESSION['addonsAsObject'] = $getAddons;
} else {
    // Keine erneute Abfrage an Redaxo.de stellen
    // Array bereits in Session gespeichert
}
//print_r($result);
//print_r($_SESSION['addonsAsObject']);
if (is_array($_SESSION['addonsAsArray'])) {
    foreach (Installer_group_addons_by_id($_SESSION['addonsAsArray']) as $key => $addon) {
        // 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'])) {
 /**
  * Gibt die URL der Terminkategorie zurück.
  * @global mixed[] $REX Redaxo Variable
  * @var boolean $path_only Gibt an, ob die URL mit Domain oder ohne erstellt
  * werden soll.
  * @return String URL für das Objekt
  */
 function getURL($path_only = FALSE)
 {
     if ($this->url == "") {
         global $REX;
         $pathname = '';
         if (OOAddon::isActivated('seo42')) {
             // Mit SEO42
             require_once dirname(__FILE__) . "/../../seo42/classes/class.seo42_rewrite.inc.php";
             // Dann Redaxo Artikelfolge
             if ($REX['ADDON']['d2u_kurse']['settings']['kurse_artikel'] > 0 && $REX['ADDON']['d2u_kurse']['settings']['kurse_artikel'] != $REX['START_ARTICLE_ID']) {
                 $kategorie = OOCategory::getCategoryById($REX['ADDON']['d2u_kurse']['settings']['kurse_artikel'], $REX['CUR_CLANG']);
                 $hauptkategorien = $kategorie->getPathAsArray();
                 for ($i = 0; $i < count($hauptkategorien); $i++) {
                     $hauptkategorie = OOCategory::getCategoryById($hauptkategorien[$i], $REX['CUR_CLANG']);
                     if ($hauptkategorie instanceof OOCategory) {
                         $pathname = seo42_appendToPath($pathname, $hauptkategorie->getName(), $hauptkategorie->getId(), $REX['CUR_CLANG']);
                     }
                 }
                 if ($kategorie->getName() != "") {
                     $pathname = seo42_appendToPath($pathname, $kategorie->getName(), $kategorie->getId(), $REX['CUR_CLANG']);
                 } else {
                     // Wenn angegebener Artikel keine Kategorie ist, sondern nur Artikelname hat
                     $pathname = seo42_appendToPath($pathname, $kategorie->getValue("name"), $kategorie->getId(), $REX['CUR_CLANG']);
                 }
             }
             // Art der Startkachel
             $pathname = seo42_appendToPath($pathname, $REX['ADDON']['d2u_kurse']['settings']['termin_titel'], $REX['ADDON']['d2u_kurse']['settings']['kurse_artikel'], $REX['CUR_CLANG']);
             // Die Elternkategorie
             if ($this->eltern_terminkategorie !== FALSE) {
                 $pathname = seo42_appendToPath($pathname, $this->eltern_terminkategorie->name, $REX['ADDON']['d2u_kurse']['settings']['kurse_artikel'], $REX['CUR_CLANG']);
             }
             // Die Terminkategorie
             $pathname = seo42_appendToPath($pathname, $this->name, $REX['ADDON']['d2u_kurse']['settings']['kurse_artikel'], $REX['CUR_CLANG']);
             $pathname = substr($pathname, 0, -1) . $REX['ADDON']['seo42']['settings']['url_ending'];
         } else {
             // Ohne SEO42
             $parameterArray = array();
             $parameterArray['terminkategorie_id'] = $this->terminkategorie_id;
             $pathname = rex_getUrl($REX['ADDON']['d2u_kurse']['settings']['kurse_artikel'], $REX['CUR_CLANG'], $parameterArray, "&");
         }
         $this->url = $pathname;
     }
     if ($path_only) {
         return $this->url;
     } else {
         return $REX['SERVER'] . $this->url;
     }
 }
				<th><?php 
echo $I18N->msg("credits_author");
?>
</th>
				<th><?php 
echo $I18N->msg("credits_supportpage");
?>
</th>
			</tr>
			</thead>

			<tbody>

		<?php 
foreach (OOAddon::getRegisteredAddons() as $addon) {
    $isActive = OOAddon::isActivated($addon);
    $version = OOAddon::getVersion($addon);
    $author = OOAddon::getAuthor($addon);
    $supportPage = OOAddon::getSupportPage($addon);
    if ($isActive) {
        $cl = 'rex-clr-grn';
    } else {
        $cl = 'rex-clr-red';
    }
    if ($version) {
        $version = '[' . $version . ']';
    }
    if ($author) {
        $author = htmlspecialchars($author);
    }
    if (!$isActive) {
Beispiel #20
0
function rex_setup_addons($uninstallBefore = false, $installDump = true)
{
    global $REX, $I18N;
    require_once $REX['INCLUDE_PATH'] . '/functions/function_rex_addons.inc.php';
    $state = true;
    $addonErr = '';
    $ADDONS = rex_read_addons_folder();
    foreach ($REX['SYSTEM_ADDONS'] as $systemAddon) {
        if ($state === true && $uninstallBefore) {
            $state = rex_uninstall_addon($ADDONS, $systemAddon);
        }
        if ($state === true && !OOAddon::isInstalled($systemAddon)) {
            $state = rex_install_addon($ADDONS, $systemAddon, $installDump);
        }
        if ($state === true && !OOAddon::isActivated($systemAddon)) {
            $state = rex_activate_addon($ADDONS, $systemAddon);
        }
        if ($state !== true) {
            $addonErr .= '<li>' . $systemAddon . '<ul><li>' . $state . '</li></ul></li>';
        }
    }
    if ($addonErr != '') {
        $addonErr = '<ul>
                   <li>
                     <h3>' . $I18N->msg('setup_011', '<span class="rex-error">', '</span>') . '</h3>
                     <ul>' . $addonErr . '</ul>
                   </li>
                 </ul>';
    }
    return $addonErr;
}
 /**
  * Gibt die URL dieses Stellenangebots zurück.
  * @param int clang_id SprachID aus Redaxo
  * @return string URL für dieses Stellenangebot.
  */
 public function getURL($clang_id = -1)
 {
     if ($clang_id == -1) {
         $clang_id = $this->clang_id;
     }
     if ($this->url != "") {
         return $this->url;
     } else {
         global $REX;
         $url = $REX['SERVER'];
         $pathname = '';
         if ($REX['MOD_REWRITE'] == true && OOAddon::isActivated('seo42')) {
             // Mit SEO42
             require_once dirname(__FILE__) . "/../../seo42/classes/class.seo42_rewrite.inc.php";
             if (count($REX['CLANG']) > 1 && $clang_id != $REX['ADDON']['seo42']['settings']['hide_langslug']) {
                 // Sprachkuerzel
                 $pathname = seo42_appendToPath($pathname, $REX['ADDON']['seo42']['settings']['lang'][$clang_id]['code'], $REX['START_ARTICLE_ID'], $clang_id);
             }
             // Dann Redaxo Artikelfolge
             if ($this->artikel_id > 0 && $clang_id > -1) {
                 $kategorie = OOCategory::getCategoryById($this->artikel_id, $clang_id);
                 $hauptkategorien = $kategorie->getPathAsArray();
                 for ($i = 0; $i < count($hauptkategorien); $i++) {
                     $hauptkategorie = OOCategory::getCategoryById($hauptkategorien[$i], $clang_id);
                     if ($hauptkategorie instanceof OOCategory) {
                         $pathname = seo42_appendToPath($pathname, $hauptkategorie->getName(), $hauptkategorie->getId(), $clang_id);
                     }
                 }
                 $pathname = seo42_appendToPath($pathname, $kategorie->getName(), $kategorie->getId(), $clang_id);
             }
             // Jetzt die Stelle
             $pathname = seo42_appendToPath($pathname, $this->interne_bezeichnung . "-" . $this->interne_nummer, $this->artikel_id, $clang_id);
             $pathname = substr($pathname, 0, -1) . $REX['ADDON']['seo42']['settings']['url_ending'];
         } else {
             // Ohne SEO42
             $parameterArray = array();
             $parameterArray['stellen_id'] = $this->stellen_id;
             $pathname = rex_getUrl($this->artikel_id, $clang_id, $parameterArray, "&");
         }
         $url .= $pathname;
         return $url;
     }
 }