215 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			215 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
	
 | 
						|
 | 
						|
	// aggiungere nuovo protocollo per template
 | 
						|
 | 
						|
 | 
						|
	include(ADMIN_DIR.'panels/admin.defaultpanels.php');
 | 
						|
	include(ADMIN_DIR.'includes/panels.prototypes.php');
 | 
						|
	require(SMARTY_DIR . 'SmartyValidate.class.php');
 | 
						|
 
 | 
						|
	utils_nocache_headers();
 | 
						|
	
 | 
						|
	define('MOD_ADMIN_PANEL',1);
 | 
						|
	
 | 
						|
	function wp_nonce_ays() {
 | 
						|
		die('We apologize, an error occurred.');
 | 
						|
	}
 | 
						|
	
 | 
						|
	/*
 | 
						|
	function admin_is_user_loggedin() {
 | 
						|
		return ($u=user_loggedin()) && utils_checkreferer() ;
 | 
						|
	}
 | 
						|
	*/
 | 
						|
	
 | 
						|
	
 | 
						|
	function main() {
 | 
						|
			
 | 
						|
		// general setup
 | 
						|
		
 | 
						|
		global $panel, $action, $lang, $smarty, $fp_admin, $fp_admin_action;
 | 
						|
		
 | 
						|
		$panels = admin_getpanels();
 | 
						|
		
 | 
						|
		$panel = (isset($_GET['p']))? $_GET['p'] :  $panels[0];
 | 
						|
		define('ADMIN_PANEL', $panel);
 | 
						|
		$smarty->assign('panel', $panel);
 | 
						|
 | 
						|
		if (!admin_panelexists($panel)) 
 | 
						|
			trigger_error('Requested panel does not exists!', E_USER_ERROR);
 | 
						|
			
 | 
						|
		
 | 
						|
		$panelprefix = "admin.$panel";
 | 
						|
		$panelpath = ADMIN_DIR."panels/$panel/$panelprefix.php";
 | 
						|
		
 | 
						|
		
 | 
						|
		$fp_admin = null;
 | 
						|
		
 | 
						|
		if (file_exists($panelpath)) {
 | 
						|
		
 | 
						|
			include($panelpath);
 | 
						|
			$panelclass = "admin_$panel";
 | 
						|
			
 | 
						|
			if (!class_exists($panelclass))
 | 
						|
				trigger_error("No class defined for requested panel", E_USER_ERROR);
 | 
						|
				
 | 
						|
			$fp_admin = new $panelclass($smarty);
 | 
						|
		
 | 
						|
		}
 | 
						|
 | 
						|
		/* check if user is loggedin */
 | 
						|
		
 | 
						|
		if (!user_loggedin()) {
 | 
						|
			utils_redirect("login.php");
 | 
						|
			die();
 | 
						|
		}
 | 
						|
	
 | 
						|
		
 | 
						|
		$action = isset($_GET['action'])? $_GET['action'] : 'default';
 | 
						|
		if (!$fp_admin)
 | 
						|
			return;
 | 
						|
		
 | 
						|
		$fp_admin_action = $fp_admin->get_action($action);
 | 
						|
		
 | 
						|
		
 | 
						|
		define('ADMIN_PANEL_ACTION', $action);
 | 
						|
		$smarty->assign('action', $action);
 | 
						|
		$panel_url = BLOG_BASEURL . "admin.php?p={$panel}";
 | 
						|
		$action_url = $panel_url . "&action={$action}";
 | 
						|
		$smarty->assign('panel_url', $panel_url);
 | 
						|
		$smarty->assign('action_url', $action_url);
 | 
						|
				
 | 
						|
	
 | 
						|
		if (!empty($_POST))
 | 
						|
			check_admin_referer("admin_{$panel}_{$action}");
 | 
						|
				
 | 
						|
			
 | 
						|
			
 | 
						|
		
 | 
						|
 		$smarty->assign('success', sess_remove("success_{$panel}"));
 | 
						|
 		$retval = $fp_admin_action->exec();
 | 
						|
				
 | 
						|
		if ($retval > 0) { // if has REDIRECT option
 | 
						|
			// clear postdata by a redirect
 | 
						|
			
 | 
						|
			sess_add("success_{$panel}", $smarty->get_template_vars('success'));
 | 
						|
			$smarty->get_template_vars('success');
 | 
						|
			
 | 
						|
			$to_action = $retval > 1 ? ('&action=' . $action) : '';
 | 
						|
			$with_mod = isset($_GET['mod'])? ('&mod=' . $_GET['mod']) : ''; 
 | 
						|
			$with_arguments = '';
 | 
						|
 | 
						|
			if ($retval == PANEL_REDIRECT_CURRENT) {
 | 
						|
				foreach ($fp_admin_action->args as $mandatory_argument) {
 | 
						|
					$with_arguments .= '&' . $mandatory_argument .
 | 
						|
								'=' . $_REQUEST[$mandatory_argument];
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			$url = "admin.php?p={$panel}{$to_action}{$with_mod}{$with_arguments}";
 | 
						|
			utils_redirect($url);
 | 
						|
			
 | 
						|
		}
 | 
						|
		
 | 
						|
		$smarty->register_modifier('action_link', 'admin_filter_action');
 | 
						|
		$smarty->register_modifier('cmd_link', 'admin_filter_command');
 | 
						|
 | 
						|
	}
 | 
						|
	
 | 
						|
	// smarty tag
 | 
						|
	function admin_filter_action($string, $action) {
 | 
						|
		if (strpos($string, '?')===false)
 | 
						|
			return $string .= "?action={$action}";
 | 
						|
		else
 | 
						|
			return $string .= wp_specialchars("&action={$action}");
 | 
						|
	}
 | 
						|
	
 | 
						|
	// smarty tag
 | 
						|
	function admin_filter_command($string, $cmd, $val) {
 | 
						|
	
 | 
						|
		global $panel, $action;
 | 
						|
		
 | 
						|
		$arg = $cmd? "&{$cmd}" : $cmd;
 | 
						|
		
 | 
						|
		return wp_nonce_url("{$string}{$arg}={$val}", "admin_{$panel}_{$action}_{$cmd}_{$val}");
 | 
						|
		
 | 
						|
	}
 | 
						|
	
 | 
						|
	
 | 
						|
	function admin_panelstrings($panelprefix) {
 | 
						|
	
 | 
						|
		global $lang, $smarty;
 | 
						|
		
 | 
						|
		lang_load('admin');
 | 
						|
		lang_load($panelprefix);
 | 
						|
	
 | 
						|
		$smarty->assign('subject', $lang['admin']['head']);
 | 
						|
		$smarty->assign('menubar', admin_getpanels());
 | 
						|
			
 | 
						|
		add_filter('wp_title', 'admin_panel_title', 10, 2);
 | 
						|
	}
 | 
						|
	
 | 
						|
	function admin_panel_title($title, $sep) {
 | 
						|
	
 | 
						|
		global $lang, $panel;
 | 
						|
		
 | 
						|
		$t = @$lang['admin']['panels'][$panel];
 | 
						|
		$title = "$title $sep $t";
 | 
						|
		return $title;
 | 
						|
	}
 | 
						|
	
 | 
						|
	
 | 
						|
 | 
						|
	function showcontrolpanel($params, &$smarty) {
 | 
						|
		$smarty->display(ABS_PATH. ADMIN_DIR . 'main.tpl');
 | 
						|
	}
 | 
						|
	
 | 
						|
	// html header
 | 
						|
	
 | 
						|
	function admin_title($title, $sep) {
 | 
						|
		global $lang;
 | 
						|
		return $title = "$title $sep {$lang['admin']['head']}"; 
 | 
						|
	}
 | 
						|
	
 | 
						|
	add_filter('wp_title', 'admin_title', 10, 2);
 | 
						|
 | 
						|
 | 
						|
	// setup admin_header
 | 
						|
	function admin_header_default_action() {
 | 
						|
		global $panel, $action;
 | 
						|
		do_action("admin_{$panel}_{$action}_head");
 | 
						|
	}
 | 
						|
	add_filter('admin_head', 'admin_header_default_action');
 | 
						|
	
 | 
						|
	
 | 
						|
	$fp_config = config_load();
 | 
						|
	system_init();
 | 
						|
	main();
 | 
						|
	admin_panelstrings('admin.'.ADMIN_PANEL);
 | 
						|
	theme_init($smarty);
 | 
						|
	$smarty->register_function('controlpanel', 'showcontrolpanel');
 | 
						|
	
 | 
						|
	$v = $lang['admin'][$panel][$action];
 | 
						|
	
 | 
						|
	
 | 
						|
	$smarty->assign_by_ref('panelstrings',	$v);
 | 
						|
	$smarty->assign_by_ref('plang',			$v);
 | 
						|
 | 
						|
	
 | 
						|
	if (isset($_GET['mod'])) {
 | 
						|
	
 | 
						|
		switch ($_GET['mod']) {
 | 
						|
			case 'inline' :
 | 
						|
				$smarty->display(ABS_PATH . ADMIN_DIR . 'admin-inline.tpl');
 | 
						|
				break;
 | 
						|
			case 'ajax' :
 | 
						|
				echo $smarty->get_template_vars('success');
 | 
						|
		}
 | 
						|
		
 | 
						|
	} else {
 | 
						|
		$smarty->display('admin.tpl');
 | 
						|
	}
 | 
						|
 | 
						|
	
 | 
						|
?>
 |