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&pluginname=' . $cur . '&install=1">' . $I18N_COM->msg("plugin_reinstall") . '</a>'; $uninstall = '<a href="index.php?page=community&subpage=plugin_manager&pluginname=' . $cur . '&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&pluginname=' . $cur . '&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&pluginname=' . $cur . '&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&pluginname=' . $cur . '&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&function=help&pluginname=' . $cur . '">?</a>]</td> <td>' . $install . '</td> <td>' . $status . '</td> <td>' . $uninstall . '</td> </tr>' . "\n "; } echo '</tbody> </table>';
<td class="rex-col-f">' . $delete . '</td> </tr>' . "\n "; if (OOAddon::isAvailable($addon)) { foreach ($PLUGINS[$addon] as $plugin) { $pluginurl = 'index.php?page=addon&addonname=' . $addon . '&pluginname=' . $plugin . '&'; $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&subpage=help&addonname=' . $addon . '&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); }
<?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); }