Beispiel #1
0
/**
 * function for installing coscms from a profile
 */
function cos_install($options = false)
{
    // we need a profile specified
    if (!isset($options['profile'])) {
        common::abort('You need to specifiy a profile');
    }
    // create files - logs/ - files/
    cos_create_files();
    // drop database
    drop_db_default($ary = array('silence' => 1));
    // create database
    create_db();
    // load default base sql.
    load_db_default();
    // Set up profile to install
    $pro = new profile();
    $pro->setProfileInfo($options['profile']);
    // install all the profile modules
    foreach ($pro->profileModules as $key => $val) {
        // check if master is specified. Else use profile version
        if (conf::getMainIni('git_use_master')) {
            $tag = 'master';
        } else {
            $tag = $val['module_version'];
        }
        $options['repo'] = $val['public_clone_url'];
        $options['version'] = $tag;
        //$val['module_version'];
        $options['module'] = $val['module_name'];
        // check out and install
        cos_git_install($options, 'module');
    }
    // install templates
    foreach ($pro->profileTemplates as $key => $val) {
        if (conf::getMainIni('git_use_master')) {
            $tag = 'master';
        } else {
            $tag = $val['module_version'];
        }
        $options['repo'] = $val['public_clone_url'];
        $options['version'] = $tag;
        //$val['module_version'];
        $options['template'] = $val['module_name'];
        // check out and install
        cos_git_install($options, 'template');
    }
    // load all profile ini files
    $pro->loadProfileFiles($options['profile']);
    // set template
    $pro->setProfileTemplate();
}
Beispiel #2
0
/**
 * will purge module not found in a profile
 * @param array $options
 */
function cos_purge_from_profile($options)
{
    $pro = new profile();
    $pro->setProfileInfo($options['profile']);
    $mods = moduleloader::getAllModules();
    //print_r($mods); die;
    foreach ($mods as $module) {
        if (!$pro->isModuleInProfile($module['module_name'])) {
            purge_module($options = array('module' => $module['module_name']));
        }
    }
    $temps = layout::getAllTemplates();
    foreach ($temps as $template) {
        if (!$pro->isTemplateInProfile($template)) {
            purge_template($options = array('template' => $template));
        }
    }
}