Ejemplo n.º 1
0
 public function doAction()
 {
     global $I18N, $REX;
     // $REX is needed for update.inc.php
     $path = rex_path::addon($this->addonkey);
     $temppath = rex_path::addon('.new.' . $this->addonkey);
     if (($msg = $this->extractArchiveTo($temppath)) !== true) {
         return $msg;
     }
     // ---- include update.php
     if (file_exists($temppath . 'update.inc.php')) {
         try {
             require $temppath . 'update.inc.php';
         } catch (rex_install_functional_exception $e) {
             return $e->getMessage();
         }
         if (($msg = OOAddon::getProperty($this->addonkey, 'updatemsg', '')) != '') {
             return $msg;
         }
         if (!OOAddon::getProperty($this->addonkey, 'update', true)) {
             return $I18N->msg('package_no_reason');
         }
     }
     // ---- backup
     $assets = rex_path::addonAssets($this->addonkey);
     if (OOAddon::getProperty('install', 'backups')) {
         $archivePath = rex_path::addonData('install', $this->addonkey . '/');
         rex_dir::create($archivePath);
         $archive = $archivePath . strtolower(preg_replace('/[^a-z0-9-_.]/i', '_', OOAddon::getVersion($this->addonkey))) . '.zip';
         rex_install_archive::copyDirToArchive($path, $archive);
         if (is_dir($assets)) {
             rex_install_archive::copyDirToArchive($assets, $archive, 'assets');
         }
     }
     // ---- copy plugins to new addon dir
     foreach (OOPlugin::getRegisteredPlugins($this->addonkey) as $plugin) {
         $pluginPath = $temppath . '/plugins/' . $plugin;
         if (!is_dir($pluginPath)) {
             rex_dir::copy(rex_path::plugin($this->addonkey, $plugin), $pluginPath);
         } elseif (OOPlugin::isInstalled($this->addonkey, $plugin) && is_dir($pluginPath . '/files')) {
             rex_dir::copy($pluginPath . '/files', rex_path::pluginAssets($this->addonkey, $plugin));
         }
     }
     // ---- update main addon dir
     rex_dir::delete($path);
     rename($temppath, $path);
     // ---- update assets
     $origAssets = rex_path::addon($this->addonkey, 'assets');
     if (is_dir($origAssets)) {
         rex_dir::copy($origAssets, $assets);
     }
     OOAddon::setProperty($this->addonkey, 'version', $this->file['version']);
     rex_install_packages::updatedPackage($this->addonkey, $this->fileId);
 }
/**
 * Schreibt Plugineigenschaften in die Datei include/plugins.inc.php
 *
 * @param array Array mit den Namen der Plugins aus dem Verzeichnis addons/plugins
 *
 * @return TRUE bei Erfolg, sonst eine Fehlermeldung
 */
