function install_from_profile($options) { $pro = new profile(); $pro->setProfileInfo($options['profile']); $final = true; foreach ($pro->profileModules as $val) { $val['module'] = $val['module_name']; $val['version'] = $val['module_version']; if ($val['module'] == 'siteclone') { continue; } $module = new moduleinstaller($val); if ($module->isInstalled($val['module_name'])) { upgrade_module($val); } else { $ret = install_module_silent($val); if (!$ret) { $final = false; } } } // set template $pro->setProfileTemplate(); return $final; }
if (!$list) { $admin->print_error($MESSAGE['GENERIC_CANNOT_UNZIP']); } // Delete the temp zip file if (file_exists($temp_file)) { unlink($temp_file); } // Chmod all the uploaded files $dir = dir($module_dir); while (false !== ($entry = $dir->read())) { // Skip pointers if (substr($entry, 0, 1) != '.' and $entry != '.svn' and !is_dir($module_dir . '/' . $entry)) { // Chmod file change_mode($module_dir . '/' . $entry, 'file'); } } // Run the modules install // upgrade script if there is one if (file_exists($module_dir . '/' . $action . '.php')) { require $module_dir . '/' . $action . '.php'; } // Print success message if ($action == "install") { // Load module info into DB load_module(WB_PATH . '/modules/' . $module_directory, false); $admin->print_success($MESSAGE['GENERIC_INSTALLED']); } elseif ($action == "upgrade") { upgrade_module($module_directory, false); $admin->print_success($MESSAGE['GENERIC_UPGRADED']); } // Print admin footer $admin->print_footer();
/** * function for upgrading a module, template or profile according to latest tag * or master * * @param array with module options * @param string tag with wersion or 'master' * @param string module, templatee or profile. */ function cos_git_upgrade($val, $tag = 'master', $type = 'module') { if (!isset($val['module_name'])) { $val['module_name'] = git::getModulenameFromRepo($val['repo']); } $repo_path = cos_get_repo_path($val['module_name'], $type); if (!cos_git_is_repo($repo_path)) { common::echoMessage("{$repo_path} is not a git repo - will not upgrade"); return; } $git_command = "cd {$repo_path} && "; $git_command .= "git checkout master && "; $git_command .= "git pull && git fetch --tags && "; $git_command .= "git checkout {$tag}"; common::execCommand($git_command); if ($type == 'module') { // It is called with a different name in the upgrade_module // function ... $val['module'] = $val['module_name']; // upgrade to latest set in $_INSTALL['VERSION'] $val['version'] = null; upgrade_module($val); } // templates have no registry - they are tag based only in version }
/** * Upgrade all modules. * * @return string List of upgraded/installed modules/blocks */ function upgrade_modules() { $out = ''; require_code('zones2'); if (file_exists(get_file_base() . '/sources/zones3.php')) { require_code('zones3'); } $ret = upgrade_module('adminzone', 'admin_version'); if ($ret == 1) { $out .= '<li>' . do_lang('FU_UPGRADED_MODULE', '<kbd>admin_version</kbd>') . '</li>'; } $zones = find_all_zones(); if (!in_array('adminzone', $zones)) { $zones[] = 'adminzone'; } if (!in_array('cms', $zones)) { $zones[] = 'cms'; } if (!in_array('site', $zones)) { $zones[] = 'site'; } foreach ($zones as $zone) { $modules = find_all_modules($zone); foreach ($modules as $module => $type) { $ret = upgrade_module($zone, $module); if ($ret == 1) { $out .= '<li>' . do_lang('FU_UPGRADED_MODULE', '<kbd>' . escape_html($module) . '</kbd>') . '</li>'; } elseif ($ret == -2) { if ($type == 'modules_custom') { continue; } if (reinstall_module($zone, $module)) { $out .= '<li>' . do_lang('FU_INSTALLED_MODULE', '<kbd>' . escape_html($module) . '</kbd>') . '</li>'; } } } } require_code('zones2'); if (file_exists(get_file_base() . '/sources/zones3.php')) { require_code('zones3'); } $blocks = find_all_blocks(); foreach ($blocks as $block => $type) { $ret = upgrade_block($block); if ($ret == 1) { $out .= '<li>' . do_lang('FU_UPGRADED_BLOCK', '<kbd>' . escape_html($block) . '</kbd>') . '</li>'; } elseif ($ret == -2) { if ($type == 'sources_custom') { continue; } if (reinstall_block($block)) { $out .= '<li>' . do_lang('FU_INSTALLED_BLOCK', '<kbd>' . escape_html($block) . '</kbd>') . '</li>'; } } } return $out; }
/** * Manually execute the specified module file (install.php, upgrade.php or uninstall.php) */ // check if specified module folder exists $mod_path = WB_PATH . '/modules/' . basename(WB_PATH . '/' . $_POST['file']); // let the old variablename if module use it $module_dir = $mod_path; if (!file_exists($mod_path . '/' . $_POST['action'] . '.php')) { $admin->print_header(); $admin->print_error($TEXT['NOT_FOUND'] . ': <tt>"' . htmlentities(basename($mod_path)) . '/' . $_POST['action'] . '.php"</tt> ', $js_back); } // include modules install.php script require $mod_path . '/' . $_POST['action'] . '.php'; // load module info into database and output status message load_module($mod_path, false); $msg = $TEXT['EXECUTE'] . ': <tt>"' . htmlentities(basename($mod_path)) . '/' . $_POST['action'] . '.php"</tt>'; switch ($_POST['action']) { case 'install': // $admin->print_header(); $admin->print_success($msg, $js_back); break; case 'upgrade': upgrade_module(basename($mod_path), false); // $admin->print_header(); $admin->print_success($msg, $js_back); break; case 'uninstall': // $admin->print_header(); $admin->print_success($msg, $js_back); break; }
/** * The actualiser to upgrade a module. * * @return tempcode The UI */ function upgrade_module() { $module = post_param('module'); $zone = post_param('zone'); require_code('zones2'); if ($zone != '_block') { upgrade_module($zone, $module); } else { upgrade_block($module); } $title = get_page_title('UPGRADE_MODULE'); // Show it worked / Refresh $url = build_url(array('page' => '_SELF', 'type' => 'view', 'id' => $zone), '_SELF'); return redirect_screen($title, $url, do_lang_tempcode('SUCCESS')); }
if ($sAction == 'uninstall' && preg_match('/' . $sAddonsFile . '/si', implode('|', $aPreventFromUninstall))) { $temp = array('name' => $file); $msg = replace_all($MESSAGE['MEDIA_CANNOT_DELETE_DIR'], $temp); $admin->print_error($msg); } // check if specified module folder exists $sAddonRelPath = '/modules/' . $sAddonName; // let the old variablename if module use it if (!file_exists(WB_PATH . $sAddonRelPath . '/' . $sAction . '.php')) { $admin->print_header(); $admin->print_error($TEXT['NOT_FOUND'] . ': <tt>"' . $sAddonName . '/' . $sAction . '.php"</tt> ', $js_back); } // include modules install.php script if (in_array($sAction, $aValideActions)) { require WB_PATH . $sAddonRelPath . '/' . $sAction . '.php'; } // load module info into database and output status message load_module(WB_PATH . $sAddonRelPath, false); $msg = $TEXT['EXECUTE'] . ': <tt>"' . $sAddonName . '/' . $sAction . '.php"</tt>'; switch ($sAction) { case 'install': $admin->print_success($msg, $js_back); break; case 'upgrade': upgrade_module($sAddonName, false); $admin->print_success($msg, $js_back); break; case 'uninstall': $admin->print_success($msg, $js_back); break; }