* @copyright: Copyright (c) 2010, Bunzia Alexander
* @version: 1.0
* @license: http://www.gnu.org/copyleft/gpl.html GNU/GPL
* @package HiLo CMS
*/
class admin_control_meta{
private $error = false;
private $act = 'index';
private $JsHttpRequest = false;
private $table = 'system_meta';
public function __construct(){
global $MAIN_PAGE;
define('M_PATH',MAIN_SOURCE_PATH.'/modules/'.$MAIN_PAGE -> dirname() );
define('M_URL',MAIN_SOURCE_URL.'/modules/'.$MAIN_PAGE -> dirname() );
define('A_CHARSET', $MAIN_PAGE -> charset() );
include_once(M_PATH.'/inc/url.php');
include_once(M_PATH.'/inc/class.meta.php');
include_once(M_PATH.'/inc/class.modules.php');
include_once(MAIN_SOURCE_PATH.'/inc/class.html.php');
include(MAIN_SOURCE_PATH.'/ext/ajax/JsHttpRequest.php');
$this -> JsHttpRequest = new JsHttpRequest( A_CHARSET );
$this -> act = !empty($_REQUEST['act']) ? $_REQUEST['act'] : $this -> act;
$GLOBALS['_RESULT']['id_request'] = !empty($_REQUEST['id_request']) ? $_REQUEST['id_request'] : 0;
preg_match('#^'.$MAIN_PAGE -> dirname().'_(.*)$#iUs',$_REQUEST['p_name'],$res);
$this -> path =$res[1];
$this -> path_tmpl = M_PATH.'/tmpl/'.$this -> path;
}
public function get(){
$func = $this -> act;
if ( !method_exists($this ,$func) ){
sys_error(ERROR_404);
}
return $this -> $func();
}
// выводим список титлов
private function index(){
$t = new PHPTAL( $this -> path_tmpl.'/main.html' );
$p = new metaQuery('f');
$p -> where_main_rows();
$p -> orderby_id('DESC');
$p -> get('f.*,meta_id as lang_links',false);
$t -> rows = $p -> rows();
// список модулей
include_once(MAIN_SOURCE_PATH.'/modules/admin/inc/class.module.php');
$s = new select_box();
$s -> empty_record(true,0);
$m = new modulesQuery('m');
$m -> where_active(1);
$m -> get('m_path,m_name');
while( $row = $m -> row() ){
$s -> set($row['m_path'],$row['m_name']);
}
$t -> module_list = $s -> get();
return $t -> execute();
}
private function ajax_reload(){
sys_block_disable();
$t = new PHPTAL( $this -> path_tmpl.'/inc/tmpl_row.html' );
$t -> execute = true;
$p = new metaQuery('f');
$p -> where_module($_POST['filter_module']);
$p -> where_main_rows();
$p -> orderby_id('DESC');
$p -> get('f.*,meta_id as lang_links',false);
$t -> rows = $p -> rows();
$GLOBALS['_RESULT']['content'] = $t -> execute();
exit();
}
private function ajax_delete(){
sys_block_disable();
$m = meta::load_id($_POST['id']);
if ( false===$m ){
die( A_EMPTY_ID );
}
$m -> delete();
$m -> cache();
exit();
}
private function ajax_edit(){
sys_block_disable();
$p = new metaQuery('p');
if ( !$p -> where_id($_GET['id']) ){
$row = array('type_list' => filedsGetMeta::type_list(),'lang_list'=>filedsGetMeta::lang_list() );
}else{
$p -> get('*, `type` as type_list, lang as lang_list');
$row = $p -> row();
}
$t = new PHPTAL( $this -> path_tmpl.'/edit.html' );
$t -> row = $row ;
$t -> lang_edit = false; // редактируем ключевую запись
$t -> link_id =$_GET['id'];
$t -> lang = !empty($_GET['lang']) ? $_GET['lang'] : MAIN_LANG;
echo 'Редактировать execute().']]>';
exit();
}
private function ajax_save(){
sys_block_disable();
$p = meta::load_id($_POST['id']);
if ( false===$p ){
$create=true;
$p = meta::create();
}
foreach( $_POST['form'] as $k=>$v ){
$p -> set($k,$v);
}
$id = ($create===true) ? $p -> insert() : $p -> update();
if ( $create===true && empty($_POST['form']['link_id']) ){
//$p -> set_debug(1);
$p -> set('link_id',$id);
$p -> update();
}
$p -> cache();
exit();
}
private function ajax_lang_edit(){
sys_block_disable();
$t = new PHPTAL( $this -> path_tmpl.'/edit.html' );
$t -> lang_edit = true; // редактируем ключевую запись
$p = new metaQuery('p');
//$p -> set_debug(1);
$p -> where_link($_GET['id']);
$p -> where_lang($_GET['lang']);
$p -> get('*, lang as lang_list');
if ( $p-> get_count_rows()!=0 ){
$row = $p -> row();
}else{
// получим данные родителя
$p = new metaQuery('p');
//$p -> set_debug(1);
$p -> where_id($_GET['id']);
$p -> get('link_id,module,p_name,`key`,`type`');
$row = $p -> row();
}
$t -> row = $row;
$t -> lang = !empty($_GET['lang']) ? $_GET['lang'] : MAIN_LANG;
$t -> link_id = $_GET['id'];
echo ''.M_ADMIN_SP_ADD_EDIT_PAGE.' execute().']]>';
exit();
}
}
?>