<?php
/**
* @author:  Bunzia Alexander <nifus@mail.ru> <http://www.weblancer.net/users/nifus/>
* @copyright: Copyright (c) 2010, Bunzia Alexander
* @version: 1.0
* @license: http://www.gnu.org/copyleft/gpl.html GNU/GPL
* @package: HiLo CMS
*/

include_once(MAIN_SOURCE_PATH.'/inc/class.query.php');
include_once(MAIN_SOURCE_PATH.'/inc/class.objects.php');
/*
include_once(MAIN_SOURCE_PATH.'/modules/admin/cache/config.php');
include_once(MAIN_SOURCE_PATH.'/modules/admin/inc/url.php');
include_once(MAIN_SOURCE_PATH.'/modules/admin/lang/'.MAIN_LANG.'/lang.php');
*/

class filedsSetLangs
{
 
  

  /*
static function n_alias($v,$id){
    if ( empty($v) ){
      throw new Exception('Ошибка: нужно заполнить поле "Адрес"!');
    }
    if ( !sys_is_alias($v)  ){
      throw new Exception('Ошибка: адрес содержит запрещённые символы"!');
    }
    if ( langs::is_exists($v,$id) ){
      throw new Exception('Ошибка: материал с таким адресом уже существует"!'); 
    }
    return $v;
  }
	
  
	
  static function desc($v){					
    if ( empty($v) ){
      throw new Exception('Ошибка: нужно заполнить поле "Содержимое"!');
    }
    return $v;
  }


	static function short_desc($v){	
    if ( empty($v) ){
      throw new Exception('Ошибка: нужно заполнить поле "Содержимое"!');
    }
    return sys_short_text($v);
  }
  
	static function images($v){	
	 return  str_replace('245x120_','',$v);
  }
  
  static function main_image($v){	
    $v = str_replace('245x120_','',$v);
    $v = explode('|',$v);
    if ( !empty($v[0]) ){
      return $v[0];
    }
    return false;
  }
  
  /*static function set_n_time_add($v){
    if ( empty($v) ){
      //throw new Exception('Ошибка: нужно заполнить поле "Содержимое"!');
      return FALSE;
    }
    preg_match('#^([0-9]{2,2})\.([0-9]{2,2})\.([0-9]{4,4}) ([0-9]{1,2}):([0-9]{1,2})$#',$v,$res);
    
  
    $v = mktime($res[4],$res[5],0,$res[2],$res[1],$res[3]);
    return $v;
  }*/
  
}


class filedsGetLangs
{


 


   static function module_list($v){
    
    include_once(MAIN_SOURCE_PATH.'/inc/class.html.php');
    $l = new module_select_box();
    return $l -> get($v);
  }
  
  static function lang_list($v){
    $langs = array('ru'=>'ru','en'=>'en');
    $s = new select_box();
    $s -> selected_id($$v);
    $s -> empty_record(false);
    foreach( $langs as $k=>$v ){
      $s -> set($k,$v);
    }
    return $s -> get();
  }
  
  /*static function module_name($v){
    $langs = array('ru'=>'ru','en'=>'en');
    $s = new select_box();
    $s -> selected_id($$v);
    $s -> empty_record(false);
    foreach( $langs as $k=>$v ){
      $s -> set($k,$v);
    }
    return $s -> get();
  }*/
  


 
  
 
  

}



class langsQuery extends query{

	var $fields_get = 'filedsGetLangs';
	
  /**
  * @var string $alias Алиас для исплользования в mysql запросе
  */
  public function __construct($alias){
    $this -> set_table(MAIN_LANGS_TBL );
    $this -> set_alias($alias);
  }
  
  

  public function include_module($alias,$cols=false){
  global $MAIN_DB;
		$this -> include_table( MAIN_MODULES_TBL ,$alias,'m_id',$cols );
	}
	
	

  public function where_id($v){
    $v = intval($v);
    if ( empty($v)  ){
      return FALSE;
    }
	  return $this -> set_where( $this -> alias.'.lang_id',$v);
  }
 
 
  
  public function where_module($v){
	  return $this -> set_where( $this -> alias.'.m_id',$v);
  }

  public function orderby_id($v){
    return 	$this -> set_orderby($this -> alias.'.lang_id',$v);
  }
	
  /**
  * Произвольная сортировка
  */	
  public function orderby_rand(){
    return 	$this -> set_orderby('RAND()');
  }
  
 
 
  
  
  

  

}	//	end class langsQuery



class langs extends objects{

  public $table = "system_langs";
  public $key = "lang_id";
	public $fields = 'filedsSetLangs';


  		//STATIC
  static function load_id($id){
    $m = new langsQuery('m');
    if ( !$m -> where_id($id) ){
      return FALSE;
    }
    $m -> get('*');
    if ( !$m -> get_count_rows() ){
      return FALSE;
    }
    return new langs($id,$m -> row());
  }
	
  static function create(){
    //global $MAIN_DB;
    //$sql = "INSERT INTO ".$MAIN_DB -> prefix( self::$table)." (".self::$key.") VALUES(0)";
    //$MAIN_DB -> query($sql);
    //$id = $MAIN_DB -> insert_id();
    return new langs(0,array() );
  }
  
  public function update(){
  global $MAIN_DB;
   /* 
    if ( !empty($this -> last_error ) ){
      return false; 
    }*/
    if ( sizeof($this -> set_info)==0 ){
      sys_error(500,E_EMPTY_ARRAY);
    }
    $sql = array();
    foreach( $this -> set_info as $k=>$v ){
      $sql[]="`$k`='".sys_in_sql($v)."'";
    }
    $sql = "
      UPDATE ".MAIN_LANGS_TBL." 
      SET ".implode(',',$sql)." 
      WHERE ".$this -> key."='".$this -> key_value."'";
    if ( !empty($this -> debug) ){
      die($sql);
    }
    $MAIN_DB -> query($sql);
    //langs::search_index($this -> key_value); // формируем новую запись в таблицу поиска
    return $this -> key_value;
  }
	
  public function insert(){
  global $MAIN_DB;
   
    if ( sizeof($this -> set_info)==0 ){
      sys_error(500,E_EMPTY_ARRAY);
    }
      
    $sql = array();
    foreach( $this -> set_info as $k=>$v ){
      $sql[]="`$k`='".sys_in_sql($v)."'";
    }
    $sql = "INSERT INTO ".MAIN_LANGS_TBL." SET ".implode(',',$sql)."";
    if ( !empty($this -> debug) ){
      die($sql);
    }
    $MAIN_DB -> query($sql);
    $id =  $MAIN_DB -> insert_id();
  
  
    return $id;
  }
  
  
  
  public function delete(){
  global $MAIN_DB;
    $sql = "DELETE FROM ".MAIN_LANGS_TBL." WHERE ".$this -> key."='".$this -> key_value."'";
    $MAIN_DB -> query($sql);
    return TRUE;
  }
	
	
  
 
 	
 
 	
   
 		
  	
  	
	
	
} //  end class



	
?>
