fetch_data();
}
protected function fetch_data(){
global $dbh;
$this->list = array();
$this->data = array();
$this->pages_classement_list=array();
$requete = "select id_page from cms_pages order by page_name ";
$res = mysql_query($requete, $dbh);
if(mysql_num_rows($res)){
while($row = mysql_fetch_object($res)){
$this->list[]=$row->id_page;
$this->data[$row->id_page]['id']=$row->id_page;
$page=new cms_page($row->id_page);
$this->data[$row->id_page]['name']=$page->name;
$this->data[$row->id_page]['hash']=$page->hash;
$this->data[$row->id_page]['description']=$page->description;
$this->data[$row->id_page]['classement']=$page->classement;
if($page->classement)$this->pages_classement_list[$page->classement]=1;
}
}
//printr($this->data);
}
function get_pages_classement_list($classement_selected=""){
global $charset,$msg;
$tpl="";
if(!$classement_selected) $tpl.="";
else $tpl.="";
foreach($this->pages_classement_list as $classement=> $val){
if($classement_selected==$classement)$selected=" selected='selected' "; else $selected="";
$tpl.="";
}
return $tpl;
}
public function get_list($tpl="",$item_tpl=""){
global $msg;
global $charset;
global $cms_pages_list_tpl;
global $cms_pages_list_item_tpl;
if(!$tpl)$tpl=$cms_pages_list_tpl;
$items="";
$pair_impair = "even";
foreach($this->data as $id => $page ){
if(!$item_tpl)$item=$cms_pages_list_item_tpl;
else $item= $item_tpl;
if($pair_impair == "even") $pair_impair = "odd"; else $pair_impair = "even";
$classement_list= $this->get_pages_classement_list($infos->cadre_classement);
$item = str_replace("!!pair_impair!!",$pair_impair,$item);
$item = str_replace("!!name!!",htmlentities($page['name'],ENT_QUOTES, $charset),$item);
$item = str_replace("!!id!!",$page['id'],$item);
$items.=$item;
}
$tpl= str_replace("!!items!!",$items,$tpl);
return $tpl;
}
public function build_item($id,$tpl_item){
global $msg;
global $charset;
$page=$this->data[$id];
$item=$tpl_item;
$item = str_replace("!!name!!",htmlentities($page['name'],ENT_QUOTES, $charset),$item);
$item = str_replace("!!id!!",$page['id'],$item);
return $item;
}
}// End of class
class cms_page {
public $id; // identifiant de l'objet
public $hash; // hash de l'objet
public $name; // nom
public $description; // description
public $vars= array(); // Variables d'environnement
public function __construct($id=""){
$this->id= $id+0;
if($this->id){
$this->fetch_data();
}
}
protected function fetch_data(){
$this->hash = "";
$this->name = "";
$this->description = "";
$this->vars= array();
if(!$this->id) return false;
// les infos base...
$rqt = "select * from cms_pages where id_page ='".$this->id."'";
$res = mysql_query($rqt);
if(mysql_num_rows($res)){
$row = mysql_fetch_object($res);
$this->hash = $row->page_hash;
$this->name = $row->page_name;
$this->description = $row->page_description;
$this->classement = $row->page_classement;
}
// Variables d'environnement
$rqt = "select * from cms_vars where var_num_page ='".$this->id."' order by var_name";
$res = mysql_query($rqt);
$i=0;
if(mysql_num_rows($res)){
while($row = mysql_fetch_object($res)){
$this->vars[$i]['id']=$row->id_var;
$this->vars[$i]['name']=$row->var_name;
$this->vars[$i]['comment']=$row->var_comment;
$i++;
}
}
}
public function get_form($ajax=0){
global $msg;
global $charset;
global $cms_page_form_tpl,$cms_page_form_del_button_tpl;
global $cms_page_form_ajax_tpl;
global $cms_page_form_var_tpl_0;
global $cms_page_form_var_tpl;
if($ajax)$tpl= $cms_page_form_ajax_tpl;
else $tpl=$cms_page_form_tpl;
$tpl = str_replace("!!name!!",htmlentities($this->name ,ENT_QUOTES, $charset),$tpl);
$tpl = str_replace("!!description!!",htmlentities($this->description,ENT_QUOTES, $charset),$tpl);
if($this->id){
$tpl = str_replace("!!form_title!!",htmlentities($msg["cms_page_form_title"] ,ENT_QUOTES, $charset),$tpl);
$tpl = str_replace("!!cms_page_form_suppr!!",$cms_page_form_del_button_tpl,$tpl);
}else{
$tpl = str_replace("!!form_title!!",htmlentities($msg["cms_new_page_form_title"] ,ENT_QUOTES, $charset),$tpl);
$tpl = str_replace("!!cms_page_form_suppr!!","",$tpl);
}
$tpl = str_replace("!!id!!",$this->id,$tpl);
$item=$cms_page_form_var_tpl_0;
$items="";
$cpt=1;
if(!count($this->vars)){
$item = str_replace("!!var_name!!","",$item);
$item = str_replace("!!var_comment!!","",$item);
$item = str_replace("!!var_id!!","",$item);
$item = str_replace("!!cpt!!",$cpt,$item);
$items=$item;
}
foreach($this->vars as $var ){
$item = str_replace("!!var_name!!",$var['name'],$item);
$item = str_replace("!!var_comment!!",$var['comment'],$item);
$item = str_replace("!!var_id!!",$var['id'],$item);
$item = str_replace("!!cpt!!",$cpt,$item);
$cpt++;
$items.=$item;
$item=$cms_page_form_var_tpl;
}
$items = str_replace("!!var_count!!",$cpt,$items);
$tpl = str_replace("!!var_list!!",$items,$tpl);
return $tpl;
}
public function get_from_form(){
global $id;
global $name;
global $description;
global $var_count;
$this->id = $id+0;
$this->name = stripslashes($name);
$this->description = stripslashes($description);
$this->vars= array();
$var_count+0;
for($i=0; $i<$var_count; $i++){
$cpt=$i+1;
$name="var_name_".$cpt;
$comment="var_comment_".$cpt;
global $$name;
global $$comment;
if($$name){
$this->vars[$i]['name']=stripslashes( $$name);
$this->vars[$i]['comment']=stripslashes( $$comment);
}
}
}
public function save_page_classement($id_page,$classement){
$id_cadre+=0;
$query = "update cms_pages set page_classement='$classement' where id_cadre = ".$id_page;
mysql_query($query);
}
public function save(){
if(!$this->name) return;
if($this->id){
$save = "update ";
$clause = "where id_page = '".$this->id."'";
}else{
$save = "insert into ";
$clause = "";
}
$save.= "cms_pages set
page_name = '".addslashes($this->name)."',
page_description = '".addslashes($this->description)."'
$clause";
mysql_query($save);
if(!$this->id){
$this->id = mysql_insert_id();
$hash=cms_hash_new("cms_pages",$this->id);
$req="update cms_pages set page_hash = '".addslashes($hash)."' where id_page = '".$this->id."'";
mysql_query($req);
}
$this->delete_vars();
foreach($this->vars as $var ){
$req = "insert into cms_vars set
var_num_page= ".$this->id.",
var_name = '".addslashes($var['name'])."',
var_comment = '".addslashes($var['comment'])."'
";
mysql_query($req);
}
$this->fetch_data();
}
public function delete(){
global $msg;
global $charset;
$this->delete_vars();
$del = "delete from cms_pages where id_page='".$this->id."'";
mysql_query($del);
cms_hash_del($this->hash);
$this->id=0;
return 0;
}
public function delete_vars(){
global $msg;
global $charset;
$del = "delete from cms_vars where var_num_page='".$this->id."'";
mysql_query($del);
return 0;
}
public function get_exported_datas(){
$infos = array(
'id' => $this->id,
'hash' => $this->hash,
'name' => $this->name,
'description' => $this->description,
'env_var' => $this->vars
);
return $infos;
}
}// End of class