db = &$db; $this->tpl = &$tpl; $this->error = &$error; } function trim(&$data){ foreach($data as $key=>$value){ if(!is_array($data[$key]))$data[$key] = trim($value); } } function valid($data,$upload = null){ if(isset($data['name'])){ if( !preg_match("/.{1,250}/i",$data['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âîïðîñ, îò 1-250 ñèìâîëîâ."; } if(isset($data['answer_name'])){ if( !preg_match("/.{1,250}/i",$data['answer_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Îòâåò, îò 1-250 ñèìâîëîâ."; if(!isset($data['questioning_id']) || !preg_match("/[0-9]+/",$data['questioning_id']) ) $this->error[] = "Îøèáêà âûáîðà âîïðà."; } if(isset($upload['pic']['name']) && $upload['pic']['name']!=null){ $type = substr(strrchr($upload['pic']['name'],"."),1); if( !preg_match("/^(jpeg|jpg|gif|png)$/i",$type) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èçîáðàæåíèÿ, òîëüêî jpg,png,gif."; } return ( count($this->error) ) ? true : false; } function SaveQuestioning($data){ $table_name = "questioning"; 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('mySequenceQuestioning');$where = null;} $fields_values = array("id"=>$id,"name"=>$data['name']); if(!$data['update_id']){$fields_values['mktime'] = mktime();} $this->db->autoExecute($table_name, $fields_values, $DB_AUTOQUERY,$where); return $id; } function deleteQuestioning($id){ $this->db->query("delete from questioning where id=?",array($id)); $this->db->query("delete from questioning_answer where questioning_id=?",array($id)); } function SaveAnswer($data){ $table_name = "questioning_answer"; if($data['update_id']>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$id = $data['update_id'];$where = "id=$id";}else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = null;} $fields_values = array("name"=>$data['answer_name'],"questioning_id"=>$data['questioning_id']); if(!$data['update_id']){$fields_values['mktime'] = mktime();} $this->db->autoExecute($table_name, $fields_values, $DB_AUTOQUERY,$where); } function AnswerQuestioning($id){ $this->db->query("update questioning set rate=rate+1 where id=?",array($id)); } function AnswerCounter($id){ $this->db->query("update questioning_answer set rate=rate+1 where id=?",array($id)); } function clearRate(){ $this->db->query("delete from questioning_rate_ip where life_mktimedb->getOne("select count(*) from questioning_rate_ip where ip=? and questioning_id=?",array($ip,$questioning_id)); } function IpQuestioningSave($ip,$questioning_id,$answer_id){ $hour = 3; $table_name = "questioning_rate_ip"; $fields_values = array("ip"=>$ip,"questioning_id"=>$questioning_id,"answer_id"=>$answer_id,"life_mktime"=>mktime((date("H")+$hour),date("i"),date("s"),date("m"),date("d"),date("Y"))); $this->db->autoExecute($table_name, $fields_values, DB_AUTOQUERY_INSERT); } function viewQuestioningLast(){ $sql = "select * from questioning order by mktime desc limit 1"; $row = $this->db->getRow($sql,array(),DB_FETCHMODE_ASSOC); $row['answer'] = $this->getQuestioningAnswer($row['id']); $this->tpl->assign('questioning_last', $row); } function viewAllQuestioning(){ $search = array(); $sql = "select * from questioning where 1=1 "; if(count($search))$sql .= "AND " . implode(" AND ",$search)." "; $sql .= "order by mktime desc"; $pagerOptions = Array( 'mode' => 'Sliding', 'delta' => 6, 'perPage' => 20, 'spacesBeforeSeparator' => 1, 'spacesAfterSeparator' => 1 ); $questioningAllData = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array()); foreach($questioningAllData['data'] as $key=>$row){ $questioningAllData['data'][$key]['answer'] = $this->getQuestioningAnswer($row['id']); } //print_r($questioningAllData); $this->tpl->assign('questioningAllData', $questioningAllData); } function getQuestioningAnswer($questioningID){ $sql = "select * from questioning_answer where questioning_id=? order by mktime desc"; return $this->db->getAll($sql,array($questioningID),DB_FETCHMODE_ASSOC); } function admin_infoEditQuestioningOne($id){ $sql = "select * from questioning where id=? limit 1"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('questioning',$row); } function displayQuestioning(){ $this->tpl->assign("tpl","questioning.tpl"); } } ?>