function rex_generatePlugins($PLUGINS)
{
    global $REX;
    $content = '';
    foreach ($PLUGINS as $addon => $_plugins) {
        foreach ($_plugins as $plugin) {
            if (!OOPlugin::isInstalled($addon, $plugin)) {
                OOPlugin::setProperty($addon, $plugin, 'install', 0);
            }
            if (!OOPlugin::isActivated($addon, $plugin)) {
                OOPlugin::setProperty($addon, $plugin, 'status', 0);
            }
            foreach (array('install', 'status') as $prop) {
                $content .= sprintf("\$REX['ADDON']['plugins']['%s']['%s']['%s'] = '%d';\n", $addon, $prop, $plugin, OOPlugin::getProperty($addon, $plugin, $prop));
            }
            $content .= "\n";
        }
    }
    // Da dieser Funktion öfter pro request aufgerufen werden kann,
    // hier die caches löschen
    clearstatcache();
    $file = $REX['INCLUDE_PATH'] . '/plugins.inc.php';
    if (rex_replace_dynamic_contents($file, $content) === false) {
        return 'Datei "' . $file . '" hat keine Schreibrechte';
    }
    return true;
}
       <th>' . $I18N_COM->msg("plugin_hactive") . '</th>
       <th>' . $I18N_COM->msg("plugin_hdelete") . '</th>
     </tr>
   </thead>
   <tbody>';
 foreach ($plugins as $cur) {
     if (OOPlugin::isInstalled($cur)) {
         $install = $I18N_COM->msg("plugin_yes") . ' - <a href="index.php?page=community&subpage=plugin_manager&amp;pluginname=' . $cur . '&amp;install=1">' . $I18N_COM->msg("plugin_reinstall") . '</a>';
         $uninstall = '<a href="index.php?page=community&subpage=plugin_manager&amp;pluginname=' . $cur . '&amp;uninstall=1" onclick="return confirm(\'' . htmlspecialchars($I18N_COM->msg("plugin_uninstall_question", $cur)) . '\');">' . $I18N_COM->msg("plugin_uninstall") . '</a>';
     } else {
         $install = $I18N_COM->msg("plugin_no") . ' - <a href="index.php?page=community&subpage=plugin_manager&amp;pluginname=' . $cur . '&amp;install=1">' . $I18N_COM->msg("plugin_install") . '</a>';
         $uninstall = $I18N_COM->msg("plugin_notinstalled");
     }
     if (OOPlugin::isActivated($cur)) {
         $status = $I18N_COM->msg("plugin_yes") . ' - <a href="index.php?page=community&subpage=plugin_manager&amp;pluginname=' . $cur . '&amp;activate=0">' . $I18N_COM->msg("plugin_deactivate") . '</a>';
     } elseif (OOPlugin::isInstalled($cur)) {
         $status = $I18N_COM->msg("plugin_no") . ' - <a href="index.php?page=community&subpage=plugin_manager&amp;pluginname=' . $cur . '&amp;activate=1">' . $I18N_COM->msg("plugin_activate") . '</a>';
     } else {
         $status = $I18N_COM->msg("plugin_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=community&subpage=plugin_manager&amp;function=help&amp;pluginname=' . $cur . '">?</a>]</td>
       <td>' . $install . '</td>
       <td>' . $status . '</td>
       <td>' . $uninstall . '</td>
     </tr>' . "\n   ";
 }
 echo '</tbody>
   </table>';
Ejemplo n.º 4
0
             <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 {
             $status = $I18N->msg('addon_notinstalled');
         }
         echo '
                 <tr class="rex-plugin">
                     <td class="rex-icon rex-col-a"><span class="rex-i-element rex-i-plugin"><span class="rex-i-element-text">' . htmlspecialchars($plugin) . '</span></span></td>
                     <td class="rex-col-b">' . htmlspecialchars($plugin) . ' [<a href="index.php?page=addon&amp;subpage=help&amp;addonname=' . $addon . '&amp;pluginname=' . $plugin . '">?</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   ";
     }
 }
 function getInstalledPlugins($addon)
 {
     $avail = array();
     foreach (OOPlugin::getRegisteredPlugins($addon) as $plugin) {
         if (OOPlugin::isInstalled($addon, $plugin)) {
             $avail[] = $plugin;
         }
     }
     return $avail;
 }
 function isAvailable($plugin)
 {
     return OOPlugin::isInstalled($plugin) && OOAddon::isActivated($plugin);
 }
Ejemplo n.º 7
0
<?php

