* @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'); class filedsSetMailTmpl { //static $id = false; // адрес static function m_name($v){ if ( empty($v) ){ throw new Exception( M_ADMIN_M_NAME_EMPTY ); } return $v; } public function set_subject($v){ if ( empty($v) ){ throw new Exception( M_ADMIN_M_SUBJECT_EMPTY ); } return $v; } public function set_body($v){ if ( empty($v) ){ throw new Exception( M_ADMIN_M_BODY_EMPTY ); } return $v; } public function set_from_name($v){ if ( empty($v) ){ throw new Exception( M_ADMIN_M_FROMNAME_EMPTY ); } return $v; } public function set_content_type($v){ if ( empty($v) ){ throw new Exception( M_ADMIN_M_CONTENT_TYPE_EMPTY ); } if ( !in_array($v,mailTmpl::$formats) ){ throw new Exception( M_ADMIN_M_CONTENT_TYPE_FALSE ); } return $v; } public function set_key($v){ if ( empty($v) ){ throw new Exception( M_ADMIN_M_KEY_EMPTY ); } if ( !mailTmpl::check_type($v) ){ throw new Exception( M_ADMIN_M_KEY_FALSE ); } return $v; } /* static function p_type_content($v){ if ( empty($v) ){ return true; } $values = array('HTML','PHP','TMPL'); if ( !in_array($v,$values) ){ throw new Exception( M_ADMIN_BLOCKS_FALSE_TYPE_CONTENT ); } return $v; } */ } class filedsGetMailTmpl { static $__var = array(); // для хранения временных переменных static function type_list($v){ // список форматов $types = mailTmpl::$formats; $s = new select_box(); $s -> selected_id($v); $s -> empty_record(false); foreach( $types as $t ){ $s -> set($t,$t); } return $s -> get(); } static function from($v,$row){ return (!empty($row['m_from_email']) ? ($v.'('.$row['m_from_email'].')') : $v); } static function lang_links($v){ if ( false===MAIN_MULTILANG ){ return false; } $langs = explode(',',MAIN_LANGS); $result = array(); foreach( $langs as $l ){ $q = new mailTmplQuery('q'); $q -> where_link($v); $q -> where_lang($l); $q -> get('COUNT(*)'); list($count) = $q -> row(); $result[] = array('lang'=>$l,'exists'=> (( $count ) ? 1 : 0) ); } return $result; } static function lang_list($v){ if ( false===MAIN_MULTILANG ){ return false; } $langs = explode(',',MAIN_LANGS); $s = new select_box(); $s -> selected_id($v); $s -> empty_record(false); foreach( $langs as $lng ) { $s -> set($lng,$lng); } return $s -> get(); } } class mailTmplQuery extends query{ var $fields_get = 'filedsGetMailTmpl'; public function __construct($alias){ $this -> set_table( MAIN_MAIL_TMPL_TBL ); $this -> set_alias($alias); } /*public function include_tmpl($alias,$cols=''){ $this -> include_table(MAIN_TMPL_TBL,$alias,'t_id',$cols ); return true; }*/ public function where_id($v){ $v = intval($v); if ( empty($v) ){ return false; } return $this -> set_where( $this -> alias.'.m_id',$v); } public function where_link($v){ if ( false===MAIN_MULTILANG ){ return $this -> where_id($v); } $v = intval($v); if ( empty($v) ){ return false; } return $this -> set_where( $this -> alias.'.link_id',$v); } public function where_main_rows(){ if ( false===MAIN_MULTILANG ){ return false; } return $this -> set_anothe_where( $this -> alias.'.m_id='.$this -> alias.'.link_id'); } public function where_lang($v){ if ( false===MAIN_MULTILANG ){ return false; } $langs = explode(',',MAIN_LANGS); if ( !in_array($v,$langs) ){ return false; } return $this -> set_where( $this -> alias.'.lang',$v); } public function orderby_id($v){ return $this -> set_orderby( $this -> alias.'.m_id',$v); } } // класс для управления записями таблицы system_staticPages class mailTmpl extends objects{ public $table = "system_mail_tmpl"; public $key = "m_id"; public $fields = 'filedsSetMailTmpl'; static $formats = array('text','html'); public function id(){ return $this -> info['m_id']; } // загрузка модуля по его id static function load_id($id){ $m = new mailTmplQuery('m'); if ( !$m -> where_id($id) ){ return false; } $m -> get('*'); if ( $m -> get_count_rows()==0 ){ return FALSE; } return new mailTmpl($id,$m -> row()); } static function create(){ return new mailTmpl( 0, array('m_id'=>0)); } static function check_type($v){ if ( preg_match('#[^a-z0-9_]#i',$v) ){ return false; } return true; } } ?>