Subversion Repositories Applications.papyrus

Compare Revisions

Regard whitespace Rev 1461 → Rev 1462

/trunk/api/formulaire/formulaire.fonct.inc.php
1,4 → 1,40
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or |
// | modify it under the terms of the GNU Lesser General Public |
// | License as published by the Free Software Foundation; either |
// | version 2.1 of the License, or (at your option) any later version. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | Lesser General Public License for more details. |
// | |
// | You should have received a copy of the GNU Lesser General Public |
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id$
/**
* Formulaire
*
* Les fonctions de mise en page des formulaire
*
*@package bazar
//Auteur original :
*@author Florian SCHMITT <florian@ecole-et-nature.org>
//Autres auteurs :
*@author Aleandre GRANIER <alexandre@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision$ $Date$
// +------------------------------------------------------------------------------------------------------+
*/
 
function formulaire_valeurs_template_champs($valeur_template) {
//Parcours du template, pour mettre les champs du formulaire avec leurs valeurs specifiques
$tableau= array();
27,10 → 63,10
if (isset($souschaine[9])) $tableau[$nblignes]['recherche'] = trim($souschaine[9]);
else {$tableau[$nblignes]['recherche'] ='';}
 
// traitement des cases à cocher, dans ce cas la, on a une table de jointure entre la table
// traitement des cases a  cocher, dans ce cas la, on a une table de jointure entre la table
// de liste et la table bazar_fiche (elle porte un nom du genre bazar_ont_***)
// dans le template, à la place d'un nom de champs dans 'nom_bdd', on a un nom de table
// et 2 noms de champs séparés par un virgule ex : bazar_ont_theme,bot_id_theme,bot_id_fiche
// dans le template, a la place d'un nom de champs dans 'nom_bdd', on a un nom de table
// et 2 noms de champs separes par un virgule ex : bazar_ont_theme,bot_id_theme,bot_id_fiche
if (isset($tableau[$nblignes]['nom_bdd']) && preg_match('/,/', $tableau[$nblignes]['nom_bdd'])) {
$tableau_info_jointe = explode (',', $tableau[$nblignes]['nom_bdd']) ;
$tableau[$nblignes]['table_jointe'] = $tableau_info_jointe[0] ;
42,6 → 78,8
return $tableau;
}
 
//-------------------FONCTIONS DE MISE EN PAGE DES FORMULAIRES
 
/** liste() - Ajoute un élément de type liste au formulaire
*
* @param mixed L'objet QuickForm du formulaire
53,10 → 91,32
* @param string table source pour les valeurs de la liste
* @param string ce champs est il obligatoire? (required)
* @param boolean sommes nous dans le moteur de recherche?
* @param string le nom de l appli, ou le nom du repertoire de l appli
* @return void
*/
function liste(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'"';
function liste(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source,
$obligatoire, $dans_moteur_de_recherche=0,$appli = 'bazar') {
// Deux cas, soit avec la table xxx_liste et xxx_liste_valeurs
// soit avec les champs source et colonne identifiant
// Le nom de l appli permet de retrouver le nom de la table liste
// ex : bazar => bazar_liste_valeurs
// pour le nom des champs, on utilise la premiere lettre du nom de l appli
// bazar => b
if (is_int($id_liste)) {
$l = $appli[0];
$requete = 'SELECT * FROM '.$appli.'_liste_valeurs WHERE '.$l.'lv_ce_liste='.$id_liste.
' AND '.$l.'lv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'"';
$nom_liste = 'liste'.$id_liste;
} else {
list ($table, $col_id, $col_label, $col_langue, $langue) = explode (',', $source);
$requete = 'select "", '.$col_id.', '.$col_label.' from '.$table;
if (isset($col_langue)) $requete .= ' where '.$col_langue.'="'.$langue.'"';
$nom_liste = $id_liste;
}
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
70,10 → 130,10
while ($ligne = $resultat->fetchRow()) {
$select[$ligne[1]] = $ligne[2] ;
}
$option=array('style'=>'width: '.$limite1.'px;');
$option = array('id' => $nom_liste);
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/select.php';
$select= new HTML_QuickForm_select('liste'.$id_liste, $label, $select, $option);
$select->setSize($limite2);
$select= new HTML_QuickForm_select($nom_liste, $label, $select, $option);
if ($limite2 != '') $select->setSize($limite2);
$select->setMultiple(0);
$select->setSelected($defaut);
$formtemplate->addElement($select) ;
95,8 → 155,12
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function checkbox(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'" ORDER BY blv_label';
function checkbox(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut,
$source, $obligatoire, $dans_moteur_de_recherche=0, $appli = 'bazar') {
if (is_int ($id_liste)) {
$l = $appli[0];
$requete = 'SELECT * FROM '.$appli.'_liste_valeurs WHERE '.$l.'lv_ce_liste='.$id_liste.
' AND '.$l.'lv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'" ORDER BY '.$l.'lv_label';
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
123,9 → 187,16
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addGroupRule('checkbox'.$id_liste, $label.' obligatoire', 'required', null, 1, 'client');
}
} else {
$checkbox = & HTML_Quickform::createElement('checkbox', $id_liste, $label);
if ($defaut == 1) $checkbox->setChecked(true);
$formtemplate->addElement($checkbox);
}
 
}
 
 
/** listedatedeb() - Ajoute un élément de type date sous forme de liste au formulaire pour designer une date de début
*
* @param mixed L'objet QuickForm du formulaire
140,7 → 211,7
*/
function listedatedeb(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$optiondate = array('language' => BAZ_LANGUE_PAR_DEFAUT,
'minYear' => date('Y'),
'minYear' => date('Y')-4,
'maxYear'=> (date('Y')+10),
'format' => 'd m Y',
'addEmptyOption' => BAZ_DATE_VIDE,
147,7 → 218,11
);
$formtemplate->addElement('date', $nom_bdd, $label, $optiondate) ;
//gestion des valeurs par défaut (date du jour)
if (isset($defaut) && $defaut!='') $formtemplate->setDefaults(array($nom_bdd => $defaut));
if (isset($defaut) && $defaut!='') {
$tableau_date = explode ('-', $defaut);
$formtemplate->setDefaults(array($nom_bdd => array ('d'=> $tableau_date[2], 'm'=> $tableau_date[1], 'Y'=> $tableau_date[0])));
}
else {
$defauts=array($nom_bdd => array ('d'=>date('d'), 'm'=>date('m'), 'Y'=>date('Y')));
$formtemplate->setDefaults($defauts);
188,7 → 263,7
* @return void
*/
function texte(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$option=array('size'=>$limite1,'maxlength'=>$limite2);
$option=array('size'=>$limite1,'maxlength'=>$limite2, 'id' => $nom_bdd);
$formtemplate->addElement('text', $nom_bdd, $label, $option) ;
//gestion des valeurs par défaut
$defauts=array($nom_bdd=>$defaut);
200,7 → 275,44
}
}
 
/** champs_mail() - Ajoute un élément de type mail
*
* @param mixed L'objet QuickForm du formulaire
* @param string nom de la table dans la base de donnée
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs du texte (inutile)
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function champs_mail(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$option=array('size'=>$limite1,'maxlength'=>$limite2, 'id' => $nom_bdd);
$formtemplate->addElement('text', $nom_bdd, $label, $option) ;
//gestion des valeurs par défaut
$defauts=array($nom_bdd=>$defaut);
$formtemplate->setDefaults($defauts);
$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
$formtemplate->addRule($nom_bdd, $label.' obligatoire', 'required', '', 'client') ;
$formtemplate->addRule($nom_bdd, INS_MAIL_INCORRECT, 'email', '', 'client') ;
//gestion du champs obligatoire
if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
$formtemplate->addRule($nom_bdd, $label.' obligatoire', 'required', '', 'client') ;
}
$formtemplate->registerRule('doublonmail', 'callback', 'inscription_verif_doublonMail');
$formtemplate->addRule($nom_bdd, INS_MAIL_DOUBLE, 'doublonmail');
}
 
function mot_de_passe (&$formtemplate, $nom_bdd , $label1, $limite1, $limite2, $erreur1, $label2, $obligatoire) {
$formtemplate->addElement('password', 'mot_de_passe', $label1, array('size' => $limite1)) ;
$formtemplate->addElement('password', 'mot_de_passe_repete', $label2, array('size' => $limite1)) ;
$formtemplate->addRule('mot_de_passe', $erreur1, 'required', '', 'client') ;
$formtemplate->addRule('mot_de_passe_repete', $erreur1, 'required', '', 'client') ;
$formtemplate->addRule(array ('mot_de_passe', 'mot_de_passe_repete'), $erreur1, 'compare', '', 'client') ;
}
 
 
/** textelong() - Ajoute un élément de type textearea au formulaire
*
* @param mixed L'objet QuickForm du formulaire
214,7 → 326,7
* @return void
*/
function textelong(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$formtexte= new HTML_QuickForm_textarea($nom_bdd, $label, array('style'=>'white-space: normal;'));
$formtexte= new HTML_QuickForm_textarea($nom_bdd, $label, array('style'=>'white-space: normal;', 'id' => $nom_bdd));
$formtexte->setCols($limite1);
$formtexte->setRows($limite2);
$formtemplate->addElement($formtexte) ;
269,6 → 381,12
'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_LIEN.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
$lien_supprimer->removeQueryString('id_url');
}
 
// Nettoyage de l'url
$lien_supprimer->removeQueryString('action');
$lien_supprimer->removeQueryString('id_fiche');
$lien_supprimer->removeQueryString('typeannonce');
$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
$table->updateColAttributes(1, array("align" => "center"));
$html_url.= $table->toHTML()."\n".'</td>'."\n".'</tr>'."\n" ;
396,6 → 514,22
}
}
 
/** image_unique() - Ajoute un élément de type image au formulaire, l information est stockee dans un champs
*
* @param mixed L'objet QuickForm du formulaire
* @param string numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
* @param string label à afficher dans le formulaire
* @param string taille maximum du fichier colonnes de l'élément
* @param string taille des lignes de l'élément
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs du texte (inutile)
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function image_unique(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
$formtemplate->addElement ('file', $nom_bdd, $label);
$formtemplate->setMaxFileSize($limite1);
}
/** wikini() - Ajoute un wikini au formulaire
*
* @param mixed L'objet QuickForm du formulaire
426,9 → 560,44
*/
function labelhtml(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/html.php';
$formhtml= new HTML_QuickForm_html('<p class="formulaire_element">'.$label.'</p>'."\n");
$formhtml= new HTML_QuickForm_html('<tr>'."\n".'<td colspan="2" style="text-align:left;">'."\n".$label."\n".'</td>'."\n".'</tr>'."\n");
$formtemplate->addElement($formhtml) ;
}
 
/** carte_google() - Ajoute un élément de carte google au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string l url vers la script google
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
* @param string valeur par défaut du formulaire
* @param string table source pour les valeurs de la liste
* @param string ce champs est il obligatoire? (required)
* @param boolean sommes nous dans le moteur de recherche?
* @return void
*/
function carte_google(&$formtemplate, $url_google_script , $label, $champs_latitude, $champs_longitude, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
 
if (is_array ($defaut)) {
$formtemplate->setDefaults(array('latitude' => $defaut['latitude'], 'longitude' => $defaut['longitude']));
}
GEN_stockerFichierScript('googleMapScript', $url_google_script);
$formtemplate->addElement('button', 'chercher_sur_carte', 'Vérifier mon adresse avec la carte', array("onclick" => "showAddress();"));
$formtemplate->addElement('text', 'latitude', 'Latitude', array('id' => 'latitude', 'size' => 6, 'readonly' => 'readonly'));
$formtemplate->addElement('text', 'longitude', 'longitude', array('id' => 'longitude', 'size' => 6, 'readonly' => 'readonly'));
$formtemplate->addElement('html', '<tr><td colspan="2"><div id="map" style="width: 600px; height: 450px"></div></td></tr>');
/*
include_once GEN_CHEMIN_API.'formulaire/formulaire.fonct.google.php';
GEN_stockerCodeScript($script);*/
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log$
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>