mirror of
https://github.com/gtbu/Typesetter-5.3-p8.git
synced 2024-11-11 01:44:02 +01:00
96 lines
2.3 KiB
PHP
96 lines
2.3 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace gp\tool;
|
||
|
|
||
|
defined('is_running') or die('Not an entry point...');
|
||
|
|
||
|
|
||
|
class Upgrade{
|
||
|
|
||
|
function __construct(){
|
||
|
global $config;
|
||
|
|
||
|
|
||
|
if( version_compare($config['gpversion'],'1.6','<') ){
|
||
|
die('Please upgrade to version 1.6, then 1.7 before upgrading to this version. You current version is '.$config['gpversion']);
|
||
|
}
|
||
|
|
||
|
if( version_compare($config['gpversion'],'1.7a2','<') ){
|
||
|
die('Please upgrade to version 1.7 before upgrading to this version. You current version is '.$config['gpversion']);
|
||
|
}
|
||
|
|
||
|
if( version_compare($config['gpversion'],'1.8a1','<') ){
|
||
|
die('Please upgrade to version 2.0 before upgrading to this version. You current version is '.$config['gpversion']);
|
||
|
}
|
||
|
|
||
|
if( version_compare($config['gpversion'],'2.3.4','<') ){
|
||
|
$this->Upgrade_234();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Update the gp_index, gp_titles and menus so that special pages can be renamed
|
||
|
*
|
||
|
*/
|
||
|
function Upgrade_234(){
|
||
|
global $gp_index, $gp_titles, $gp_menu, $config, $dataDir;
|
||
|
|
||
|
$special_indexes = array();
|
||
|
$new_index = array();
|
||
|
$new_titles = array();
|
||
|
foreach($gp_index as $title => $index){
|
||
|
|
||
|
$info = $gp_titles[$index];
|
||
|
$type = \gp\tool::SpecialOrAdmin($title);
|
||
|
if( $type === 'special' ){
|
||
|
$special_indexes[$index] = strtolower($title);
|
||
|
$index = strtolower($title);
|
||
|
$info['type'] = 'special'; //some older versions didn't maintain this value well
|
||
|
}
|
||
|
$new_index[$title] = $index;
|
||
|
$new_titles[$index] = $info;
|
||
|
}
|
||
|
$gp_titles = $new_titles;
|
||
|
$gp_index = $new_index;
|
||
|
|
||
|
//update gp_menu
|
||
|
$gp_menu = $this->FixMenu($gp_menu,$special_indexes);
|
||
|
|
||
|
//save pages
|
||
|
if( !\gp\admin\Tools::SavePagesPHP() ){
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$config['gpversion'] = '2.3.4';
|
||
|
\gp\admin\Tools::SaveConfig();
|
||
|
|
||
|
|
||
|
//update alt menus
|
||
|
if( isset($config['menus']) && is_array($config['menus']) ){
|
||
|
foreach($config['menus'] as $key => $value){
|
||
|
$menu_file = $dataDir.'/data/_menus/'.$key.'.php';
|
||
|
if( \gp\tool\Files::Exists($menu_file) ){
|
||
|
$menu = \gp\tool\Output\Menu::GetMenuArray($key);
|
||
|
$menu = $this->FixMenu($menu,$special_indexes);
|
||
|
\gp\tool\Files::SaveData($menu_file,'menu',$menu);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function FixMenu($menu,$special_indexes){
|
||
|
$new_menu = array();
|
||
|
foreach($menu as $key => $value){
|
||
|
if( isset($special_indexes[$key]) ){
|
||
|
$key = $special_indexes[$key];
|
||
|
}
|
||
|
$new_menu[$key] = $value;
|
||
|
}
|
||
|
return $new_menu;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|