$root = "../"; $level = 1; while ($level < 10 && !file_exists($root . '/framework/class.secure.php')) { $root .= "../"; $level += 1; } if (file_exists($root . '/framework/class.secure.php')) { include $root . '/framework/class.secure.php'; } else { trigger_error(sprintf("[ <b>%s</b> ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR); } } $backend = CAT_Backend::getInstance('Settings', 'settings', false); $users = CAT_Users::getInstance(); header('Content-type: application/json'); if (!$users->checkPermission('Settings', 'settings')) { $ajax = array('message' => $backend->lang()->translate("Sorry, but you don't have the permissions for this action"), 'success' => false); print json_encode($ajax); exit; } $tpl = CAT_Helper_Validate::get('_REQUEST', 'template'); // get template info $info = CAT_Helper_Addons::checkInfo(CAT_PATH . '/templates/' . $tpl); if (!$info || !count($info)) { $ajax = array('message' => CAT_Helper_Addons::getError(), 'success' => false); print json_encode($ajax); exit; } $ajax = array('message' => NULL, 'variants' => isset($info['module_variants']) ? $info['module_variants'] : array(), 'success' => true); print json_encode($ajax); exit;
/** * installs additional modules (located in ./optional subfolder) **/ function install_optional_modules() { global $admin, $bundled, $config, $lang, $dirh; write2log('> [install_optional_modules()]'); if (!isset($_REQUEST['installer_optional_addon']) || !is_array($_REQUEST['installer_optional_addon']) || !count($_REQUEST['installer_optional_addon'])) { fwrite($logh, 'no additional addons to install'); fclose($logh); return array(true, array()); } else { $config['optional_addon'] == $_REQUEST['installer_optional_addon']; } write2log('------------------------------------'); write2log('-----installing optional addons-----'); write2log('------------------------------------'); write2log(print_r($config['optional_addon'], 1)); $cat_path = $dirh->sanitizePath(dirname(__FILE__) . '/..'); $errors = array(); // try to set max_execution_time ini_set('max_execution_time', CAT_INST_EXEC_TIME); // set installed CMS version for precheck.php CAT_Registry::set('CAT_VERSION', $config['installed_version'], true); // set other constants init_constants($cat_path); include $cat_path . '/framework/class.database.php'; $database = new database(); foreach ($config['optional_addon'] as $file) { if (!file_exists($dirh->sanitizePath(dirname(__FILE__) . '/optional/' . $file))) { write2log('file not found: ' . $dirh->sanitizePath(dirname(__FILE__) . '/optional/' . $file)); $errors[] = $lang->translate('No such file: [{{file}}]', array('file' => $file)); } else { write2log('installing optional addon [' . $file . ']'); if (!CAT_Helper_Addons::installModule($dirh->sanitizePath(dirname(__FILE__) . '/optional/' . $file), true)) { write2log('-> installation failed! ' . CAT_Helper_Addons::getError()); if (CAT_Helper_Addons::getError() != 'already installed') { $errors[] = $lang->translate('-> Unable to install {{module}}! {{error}}', array('module' => $file, 'error' => CAT_Helper_Addons::getError())); } } else { write2log('-> installation succeeded'); } } } write2log('< [install_optional_modules()]'); return array(count($errors) ? false : true, $errors); }