public function afficherFormulaireModification($id = 0, $type = '', $arrayListeIdImages = array()) { $html = ""; $utilisateur = new archiUtilisateur(); $authentification = new archiAuthentification(); //echo "afficherFormulaireModification : id=".$id." type=".$type; $arrayModifUrlParams = array(); echo "<script>\n\n function retirerPrisDepuis(idAdresseValue, identifiantUniqueRetour) {\n document.getElementById('listePrisDepuisDiv'+identifiantUniqueRetour).innerHTML='';\n\n if (idAdresseValue!=0)\n {\n selectField = document.getElementById('prisDepuis'+identifiantUniqueRetour);\n divField = document.getElementById('listePrisDepuisDiv'+identifiantUniqueRetour);\n for(i=0 ; i<selectField.options.length; i++ ) {\n if (selectField.options[i]!=null) {\n if (selectField.options[i].value==idAdresseValue)\n {\n indiceARetirer = i;\n }\n else\n {\n divField.innerHTML+=selectField.options[i].innerHTML+'<a href=\\'#\\' style=\\'cursor:pointer;\\' onclick=\"retirerPrisDepuis(\\''+selectField.options[i].value+'\\', '+identifiantUniqueRetour+')\">(-)</a><br>';\n }\n }\n }\n\n selectField.options[indiceARetirer]=null;\n }\n\n }\n\n\n function retirerVueSur(idAdresseValue, identifiantUniqueRetour) {\n document.getElementById('listeVueSurDiv'+identifiantUniqueRetour).innerHTML='';\n\n if (idAdresseValue!=0)\n {\n selectField = document.getElementById('vueSur'+identifiantUniqueRetour);\n divField = document.getElementById('listeVueSurDiv'+identifiantUniqueRetour);\n for(i=0 ; i<selectField.options.length; i++ ) {\n if (selectField.options[i]!=null) {\n if (selectField.options[i].value==idAdresseValue)\n {\n indiceARetirer = i;\n }\n else\n {\n divField.innerHTML+=selectField.options[i].innerHTML+'<a href=\\'#\\' style=\\'cursor:pointer;\\' onclick=\\\"retirerVueSur(\\''+selectField.options[i].value+'\\', '+identifiantUniqueRetour+')\\\">(-)</a><br>';\n }\n }\n }\n\n selectField.options[indiceARetirer]=null;\n }\n\n }\n </script>\n "; $t = new Template('modules/archi/templates/'); $t->set_filenames(array('imageFormModif' => 'imageFormulaire.tpl')); /****** ** Source - récupration **/ $sqlSource = 'SELECT idSource, nom, idTypeSource FROM source'; $tabSource = array(); if ($result = $this->connexionBdd->requete($sqlSource)) { while ($rep = mysql_fetch_object($result)) { $tabSource[$rep->idSource] = $rep->nom; } } switch ($type) { case 'adresse': break; case 'evenement': // recherche des images liées a l'evenement $arrayListeIdImages = array(); if (isset($this->variablesGet['archiIdEvenement']) && $this->variablesGet['archiIdEvenement'] != '0' && $this->variablesGet['archiIdEvenement'] != '') { $evenement = new archiEvenement(); $adresse = new archiAdresse(); // affichages des recapitulatifs en haut de la page ( adresse + titres des evenements) $idEvenementGroupeAdresse = $evenement->getParent($this->variablesGet['archiIdEvenement']); $idEvenementCourant = $this->variablesGet['archiIdEvenement']; if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) { $person = new archiPersonne(); $infos = $person->getInfosPersonne($idPerson); $t->assign_vars(array('recapitulatifAdresses' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>")); } else { $t->assign_vars(array("recapitulatifAdresses" => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse))); } $t->assign_vars(array("recapitulatifHistoriqueEvenements" => $evenement->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $idEvenementCourant))); $t->assign_vars(array("liensModifEvenements" => $evenement->afficherLiensModificationEvenement($idEvenementCourant))); $reqEvenement = "SELECT distinct idImage from _evenementImage WHERE idEvenement ='" . $this->variablesGet['archiIdEvenement'] . "' ORDER BY position"; $resEvenement = $this->connexionBdd->requete($reqEvenement); while ($fetchEvenement = mysql_fetch_assoc($resEvenement)) { $arrayListeIdImages[] = $fetchEvenement['idImage']; } } break; default: if (count($arrayListeIdImages) == 1) { $evenement = new archiEvenement(); $adresse = new archiAdresse(); if (isset($this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse'] != '') { $idEvenementGroupeAdresse = $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']; $arrayModifUrlParams = array('archiIdEvenementGroupeAdresseAffichageAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']); } else { $idEvenementImageUnique = $this->getArrayIdEvenementFromIdImage($arrayListeIdImages[0]); $idEvenementGroupeAdresse = $evenement->getParent($idEvenementImageUnique); } if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) { $person = new archiPersonne(); $infos = $person->getInfosPersonne($idPerson); $t->assign_vars(array('recapitulatifAdresses' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>")); } else { $t->assign_vars(array("recapitulatifAdresses" => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse))); } } break; } //echo "afficherFormulaireModification $type"; // cas ou le ne precise pas de idCourant ni de type de liaison ( la photo n'est ni liee a un evenement ni une adresse) // on modifie une liste d'images // ***************************************************************************************************************************************************************** if (count($arrayListeIdImages) > 0) { $t->assign_block_vars('isImages', array()); $listeIdImagesAModifier = implode("', '", $arrayListeIdImages); $requeteImages = "\n SELECT\n hi1.idHistoriqueImage as idHistoriqueImage, hi1.idImage as idImage, hi1.nom as nom,\n hi1.dateUpload as dateUpload, hi1.dateCliche as dateCliche, hi1.description as description, hi1.tags as tags,\n hi1.idUtilisateur as idUtilisateur, u.nom as nomUtilisateur, u.prenom as prenomUtilisateur,\n hi1.idSource as idSource, hi1.isDateClicheEnviron as isDateClicheEnviron,\n hi1.numeroArchive as numeroArchive,\n if (_ai.idImage IS NULL, 0, 1) as isAdresseImage,\n if (_ei.idImage IS NULL, 0, 1) as isEvenementImage,\n\n _ai.seSitue as seSitue,\n _ai.prisDepuis as prisDepuis,\n _ai.etage as etage,\n _ai.hauteur as hauteur,\n _ai.idAdresse as idAdresse,\n _ei.idEvenement as idEvenement\n\n FROM historiqueImage hi2, historiqueImage hi1\n LEFT JOIN _evenementImage _ei ON _ei.idImage = hi1.idImage\n LEFT JOIN _adresseImage _ai ON _ai.idImage = hi1.idImage\n LEFT JOIN utilisateur u ON u.idUtilisateur = hi1.idUtilisateur\n\n WHERE hi2.idImage = hi1.idImage\n AND hi1.idImage IN ('" . $listeIdImagesAModifier . "')\n GROUP BY hi1.idImage, hi1.idHistoriqueImage\n HAVING hi1.idHistoriqueImage = max(hi2.idHistoriqueImage)\n\n "; $resImage = $this->connexionBdd->requete($requeteImages); $i = 0; $nomUtilisateur = ""; $prenomUtilisateur = ""; $listeId = array(); $adresseObject = new archiAdresse(); // ******************************************************************************************************************************************** // boucle sur les images // ******************************************************************************************************************************************** while ($fetch = mysql_fetch_array($resImage)) { if ($i == 0) { $nomUtilisateur = $fetch["nomUtilisateur"]; $prenomUtilisateur = $fetch["prenomUtilisateur"]; } $dateCliche = ""; if ($this->date->toFrench($fetch['dateCliche']) == '00/00/0000') { $dateCliche = ""; } else { $dateCliche = $this->date->toFrench($fetch['dateCliche']); } // *********************************************************** // GESTION AFFICHAGE ADRESSES CHAMPS MULTIPLES // gestion de l'affichage des adresses de chaque photo //$arrayGereAffichage = $this->gereAffichageAdresses($fetch['idHistoriqueImage'], $fetch['idImage'], 'modif'); // *********************************************************** //$nbAdressesAffichees = $arrayGereAffichage['nbAdressesAffichees']; $adresseObject = new archiAdresse(); $stringObject = new stringObject(); // adresses prisDepuis $reqPrisDepuis = "SELECT idImage, idAdresse, idEvenementGroupeAdresse FROM _adresseImage WHERE idImage='" . $fetch['idImage'] . "' AND prisDepuis='1'"; $resPrisDepuis = $this->connexionBdd->requete($reqPrisDepuis); $selectPrisDepuisHTML = ""; $divPrisDepuisHTML = ""; while ($fetchPrisDepuis = mysql_fetch_assoc($resPrisDepuis)) { if ($fetchPrisDepuis['idEvenementGroupeAdresse'] != '0') { $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchPrisDepuis['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true)); } else { $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchPrisDepuis['idAdresse'], 'idAdresse'); } $selectPrisDepuisHTML .= "<option value='" . $fetchPrisDepuis['idAdresse'] . "_" . $fetchPrisDepuis['idEvenementGroupeAdresse'] . "' SELECTED>" . $nomAdresse . "</option>"; $divPrisDepuisHTML .= $nomAdresse . "<a onclick=\"retirerPrisDepuis('" . $fetchPrisDepuis['idAdresse'] . "_" . $fetchPrisDepuis['idEvenementGroupeAdresse'] . "', " . $fetch['idHistoriqueImage'] . ");\" style='cursor:pointer;'>(-)</a><br>"; } // adresses vueSur $reqVueSur = "SELECT idImage, idAdresse, idEvenementGroupeAdresse FROM _adresseImage WHERE idImage='" . $fetch['idImage'] . "' AND vueSur='1'"; $resVueSur = $this->connexionBdd->requete($reqVueSur); $selectVueSurHTML = ""; $divVueSurHTML = ""; while ($fetchVueSur = mysql_fetch_assoc($resVueSur)) { if ($fetchVueSur['idEvenementGroupeAdresse'] != '0') { $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchVueSur['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true)); } else { $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchVueSur['idAdresse'], 'idAdresse'); } $selectVueSurHTML .= "<option value='" . $fetchVueSur['idAdresse'] . "_" . $fetchVueSur['idEvenementGroupeAdresse'] . "' SELECTED>" . $nomAdresse . "</option>"; $divVueSurHTML .= $nomAdresse . "<a onclick=\"retirerVueSur('" . $fetchVueSur['idAdresse'] . "_" . $fetchVueSur['idEvenementGroupeAdresse'] . "', " . $fetch['idHistoriqueImage'] . ");\" style='cursor:pointer;'>(-)</a><br>"; } // *********************************************************** // RECUPERATION DES SOURCES // on recupere le nom de la source // *********************************************************** $reqSource = "\n select s.idSource as idSource, s.nom as nom, ts.nom as nomTS , if (ts.nom<>'', concat('(', ts.nom, ')'), '')as nomTypeSource\n from source s\n left join typeSource ts ON ts.idTypeSource = s.idTypeSource\n where idSource = '" . $fetch['idSource'] . "'"; $resSource = $this->connexionBdd->requete($reqSource); $fetchSource = mysql_fetch_assoc($resSource); // *********************************************************** // *********************************************************** // recuperation des données POST, avec par defaut les valeurs de la base de données // *********************************************************** $checkIsDateClicheEnviron = 0; if ($fetch['isDateClicheEnviron'] == 1) { $checkIsDateClicheEnviron = 1; } $tabForm = array('nom_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['nom']), 'description_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['description']), 'dateUpload_' . $fetch['idHistoriqueImage'] => array('type' => 'date', 'required' => false, 'value' => '', 'default' => $this->date->toFrench($fetch['dateUpload'])), 'dateCliche_' . $fetch['idHistoriqueImage'] => array('type' => 'date', 'required' => false, 'value' => '', 'default' => $this->date->toFrench($fetch['dateCliche'])), 'isDateClicheEnviron_' . $fetch['idHistoriqueImage'] => array('type' => 'checkbox', 'required' => false, 'value' => '', 'default' => $checkIsDateClicheEnviron), 'source' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['idSource']), 'source' . $fetch['idHistoriqueImage'] . 'txt' => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetchSource['nom'] . ' ' . $fetchSource['nomTypeSource'] . ''), 'numeroArchive_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['numeroArchive'])); $formulaire = new formGenerator(); // appel de la fonction recuperant les valeurs du formulaire $errors = $formulaire->getArrayFromPost($tabForm); // *********************************************************** // *********************************************************** // assignation des champs de l'adresse // *********************************************************** $popupPrisDepuis = new calqueObject(array('idPopup' => 'popupPrisDepuis' . $fetch['idHistoriqueImage'])); $popupVueSur = new calqueObject(array('idPopup' => 'popupVueSur' . $fetch['idHistoriqueImage'])); $checkIsDateClicheEnviron = ''; if ($tabForm['isDateClicheEnviron_' . $fetch['idHistoriqueImage']]['value'] == '1') { $checkIsDateClicheEnviron = 'checked'; } $auteur = $this->getAuteur($fetch['idImage']); if (is_array($auteur)) { $nomUpload = $auteur["nom"]; $nomAuteur = ""; } else { $nomAuteur = $auteur; $nomUpload = ""; } $licence = $this->getLicence($fetch['idImage']); $idUtilisateur = $authentification->getIdUtilisateur(); $utilisateur = new ArchiUtilisateur(); if ($licence["id"] == 3 && !$utilisateur->isAuthorized('admin_licences', $idUtilisateur) && !$utilisateur->canCopyright(array('idUtilisateur' => $idUtilisateur))) { $selectLicenceHTML = "<span title='" . htmlspecialchars(_("Seul l'auteur peut changer la licence de cette image."), ENT_QUOTES) . "'>" . $licence["name"] . "</span>"; $enableAuthor = "disabled='disabled'"; } else { $enableAuthor = ""; $reqLicence = $this->connexionBdd->requete("SELECT * FROM licences"); $selectLicenceHTML = ""; while ($fetchLicence = mysql_fetch_assoc($reqLicence)) { if ($fetchLicence["id"] != 3 || $utilisateur->isAuthorized('admin_licences', $idUtilisateur) || $utilisateur->canCopyright(array('idUtilisateur' => $idUtilisateur))) { $selectLicenceHTML .= "<input type='radio' value='" . $fetchLicence["id"] . "' id='licence_" . $fetchLicence["id"] . "' name='licence_" . $fetch['idHistoriqueImage'] . "'"; if ($fetchLicence["id"] == $licence["id"]) { $selectLicenceHTML .= " checked='checked' "; } $selectLicenceHTML .= "/>"; $selectLicenceHTML .= "<label title='" . htmlspecialchars($fetchLicence["description"], ENT_QUOTES) . "' for='licence_" . $fetchLicence["id"] . "'>"; if (!empty($fetchLicence["link"])) { $selectLicenceHTML .= "<a href='" . $fetchLicence["link"] . "'>"; } $selectLicenceHTML .= $fetchLicence["name"]; if (!empty($fetchLicence["link"])) { $selectLicenceHTML .= "</a>"; } $selectLicenceHTML .= "</label>"; } } } $t->assign_block_vars('listePhotos', array('onClickPopupPrisDepuis' => "document.getElementById('" . $popupPrisDepuis->getJSDivId() . "').style.top=(getScrollHeight()+70)+'px';" . $popupPrisDepuis->getJSOpenPopup($fetch['idHistoriqueImage']) . "document.getElementById('" . $popupPrisDepuis->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdressePrisDepuis')) . "';", 'popupPrisDepuis' => $popupPrisDepuis->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdressePrisDepuis')), 'width' => 750, 'height' => 500, 'left' => 10, 'top' => 70, 'titre' => 'archi-strasbourg.org : Pris Depuis')), 'selectPrisDepuis' => $selectPrisDepuisHTML, 'listePrisDepuisDiv' => $divPrisDepuisHTML, 'onClickPopupVueSur' => "document.getElementById('" . $popupVueSur->getJSDivId() . "').style.top=(getScrollHeight()+70)+'px';" . $popupVueSur->getJSOpenPopup($fetch['idHistoriqueImage']) . "document.getElementById('" . $popupVueSur->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseVueSur')) . "';", 'popupVueSur' => $popupVueSur->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseVueSur')), 'width' => 750, 'height' => 500, 'left' => 10, 'top' => 70, 'titre' => 'archi-strasbourg.org : Vue Sur')), 'selectVueSur' => $selectVueSurHTML, 'listeVueSurDiv' => $divVueSurHTML, 'urlImage' => $this->getUrlImage("grand") . '/' . $fetch['dateUpload'] . '/' . $fetch['idHistoriqueImage'] . '.jpg', 'nom' => $tabForm['nom_' . $fetch['idHistoriqueImage']]['value'], 'description' => stripslashes($tabForm['description_' . $fetch['idHistoriqueImage']]['value']), 'idHistoriqueImage' => $fetch['idHistoriqueImage'], 'dateUpload' => $tabForm['dateUpload_' . $fetch['idHistoriqueImage']]['value'], 'dateCliche' => $tabForm['dateCliche_' . $fetch['idHistoriqueImage']]['value'], 'numeroArchive' => $tabForm['numeroArchive_' . $fetch['idHistoriqueImage']]['value'], 'checkIsDateClicheEnviron' => $checkIsDateClicheEnviron, 'idImage' => $fetch['idImage'], 'adresseUrl' => '#', 'adresseOnClick' => "document.getElementById('calqueAdresse').style.display='block';document.getElementById('paramChampsAppelantAdresse').value='listeAdresses_" . $fetch['idHistoriqueImage'] . "';", 'evenementUrl' => '#', 'evenementOnClick' => "document.getElementById('calqueEvenement').style.display='block';document.getElementById('paramChampsAppelantEvenement').value='listeEvenements_" . $fetch['idHistoriqueImage'] . "';", 'onClickBoutonAjouterAdresse' => "document.getElementById('modifImage').action='" . $this->creerUrl('', 'modifierImageMultiple') . "'", 'onClickBoutonEnleverAdresse' => "document.getElementById('modifImage').action='" . $this->creerUrl('', 'modifierImageMultiple') . "'", 'onClickBoutonChoixVille' => "document.getElementById('calqueVille').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueVille').style.display='block';document.getElementById('paramChampAppelantVille').value='ville" . $fetch['idHistoriqueImage'] . "';document.getElementById('paramChampVilleIdentifiantUnique').value='" . $fetch['idHistoriqueImage'] . "'", 'onChangeListeQuartier' => "appelAjax('" . $this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter' => 1, 'identifiantUnique' => $fetch['idHistoriqueImage'])) . "&archiIdQuartier='+document.getElementById('quartiers" . $fetch['idHistoriqueImage'] . "').value, 'listeSousQuartier" . $fetch['idHistoriqueImage'] . "')", 'onClickBoutonChoixSource' => "document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';document.getElementById('paramChampsAppelantSource').value='source_" . $fetch['idHistoriqueImage'] . "';", 'onClickDateCliche' => "document.getElementById('paramChampAppelantDate').value='dateCliche_" . $fetch['idHistoriqueImage'] . "';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';", 'idSource' => $tabForm['source' . $fetch['idHistoriqueImage']]['value'], 'nomSource' => $tabForm['source' . $fetch['idHistoriqueImage'] . 'txt']['value'], "nomAuteur" => $nomAuteur, "nomUpload" => $nomUpload, "tags" => $fetch['tags'], "selectLicence" => $selectLicenceHTML, "enableAuthor" => $enableAuthor)); if ($utilisateur->canChangeNumeroArchiveField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) { $t->assign_block_vars('listePhotos.isDisplayNumeroArchive', array()); } else { $t->assign_block_vars('listePhotos.isNoDisplayNumeroArchive', array()); } if ($utilisateur->canModifyTags(array('idUtilisateur' => $authentification->getIdUtilisateur()))) { $t->assign_block_vars('listePhotos.canModifyTags', array()); } else { $t->assign_block_vars('listePhotos.canNotModifyTags', array()); } if ($utilisateur->isAuthorized('affiche_selection_source', $authentification->getIdUtilisateur())) { $t->assign_block_vars('listePhotos.isDisplaySource', array()); } else { $t->assign_block_vars('listePhotos.isNoDisplaySource', array()); } // *************************************************** // IDENTIFIANT d'HISTORIQUES IMAGES // recuperation de la liste des identifiants d'images $listeId[] = $fetch['idHistoriqueImage']; // *************************************************** // *************************************************** // SOURCES // création de la liste des sources // *************************************************** if (!empty($tabSource)) { foreach ($tabSource as $id => $nom) { if (isset($tabTravail['source']['value']) && $tabTravail['source']['value'] == $id) { $selected = 'selected="selected"'; } else { $selected = ''; } $t->assign_block_vars('listePhotos.source', array('val' => $id, 'nom' => $nom, 'selected' => $selected)); } } // recuperation des evenements lies à l'image $resEvenementsLies = $this->getFetchEvenementsLies($fetch['idImage']); while ($fetchEvenementsLies = mysql_fetch_assoc($resEvenementsLies)) { $t->assign_block_vars('listePhotos.evenements', array('value' => $fetchEvenementsLies['idEvenement'], 'nom' => $fetchEvenementsLies['titre'])); } $i++; } // *************************************************** $t->assign_vars(array("proprietaireImages" => "Images concernant l'adresse", 'actionFormImage' => $this->creerUrl('modifImage', '', $arrayModifUrlParams), 'listeId' => implode(', ', $listeId))); // *************************************************** // *************************************************** // pour les calques : // *************************************************** $recherche = new archiRecherche(); $adresse = new archiAdresse(); $t->assign_vars(array('popupChoixAdresse' => $recherche->getPopupChoixAdresse('resultatRechercheAdresseCalqueImageChampMultiple'), 'popupChoixEvenement' => $recherche->getPopupChoixEvenement('resultatRechercheEvenementCalqueImageChampMultiple'), 'popupChoixSource' => $recherche->getPopupChoixSource('modifImage'), 'popupCalendrier' => $this->getPopupCalendrier(), 'popupAttente' => $this->getPopupAttente())); } else { $t->assign_vars(array('msgPasdImage' => "Il n'y a pas d'image.")); } // ********************************************************************************* // recuperation des aides contextuelles $helpMessages = $this->getHelpMessages('helpImage'); $helpMessages = array_merge($helpMessages, $this->getHelpMessages('helpAdresse')); foreach ($helpMessages as $fieldName => $message) { $t->assign_vars(array($fieldName => $message)); } // ********************************************************************************* ob_start(); $t->pparse('imageFormModif'); $html = ob_get_contents(); ob_end_clean(); return $html; }
/** * Affichage du formulaire d'ajout/édition * * @param array $params Paramètres * * @return string HTML * */ public function formulaireActualites($params = array()) { $html = ""; $f = new formGenerator(); $d = new dateObject(); $c = new calqueObject(); $this->addToJsHeader("<script>" . $c->getJSScrollHeight() . "</script>"); $html .= $c->getDiv(array('width' => 900, 'lienSrcIFrame' => '', 'titre' => 'Prévisualisation')); $idActualite = 0; $boutonNouveau = ""; $boutonSupprimer = ""; $boutonPrevisualiser = "<input type='button' name='previsualisation' value='Prévisualisation' onclick=\"tinyMCE.triggerSave(true,true);document.getElementById('" . $c->getJSDivId() . "').style.top=(50+getScrollHeight())+'px';document.getElementById('" . $c->getJSIFrameId() . "').src='" . $this->creerUrl('', 'previsualisationActualite', array()) . "';" . $c->getJSOpenPopup() . "\">"; $boutonValiderEtEnvoiMailPrevisualisation = "<input type='button' name='valideEtEnvoi' id='valideEtEnvoi' value=\"Envoyer le mail tout de suite\" onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1';document.getElementById('formActu').submit();\">\n <input type='button' name='valideEtPrev' id='valideEtPrev' value='" . _("Prévisualiser le mail") . "' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">\n <input type='button' name='testMail' id='testMail' value='" . _("Envoyer un mail de test") . "' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1&testMail=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">\n "; if (isset($this->variablesGet['archiIdActualite']) && $this->variablesGet['archiIdActualite'] != '') { $idActualite = $this->variablesGet['archiIdActualite']; $reqActu = "SELECT date,titre, sousTitre,photoIllustration, texte,urlFichier, fichierPdf, desactive,texteMailHebdomadaire,envoiMailHebdomadaire FROM actualites WHERE idActualite='" . $idActualite . "'"; $resActu = $this->connexionBdd->requete($reqActu); $fetchActu = mysql_fetch_assoc($resActu); $date = $d->toFrenchAffichage($fetchActu['date']); $titre = $fetchActu['titre']; $sousTitre = $fetchActu['sousTitre']; $illustration = $fetchActu['photoIllustration']; $description = $fetchActu['texte']; $urlFichier = $fetchActu['urlFichier']; $fichierPdf = $fetchActu['fichierPdf']; $isDesactivated = $fetchActu['desactive']; $texteMailHebdomadaire = $fetchActu['texteMailHebdomadaire']; $isEnvoi = $fetchActu['envoiMailHebdomadaire']; $formAction = $this->creerUrl('modifierActu', 'adminActualites', array('archiIdActualite' => $idActualite)); $boutonNouveau = "<input type='button' name='nouveauButton' value='Nouveau' onclick=\"location.href='" . $this->creerUrl('', 'adminActualites', array()) . "'\">"; $boutonSupprimer = "<input type='button' name='supprimerBouton' value='Supprimer' onclick=\"location.href='" . $this->creerUrl('supprimerActu', 'adminActualites', array("idActuSuppr" => $idActualite)) . "'\">"; } else { $date = date("d/m/Y"); $titre = ""; $sousTitre = ""; $illustration = ""; $description = ""; $urlFichier = ""; $fichierPdf = ""; $isDesactivated = 0; $texteMailHebdomadaire = ""; $isEnvoi = 0; $formAction = $this->creerUrl('ajouterActu', 'adminActualites', array('check' => 1)); // check sert juste a ne pas avoir a gerer le ? ou le & dans l'url quand on rajoute un parametre en js } $idActualitePathImage = ""; if ($idActualite != 0) { $idActualitePathImage = $idActualite; } // bibliotheques d'images $fileObject = new fileObject(); $arrayFiles = $fileObject->getListeFichiersArrayFrom($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/"); $listeFichiers = ""; $t = new tableau(); foreach ($arrayFiles as $indiceFichier => $fichier) { if (strtolower($fileObject->getExtensionFromFile($fichier)) == 'jpg' || strtolower($fileObject->getExtensionFromFile($fichier)) == 'gif' || strtolower($fileObject->getExtensionFromFile($fichier)) == 'png') { $t->addValue("<a onclick='injectInTinyMce(\"<img src=\\\"" . $this->getUrlImage() . "actualites/" . $idActualite . "/" . str_replace("'", "\\\\'", $fichier) . "\\\" border=0>\");'><img src=\"" . $this->getUrlImage() . "actualites/" . $idActualite . "/" . $fichier . "\" border=0 width=100 height=100></a>"); $t->addValue("{$fichier}"); } else { $t->addValue(" "); $t->addValue("{$fichier}"); } } $listeFichiers = $t->createTable(2); $gestionBibliothequeImages = "Bibliothèque d'images de l'actualité <span style='font-size:11px;'>(cliquez sur une image pour l'inserer à la position du curseur)</span> : <div id='listeFichiers' style='background-color:#87CEFF;width:300px;height:200px;overflow:scroll;'>" . $listeFichiers . "</div>"; $this->addToJsHeader("<script>\n function injectInTinyMce(txt)\n {\n tinyMCE.execInstanceCommand('texte','mceInsertContent',false,txt);\n }\n \n function goRedim(idActualite)\n {\n // validation du formulaire pour creer l'identifiant de l'actu et pouvoir ranger les photos\n document.getElementById('formActu').submit();\n }\n </script>"); // on ne gere pas de timestamp , on assume que seul l'admin fera des mises a jour des actualités $applet = $fileObject->getAppletUploadMultiple(array('cheminApplet' => $this->getUrlRacine() . "/includes/", 'uploadDirPart1' => $this->getCheminPhysique() . "images/", 'uploadDirPart2' => "uploadMultipleActualites/", 'jsFunctionNameOnExit' => "goRedim({$idActualite})")); $configFields = array('idActualite' => array('libelle' => "idActualite", 'type' => 'hidden', 'required' => true, 'value' => '', 'forceValueTo' => $idActualite, 'htmlCode' => '', 'error' => ''), 'desactive' => array('libelle' => "désactiver", 'type' => 'singleCheckBox', 'required' => false, 'value' => '', 'forceValueTo' => '1', 'isChecked' => $isDesactivated, 'htmlCode' => '', 'error' => '', 'default' => ''), 'date' => array('libelle' => "date", 'withDatePicker' => true, 'type' => 'date', 'required' => true, 'value' => '', 'forceValueTo' => $date, 'htmlCode' => '', 'error' => ''), 'titre' => array('libelle' => "titre", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $titre, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'sousTitre' => array('libelle' => "sous-titre", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $sousTitre, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'photoIllustration' => array('libelle' => "illustration", 'type' => 'uploadImage', 'required' => false, 'value' => '', 'forceValueTo' => $illustration, 'physicalImagePathForTestExists' => $this->getCheminPhysique() . "images/actualites/" . $idActualitePathImage . "/", 'urlImagePathForDisplayInForm' => $this->getUrlImage() . "actualites/" . $idActualitePathImage . "/", 'htmlCode' => '', 'error' => ''), 'texte' => array('libelle' => "description", 'type' => 'tinyMCE', 'required' => false, 'value' => '', 'forceValueTo' => $description, 'htmlCode' => "cols=80 rows=30", 'error' => '', 'htmlCode2' => $gestionBibliothequeImages . "<div><a onclick=\"if(document.getElementById('divApplet').style.display=='none'){document.getElementById('divApplet').style.display='block';}else{document.getElementById('divApplet').style.display='none';}\" style='cursor:pointer;'>Voir/cacher ajouter une image</a></div><div id='divApplet' style='float:left;display:none'>" . $applet . "</div>"), 'urlFichier' => array('libelle' => "url redirection", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $urlFichier, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'fichierPdf' => array('libelle' => "fichier pdf", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $fichierPdf, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'texteMailHebdomadaire' => array('libelle' => "description mail hebdomadaire <span style='color:red;'>(ne pas oublier de préciser le titre)</span>", 'type' => 'tinyMCE', 'required' => false, 'value' => '', 'forceValueTo' => $texteMailHebdomadaire, 'htmlCode' => "cols=80 rows=30", 'error' => ''), 'envoiMailHebdomadaire' => array('libelle' => "envoi avec la newsletter hebdomadaire", 'type' => 'singleCheckBox', 'required' => false, 'value' => '', 'forceValueTo' => '1', 'isChecked' => $isEnvoi, 'htmlCode' => '', 'error' => '', 'default' => '')); $configForm = array("fields" => $configFields, 'formAction' => $formAction, 'codeHtmlAfterSubmitButton' => $boutonNouveau . $boutonSupprimer . $boutonPrevisualiser . $boutonValiderEtEnvoiMailPrevisualisation, 'formName' => 'formActu'); $html .= $f->afficherFromArray($configForm); return $html; }