本文整理汇总了PHP中IPSSetUp::restorePreviousSession方法的典型用法代码示例。如果您正苦于以下问题:PHP IPSSetUp::restorePreviousSession方法的具体用法?PHP IPSSetUp::restorePreviousSession怎么用?PHP IPSSetUp::restorePreviousSession使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPSSetUp
的用法示例。
在下文中一共展示了IPSSetUp::restorePreviousSession方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doExecute
/**
* Execute selected method
*
* @access public
* @param object Registry object
* @return @e void
*/
public function doExecute(ipsRegistry $registry)
{
/* Delete sessions and continue */
if ($this->request['do'] == 'rsessions') {
IPSSetUp::removePreviousSession();
}
/* Rebuild from last session and continue */
if ($this->request['do'] == 'rcontinue') {
$oldSession = IPSSetUp::checkForPreviousSessions();
if (count($oldSession) and $oldSession['_session_get']['section'] and $oldSession['_sd']['install_apps']) {
IPSSetUp::restorePreviousSession($oldSession);
exit;
}
}
/* Check for failed upgrade */
if (!$this->request['do'] or $this->request['do'] != 'rsessions') {
$oldSession = IPSSetUp::checkForPreviousSessions();
if (count($oldSession) and $oldSession['_session_get']['section'] and $oldSession['_sd']['install_apps']) {
/* Page Output */
$this->registry->output->setTitle("Applications");
$this->registry->output->setNextAction('apps&do=rsessions');
//$this->registry->output->setHideButton( TRUE );
$this->registry->output->addContent($this->registry->output->template()->upgrade_previousSession($oldSession));
$this->registry->output->sendOutput();
}
}
/* Save data */
if ($this->request['do'] == 'save') {
$apps = explode(',', IPSSetUp::getSavedData('install_apps'));
$toSave = array();
$vNums = array();
if (is_array($apps) and count($apps)) {
foreach ($apps as $app) {
/* Grab version numbers */
$numbers = IPSSetUp::fetchAppVersionNumbers($app);
/* Grab all numbers */
$nums[$app] = IPSSetUp::fetchXmlAppVersions($app);
/* Grab app data */
$appData[$app] = IPSSetUp::fetchXmlAppInformation($app, $this->settings['gb_char_set']);
$appClasses[$app] = IPSSetUp::fetchVersionClasses($app, $numbers['current'][0], $numbers['latest'][0]);
/* Store starting vnums */
$vNums[$app] = $numbers['current'][0];
}
/* Got anything? */
if (count($appClasses)) {
foreach ($appClasses as $app => $data) {
foreach ($data as $num) {
if (is_file(IPSLib::getAppDir($app) . '/setup/versions/upg_' . $num . '/version_class.php')) {
$_class = 'version_class_' . $app . '_' . $num;
require_once IPSLib::getAppDir($app) . '/setup/versions/upg_' . $num . '/version_class.php';
/*noLibHook*/
$_tmp = new $_class($this->registry);
if (method_exists($_tmp, 'preInstallOptionsSave')) {
$_t = $_tmp->preInstallOptionsSave();
if (is_array($_t) and count($_t)) {
$toSave[$app][$num] = $_t;
}
}
}
}
}
/* Save it */
if (count($toSave)) {
IPSSetUp::setSavedData('custom_options', $toSave);
}
if (count($vNums)) {
IPSSetUp::setSavedData('version_numbers', $vNums);
}
}
}
/* Next Action */
$this->registry->autoLoadNextAction('license');
} else {
if ($this->request['do'] == 'check') {
/* Check Directory */
if (!is_array($_POST['apps']) or !count($_POST['apps'])) {
/* We use 'warning' because it has same effect but does not block the 'next' button (which they'll want to use after selecting an app when page reloads) */
$this->registry->output->addWarning('You must select to upgrade at least one application');
} else {
/* If it's lower than 3.0.0, then add in the removed apps */
if (IPSSetUp::is300plus() !== TRUE) {
$_POST['apps']['forums'] = 1;
$_POST['apps']['members'] = 1;
$_POST['apps']['calendar'] = 1;
$_POST['apps']['chat'] = 1;
} else {
if ($_POST['apps']['core']) {
$_POST['apps']['forums'] = 1;
$_POST['apps']['members'] = 1;
}
}
/* Save Form Data */
IPSSetUp::setSavedData('install_apps', implode(',', array_keys($_POST['apps'])));
//.........这里部分代码省略.........