if (OOPlugin::isInstalled('xform', 'manager')) {
    include rex_path::plugin('xform', 'manager', 'install.inc.php');
}
$REX['ADDON']['update']['xform'] = true;
function rex_generatePlugins($plugins)
{
    global $REX;
    natsort($plugins);
    $content = "";
    foreach ($plugins as $cur) {
        if (!OOPlugin::isInstalled($cur)) {
            OOPlugin::setProperty($cur, 'install', 0);
        }
        if (!OOPlugin::isActivated($cur)) {
            OOPlugin::setProperty($cur, 'status', 0);
        }
        $content .= sprintf("%s = %d;\n%s = %d;\n\n", OOPlugin::getAsPropertyString($cur, 'install'), OOPlugin::getProperty($cur, 'install'), OOPlugin::getAsPropertyString($cur, 'status'), OOPlugin::getProperty($cur, 'status'));
    }
    $content .= sprintf("\$REX['ADDON']['pluginlist']['community'] = \"%s\";", implode(',', OOPlugin::getRegisteredPlugins()));
    // Da dieser Funktion öfter pro request aufgerufen werden kann,
    // hier die caches löschen
    clearstatcache();
    $file = rex_plugins_file();
    if (!rex_replace_dynamic_contents($file, $content)) {
        return 'Datei "' . $file . '" hat keine Schreibrechte';
    }
    return true;
}
 public static function createWebsite($websiteId)
 {
     global $REX, $I18N, $curAddonCount, $curPluginCount;
     $sql = rex_sql::factory();
     $tablePrefix = rex_website::constructTablePrefix($websiteId);
     $generatedDir = rex_website::constructGeneratedDir($websiteId);
     $mediaDir = rex_website::constructMediaDir($websiteId);
     // init logger
     $logFile = WEBSITE_MANAGER_LOG_DIR;
     $log = KLogger::instance($logFile, KLogger::INFO);
     $log->logInfo('======================================== CREATE WEBSITE WITH ID = ' . $websiteId . ' ========================================');
     // just for security reasons
     if ($websiteId == rex_website::firstId) {
         $log->logError('Website ID = 1 detected --> Exit!');
         echo rex_warning($I18N->msg('website_manager_create_website_security_msg'));
         exit;
     }
     // include custom php file with additional userdefined stuff
     require_once WEBSITE_MANAGER_CUSTOM_DIR . 'create_website.before.inc.php';
     // extension point
     rex_register_extension_point('WEBSITE_BEFORE_CREATED', array('website_id' => $websiteId, 'sql_object' => $sql, 'table_prefix' => $tablePrefix, 'generated_dir' => $generatedDir, 'media_dir' => $mediaDir, 'log_object' => $log));
     // seo42 support
     if (OOAddOn::isAvailable('seo42') && !in_array('seo42', $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_addons'])) {
         $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_addons'][] = 'seo42';
     }
     // slice_status support
     if (OOAddOn::isAvailable('slice_status') && !in_array('slice_status', $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_addons'])) {
         $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_addons'][] = 'slice_status';
     }
     // ***************************************************************************************************
     // database tables
     // ***************************************************************************************************
     // users (always identical)
     rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . 'user AS SELECT * FROM rex_user');
     // articles (always different)
     rex_website_manager_utils::logQuery($log, $sql, 'CREATE TABLE `' . $tablePrefix . 'article` ( `pid` int(11) NOT NULL  auto_increment, `id` int(11) NOT NULL  , `re_id` int(11) NOT NULL  , `name` varchar(255) NOT NULL  , `catname` varchar(255) NOT NULL  , `catprior` int(11) NOT NULL  , `attributes` text NOT NULL  , `startpage` tinyint(1) NOT NULL  , `prior` int(11) NOT NULL  , `path` varchar(255) NOT NULL  , `status` tinyint(1) NOT NULL  , `createdate` int(11) NOT NULL  , `updatedate` int(11) NOT NULL  , `template_id` int(11) NOT NULL  , `clang` int(11) NOT NULL  , `createuser` varchar(255) NOT NULL  , `updateuser` varchar(255) NOT NULL  , `revision` int(11) NOT NULL  , PRIMARY KEY (`pid`)) ENGINE=MyISAM;');
     rex_website_manager_utils::logQuery($log, $sql, 'CREATE TABLE `' . $tablePrefix . 'article_slice` ( `id` int(11) NOT NULL  auto_increment, `clang` int(11) NOT NULL  , `ctype` int(11) NOT NULL  , `re_article_slice_id` int(11) NOT NULL  ,`value1` text  NULL  , `value2` text NULL  , `value3` text NULL  , `value4` text NULL  , `value5` text NULL  , `value6` text NULL  , `value7` text NULL  , `value8` text NULL  , `value9` text NULL  , `value10` text NULL  , `value11` text NULL  , `value12` text NULL  , `value13` text NULL  , `value14` text NULL  , `value15` text NULL  , `value16` text NULL  , `value17` text NULL  , `value18` text NULL  , `value19` text NULL  , `value20` text NULL  , `file1` varchar(255) NULL  , `file2` varchar(255) NULL  , `file3` varchar(255) NULL  , `file4` varchar(255) NULL  , `file5` varchar(255) NULL  , `file6` varchar(255) NULL  , `file7` varchar(255) NULL  , `file8` varchar(255) NULL  , `file9` varchar(255) NULL  , `file10` varchar(255) NULL  , `filelist1` text NULL  , `filelist2` text NULL  , `filelist3` text NULL  , `filelist4` text NULL  , `filelist5` text NULL  , `filelist6` text NULL  , `filelist7` text NULL  , `filelist8` text NULL  , `filelist9` text NULL  , `filelist10` text NULL  , `link1` varchar(10) NULL  , `link2` varchar(10) NULL  , `link3` varchar(10) NULL  , `link4` varchar(10) NULL  , `link5` varchar(10) NULL  , `link6` varchar(10) NULL  , `link7` varchar(10) NULL  , `link8` varchar(10) NULL  , `link9` varchar(10) NULL  , `link10` varchar(10) NULL  , `linklist1` text NULL  , `linklist2` text NULL  , `linklist3` text NULL  , `linklist4` text NULL  , `linklist5` text NULL  , `linklist6` text NULL  , `linklist7` text NULL  , `linklist8` text NULL  , `linklist9` text NULL  , `linklist10` text NULL  , `php` text NULL  , `html` text NULL  ,`article_id` int(11) NOT NULL  , `modultyp_id` int(11) NOT NULL  , `createdate` int(11) NOT NULL  , `updatedate` int(11) NOT NULL  , `createuser` varchar(255) NOT NULL  , `updateuser` varchar(255) NOT NULL  , `next_article_slice_id` int(11) NULL  , `revision` int(11) NOT NULL  , PRIMARY KEY (`id`,`re_article_slice_id`,`article_id`,`modultyp_id`)) ENGINE=MyISAM;');
     rex_website_manager_utils::logQuery($log, $sql, 'ALTER TABLE ' . $tablePrefix . 'article ADD INDEX `id` (`id`), ADD INDEX `clang` (`clang`), ADD UNIQUE INDEX `find_articles` (`id`, `clang`), ADD INDEX `re_id` (`re_id`);');
     rex_website_manager_utils::logQuery($log, $sql, 'ALTER TABLE ' . $tablePrefix . 'article_slice ADD INDEX `id` (`id`), ADD INDEX `clang` (`clang`), ADD INDEX `re_article_slice_id` (`re_article_slice_id`), ADD INDEX `article_id` (`article_id`), ADD INDEX `find_slices` (`clang`, `article_id`);');
     // clangs
     if ($REX['WEBSITE_MANAGER_SETTINGS']['identical_clangs']) {
         // identical
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . 'clang AS SELECT * FROM rex_clang');
     } else {
         // different
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE TABLE `' . $tablePrefix . 'clang` ( `id` int(11) NOT NULL  , `name` varchar(255) NOT NULL  , `revision` int(11) NOT NULL  , PRIMARY KEY (`id`)) ENGINE=MyISAM;');
         rex_website_manager_utils::logQuery($log, $sql, 'INSERT INTO `' . $tablePrefix . 'clang` VALUES ("0", "deutsch", 0);');
     }
     // media
     if ($REX['WEBSITE_MANAGER_SETTINGS']['identical_media']) {
         // identical
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . 'file AS SELECT * FROM rex_file');
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . 'file_category AS SELECT * FROM rex_file_category');
     } else {
         // different
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE TABLE `' . $tablePrefix . 'file` ( `file_id` int(11) NOT NULL  auto_increment, `re_file_id` int(11) NOT NULL  , `category_id` int(11) NOT NULL  , `attributes` text NULL  , `filetype` varchar(255) NULL  , `filename` varchar(255) NULL  , `originalname` varchar(255) NULL  , `filesize` varchar(255) NULL  , `width` int(11) NULL  , `height` int(11) NULL  , `title` varchar(255) NULL  , `createdate` int(11) NOT NULL  , `updatedate` int(11) NOT NULL  , `createuser` varchar(255) NOT NULL  , `updateuser` varchar(255) NOT NULL  , `revision` int(11) NOT NULL  , PRIMARY KEY (`file_id`)) ENGINE=MyISAM;');
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE TABLE `' . $tablePrefix . 'file_category` ( `id` int(11) NOT NULL  auto_increment, `name` varchar(255) NOT NULL  , `re_id` int(11) NOT NULL  , `path` varchar(255) NOT NULL  , `createdate` int(11) NOT NULL  , `updatedate` int(11) NOT NULL  , `createuser` varchar(255) NOT NULL  , `updateuser` varchar(255) NOT NULL  , `attributes` text NULL  , `revision` int(11) NOT NULL  , PRIMARY KEY (`id`,`name`)) ENGINE=MyISAM;');
         rex_website_manager_utils::logQuery($log, $sql, 'ALTER TABLE ' . $tablePrefix . 'file ADD INDEX `re_file_id` (`re_file_id`), ADD INDEX `category_id` (`category_id`);');
         rex_website_manager_utils::logQuery($log, $sql, 'ALTER TABLE ' . $tablePrefix . 'file_category DROP PRIMARY KEY, ADD PRIMARY KEY (`id`), ADD INDEX `re_id` (`re_id`);');
     }
     // modules
     if ($REX['WEBSITE_MANAGER_SETTINGS']['identical_modules']) {
         // identical
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . 'module AS SELECT * FROM rex_module');
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . 'module_action AS SELECT * FROM rex_module_action');
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . 'action AS SELECT * FROM rex_action');
     } else {
         // different
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE TABLE `' . $tablePrefix . 'module` ( `id` int(11) NOT NULL  auto_increment, `name` varchar(255) NOT NULL  , `category_id` int(11) NOT NULL  , `ausgabe` text NOT NULL  , `eingabe` text NOT NULL  , `createuser` varchar(255) NOT NULL  , `updateuser` varchar(255) NOT NULL  , `createdate` int(11) NOT NULL  , `updatedate` int(11) NOT NULL  , `attributes` text NULL  , `revision` int(11) NOT NULL  , PRIMARY KEY (`id`,`category_id`)) ENGINE=MyISAM;');
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE TABLE `' . $tablePrefix . 'module_action` ( `id` int(11) NOT NULL  auto_increment, `module_id` int(11) NOT NULL  , `action_id` int(11) NOT NULL  , `revision` int(11) NOT NULL  , PRIMARY KEY (`id`)) ENGINE=MyISAM;');
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE TABLE `' . $tablePrefix . 'action` ( `id` int(11) NOT NULL  auto_increment, `name` varchar(255) NOT NULL  , `preview` text NULL  , `presave` text NULL  , `postsave` text NULL  , `previewmode` tinyint(4) NULL  , `presavemode` tinyint(4) NULL  , `postsavemode` tinyint(4) NULL  , `createuser` varchar(255) NOT NULL  , `createdate` int(11) NOT NULL  , `updateuser` varchar(255) NOT NULL  , `updatedate` int(11) NOT NULL  , `revision` int(11) NOT NULL  , PRIMARY KEY (`id`)) ENGINE=MyISAM;');
         rex_website_manager_utils::logQuery($log, $sql, 'ALTER TABLE ' . $tablePrefix . 'module DROP PRIMARY KEY, ADD PRIMARY KEY (`id`), ADD INDEX `category_id` (`category_id`);');
     }
     // templates
     if ($REX['WEBSITE_MANAGER_SETTINGS']['identical_templates']) {
         // identical
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . 'template AS SELECT * FROM rex_template');
     } else {
         // different
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE TABLE `' . $tablePrefix . 'template` ( `id` int(11) NOT NULL  auto_increment, `label` varchar(255) NULL  , `name` varchar(255) NULL  , `content` text NULL  , `active` tinyint(1) NULL  , `createuser` varchar(255) NOT NULL  , `updateuser` varchar(255) NOT NULL  , `createdate` int(11) NOT NULL  , `updatedate` int(11) NOT NULL  , `attributes` text NULL  , `revision` int(11) NOT NULL  , PRIMARY KEY (`id`)) ENGINE=MyISAM;');
     }
     // meta infos
     if ($REX['WEBSITE_MANAGER_SETTINGS']['identical_meta_infos']) {
         // identical
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . '62_type AS SELECT * FROM rex_62_type');
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . '62_params AS SELECT * FROM rex_62_params');
     } else {
         // different (addon will be reinstalled)
         if (!in_array('metainfo', $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_addons'])) {
             $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_addons'][] = 'metainfo';
         }
     }
     // image types
     if ($REX['WEBSITE_MANAGER_SETTINGS']['identical_image_types']) {
         // identical
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . '679_types AS SELECT * FROM rex_679_types');
         rex_website_manager_utils::logQuery($log, $sql, 'CREATE VIEW ' . $tablePrefix . '679_type_effects AS SELECT * FROM rex_679_type_effects');
     } else {
         // different (addon will be reinstalled)
         if (!in_array('image_manager', $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_addons'])) {
             $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_addons'][] = 'image_manager';
         }
     }
     // ***************************************************************************************************
     // directories
     // ***************************************************************************************************
     $includePath = realpath($REX['HTDOCS_PATH'] . 'redaxo/include/') . DIRECTORY_SEPARATOR;
     $htdocsPath = realpath($REX['HTDOCS_PATH']) . DIRECTORY_SEPARATOR;
     rex_website_manager_utils::logMkDir($log, $includePath . $generatedDir);
     rex_website_manager_utils::logMkDir($log, $includePath . $generatedDir . '/articles');
     rex_website_manager_utils::logMkDir($log, $includePath . $generatedDir . '/files');
     rex_website_manager_utils::logMkDir($log, $includePath . $generatedDir . '/templates');
     if (!$REX['WEBSITE_MANAGER_SETTINGS']['identical_media']) {
         rex_website_manager_utils::logMkDir($log, $htdocsPath . $mediaDir);
     }
     // ***************************************************************************************************
     // addons/plugins
     // ***************************************************************************************************
     $reinstallAddons = $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_addons'];
     $reinstallPlugins = $REX['WEBSITE_MANAGER_SETTINGS']['reinstall_plugins'];
     // set stuff for new website
     $REX['TABLE_PREFIX'] = $tablePrefix;
     $REX['GENERATED_PATH'] = realpath($REX['HTDOCS_PATH'] . 'redaxo/include/' . $generatedDir);
     // reinstall addons
     for ($curAddonCount = 0; $curAddonCount < count($reinstallAddons); $curAddonCount++) {
         if (OOAddon::isInstalled($reinstallAddons[$curAddonCount])) {
             require_once $REX['INCLUDE_PATH'] . '/addons/' . $reinstallAddons[$curAddonCount] . '/install.inc.php';
             $log->logInfo('[REINSTALL ADDON] ' . $reinstallAddons[$curAddonCount]);
             $sqlFile = $REX['INCLUDE_PATH'] . '/addons/' . $reinstallAddons[$curAddonCount] . '/install.sql';
             if (file_exists($sqlFile)) {
                 $returnValue = rex_install_dump($sqlFile);
                 if ($returnValue) {
                     $log->logInfo('[REINSTALL ADDON SQL DUMP] ' . $sqlFile);
                 } else {
                     $log->logError('[REINSTALL ADDON SQL DUMP] ' . $sqlFile);
                 }
             }
         } else {
             $log->logError('[REINSTALL ADDON] ' . $reinstallAddons[$curAddonCount]);
         }
     }
     // reinstall plugins
     for ($curPluginCount = 0; $curPluginCount < count($reinstallPlugins); $curPluginCount++) {
         $curAddon = '';
         $curPlugin = '';
         $reinstallPluginsArray = explode(WEBSITE_MANAGER_PLUGIN_DELIMITER, $reinstallPlugins[$curPluginCount]);
         if (isset($reinstallPluginsArray[0])) {
             $curAddon = $reinstallPluginsArray[0];
         }
         if (isset($reinstallPluginsArray[1])) {
             $curPlugin = $reinstallPluginsArray[1];
         }
         if ($curAddon != '' && $curPlugin != '' && OOPlugin::isInstalled($curAddon, $curPlugin)) {
             require_once $REX['INCLUDE_PATH'] . '/addons/' . $curAddon . '/plugins/' . $curPlugin . '/install.inc.php';
             $log->logInfo('[REINSTALL PLUGIN] ' . $curPlugin);
             $sqlFile = $REX['INCLUDE_PATH'] . '/addons/' . $curAddon . '/plugins/' . $curPlugin . '/install.sql';
             if (file_exists($sqlFile)) {
                 $returnValue = rex_install_dump($sqlFile);
                 if ($returnValue) {
                     $log->logInfo('[REINSTALL PLUGIN SQL DUMP] ' . $sqlFile);
                 } else {
                     $log->logError('[REINSTALL PLUGIN SQL DUMP] ' . $sqlFile);
                 }
             }
         } else {
             $log->logError('[REINSTALL PLUGIN] ' . $reinstallPlugins[$curPluginCount]);
         }
     }
     // include custom php file with additional userdefined stuff
     require_once WEBSITE_MANAGER_CUSTOM_DIR . 'create_website.after.inc.php';
     // extension point
     rex_register_extension_point('WEBSITE_AFTER_CREATED', array('website_id' => $websiteId, 'sql_object' => $sql, 'table_prefix' => $tablePrefix, 'generated_dir' => $generatedDir, 'media_dir' => $mediaDir, 'log_object' => $log));
     // put back stuff for master website
     $REX['TABLE_PREFIX'] = rex_website::tablePrefix;
     $REX['GENERATED_PATH'] = realpath($REX['HTDOCS_PATH'] . 'redaxo/include/' . rex_website::generatedDir);
 }