$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;
Exemple #2
0
/**
 * 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);
}