function splitIndicatifFromNumero($num = '', $mysqli) { echo "splitIndicatifFromNumero<br>"; echo $num . "<br>"; $numero = 0; $idIndicatif = 0; $continue = true; for ($i = 0; $i < pia_strlen($num) && $continue; $i++) { $caractereCourant = pia_substr($num, $i, 1); if (!is_numeric($caractereCourant)) { $continue = false; } } if ($continue == true) { // aucun caractere non numerique n'a ete trouvé $numero = $num; } else { $reqIndicatif = $mysqli->prepare("select idIndicatif from indicatif where nom = ?"); $numero = pia_substr($num, 0, $i - 1); $longueurRestante = pia_strlen($num) - ($i - 1); $indicatif = trim(pia_substr($num, $i - 1, $longueurRestante)); // requete pour trouver l'idIndicatif //$reqIndicatif = "select * from indicatif where nom = '".$indicatif."'"; $reqIndicatif->bind_param('s', $indicatif) or die($mysqli->error); $reqIndicatif->execute() or die($mysqli->error); $reqIndicatif->bind_result($idIndicatif); $fetchIndicatif = $reqIndicatif->fetch(); } return array('numero' => $numero, 'idIndicatif' => $idIndicatif); }
/** * Return the dates as a string to display for evenement display * * @param unknown $fetch : fetch of the request containing the date * @return string date */ private function getDateAsString($res) { $dateTxt = ""; $environDateDebutTxt = ""; if ($res['isDateDebutEnviron'] == '1') { $environDateDebutTxt = "environ "; } switch (strtolower($res['nomTypeEvenement'])) { case 'information (nouveautés)': case 'extension': case 'inauguration': case 'exposition': $articleAvantTypeEvenement = "de l'"; break; default: $articleAvantTypeEvenement = "de"; break; } if (substr($res['dateDebut'], 5) == "00-00") { $datetime = substr($res['dateDebut'], 0, 4); } else { $datetime = $res['dateDebut']; } if ($res['nomTypeEvenement'] == 'Construction') { if ($res['dateDebut'] != '0000-00-00') { $dateTxt = _("Année de construction :") . " <time itemprop='startDate' datetime='" . $datetime . "'>" . $environDateDebutTxt . $this->date->toFrenchAffichage($res['dateDebut']) . "</time>"; } if ($res['dateFin'] != '0000-00-00') { $dateTxt .= " (-> " . $this->date->toFrenchAffichage($res['dateFin']) . ")"; $retourDateFin = " (-> " . $this->date->toFrenchAffichage($res['dateFin']) . ")"; } } else { if ($res['dateDebut'] != '0000-00-00') { if ($res['MH'] != '1' && $res['ISMH'] != '1') { if (pia_strlen($this->date->toFrench($res['dateDebut'])) <= 4) { if (archiPersonne::isPerson($idEvenementGroupeAdresse)) { $nomTypeEvenement = "début"; } else { $nomTypeEvenement = strtolower($res['nomTypeEvenement']); } $dateTxt = _("Année") . " " . $articleAvantTypeEvenement . " <time itemprop='startDate' datetime='" . $datetime . "'>" . $nomTypeEvenement . " : {$environDateDebutTxt}" . $this->date->toFrenchAffichage($res['dateDebut']) . "</time>"; } else { if (archiPersonne::isPerson($idEvenementGroupeAdresse)) { $typeEvenement = ""; } else { $typeEvenement = $articleAvantTypeEvenement . " " . strtolower($res['nomTypeEvenement']); } $dateTxt = _("Date") . " <time itemprop='startDate' datetime='" . $datetime . "'>" . $typeEvenement . " : {$environDateDebutTxt}" . $this->date->toFrenchAffichage($res['dateDebut']) . "</time>"; } } if ($res['MH'] == '1') { $dateTxt = "<b>" . _("Classement Monument Historique") . "</b> {$environDateDebutTxt} le " . $this->date->toFrenchAffichage($res['dateDebut']); $isMH = true; } if ($res['ISMH'] == '1') { $dateTxt = "<b>" . _("Inscription à l'Inventaire Supplémentaire des Monuments Historiques") . "</b> {$environDateDebutTxt} : " . $this->date->toFrenchAffichage($res['dateDebut']); if ($res['MH'] == '1') { $dateTxt .= "<br><b>" . _("Classement Monument Historique") . "</b> {$environDateDebutTxt} : " . $this->date->toFrenchAffichage($res['dateDebut']); } $isISMH = true; } } if ($res['dateFin'] != '0000-00-00') { if (pia_strlen($this->date->toFrench($res['dateFin'])) <= 4) { $dateTxt .= " " . _("à") . " " . $this->date->toFrenchAffichage($res['dateFin']); } else { $dateTxt .= " " . _("au") . " " . $this->date->toFrenchAffichage($res['dateFin']); } } } return $dateTxt; }
public function getArrayEncartAdressesImmeublesAvantApres($params = array()) { $html = ""; $t = new Template('modules/archi/templates/'); $t->set_filenames(array('encartAdresse' => 'encartAdresseDetailAdresse.tpl')); $i = new archiImage(); if (isset($this->variablesGet['archiIdAdresse'])) { $idAdresseCourante = $this->variablesGet['archiIdAdresse']; } else { $idAdresseCourante = $this->getIdAdresseFromIdEvenementGroupeAdresse($params['idEvenementGroupeAdresse']); } // recherche de l'image principale courante , sinon celle de position 1 , sinon celle par defaut // image centrale = image2 $arrayImage2 = $this->getUrlImageFromAdresse(0, 'moyen', array('idEvenementGroupeAdresse' => $params['idEvenementGroupeAdresse'])); $isPhotoCentrale = false; $dimensions = array(); if ($arrayImage2['trouve']) { $isPhotoCentrale = true; // list($w,$h) = getimagesize($this->getCheminPhysique()."images/moyen/".$arrayImage2['dateUpload']."/".$arrayImage2['idHistoriqueImage'].".jpg"); //TODO : Change back URL for production list($w, $h) = getimagesize("images/moyen/" . $arrayImage2['dateUpload'] . "/" . $arrayImage2['idHistoriqueImage'] . ".jpg"); $newWGrand = round(75 * $w / 100); $newHGrand = round(75 * $h / 100); $newWPetit = round(35 * $w / 100); $newHPetit = round(35 * $h / 100); $t->assign_vars(array('image2' => "<div id='divImagePetit2' style='display:none;'><img src='" . $arrayImage2['url'] . "' alt='' width={$newWPetit} height={$newHPetit} id='image2Petit'></div><div id='divImageGrand2' style='display:block;'><img src='images/moyen/" . $arrayImage2['dateUpload'] . "/" . $arrayImage2['idHistoriqueImage'] . ".jpg' alt='' id='image2Grand' itemprop='image'></div>")); } else { // image par defaut , si aucune image liee a l'adresse $isPhotoCentrale = true; list($w, $h) = getimagesize($this->getUrlRacine() . "resizeImage.php"); $newWGrand = round(75 * $w / 100); $newHGrand = round(75 * $h / 100); $newWPetit = round(35 * $w / 100); $newHPetit = round(35 * $h / 100); $t->assign_vars(array('image2' => "<div id='divImagePetit2' style='display:none;'><img src='resizeImage.php' alt='' width={$newWPetit} height={$newHPetit} id='image2Petit'></div><div id='divImageGrand2' style='display:block;'><img src='resizeImage.php' alt='' width={$newWGrand} height={$newHGrand} id='image2Grand'></div>")); } // fabrication de la liste des adresses affichées sur l'encart // adresse courante affichée en rouge: //$txtAdresseCourante = $this->getIntituleAdresseFrom($idAdresseCourante,'idAdresse',array('noSousQuartier'=>true,'noQuartier'=>true,'noVille'=>true)); // recherche des autres adresses du groupe d'adresse courant //$txtAutreAdressesGroupeAdresse = ""; $txtAdresses = ""; $reqAdresseDuGroupeAdresse = "\n SELECT ha1.idAdresse as idAdresse,ha1.numero as numero, ha1.idRue as idRue, IF(ha1.idIndicatif='0','',i.nom) as nomIndicatif, ha1.idQuartier as idQuartier, ha1.idSousQuartier as idSousQuartier\n FROM historiqueAdresse ha2, historiqueAdresse ha1\n LEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse\n LEFT JOIN indicatif i ON i.idIndicatif = ha1.idIndicatif\n WHERE ha2.idAdresse = ha1.idAdresse\n AND ae.idEvenement ='" . $params['idEvenementGroupeAdresse'] . "'\n\n GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse\n HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n ORDER BY ha1.numero,ha1.idRue\n "; //AND ha1.idAdresse<>'".$idAdresseCourante."' $resAdresseDuGroupeAdresse = $this->connexionBdd->requete($reqAdresseDuGroupeAdresse); if (mysql_num_rows($resAdresseDuGroupeAdresse) > 0) { $arrayNumero = array(); while ($fetchAdressesGroupeAdresse = mysql_fetch_assoc($resAdresseDuGroupeAdresse)) { $isAdresseCourante = false; if ($idAdresseCourante == $fetchAdressesGroupeAdresse['idAdresse']) { $isAdresseCourante = true; } if ($fetchAdressesGroupeAdresse['idRue'] == '0' || $fetchAdressesGroupeAdresse['idRue'] == '') { if ($fetchAdressesGroupeAdresse['idQuartier'] != '' && $fetchAdressesGroupeAdresse['idQuartier'] != '0') { $arrayNumero[$this->getIntituleAdresseFrom($fetchAdressesGroupeAdresse['idAdresse'], 'idAdresse', array('noSousQuartier' => true, 'noQuartier' => false, 'noVille' => true))][] = array('indicatif' => $fetchAdressesGroupeAdresse['nomIndicatif'], 'numero' => $fetchAdressesGroupeAdresse['numero'], 'url' => $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $fetchAdressesGroupeAdresse['idAdresse'], 'archiIdEvenementGroupeAdresse' => $params['idEvenementGroupeAdresse'])), 'isAdresseCourante' => $isAdresseCourante); } if ($fetchAdressesGroupeAdresse['idSousQuartier'] != '' && $fetchAdressesGroupeAdresse['idSousQuartier'] != '0') { $arrayNumero[$this->getIntituleAdresseFrom($fetchAdressesGroupeAdresse['idAdresse'], 'idAdresse', array('noSousQuartier' => false, 'noQuartier' => true, 'noVille' => true))][] = array('indicatif' => $fetchAdressesGroupeAdresse['nomIndicatif'], 'numero' => $fetchAdressesGroupeAdresse['numero'], 'url' => $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $fetchAdressesGroupeAdresse['idAdresse'], 'archiIdEvenementGroupeAdresse' => $params['idEvenementGroupeAdresse'])), 'isAdresseCourante' => $isAdresseCourante); } } else { $arrayNumero[$this->getIntituleAdresseFrom($fetchAdressesGroupeAdresse['idRue'], 'idRueWithNoNumeroAuthorized', array('noSousQuartier' => true, 'noQuartier' => true, 'noVille' => true))][] = array('indicatif' => $fetchAdressesGroupeAdresse['nomIndicatif'], 'numero' => $fetchAdressesGroupeAdresse['numero'], 'url' => $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $fetchAdressesGroupeAdresse['idAdresse'], 'archiIdEvenementGroupeAdresse' => $params['idEvenementGroupeAdresse'])), 'isAdresseCourante' => $isAdresseCourante); } //$txtAutreAdressesGroupeAdresse .= "<br><a href='".$this->creerUrl('','',array('archiAffichage'=>'adresseDetail','archiIdAdresse'=>$fetchAutresAdressesGroupeAdresse['idAdresse'],'archiIdEvenementGroupeAdresse'=>$params['idEvenementGroupeAdresse']))."'>".$this->getIntituleAdresseFrom($fetchAutresAdressesGroupeAdresse['idAdresse'],'idAdresse',array('noSousQuartier'=>true,'noQuartier'=>true,'noVille'=>true))."</a>"; } } // affichage adresses regroupees foreach ($arrayNumero as $intituleRue => $arrayInfosNumero) { $isSelectedRue = false; $isUnSeulNumeroSurGroupeAdresse = false; if (count($arrayInfosNumero) == 1) { // s'il n'y a qu'un seul numero dans le groupe d'adresse de la rue courante , on fait le lien href sur tout le texte de l'adresse , pas seulement sur le numero if ($arrayInfosNumero[0]['numero'] == '0') { $arrayInfosNumero[0]['numero'] = ''; } if ($arrayInfosNumero[0]['isAdresseCourante'] == true) { $txtAdresses .= "<a href='" . $arrayInfosNumero[0]['url'] . "' style='font-weight:bold;'>" . $arrayInfosNumero[0]['numero'] . $arrayInfosNumero[0]['indicatif'] . " " . $intituleRue . "</a><span style='color:#4b4b4b'>-</span>"; $isUnSeulNumeroSurGroupeAdresse = true; } else { $txtAdresses .= "<a href='" . $arrayInfosNumero[0]['url'] . "'>" . $arrayInfosNumero[0]['numero'] . $arrayInfosNumero[0]['indicatif'] . " " . $intituleRue . "</a><span style='color:#4b4b4b'>-</span>"; $isUnSeulNumeroSurGroupeAdresse = true; } } else { foreach ($arrayInfosNumero as $indice => $infosNumero) { if ($infosNumero['isAdresseCourante'] == true) { if ($infosNumero['numero'] == '' || $infosNumero['numero'] == '0') { $isSelectedRue = true; } else { $txtAdresses .= "<a href='" . $infosNumero['url'] . "'>" . $infosNumero['numero'] . $infosNumero['indicatif'] . "</a><span style='color:#4b4b4b'>-</span>"; $isSelectedRue = true; } } else { if ($infosNumero['numero'] == '' || $infosNumero['numero'] == '0') { //rien } else { $txtAdresses .= "<a href='" . $infosNumero['url'] . "'>" . $infosNumero['numero'] . $infosNumero['indicatif'] . "</a><span style='color:#4b4b4b'>-</span>"; } } } } $txtAdresses = pia_substr($txtAdresses, 0, -pia_strlen("<span style='color:#4b4b4b'>-</span>")); if (!$isUnSeulNumeroSurGroupeAdresse) { if ($isSelectedRue) { $txtAdresses .= "<span >" . $intituleRue . "</span><br>"; } else { $txtAdresses .= "<span style='color:#4B4B4B;'>" . $intituleRue . "</span><br>"; } } else { $txtAdresses .= "<br>"; } } $txtAdresses = pia_substr($txtAdresses, 0, -pia_strlen("<br>")); $t->assign_vars(array('adresse2' => $txtAdresses)); // ensuite on recherche les groupes d'adresses autour de l'adresse courante, sans afficher les adresses du meme groupe d'adresse que le courant $arrayIdAdresses = $this->getArrayIdAdressesNearCurrentAdresse(array('idAdresse' => $idAdresseCourante, 'idEvenementGroupeAdresseCourant' => $params['idEvenementGroupeAdresse'])); if (isset($arrayIdAdresses['avant']['idAdresse'])) { $infosImageAvant = $this->getArrayInfosImageAvantOrApres(array('positionImage' => 'avant', 'idAdresse' => $arrayIdAdresses['avant']['idAdresse'], 'idEvenementGroupeAdresse' => $arrayIdAdresses['avant']['idEvenementGroupeAdresse'])); $t->assign_vars(array('image1' => $infosImageAvant['image'])); $t->assign_vars(array('adresse1' => $infosImageAvant['adresse'])); } if (isset($arrayIdAdresses['apres']['idAdresse'])) { $infosImageApres = $this->getArrayInfosImageAvantOrApres(array('positionImage' => 'apres', 'idAdresse' => $arrayIdAdresses['apres']['idAdresse'], 'idEvenementGroupeAdresse' => $arrayIdAdresses['apres']['idEvenementGroupeAdresse'])); $t->assign_vars(array('image3' => $infosImageApres['image'])); $t->assign_vars(array('adresse3' => $infosImageApres['adresse'])); } // si une adresse avant ou apres n'a pas ete trouvée , on va chercher les adresses les plus proches qui ne sont pas dans cette rue (car si elles sont dans cette rue , elles sont forcement dans le parcours if (isset($arrayIdAdresses['apres']['idAdresse']) && !isset($arrayIdAdresses['avant']['idAdresse']) || !isset($arrayIdAdresses['apres']['idAdresse']) && isset($arrayIdAdresses['avant']['idAdresse'])) { $arrayCoordonnees = $this->getCoordonneesFrom($idAdresseCourante, 'idAdresse'); $arrayRue = $this->getIdRuesFrom($idAdresseCourante, 'idAdresse'); $idVilleAdresseCourante = $this->getIdVilleFrom($idAdresseCourante, 'idAdresse'); // idVilleCourante pour rester dans les adresses de la ville en cours , et pas avoir en resultat une adresse d'une autre ville if ($arrayCoordonnees['latitude'] == '') { $arrayCoordonnees['latitude'] = 0; } if ($arrayCoordonnees['longitude'] == '') { $arrayCoordonnees['longitude'] = 0; } $reqAdresseProche = "\n SELECT ha1.idAdresse as idAdresse, ((acos(sin(" . $arrayCoordonnees['latitude'] . "*PI()/180) * sin(ha1.latitude*PI()/180) + cos(" . $arrayCoordonnees['latitude'] . "*PI()/180) * cos(ha1.latitude*PI()/180) * cos((" . $arrayCoordonnees['longitude'] . " - ha1.longitude)*PI()/180))/ pi() * 180.0)* 60 * 1.1515 * 1.609344)*1000 as distance, ae.idEvenement as idEvenementGroupeAdresse\n FROM historiqueAdresse ha2, historiqueAdresse ha1\n LEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse\n LEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement\n LEFT JOIN rue r ON r.idRue = ha1.idRue\n LEFT JOIN sousQuartier sq ON sq.idSousQuartier = r.idSousQuartier\n LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier\n LEFT JOIN ville v ON v.idVille = q.idVille\n WHERE\n ha2.idAdresse = ha1.idAdresse\n AND ha1.idRue<>'" . $arrayRue[0] . "'\n AND v.idVille = '" . $idVilleAdresseCourante . "'\n GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse,ee.idEvenement\n HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse) AND count(ee.idEvenement)>0\n ORDER BY distance ASC\n LIMIT 1\n "; $resAdresseProche = $this->connexionBdd->requete($reqAdresseProche); $fetchAdresseProche = mysql_fetch_assoc($resAdresseProche); // affichage de l'adresse if (!isset($arrayIdAdresses['avant']['idAdresse'])) { $infosImageAvant = $this->getArrayInfosImageAvantOrApres(array('positionImage' => 'avant', 'idAdresse' => $fetchAdresseProche['idAdresse'], 'idEvenementGroupeAdresse' => $fetchAdresseProche['idEvenementGroupeAdresse'])); $t->assign_vars(array('image1' => $infosImageAvant['image'])); $t->assign_vars(array('adresse1' => $infosImageAvant['adresse'])); } elseif (!isset($arrayIdAdresses['apres']['idAdresse'])) { $infosImageAvant = $this->getArrayInfosImageAvantOrApres(array('positionImage' => 'apres', 'idAdresse' => $fetchAdresseProche['idAdresse'], 'idEvenementGroupeAdresse' => $fetchAdresseProche['idEvenementGroupeAdresse'])); $t->assign_vars(array('image3' => $infosImageAvant['image'])); $t->assign_vars(array('adresse3' => $infosImageAvant['adresse'])); } } elseif (!isset($arrayIdAdresses['apres']['idAdresse']) && !isset($arrayIdAdresses['avant']['idAdresse'])) { // s'il n'y pas ni adresse avant ni adresse apres, on prend l'adresse la plus proche qui n'est pas dans la rue , on la met a gauche , l'adresse la plus proche suivante on la met a droite $arrayCoordonnees = $this->getCoordonneesFrom($idAdresseCourante, 'idAdresse'); $arrayRue = $this->getIdRuesFrom($idAdresseCourante, 'idAdresse'); $idVilleAdresseCourante = $this->getIdVilleFrom($idAdresseCourante, 'idAdresse'); // idVilleCourante pour rester dans les adresses de la ville en cours , et pas avoir en resultat une adresse d'une autre ville if ($arrayCoordonnees['latitude'] == '') { $arrayCoordonnees['latitude'] = 0; } if ($arrayCoordonnees['longitude'] == '') { $arrayCoordonnees['longitude'] = 0; } $reqAdressesProches = "\n SELECT DISTINCT ae.idEvenement as idEvenementGroupeAdresse\n FROM _adresseEvenement ae\n LEFT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n LEFT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n LEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement\n LEFT JOIN rue r ON r.idRue = ha1.idRue\n LEFT JOIN sousQuartier sq ON sq.idSousQuartier = r.idSousQuartier\n LEFT JOIN quartier q ON q.idQuartier = sq.idQuartier\n LEFT JOIN ville v ON v.idVille = q.idVille\n WHERE\n ha2.idAdresse = ha1.idAdresse\n AND ha1.idRue<>'" . $arrayRue[0] . "'\n AND v.idVille = '" . $idVilleAdresseCourante . "'\n GROUP BY ha1.idAdresse, ha1.idHistoriqueAdresse,ee.idEvenement\n HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse) AND count(ee.idEvenement)>0\n ORDER BY ((acos(sin(" . $arrayCoordonnees['latitude'] . "*PI()/180) * sin(ha1.latitude*PI()/180) + cos(" . $arrayCoordonnees['latitude'] . "*PI()/180) * cos(ha1.latitude*PI()/180) * cos((" . $arrayCoordonnees['longitude'] . " - ha1.longitude)*PI()/180))/ pi() * 180.0)* 60 * 1.1515 * 1.609344)*1000 ASC\n\n "; $resAdressesProches = $this->connexionBdd->requete($reqAdressesProches); $fetchAdressesProches = mysql_fetch_assoc($resAdressesProches); $idAdresseAvant = $this->getIdAdresseFromIdEvenementGroupeAdresse($fetchAdressesProches['idEvenementGroupeAdresse']); $infosImageAvant = $this->getArrayInfosImageAvantOrApres(array('positionImage' => 'avant', 'idAdresse' => $idAdresseAvant, 'idEvenementGroupeAdresse' => $fetchAdressesProches['idEvenementGroupeAdresse'])); if (isset($infosImageAvant['image'])) { $t->assign_vars(array('image1' => $infosImageAvant['image'])); } if (isset($infosImageAvant['adresse'])) { $t->assign_vars(array('adresse1' => $infosImageAvant['adresse'])); } $fetchAdressesProches = mysql_fetch_assoc($resAdressesProches); $idAdresseApres = $this->getIdAdresseFromIdEvenementGroupeAdresse($fetchAdressesProches['idEvenementGroupeAdresse']); $infosImageApres = $this->getArrayInfosImageAvantOrApres(array('positionImage' => 'apres', 'idAdresse' => $idAdresseApres, 'idEvenementGroupeAdresse' => $fetchAdressesProches['idEvenementGroupeAdresse'])); if (isset($infosImageApres['image'])) { $t->assign_vars(array('image3' => $infosImageApres['image'])); } if (isset($infosImageApres['adresse'])) { $t->assign_vars(array('adresse3' => $infosImageApres['adresse'])); } } $titre = $this->getIntituleAdresseFrom($params['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('afficheTitreSiTitreSinonRien' => true)); if ($titre != '') { $t->assign_block_vars('isTitre', array('titre' => $titre)); } ob_start(); $t->pparse('encartAdresse'); $html .= ob_get_contents(); ob_end_clean(); // javascript a mettre dans le header , on le retourne donc dans la fonction $jsHeader = "\n <script >\n function imageOver(numImage)\n {\n if(numImage==1)\n {\n if(document.getElementById('divImagePetit1'))\n {\n document.getElementById('divImagePetit1').style.display='none';\n document.getElementById('divImageGrand1').style.display='block';\n }\n\n if(document.getElementById('divImagePetit2'))\n {\n document.getElementById('divImageGrand2').style.display='none';\n document.getElementById('divImagePetit2').style.display='block';\n }\n\n if(document.getElementById('divImagePetit3'))\n {\n document.getElementById('divImageGrand3').style.display='none';\n document.getElementById('divImagePetit3').style.display='block';\n }\n }\n\n if(numImage==2)\n {\n /*document.getElementById('divImagePetit1').style.display='none';\n document.getElementById('divImageGrand2').style.display='none';\n document.getElementById('divImageGrand3').style.display='none';\n document.getElementById('divImageGrand1').style.display='block';\n document.getElementById('divImagePetit2').style.display='block';\n document.getElementById('divImagePetit3').style.display='block';*/\n }\n\n if(numImage==3)\n {\n if(document.getElementById('divImagePetit1'))\n {\n document.getElementById('divImagePetit1').style.display='none';\n document.getElementById('divImageGrand1').style.display='block';\n }\n\n if(document.getElementById('divImagePetit2'))\n {\n document.getElementById('divImageGrand2').style.display='none';\n document.getElementById('divImagePetit2').style.display='block';\n }\n\n if(document.getElementById('divImagePetit3'))\n {\n document.getElementById('divImageGrand3').style.display='block';\n document.getElementById('divImagePetit3').style.display='none';\n }\n }\n }\n\n function imageOut(numImage)\n {\n if(numImage==1)\n {\n if(document.getElementById('divImagePetit2'))\n {\n document.getElementById('divImagePetit2').style.display='block';\n document.getElementById('divImageGrand2').style.display='none';\n }\n\n if(document.getElementById('divImagePetit3'))\n {\n document.getElementById('divImagePetit3').style.display='block';\n document.getElementById('divImageGrand3').style.display='none';\n }\n }\n else\n if(numImage==2)\n {\n if(document.getElementById('divImagePetit1'))\n {\n document.getElementById('divImagePetit1').style.display='block';\n document.getElementById('divImageGrand1').style.display='none';\n }\n\n if(document.getElementById('divImagePetit3'))\n {\n document.getElementById('divImagePetit3').style.display='block';\n document.getElementById('divImageGrand3').style.display='none';\n }\n\n }\n else\n if(numImage==3)\n {\n if(document.getElementById('divImagePetit1'))\n {\n document.getElementById('divImagePetit1').style.display='block';\n document.getElementById('divImageGrand1').style.display='none';\n }\n\n if(document.getElementById('divImagePetit2'))\n {\n document.getElementById('divImagePetit2').style.display='block';\n document.getElementById('divImageGrand2').style.display='none';\n }\n }\n else\n {\n\n if(document.getElementById('divImagePetit1'))\n {\n document.getElementById('divImagePetit1').style.display='block';\n document.getElementById('divImageGrand1').style.display='none';\n }\n\n if(document.getElementById('divImagePetit2'))\n {\n document.getElementById('divImagePetit2').style.display='none';\n document.getElementById('divImageGrand2').style.display='block';\n }\n\n if(document.getElementById('divImagePetit3'))\n {\n document.getElementById('divImagePetit3').style.display='block';\n document.getElementById('divImageGrand3').style.display='none';\n }\n }\n\n\n }\n </script>\n "; $this->addToJsHeader($jsHeader); return array('html' => $html, 'isPhotoCentrale' => $isPhotoCentrale); }
/** * Generates a reference to the given variable inside the given (possibly nested) * block namespace. This is a string of the form: * ' . $this->_tpldata['parent'][$_parent_i]['$child1'][$_child1_i]['$child2'][$_child2_i]...['varname'] . ' * It's ready to be inserted into an "echo" line in one of the templates. * NOTE: expects a trailing "." on the namespace. * * @param string $namespace ? * @param string $varname ? * * @return string */ function generate_block_varref($namespace, $varname) { // Strip the trailing period. $namespace = pia_substr($namespace, 0, pia_strlen($namespace) - 1); // Get a reference to the data block for this namespace. $varref = $this->generate_block_data_ref($namespace, true); // Prepend the necessary code to stick this in an echo line. // Append the variable reference. $varref .= '[\'' . $varname . '\']'; $varref = '\' . ( ( isset(' . $varref . ') ) ? ' . $varref . ' : \'\' ) . \''; return $varref; }
public function changementMotDePasseOublie() { $html = ""; $configFields = $this->getFieldsFromChangementMotDePasseOublie(); $f = new formGenerator(); $errors = $f->getArrayFromPost($configFields); $erreur = new objetErreur(); if (isset($this->variablesPost['mail']) && $this->variablesPost['mail'] != '' && isset($this->variablesPost['md5']) && $this->verifMD5ChangementMotDePasse($this->variablesPost['md5'], $this->variablesPost['mail'])) { if ($configFields['mdp1']['value'] == $configFields['mdp2']['value']) { if (pia_strlen($configFields['mdp1']['value']) >= 5) { // mise a jour du mot de passe $reqMaj = "update utilisateur set motDePasse=md5('" . $configFields['mdp1']['value'] . "') where mail='" . $this->variablesPost['mail'] . "'"; $resMaj = $this->connexionBdd->requete($reqMaj); $html .= _("Votre mot de passe a été mis à jour.") . "<br>"; } else { $erreur->ajouter(_("Attention un mot de passe doit comporter au moins 5 caractères.")); } } else { $erreur->ajouter(_("Attention le mot de passe et sa vérification ne correspondent pas.")); } } else { $erreur->ajouter(_("Problème changement de mot de passe : il y a un problème avec le formulaire. Merci de contacter l'administrateur.")); } if ($erreur->getNbErreurs() > 0) { $html .= $erreur->afficher(); $html .= $this->afficheFormulaireChangementMotDePasseOublie(); } return $html; }
/** * ? * * @param string $email E-mail * @param string $name Nom * * @return string HTML * */ function encodeEmail_debutpage($email, $name = null) { $email = preg_replace("/\"/", "\\\"", $email); if ($name == null) { $name = $email; } $old = "document.write('<a CLASS=infoacceuil " . "href=\"mailto:{$email}\">{$name}</a>')"; $output = ""; for ($i = 0; $i < pia_strlen($old); $i++) { $output = $output . '%' . bin2hex(pia_substr($old, $i, 1)); } $output = '<script type="text/javascript">eval(unescape(\'' . $output . '\'))</script>'; $output .= '<noscript><div>Vous devez accepter le Javascript' . ' pour voir l\'email</div></noscript>'; return $output; }
function convertYears($date) { $converted = ''; $dateSansSeparateur = preg_replace('#[^0-9/]#', '', $date); if ($date != '') { if (pia_strlen($dateSansSeparateur) <= 4) { $converted = '00/00/' . $date; } else { $tabDate = explode('/', $date); if (count($tabDate) === 2) { $converted = '00/' . $tabDate[0] . '/' . $tabDate[1]; } else { if (count($tabDate) === 3) { $converted = $tabDate[0] . '/' . $tabDate[1] . '/' . $tabDate[2]; } else { //echo "le champ date doit comprendre 8 chiffres :: convertYears (".$date.")"; } } } } return $converted; }
function getArrayFromPost(&$tableauTravail = array(), $param = null, $captcha = false) { global $config; if (empty($param)) { $param = $_POST; } $errors = array(); foreach ($tableauTravail as $name => $value) { switch ($value['type']) { case 'multiple': if (isset($param[$name])) { $tableauTravail[$name]['value'] = $param[$name]; } if ($tableauTravail[$name]["required"]) { if (!isset($param[$name]) or count($param[$name]) < 1) { $errors[] = $name; $tableauTravail[$name]['error'] = 'Champ obligatoire'; } } break; case 'numeric': if (isset($param[$name])) { $tableauTravail[$name]['value'] = $param[$name]; } if ($tableauTravail[$name]["required"]) { if ($param[$name] != $tableauTravail[$name]["default"] and $this->estChiffre($param[$name])) { // OK } else { if (!$this->estChiffre($param[$name])) { $errors[] = 'Ce champ requière une valeur numérique'; $tableauTravail[$name]['error'] = 'Ce champ requière une valeur numérique'; } else { $errors[] = 'Valeur obligatoire'; $tableauTravail[$name]['error'] = 'Valeur obligatoire'; } } } elseif (isset($tableauTravail[$name]) && isset($param[$name]) && $tableauTravail[$name]["required"] == false && $param[$name] != '' && !$this->estChiffre($param[$name])) { $errors[] = 'Ce champ requière une valeur numérique'; $tableauTravail[$name]['error'] = 'Ce champ requière une valeur numérique'; } else { if (isset($param[$name]) && $param[$name] == '') { $tableauTravail[$name]['value'] = $tableauTravail[$name]['default']; } } break; case 'date': if (isset($param[$name])) { $tableauTravail[$name]['value'] = $param[$name]; $dateSansSeparateur = preg_replace('#[^0-9/]#', '', $param[$name]); if ($tableauTravail[$name]['required'] == true) { if (pia_strlen($param[$name]) > 0) { if (pia_strlen($dateSansSeparateur) == 4) { $tableauTravail[$name]['value'] = '00/00/' . $dateSansSeparateur; } else { $tabDate = explode('/', $param[$name]); if (count($tabDate) === 2) { $tableauTravail[$name]['value'] = '00/' . $tabDate[0] . '/' . $tabDate[1]; } else { if (count($tabDate) === 3) { $tableauTravail[$name]['value'] = $tabDate[0] . '/' . $tabDate[1] . '/' . $tabDate[2]; } else { $errors[] = 'date'; $tableauTravail[$name]['error'] = 'Ce champ doit comprendre 8 chiffres'; } } } } } } else { $tableauTravail[$name]['value'] = $tableauTravail[$name]['default']; } break; case 'hidden': case 'bigText': case 'simpleList': case 'text': if (isset($param[$name])) { $tableauTravail[$name]['value'] = $param[$name]; if ($tableauTravail[$name]["required"]) { // le champs est requis if ($param[$name] != $tableauTravail[$name]["default"] && trim($param[$name]) != "") { // rien } else { // erreur $errors[] = $name; $tableauTravail[$name]['error'] = 'Champ obligatoire'; } } } else { $tableauTravail[$name]['value'] = $tableauTravail[$name]['default']; } break; case 'email': if (isset($param[$name])) { $tableauTravail[$name]['value'] = $param[$name]; if ($tableauTravail[$name]["required"]) { $mailObj = new mailObject(); // le champs est requis if ($param[$name] != $tableauTravail[$name]["default"] && trim($param[$name]) != "" && $mailObj->isMail($param[$name])) { // rien } else { // erreur $errors[] = $name; $tableauTravail[$name]['error'] = 'Champ obligatoire'; } } } else { $tableauTravail[$name]['value'] = $tableauTravail[$name]['default']; } break; case 'checkbox': if (isset($param[$name])) { $tableauTravail[$name]['value'] = '1'; } else { if ($tableauTravail[$name]['default'] != '') { $tableauTravail[$name]['value'] = $tableauTravail[$name]['default']; } else { $tableauTravail[$name]['value'] = '0'; } } break; case 'radio': $tableauTravail[$name]['value'] = $param[$name]; if ($tableauTravail[$name]["required"]) { // le champs est requis if ($param[$name] != $tableauTravail[$name]["default"] && $param[$name] != "") { // rien } else { // erreur $errors[] = $name; $tableauTravail[$name]['error'] = 'Champ obligatoire'; } } break; case 'checklist': $tableauTravail[$name]['value'] = $param[$name]; foreach ($param[$name] as $idCourant) { if (!$this->estChiffre($idCourant)) { $errors[] = $name; $tableauTravail[$name]['error'] = 'Mauvaise valeur !'; } } break; case 'password': $tableauTravail[$name]['value'] = $param[$name]; // si le champ est différent de '' c'est qu'on va modifier le mot de passe // sinon on ne modifie pas // erreur si les deux champs sont différents if ($tableauTravail[$name]['value'] != "") { if (isset($tableauTravail[$name]['fieldToCompare'])) { if ($tableauTravail[$name]['value'] == $param[$tableauTravail[$name]['fieldToCompare']]) { // rien } else { $errors[] = $name; $tableauTravail[$name]['error'] = 'Les mots de passe diffèrent'; } } } else { if ($tableauTravail[$name]['required']) { $errors[] = $name; $tableauTravail[$name]['error'] = 'Mot de passe requis'; } } break; case 'captcha': $securimage = new Securimage(); //debug(array('fonction' =>$securimage->check($param[$name]) , 'param' => $param[$name],'name' => $name)); if ($securimage->check($param[$name]) == false) { // the code was incorrect // handle the error accordingly with your other error checking $errors[] = $name; $tableauTravail[$name]['error'] = 'Erreur dans le code à recopier'; } break; default: $tableauTravail[$name]['error'] = 'Ce type de champ n\'existe pas !'; break; } // verification de l'existence d'un identifiant au moment de l'ajout quand il y a une liaison vers une autre table , cas des listes select, multiple etc // si la valeur n'existe pas , on renvoi une erreur if (isset($tableauTravail[$name]['checkExist']) && $tableauTravail[$name]['error'] == '' and $tableauTravail[$name]['value'] != 0) { if (is_array($tableauTravail[$name]['value'])) { $liste = implode("', '", $tableauTravail[$name]['value']); $sql = "SELECT DISTINCT " . $tableauTravail[$name]['checkExist']['primaryKey'] . " \n FROM " . $tableauTravail[$name]['checkExist']['table'] . " \n WHERE " . $tableauTravail[$name]['checkExist']['primaryKey'] . " IN ('" . $liste . "')"; $resCheck = $this->connexionBdd->requete($sql); if (mysql_num_rows($resCheck) != count($tableauTravail[$name]['value'])) { $tableauTravail[$name]['error'] = "Un élément a été supprimé de la base de données"; } } else { $sql = "SELECT DISTINCT " . $tableauTravail[$name]['checkExist']['primaryKey'] . " \n FROM " . $tableauTravail[$name]['checkExist']['table'] . " \n WHERE " . $tableauTravail[$name]['checkExist']['primaryKey'] . "='" . $tableauTravail[$name]['value'] . "' LIMIT 1"; $resCheck = $this->connexionBdd->requete($sql); if (mysql_num_rows($resCheck) == 0) { $tableauTravail[$name]['error'] = "Cet élément a été supprimé de la base de données"; } } } } if ($captcha) { if (isset($param["g-recaptcha-response"])) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, array('secret' => $config->captchakey, 'response' => $param["g-recaptcha-response"])); $resp = json_decode(curl_exec($ch)); if (!$resp->success) { $errors['captcha-error'] = 'Captcha incorrect !'; } } else { $errors['captcha-error'] = 'Captcha manquant !'; } } return $errors; }
public function getFileNameWithoutExtension($fichier = '') { $retour = ""; $trouve = false; for ($i = pia_strlen($fichier) - 1; $i > 0 && !$trouve; $i--) { if (pia_substr($fichier, $i, 1) == '.') { $trouve = true; } } if ($trouve) { $retour = pia_substr($fichier, 0, $i + 1); } else { $retour = $fichier; } return $retour; }
public function getHtml($params = array()) { $html = ""; $maxValue = $this->getMaxValue(); // cette valeur va permettre de calculer l'echelle la plus pratique a utiliser $nbChiffres = pia_strlen($maxValue); $unite = '1'; for ($i = 0; $i < $nbChiffres - 2; $i++) { $unite .= '0'; } $roundedValue = round($maxValue, -$nbChiffres + 2) + $unite; $hauteur = 200; if (isset($params['hauteur']) && $params['hauteur'] != '') { $hauteur = $params['hauteur']; } $colWidth = 20; if (isset($params['colWidth']) && $params['colWidth'] != '') { $colWidth = $params['colWidth']; } // echelle $heightEchelle = $hauteur; $html .= "<table cellspacing=0 cellpadding=0 border=0 height=" . ($heightEchelle + 50 + 50) . "><tr><td valign=bottom>"; $html .= "<table border=0 cellspacing=0 cellpadding=0 style='background-color:white;' height=" . ($heightEchelle + 50) . ">"; $html .= "<tr>"; $html .= "<td valign=top>"; $html .= " <table height={$heightEchelle} width=60 border=0 cellspacing=0 cellpadding=0 style=''><tr><td width=60 valign=bottom>"; $html .= "<div style='position:relative;'>"; $html .= "<div style='position:absolute;bottom:" . round($heightEchelle / 4) . "px;left:0;width:60px;text-align:right;'>" . round($roundedValue / 4) . "_</div>"; $html .= "<div style='position:absolute;bottom:" . round($heightEchelle / 2) . "px;left:0;width:60px;text-align:right;'>" . round($roundedValue / 2) . "_</div>"; $html .= "<div style='position:absolute;bottom:" . round($heightEchelle / (4 / 3)) . "px;left:0;width:60px;text-align:right;'>" . round($roundedValue / (4 / 3)) . "_</div>"; $html .= "<div style='position:absolute;bottom:0px;left:0;width:60px;text-align:right;'>0_</div>"; $html .= "<div style='position:absolute;bottom:" . $heightEchelle . "px;left:0;width:60px;text-align:right;'>" . $roundedValue . "_</div>"; $html .= "</div>"; $html .= "</td><td style='background-color:black;' width=2></td></tr></table>"; $html .= "</td>"; foreach ($this->listeValues as $indice => $value) { if (is_array($value)) { if (!isset($this->listeModesAffichage[$indice]) || $this->listeModesAffichage[$indice] != 'cumul') { asort($value); } $html .= "<td valign=bottom height=200>"; $html .= "<table cellspacing=0 cellpadding=0 border=0 width={$colWidth} style=''>"; $valPrecedente = 0; $arrayHtmlGraph = array(); foreach ($value as $index => $values) { if (isset($this->listeModesAffichage[$indice]) && $this->listeModesAffichage[$indice] == 'cumul') { // dans ce cas on cumul les barres , on affiche la premiere puis la seconde au dessus $height1 = round($value[$index] * $hauteur / $roundedValue); $arrayHtmlGraph[] = "<tr><td style='" . $this->listeStyles[$indice][$index] . "' height=" . $height1 . "></td></tr>"; } else { // dans ce cas on affiche les barres les une derriere les autres , et ont chacune comme ordonnee 0 au depart $height1 = round(($value[$index] - $valPrecedente) * $hauteur / $roundedValue); $arrayHtmlGraph[] = "<tr><td style='" . $this->listeStyles[$indice][$index] . "' height=" . $height1 . "></td></tr>"; $valPrecedente = $value[$index] - $valPrecedente; } } // et on affiche a l'envers for ($i = count($arrayHtmlGraph) - 1; $i >= 0; $i--) { $html .= $arrayHtmlGraph[$i]; } $html .= "<tr height=50><td style='background-color:white;border-top:1px solid black;font-size:9px;' valign=top>" . $this->listeLibelles[$indice] . "</td></tr>"; // $html .= "</table>"; $html .= "</td>"; } else { $html .= "<td valign=bottom height=200>"; $height = round($value * $hauteur / $roundedValue); $html .= "<table cellspacing=0 cellpadding=0 border=0 height=" . ($height + 50) . " width={$colWidth} style='" . $this->listeStyles[$indice] . "'>"; $html .= "<tr>"; $html .= "<td valign=top></td>"; $html .= "</tr>"; $html .= "<tr height=50><td style='background-color:white;border-top:1px solid black;font-size:9px;' valign=top>" . $this->listeLibelles[$indice] . "</td></tr>"; // $html .= "</table>"; $html .= "</td>"; } } $html .= "</tr>"; $html .= "</table>"; $html .= "</tr>"; $html .= "</table>"; return $html; }
/** * Fonction qui affiche la liste des photos suivant les criteres fournis dans le tableau 'criteres' * * @param array $criteres Critères * * @return string HTML * */ public function afficherListe($criteres = array()) { $html = ''; $html .= $this->afficherFormulaireRecherche(); $formulaire = new formGenerator(); $t = new Template('modules/archi/templates/'); $t->set_filenames(array('detailImage' => 'listeImages.tpl')); $tabParametresAutorises = array('ordre', 'tri', 'nbEnregistrements', 'selection', 'id', "motCle", "dateUploadDu", "dateUploadAu", "datePriseDeVueDu", "datePriseDeVueAu", "pageCourante"); // lien pour l'ajout d'une ou plusieur images dans la bibliotheque , sans préciser si celle(s) ci appartient (iennent) à une adresse ou un evenement $t->assign_vars(array('lienAjoutImage' => $this->creerUrl('', 'ajoutImageBibliotheque'))); foreach ($tabParametresAutorises as $param) { if (isset($this->variablesPost[$param]) and !isset($criteres[$param])) { $criteres[$param] = $this->variablesPost[$param]; } } foreach ($tabParametresAutorises as $param) { if (isset($this->variablesGet[$param]) and !isset($criteres[$param])) { $criteres[$param] = $this->variablesGet[$param]; } } if (!isset($criteres['pageCourante'])) { $criteres['pageCourante'] = 1; } if (!isset($criteres['selection']) or !isset($criteres['id']) or $formulaire->estChiffre($criteres['id']) != 1) { $sqlWhere = '1=1'; } else { switch ($criteres['selection']) { case 'utilisateur': $sqlWhere = 'hI.idUtilisateur=' . $criteres['id']; break; default: $sqlWhere = '1=1'; } } if (!isset($criteres['ordre'])) { $sqlOrdre = 'hI.nom'; } else { switch ($criteres['ordre']) { case 'nom': $sqlOrdre = 'hI.nom'; break; case 'description': $sqlOrdre = 'hI.description'; break; case 'source': $sqlOrdre = 'nomSource'; break; case 'dateAjout': $sqlOrdre = 'hI.dateUpload'; break; default: $sqlOrdre = 'hI.nom'; } } if (isset($criteres['tri'])) { if ($criteres['tri'] == 'desc') { $sqlTri = 'DESC'; } else { $sqlTri = 'ASC'; } } else { $sqlTri = 'ASC'; } // *********************************** // criteres sur les dates // ********************************** $sqlRecherche = ""; // criteres sur les dates d'upload if (isset($criteres['dateUploadDu']) && $criteres['dateUploadDu'] != '' && (!isset($criteres['dateUploadAu']) || $criteres['dateUploadAu'] == '')) { $sqlRecherche .= " and hI.dateUpload='" . $this->date->toBdd($criteres['dateUploadDu']) . "' "; } if (isset($criteres['dateUploadDu']) && $criteres['dateUploadDu'] != '' && (!isset($criteres['dateUploadAu']) || $criteres['dateUploadAu'] == '')) { $sqlRecherche .= " and hI.dateUpload='" . $this->date->toBdd($criteres['dateUploadDu']) . "' "; } if (isset($criteres['dateUploadDu']) && $criteres['dateUploadDu'] != '' && isset($criteres['dateUploadAu']) && $criteres['dateUploadAu'] != '') { $sqlRecherche .= " and hI.dateUpload>='" . $this->date->toBdd($criteres['dateUploadDu']) . "' and hI.dateUpload<='" . $criteres['dateUploadAu'] . "' "; } // criteres sur les dates de prises de vues if (isset($criteres['datePriseDeVueDu']) && $criteres['datePriseDeVueDu'] != '' && (!isset($criteres['datePriseDeVuAu']) || $criteres['datePriseDeVuAu'] == '')) { $sqlRecherche .= " and hI.dateCliche='" . $this->date->toBdd($criteres['datePriseDeVueDu']) . "' "; } if (isset($criteres['datePriseDeVueDu']) && $criteres['datePriseDeVueDu'] != '' && (!isset($criteres['datePriseDeVueAu']) || $criteres['datePriseDeVueAu'] == '')) { $sqlRecherche .= " and hI.dateCliche='" . $this->date->toBdd($criteres['datePriseDeVueDu']) . "' "; } if (isset($criteres['datePriseDeVueDu']) && $criteres['datePriseDeVueDu'] != '' && isset($criteres['datePriseDeVueAu']) && $criteres['datePriseDeVueAu'] != '') { $sqlRecherche .= " and hI.dateCliche>='" . $criteres['datePriseDeVueDu'] . "' and hI.dateCliche<='" . $criteres['datePriseDeVueAu'] . "' "; } // criteres sur le nom/description if (isset($criteres['motCle']) && $criteres['motCle'] != '') { $sqlRecherche .= " and ( "; $arrayListeMots = explode(" ", $criteres['motCle']); foreach ($arrayListeMots as $indice => $value) { $sqlRecherche .= " hI.nom LIKE \"%" . $value . "%\" or hI.description LIKE \"%" . $value . "%\" or "; } if (count($arrayListeMots) > 0) { $sqlRecherche = substr($sqlRecherche, 0, pia_strlen($sqlRecherche) - 3); } $sqlRecherche .= ") "; } // ********************************** // nombre d'images totales //$sqlNbEnregistrements = "SELECT distinct idImage from historiqueImage WHERE ".$sqlWhere.; $sqlNbEnregistrements = "SELECT hI.nom, hI.idImage, CONCAT(hI.dateUpload, '/', hI.idHistoriqueImage) AS urlImage, hI.description, s.nom AS nomSource\n FROM historiqueImage hI2, historiqueImage hI\n LEFT JOIN source s USING (idSource)\n WHERE " . $sqlWhere . " AND hI.idImage = hI2.idImage\n " . $sqlRecherche . "\n GROUP BY hI.idImage, hI.idHistoriqueImage HAVING hI.idHistoriqueImage=MAX(hI2.idHistoriqueImage)\n ORDER BY " . $sqlOrdre . " " . $sqlTri; $resNbEnregistrements = $this->connexionBdd->requete($sqlNbEnregistrements); $nbEnregistrementTotaux = mysql_num_rows($resNbEnregistrements); // nombre d'images affichées sur une page $nbEnregistrementsParPage = 5; $arrayPagination = $this->pagination(array('nomParamPageCourante' => 'pageCourante', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'formulaire', 'champPageCourante' => 'pageCourante', 'idFormulaire' => 'rechercheImages')); echo $arrayPagination['html']; $sql = "SELECT hI.nom, hI.idImage, CONCAT(hI.dateUpload, '/', hI.idHistoriqueImage) AS urlImage, hI.description, s.nom AS nomSource\n FROM historiqueImage hI2, historiqueImage hI\n LEFT JOIN source s USING (idSource)\n WHERE " . $sqlWhere . " AND hI.idImage = hI2.idImage\n " . $sqlRecherche . "\n GROUP BY hI.idImage, hI.idHistoriqueImage HAVING hI.idHistoriqueImage=MAX(hI2.idHistoriqueImage)\n ORDER BY " . $sqlOrdre . " " . $sqlTri . " LIMIT " . $arrayPagination['limitSqlDebut'] . ", " . $nbEnregistrementsParPage; $rep = $this->connexionBdd->requete($sql); $t->assign_vars(array('nbReponses' => $nbEnregistrementTotaux)); if ($nbEnregistrementTotaux > 0) { $tabLiens = array(array('titre' => 'Image', 'url' => '', 'urlOnClick' => '', 'urlDesc' => '', 'urlDescOnClick' => '', 'urlAsc' => '', 'urlAscOnClick' => ''), array('titre' => 'nom', 'url' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'nom', 'pageCourante' => 1))), 'urlOnClick' => '', 'urlDesc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'nom', 'pageCourante' => 1, 'tri' => 'desc'))), 'urlDescOnClick' => '', 'urlAsc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'nom', 'pageCourante' => 1, 'tri' => 'asc'))), 'urlAscOnClick' => ''), array('titre' => 'description', 'url' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'description', 'pageCourante' => 1))), 'urlOnClick' => '', 'urlDesc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'description', 'pageCourante' => 1, 'tri' => 'desc'))), 'urlDescOnClick' => '', 'urlAsc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'description', 'pageCourante' => 1, 'tri' => 'asc'))), 'urlAscOnClick' => ''), array('titre' => 'source', 'url' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'source', 'pageCourante' => 1))), 'urlOnClick' => '', 'urlDesc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'source', 'pageCourante' => 1, 'tri' => 'desc'))), 'urlDescOnClick' => '', 'urlAsc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'source', 'pageCourante' => 1, 'tri' => 'asc'))), 'urlAscOnClick' => '')); $nbLiens = count($tabLiens); for ($i = 0; $i < $nbLiens; $i++) { $t->assign_block_vars('liens', $tabLiens[$i]); } while ($res = mysql_fetch_object($rep)) { $t->assign_block_vars('image', array('url' => $this->creerUrl('', 'imageDetail', array('archiIdImage' => $res->idImage)), 'urlImage' => $this->getUrlImage("mini") . $res->urlImage, 'nom' => htmlspecialchars(stripslashes($res->nom)), 'description' => htmlspecialchars(stripslashes($res->description)), 'source' => $res->nomSource)); } } ob_start(); $t->pparse('detailImage'); $html .= ob_get_contents(); ob_end_clean(); return $html; }
/** * Fonction permettant de connaitre le pourcentage de caracteres d'un certain type dans une chaine * * @param string $string ? * @param string $typeRecherche ? * * @return int * */ public function getPourcentageCaracteresDeType($string = '', $typeRecherche = 'majuscules') { $pourcentage = 0; $totalCaracteresDuTypeRecherche = 0; $longueurChaine = pia_strlen($string); $borneAsciiSuperieur = null; $borneAsciiInferieur = null; $codeEspace = 32; $nbEspaces = 0; $borneAsciiInferieurChiffre = 48; $borneAsciiSuperieurChiffre = 57; $nbChiffres = 0; $nbAutres = 0; switch ($typeRecherche) { case 'majuscules': $borneAsciiInferieur = 65; // A $borneAsciiSuperieur = 90; // Z break; default: echo "Erreur : string::getPourcentageCaracteresDeType => le type transmis en parametre n'a pas ete trouvé<br>"; break; } // parcours de la chaine if ($borneAsciiSuperieur != null && $borneAsciiInferieur != null) { for ($i = 0; $i < $longueurChaine; $i++) { $caractereCourant = pia_substr($string, $i, 1); if (ord($caractereCourant) >= $borneAsciiInferieur && ord($caractereCourant) <= $borneAsciiSuperieur) { $totalCaracteresDuTypeRecherche++; } elseif (ord($caractereCourant) == $codeEspace) { $nbEspaces++; } elseif (ord($caractereCourant) >= $borneAsciiInferieurChiffre && ord($caractereCourant) <= $borneAsciiSuperieurChiffre) { $nbChiffres++; } else { $nbAutres++; } } if ($longueurChaine - $nbEspaces - $nbChiffres - $nbAutres > 0) { $pourcentage = $totalCaracteresDuTypeRecherche / ($longueurChaine - $nbEspaces - $nbChiffres - $nbAutres) * 100; } } return $pourcentage; }