%PDF- %PDF-
Direktori : /home/alliance/domains/sedl.alnetis.fr/public_html/inc/classes/ |
Current File : /home/alliance/domains/sedl.alnetis.fr/public_html/inc/classes/Page.php |
<?php class Page extends Load { var $bd; var $language; var $sect; var $nom_table="page"; function __construct($connection) { parent::__construct(); $this->clef_primaire='id_'.$this->nom_table; $this->bd = new BaseOps($connection); $this->language = new Lang($connection); $this->sect = new Section($connection); } // lien vers une page function page_link($id) { $page = $this->infos_page($id); if($page != null) { $section = $this->sect->aff_section($page['section']); return $section['id']."-".$section['permalien']."/".$page['id']."-".$page['permalien'].".html"; } else { return null; } } function aff_actu($id_page,$id_lang){ $id_lang=$this->valideLang($id_page,$id_lang); $query="SELECT * FROM `page` p LEFT JOIN `page_lang` pl ON p.id_page=pl.id_page WHERE pl.id_lang=".$id_lang." AND p.id_page=".$id_page; $actu=$this->bd->select_array($query); // on choppe le premier texte // type 1 2 ou 3 $query="SELECT * FROM `bloc` b LEFT JOIN `bloc_lang` bl ON b.id_bloc=bl.id_bloc WHERE bl.id_lang=".$id_lang." AND (b.type=1 OR b.type=2 OR b.type=3) AND b.id_page=".$id_page." ORDER BY ordre"; $texte=$this->bd->select_array($query); $actu['texte']=htmldecode($texte['texte']); // on choppe la première image // type 2 3 4 9 ou 10 $query="SELECT * FROM `bloc` b LEFT JOIN `bloc_lang` bl ON b.id_bloc=bl.id_bloc WHERE bl.id_lang=".$id_lang." AND (b.type=2 OR b.type=3 OR b.type=4 OR b.type=9 OR b.type=10) AND b.id_page=".$id_page." ORDER BY ordre"; $image=$this->bd->select_array($query); $actu['photo']=$image['photo']; $actu['copyright']=$image['copyright']; return $actu; } // retourne la langue demandée si la page existe dans la langue sinon retourne anglais function valideLang($id_page,$id_lang){ // si anglais on laisse tomber la verif if($id_lang==2){ return $id_lang; } $query="SELECT * FROM `page_lang` WHERE id_page=".$id_page." AND id_lang=".$id_lang; $page_lang=$this->bd->select_array($query); if($page_lang==null || $page_lang['titre']==""){ return 2; } $query="SELECT * FROM `bloc` WHERE id_page='".$id_page."' "; $tab_blocs=$this->bd->select_arrays($query); foreach($tab_blocs as $unbloc){ $query="SELECT valide FROM `bloc_lang` WHERE id_bloc=".$unbloc['id_bloc']." AND id_lang=".$id_lang; $bloc_lang=$this->bd->select_array($query); if((!isset($bloc_lang['valide']) || !$bloc_lang['valide']) && !$unbloc['semivalid']){ return 2; } } return $id_lang; } // lien vers une page function page_link2($id) { $page = $this->infos_page2($id); if($page != null) { $section = $this->sect->aff_section($page['section']); return $section['id']."-".$section['permalien']."/2-".$page['id']."-".$page['permalien'].".html"; } else { return null; } } function infos_page($id,$lang) { $query = "SELECT * FROM `page` WHERE id = ".$id; if($this->bd->isres($query)) { $data = $this->bd->select_array($query); $query = "SELECT * FROM `page_lang` WHERE page = ".$data['id']." AND lang = ".$lang; $datalang = $this->bd->select_array($query); $res = array ( 'id' => $data['id'], 'section' => $data['section'], 'ordre' => $data['ordre'], 'titre' => $datalang['titre'], 'lieu' => $datalang['lieu'], 'public' => $datalang['public'], 'date_debut' => $data['date_debut'], 'date_fin' => $data['date_fin'], 'trad_valide' => $datalang['trad_valide'], 'permalien' => $datalang['permalien'] ); return $res; } else { return null; } } function infos_page2($id,$lang) { $query = "SELECT * FROM `page2` WHERE id = ".$id; if($this->bd->isres($query)) { $data = $this->bd->select_array($query); $query = "SELECT * FROM `page2_lang` WHERE page2 = ".$data['id']." AND lang = ".$lang; $datalang = $this->bd->select_array($query); $res = array ( 'id' => $data['id'], 'section' => $data['section'], 'ordre' => $data['ordre'], 'titre' => $datalang['titre'], 'description' => $datalang['description'], 'bilan' => $datalang['bilan'], 'lieu' => $datalang['lieu'], 'date_debut' => $data['date_debut'], 'date_fin' => $data['date_fin'], 'trad_valide' => $datalang['trad_valide'], 'permalien' => $datalang['permalien'], 'photo1' => $data['photo1'], 'photo2' => $data['photo2'], 'photo3' => $data['photo3'], 'photo4' => $data['photo4'] ); return $res; } else { return null; } } // Liste des blocs function liste_blocs($page,$lang=0) { if($lang==0){ $lang=$this->language->getlangid(); } $query = "SELECT * FROM `bloc` WHERE page = ".$page." ORDER BY ordre"; if($this->bd->isres($query)) { $result = $this->bd->q($query); $nb = 0; while( $data = mysql_fetch_assoc($result)) { $query = "SELECT * FROM `bloc_lang` WHERE bloc = ".$data['id']." AND lang = ".$lang; $datalang = $this->bd->select_array($query); $res[$nb] = array ( 'id' => $data['id'], 'page' => $data['page'], 'ordre' => $data['ordre'], 'type' => $data['type'], 'photo' => $data['photo'], 'taillephoto' => $data['taillephoto'], 'texte' => htmldecode($datalang['texte']), 'soustitre' => $datalang['soustitre'], 'boutontext' => $datalang['bouton'], 'valide' => $data['valide'], 'bouton' => $data['bouton'] ); $nb++; } return $res; } else { return null; } } // Afficher un array de bloc selon le template function afficher_bloc($bloc, $template = false,$language=null) { if(!$template) $template = "page"; include("templates/".$template."/bloc".$bloc['type'].".php"); } // Liste des pages function liste_pages($section=false, $limit=false, $debut=false) { $query = "SELECT * FROM `page`"; if($section) { $query .= " WHERE section = ".$section; } if(!$debut) $debut = 0; $query .= " ORDER BY ordre"; if($limit) { $query .= " LIMIT ".$debut.",".$limit; } if($this->bd->isres($query)) { $result = $this->bd->q($query); $nb = 0; while( $data = mysql_fetch_assoc($result)) { $query = "SELECT * FROM `page_lang` WHERE page = ".$data['id']." AND lang = ".$this->language->getlangid(); $datalang = $this->bd->select_array($query); $res[$nb] = array ( 'id' => $data['id'], 'section' => $data['section'], 'ordre' => $data['ordre'], 'titre' => $datalang['titre'], 'soustitre' => $datalang['soustitre'], 'permalien' => $datalang['permalien'], 'couleur' => $this->sect->couleur_section($data['section']) ); $nb++; } return $res; } else { return null; } } function bloc_page($bloc) { $query = "SELECT * FROM `bloc` WHERE id = ".$bloc; $data = $this->bd->select_array($query); return $data['page']; } function suppr_photo($bloc) { $query = "SELECT * FROM `bloc` WHERE id =".$bloc; $data = $this->bd->select_array($query); if($data['photo'] != null && file_exists("uploads/".$data['photo'])) { unlink("uploads/".$data['photo']); } } function verif_blocs($page) { $blocs = $this->liste_blocs($page); $valide = false; if($blocs != null) { $valide = true; foreach($blocs as $bloc) { if($bloc['valide'] == 0) { $valide = false; } } } else { $valide = true; } return $valide; } } ?>