mirror of
				https://github.com/gtbu/Typesetter-5.3-p8.git
				synced 2025-11-04 14:58:28 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			95 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;
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 |