197 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * add entry panel
 | |
|  *
 | |
|  * Type:     
 | |
|  * Name:     
 | |
|  * Date:     
 | |
|  * Purpose:  
 | |
|  * Input:
 | |
|  *         
 | |
|  * @author NoWhereMan <real_nowhereman at users dot sf dot com>
 | |
|  *
 | |
|  */
 | |
|  	
 | |
| 	/* utility class */
 | |
| 		class tpl_deleter extends fs_filelister {
 | |
| 		
 | |
| 		function tpl_deleter() {
 | |
| 			
 | |
| 			//$this->smarty = $GLOBALS['_FP_SMARTY'];
 | |
| 			
 | |
| 			$this->_directory = CACHE_DIR;
 | |
| 			parent::fs_filelister();
 | |
| 		}
 | |
| 	
 | |
| 		function _checkFile($directory, $file) {
 | |
| 				
 | |
| 				if ($file != CACHE_FILE) {
 | |
| 					array_push($this->_list, $file);
 | |
| 					fs_delete("$directory/$file");
 | |
| 				}
 | |
| 				//trigger_error($file, E_USER_NOTICE);
 | |
| 			return 0;
 | |
| 		}
 | |
| 	
 | |
| 		}
 | |
| 
 | |
| 	class s_entry_crawler extends fs_filelister {
 | |
|  
 | |
| 		var $_directory = CONTENT_DIR;
 | |
|  
 | |
| 		function s_entry_crawler() {
 | |
| 			$this->index = entry_init();
 | |
| 			parent::fs_filelister();
 | |
| 		}
 | |
|  
 | |
| 		function _checkFile($directory, $file) {
 | |
| 			$f = "$directory/$file";
 | |
| 				if ( is_dir($f) && ctype_digit($file)) {
 | |
| 					return 1;
 | |
| 				}
 | |
|  
 | |
| 				if (fnmatch('entry*'.EXT, $file)) {
 | |
| 					$id=basename($file,EXT);
 | |
| 					$arr=entry_parse($id, true);
 | |
|  
 | |
| 					echo "[POST] $id => {$arr['subject']}\n";
 | |
| 					$this->index->add($id, $arr);
 | |
|  
 | |
| 					return 0;
 | |
| 				}
 | |
| 		}
 | |
|  
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	/*********************/
 | |
| 	
 | |
| 	
 | |
| 	
 | |
|  	class admin_maintain extends AdminPanel {
 | |
| 		var $panelname = 'maintain';
 | |
| 		var $actions = array('default'=>false, 'updates'=>false);
 | |
| 	}
 | |
|  	
 | |
| 	
 | |
| 	class admin_maintain_updates extends AdminPanelAction {
 | |
| 		
 | |
| 		var $web = 'http://www.flatpress.org/fp/VERSION';
 | |
| 		var $fpweb = 'http://www.flatpress.org/home/blog.php';
 | |
| 		var $sfweb = 'http://sourceforge.net/project/showfiles.php?group_id=157089';
 | |
| 	
 | |
| 		function main() {
 | |
| 			$success = -1;
 | |
| 			$ver = array(
 | |
| 					'stable'=>'unknown',
 | |
| 					'unstable'=>'unknown',
 | |
| 				);
 | |
| 		
 | |
| 			$f = @fopen($this->web, 'r');
 | |
| 			
 | |
| 			if ($f) {
 | |
| 				$file='';
 | |
| 				while(!feof($f)) {
 | |
| 					$file .= fgets($f);
 | |
| 				}
 | |
| 				if ($file){
 | |
| 					$ver = utils_kexplode($file);
 | |
| 					
 | |
| 					if (strcmp($ver['stable'], SYSTEM_VER)>0)
 | |
| 						$success = 1;
 | |
| 					else
 | |
| 						$success = 2;
 | |
| 				}
 | |
| 			}
 | |
| 			
 | |
| 			
 | |
| 			$this->smarty->assign('updates', $ver);
 | |
| 			$this->smarty->assign('fpweb', $this->fpweb);
 | |
| 			$this->smarty->assign('sfweb', $this->sfweb);		
 | |
| 			$this->smarty->assign('success', $success);
 | |
| 			
 | |
| 		}
 | |
| 		
 | |
| 	}
 | |
| 	
 | |
| 	class admin_maintain_default extends AdminPanelAction {
 | |
| 	
 | |
| 		var $commands = array('do');
 | |
| 		
 | |
| 		function dodo($do) {
 | |
| 		
 | |
| 			switch ($do) {
 | |
| 			case 'rebuild': {
 | |
| 					
 | |
| 					if (substr(INDEX_DIR, -1) == '/')
 | |
| 						$oldidx = substr(INDEX_DIR,0,-1);	
 | |
| 					
 | |
| 					$movedir = $oldidx.time();
 | |
| 					
 | |
| 					header('Content-Type: text/plain');
 | |
| 					echo "ENTERING LOWRES MODE\n\n";
 | |
| 					
 | |
| 					if (file_exists(INDEX_DIR)) {
 | |
| 						
 | |
| 						echo "BACKUP INDEX to $movedir\n";
 | |
| 						$ret = @rename($oldidx, $movedir);
 | |
| 						if (!$ret) trigger_error('Cannot backup old index. STOP.', E_USER_ERROR);
 | |
| 							
 | |
| 					}
 | |
| 					fs_mkdir(INDEX_DIR);
 | |
| 					
 | |
| 					 
 | |
| 					
 | |
| 					new s_entry_crawler;
 | |
| 					exit("\nDONE \nPlease, select the back arrow in your browser");
 | |
| 						
 | |
| 
 | |
| 					return PANEL_NOREDIRECT;
 | |
| 				}
 | |
| 			case 'restorechmods': {
 | |
| 					$this->smarty->assign('files',fs_chmod_recursive());
 | |
| 					$this->smarty->assign('success', 1);
 | |
| 					return PANEL_NOREDIRECT;
 | |
| 				}
 | |
| 			case 'purgetplcache': {
 | |
| 				$tpldel = new tpl_deleter;
 | |
| 				unset($tpldel);
 | |
| 				$this->smarty->cache_dir = CACHE_DIR.'cache/';
 | |
| 				$this->smarty->caching = 0;
 | |
| 				$this->smarty->clear_all_cache();
 | |
| 				$this->smarty->clear_compiled_tpl();
 | |
| 				$this->smarty->compile_check = true;
 | |
| 				$this->smarty->force_compile = true;
 | |
| 				$this->smarty->assign('success', 1);
 | |
| 			
 | |
| 				if (!file_exists(CACHE_DIR))
 | |
| 					fs_mkdir(CACHE_DIR);
 | |
| 			
 | |
| 				return PANEL_NOREDIRECT;
 | |
| 				}
 | |
| 			case 'phpinfo': {
 | |
| 				ob_start();                                                                                                       
 | |
| 				phpinfo();                                                                                                       
 | |
| 				$info = ob_get_contents();                                                                                       
 | |
| 				ob_end_clean();                                                                                                   
 | |
| 
 | |
| 				$this->smarty->assign('phpinfo', preg_replace('%^.*<body>(.*)</body>.*$%ms', '$1', $info));
 | |
| 				}
 | |
| 				
 | |
| 				return PANEL_NOREDIRECT;
 | |
| 			}
 | |
| 			
 | |
| 		
 | |
| 		
 | |
| 		
 | |
| 		}
 | |
| 		
 | |
| 	 	function main() {
 | |
| 		
 | |
| 		}
 | |
| 		
 | |
| 	}
 | |
| 
 | |
| ?>
 | 
