db = &$db; $this->tpl = &$tpl; $this->error = &$error; } function trim(&$data){ foreach($data as $key=>$value){ if(is_array($data[$key]))$this->trim($data[$key]); else $data[$key] = trim($value); } } function valid($data,$upload = null){ if(isset($data['order_name'])){ if( !preg_match("/.{1,100}/i",$data['order_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ)."; } if(isset($data['order_adress'])){ if( !preg_match("/.{1,200}/i",$data['order_adress']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ order_adress (Ìàêñèìóì 200 ñèìâîëîâ)."; } if(isset($data['order_tel'])){ if( !preg_match("/.{1,70}/i",$data['order_tel']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Òåëåôîí (Ìàêñèìóì 70 ñèìâîëîâ)."; } if(isset($data['order_email'])){ if( !preg_match("/^([^@]+)+@([^@]+)\.([^@]+)$/i",$data['order_email']) || strlen($data['order_email'])>80 ) $this->error[] = "Îøèáêà ââîäà ïîëÿ E-mail, äî 80 ñèìâîëîâ."; } return ( count($this->error) ) ? true : false; } function saveRubric($data,$upload){ $table_name = "rubrics"; if($data['update_id']>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$id = $data['update_id'];$where = "id=$id";}else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$id = $this->db->nextId('mySequenceRubrics');$where = null;} $parent_id = (isset($data['parent_id']) ? $data['parent_id'] : 0); $fields_values = array("id"=>$id,"parent_id"=>$parent_id,"level"=>($this->getLevelRubric($parent_id)+1),"name_rus"=>$data['name_rus'], "text_rus"=>$data['text_rus'],"sort"=>$data['sort'], "meta_title_rus"=>$data['meta_title_rus'], "meta_description_rus"=>$data['meta_description_rus'], "meta_keywords_rus"=>$data['meta_keywords_rus'], "meta_about_rus"=>$data['meta_about_rus'],"rub_id"=>$data['rub_id']); if($upload['pic']['tmp_name']){ $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"180",'height'=>"180",'upload_path'=>"./uploaded/pic/rubrics/")); $fields_values['pic_big'] = upload_ImageResize($upload['pic'],array('width'=>"250",'height'=>"250",'upload_path'=>"./uploaded/pic/rubrics/big/")); } $this->db->autoExecute($table_name, $fields_values, $DB_AUTOQUERY,$where); return $id; } function getLevelRubric($id){ $level = $this->db->getOne("select level from rubrics where id=?",array($id)); return ($level==null)? -1 : $level; } function viewRubricOne($id){ $sql = "select * from rubrics where id=? limit 1"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign("rubric",$row); } function viewRubricOneLang($id,&$row,$lang = "rus"){ $sql = "select name_$lang as name,text_$lang as text,meta_title_$lang as meta_title,meta_description_$lang as meta_description,meta_keywords_$lang as meta_keywords,meta_about_$lang as meta_about from rubrics where id=? limit 1"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign("rubric",$row); } function deleteRubricTree($id){ $sql = "select * from rubrics where parent_id=? order by sort asc"; $res = $this->db->query($sql,array($id)); while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){ $sql = "delete from rubrics where id=?"; $this->db->query($sql,array($row['id'])); $this->deleteRubricTree($row['id']); } $sql = "delete from rubrics where id=?"; $this->db->query($sql,array($id)); } function getRubricsTree($id = 0,$rub_id){ global $rubrics; $sql = "select * from rubrics where rub_id=? and parent_id=? order by sort asc"; $res = $this->db->query($sql,array($rub_id,$id)); while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){ $rubrics[] = $row; //if($parent_id == $row['id'])$this->viewRubricsTree($row['id']); $this->viewRubricsTree($row['id'],$rub_id); } // print_r($rubrics); return $rubrics; } function is_RubricsTree($rub_id){ return $this->db->getOne("select count(*) from rubrics where rub_id=?",array($rub_id)); } function viewRubricsTreeAll($id = 0,$rub_id,$open_id,$lang = "rus"){ global $rubrics, $i, $p; if(!$i)$i = 0; if(!$p)$p = 0; $sql = "select rubrics.id,rubrics.parent_id,rubrics.name_$lang as name,rules.action from rubrics LEFT JOIN rules ON rules.id=rub_id where rubrics.parent_id=? and rubrics.rub_id=? order by rubrics.sort asc"; //$res = $this->db->query($sql,array($rub_id,$id)); //while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){ $res = $this->db->getAll($sql,array($id,$rub_id),DB_FETCHMODE_ASSOC); foreach($res as $row){ if($row['parent_id']>0){ $rubrics[$p]['parent'][] = $row;} else {$rubrics[$i] = $row; $p = $i;$i++;} //$this->viewRubricsTreeAll($row['id'],$rub_id,$lang); if(in_array($row['id'],$this->getParentIdRubric($open_id))){$this->viewRubricsTreeAll($row['id'],$rub_id,$open_id,$lang);} } // print"
"; print_r($rubrics);print"
"; $this->tpl->assign("rubrics",$rubrics); return $rubrics; } function getParentIdRubric($id){ $ids = array(); while($id>0){ $row = $this->db->getRow('select id,parent_id from rubrics where id=?',array($id),DB_FETCHMODE_ASSOC); $ids[] = $row['id']; $id = $row['parent_id']; } //print_r($ids); // sort($ids); return $ids; } function viewRubricsTree($id = 0,$rub_id){ $this->tpl->assign("rubrics",$this->getRubricsTree($id,$rub_id)); } function viewRubricsTreeBlock($id = 0,$parent_id,$rub_id,$lang = "rus"){ /* $ids = $this->getParentIdRubric($parent_id); array_unshift($ids, "0"); foreach($ids as $row){ print $row; $res = $this->getRubricsTreeOpen($row,$parent_id,$rub_id,$lang); } */ global $out; $out = ''; $res = $this->getRubricsTreeOpen($id,$parent_id,$rub_id,$lang); $this->tpl->assign("rubrics_$rub_id",$res); } function viewParentRubrics($id,$lang = "rus"){ $row = $this->db->getAll("select id,pic,name_$lang as name,text_$lang as text from rubrics where parent_id=?",array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign("rubric_parent",$row); } function viewRubricsBlock($rub_id,$lang = "rus"){ $row = $this->db->getAll("select id,pic,name_$lang as name,text_$lang as text from rubrics where rub_id=? and level='0' order by sort",array($rub_id),DB_FETCHMODE_ASSOC); $this->tpl->assign("rubric_block_$rub_id",$row); } function displayStaticsEdit(){ $this->tpl->assign("tpl","statics_form.tpl"); } function displayRubrics(){ $this->tpl->assign("tpl","rubrics.tpl"); } function displayRubric(){ $this->tpl->assign("tpl","rubric.tpl"); } } ?>