* @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.ns_tree.php'); class category_q extends ns_tree_q{ /** * Фильтр по номеру алиасу категории * * @var: int $v - номер категории * @return: bool */ public function where_alias($v){ if ( empty($v) || ! sys_is_alias($v) ){ return FALSE; } return $this -> set_where( $this -> alias.'.c_alias',$v); } /** * Фильтр по номеру категории * * @var: int $v - номер категории * @return: bool */ public function where_cid($v){ $v = intval($v); if ( empty($v) ){ return FALSE; } return $this -> set_where( $this -> alias.'.c_id',$v); } public function where_name($v){ return $this -> set_where( $this -> alias.'.c_name',$v); } protected function c_parent_id($v){ return category::get_parent($v,$this -> table,$this -> alias); } static function upl_img($v){ // загрузка аватарки $a = new upload_img('image'); // 500 кб $a -> set_max_size( 5000000 ); // результирующий файл $a -> set_file($v); // сюда будем грузить $a -> set_path( 'market/img'); // полный путь к папке $a -> set_base( MAIN_URL.'/media/market/img'); return $a -> get('img',1,'c_image'); } static function category_url($v){ return sprintf(URL_CATEGORY,$v); } static function image_src($v){ return MAIN_URL.'/media/market/img/'.$v; } } //end class class category extends ns_tree{ protected function __construct( $array=array(),$table,$alias ){ $this -> table = $table; $this -> alias = $alias; $this -> info = $array; $this -> main_key = $array['c_id']; } // загружаем указанный static function load_id($id,$table='system_category',$alias='c',$row = false){ if ( false!==$res ){ $n = new category_q( $table,$alias); if ( false==$n -> where_id($id) ){ return false; } $n -> get('*',false); $row = $n -> row(); if ( false===$row ){ return false; } } return new category($row,$table,$alias); } // создаём новый объект static function create($table,$alias){ return new category(array('c_id'=>0),$table,$alias); } public function error(){ return $this -> last_error; } public function get($k){ if ( isset($this -> info[$k]) ){ return $this -> info[$k]; } $this -> make_error(ERROR_500, sprintf(A_NOT_VAR,$k)); } public function set($k,$v){ if ( method_exists($this,'set_'.$k) ){ $f = 'set_'.$k; return $this -> $f($v); } $this -> set_info[$k] = $v; return true; } public function set_c_alias($v){ $v= category::make_alias($v,$this -> table,$this -> alias); if ( empty($v) ){ $this -> make_error(E_NSTREE_EMPTY_ALIAS); return false; } $this -> set_info['c_alias']=$v; return true; } public function id(){ return $this -> info['c_id']; } static function make_alias($v,$table,$alias){ $v = sys_translit($v); if ( !category::is_exists($v,$table,$alias) ){ return $v; } return category::make_alias($v.'-'.time(),$table,$alias ); } function make_error($msg){ $this -> last_error = $msg; } // проверяем существование новость по траснлит адресу static function is_exists($v,$table,$alias){ $n = new category_q($table,$alias); if ( !$n -> where_alias($v) ){ return false; } $n -> get('COUNT(*)'); list($count) = $n -> row(); if ( $count >0 ){ return true; } return false; } static function get_path($id,$table,$alias='a'){ $p = new ns_tree_q($table,$alias); $p -> where_up($id); $p -> order_left('ASC'); // $p -> set_debug(1); $p -> get('c_alias,c_name'); $rows= array(); while( list($c_alias,$c_name) = $p -> row() ){ $rows[$c_alias]=$c_name; } return $rows; } }//end class ?>