/trunk/client/ins_annuaire/bibliotheque/fonctions.php |
---|
New file |
0,0 → 1,267 |
<?php |
// +--------------------------------------------------------------------------------+ |
// | fonctions.php | |
// +--------------------------------------------------------------------------------+ |
// | Copyright (c) 2002 Tela Botanica | |
// +--------------------------------------------------------------------------------+ |
// | Fonctions diverses | |
// +--------------------------------------------------------------------------------+ |
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> | |
// +--------------------------------------------------------------------------------+ |
// |
// $Id: fonctions.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
// effectue une requete sur un colonne unique et renvoie le resultat sous la forme |
// d'un tableau |
function get($query) { |
$tableau = array() ; |
$query = "SELECT " . $query; |
$result = mysql_query($query) or die ("Echec de la requête sur AGORA"); |
while ($row = mysql_fetch_row($result)) { |
array_push ($tableau,$row[0]); |
} |
return $tableau ; |
} |
function textecourt($texte, $taille) { |
if (strlen($texte) > $taille) return substr($texte, 0, $taille-3)."..."; |
return $texte; |
} |
// formulaire, prend en parametre les valeurs par defaut |
function formulaire($titre="",$description="", $abreviation="", $internet="", $selectedForums="", $selectedProjet="",$origine="NOUVEAU") { |
global $baseURL, $forums, $projets, $projetAb ; |
$forums = get("AGO_A_ALIAS FROM agora") ; |
$IDforums = get ("AGO_A_ID FROM agora"); |
$projets = get("TITRE FROM PROJET_PROJET ORDER BY ABREVIATION"); |
$projetAb = get("ABREVIATION FROM PROJET_PROJET ORDER BY ABREVIATION") ; |
if ($selectedForums == "") $selectedForums = array() ; |
if ($selectedProjet == "") $selectedProjet = array() ; |
$res ="<table>\n"; |
if ($origine == "NOUVEAU") { |
$res .="<form action=\"$baseURL&menuProjet=projetadm&action=2\" method=\"post\">\n"; |
} else { |
$res .="<form action=\"$baseURL&menuProjet=projetgest&projet=$abreviation&action=2\" method=\"post\">\n"; |
} |
$res .="<tr class=\"text\"><td style=\"text-align:right;font-weight:bold;\">Titre :</td><td><input type=\"text\" |
class=\"insInputForm\" name=\"titre\" size=\"60\" value=\"$titre\"></td></tr>\n"; |
$res .="<tr class=\"text\"><td valign=\"top\" style=\"text-align:right;font-weight:bold;\">Description :</td><td><textarea name=\"description\" |
class=\"insInputForm\" cols=\"60\" rows=\"20\">$description</textarea></td></tr>\n"; |
if ($origine == "NOUVEAU") { |
$res .="<tr class=\"text\"><td style=\"text-align:right;font-weight:bold;\">Abréviation :</td>\n"; |
$res .="<td><input class=\"insInputForm\" type=\"text\" name=\"abreviation\" size=\"5\" value=\"$abreviation\"> "; |
$res .=" Au maximum 5 caractères, de préférence en majuscule.</td></tr>\n"; |
} |
$res .="<tr class=\"text\"><td style=\"text-align:right;font-weight:bold;\">Espace Internet :</td>\n"; |
$res .="<td><input class=\"insInputForm\" type=\"text\" name=\"internet\" size=\"60\" value=\"$internet\"></td></tr>\n"; |
$res .="<tr class=\"text\"><td valign=\"top\" style=\"text-align:right;font-weight:bold;\">Forums associés :</td><td><select class=\"insInputForm\" name=forumsS[] size=\""; |
$res .=count($forums); |
$res .="\" multiple>\n"; |
for ($i = 0 ; $i < count($forums) ; $i++) { |
$res .="<option value=\"$IDforums[$i]\""; |
if (in_array($forums[$i],$selectedForums)) $res .=" selected"; |
$res .=">"; |
$res .=$forums[$i]; |
$res .="</option>\n"; |
} |
$res .="</select>\n"; |
$res .="<tr class=\"text\"><td valign=\"top\" style=\"text-align:right;font-weight:bold;\">Projets associés :</td>\n<td><select class=\"insInputForm\" name=projetsS[] size=\""; |
$res .=count($projets); |
$res .="\" multiple>\n"; |
for ($i = 0 ; $i < count($projets) ; $i++) { |
$res .="<option value=\""; |
$res .=$projetAb[$i]; |
$res .="\""; |
if (in_array($projetAb[$i],$selectedProjet)) $res .=" selected"; |
$res .=">"; |
$res .=$projets[$i]; |
$res .="</option>\n"; |
} |
$res .="</select></td></tr>\n"; |
$res .="<tr><td colspan=\"2\" align=\"center\">\n"; |
if ($origine != "NOUVEAU") $res .="<input style=\"background-color:#FFFFFF\" type=\"button\" onclick=\"Javascript:history.go(-1);\" value=\"Annuler\">\n" ; |
$res .="<input style=\"background-color:#FFFFFF\" type=\"submit\""; |
if ($origine == "NOUVEAU") { |
$res .=" value=\"Créer\">"; |
} else { $res .=" value=\"Valider\">"; |
} |
$res .="</td></tr>\n"; |
$res .="</form>\n"; |
$res .="</table>\n"; |
return $res ; |
} |
function getExtension($filename) { |
$extension = explode (".",$filename) ; |
return $extension[1] ; |
} |
#-------------------------------------------------------------- |
# Insere $num espace insecable |
#-------------------------------------------------------------- |
function insert_spaces($num) { |
$res = "" ; |
for ($i = 0; $i < $num; $i++) $res .= " "; |
return $res ; |
} |
function getEnumSet($text) { |
$resultat = explode("'", $text) ; |
$retour = array() ; $j = 0 ; |
for ($i = 1 ; $i < count ($resultat)-1 ; $i = $i + 2) { |
$retour[$j] = $resultat[$i] ; |
$j++ ; |
} |
return $retour ; |
} |
$jour = array("lundi","mardi", "mercredi", "jeudi", "vendredi", "samedi","dimanche"); |
$moi = array("janvier","février","mars","avril","mai","juin","juillet","septembre","octobre","novembre","décembre") ; |
function parcourrirAnnu($event) { |
global $baseURL, $lettre, $menuProjet ; |
$outputText = "" ; |
$outputText .= "<tr><td> </td></tr>\n"; |
$outputText .= "<tr><td><table align=\"center\">"; |
$outputText .= "<tr class=\"texte_tb\">"; |
// ecrire toutes les lettres avec un lien |
for ($i = 65 ; $i <91 ; $i++) { |
$outputText .= "\t<td><a style=\"font-size:15px;\" href=\"$baseURL&menuProjet=$menuProjet&action=$event&lettre="; |
$outputText .= chr($i) ; |
$outputText .= "\">"; |
$outputText .= chr($i) ; |
$outputText .= "</a></td>\n"; |
} |
$outputText .= "<td> <a href=\"$baseURL&menuProjet=$menuProjet&action=$event&lettre=tous\">Tous</a></td>\n" ; |
$outputText .= "</tr></table></td></tr>\n"; |
// si une lettre est selectionne |
if (!empty($lettre)) { |
$query = "SELECT annuaire_tela.U_NAME,annuaire_tela.U_SURNAME,annuaire_tela.U_MAIL,annuaire_tela.U_CITY, |
annuaire_tela.U_ZIP_CODE,gen_COUNTRY.GC_NAME FROM annuaire_tela,gen_COUNTRY WHERE"; |
if ($lettre != "tous") $query .= " U_NAME LIKE \"$lettre%\" AND" ; |
$query .= " annuaire_tela.U_COUNTRY=gen_COUNTRY.GC_ID AND gen_COUNTRY.GC_LOCALE=\"fr\" |
AND U_NAME<>\"\" and U_SHOW=3 ORDER BY U_NAME" ; |
$result = mysql_query($query) or die ("Echec de la requête sur annuaire_tela..."); |
if (mysql_num_rows($result) != 0) { |
// pour chaque nom, on inscrit les infos |
$outputText .= "<tr><td> </td></tr>\n"; |
$outputText .= "<tr class=\"insTitle1\"><td>Liste des inscrits à la lettre : $lettre</td></tr>\n"; |
$outputText .= "<tr><td><table width=\"100%\">"; |
$outputText .= "<tr class=\"insTitle1\"><td>Nom</td>"; |
$outputText .= "<td>Prénom</td><td align=\"center\">E-mail</td>\n"; |
$outputText .= "<td align=\"center\">Code postal</td><td>Pays</td></tr>\n"; |
$pair = true ; |
while ($row = mysql_fetch_object($result)) { |
$outputText .= "<tr class=\"texte_tb2\""; |
if ($pair) { |
$outputText .= " bgcolor=\"#E8FFE5\""; |
$pair = false ; |
} else { |
$pair = true ; |
} |
$outputText .= "><td>$row->U_NAME</td><td>$row->U_SURNAME</td>\n"; |
$outputText .= "<td align=\"left\"><a href=\"mailto:$row->U_MAIL\">$row->U_MAIL</a></td>\n"; |
$outputText .= "<td align=\"center\">$row->U_ZIP_CODE</td>\n"; |
$outputText .= "<td>$row->GC_NAME</td>\n" ; |
$outputText .= "</tr>\n"; |
} |
$outputText .= "</table></td></tr>\n"; |
} else { |
$outputText .= "<tr><td> </td></tr>\n"; |
$outputText .= "<tr class=\"texte_tb\"><td>Pas d'inscrit</td></tr>\n"; |
} |
} |
return $outputText ; |
} |
function formRep($nom="", $description="", $origine="NOUVEAU", $visibilite="") { |
global $baseURL, $projet, $repcourant, $id ; |
if ($origine == "NOUVEAU") { |
$res = "<form action=$baseURL&action=20\" method=\"post\">\n" ; |
} else { |
$res = "<form action=$baseURL&action=19\" method=\"post\"\n>" ; |
} |
$res .= "\t<table align=\"center\">\n\t" ; |
$res .= "<tr class=\"texte_tb\"><td colspan=\"2\">N'utilisez pas d'accents, ni d'espace pour le nom du répertoire.</td></tr>\n"; |
$res .= "<tr class=\"text\"><td style=\"font-weight:bold;text-align:right\">" ; |
$res .= "Nom : </td><td><input class=\"insInputForm\" type=\"text\" name=\"nom\" size=\"80\" value=\"$nom\"></td></tr>\n" ; |
$res .= "<tr class=\"text\"><td style=\"font-weight:bold;text-align:right;vertical-align:top\">Description : </td>\n" ; |
$res .= "<td><textarea class=\"insInputForm\" name=\"description\" cols=\"81\">$description</textarea></td></tr>\n" ; |
$res .= "<tr class=\"text\"><td align=\"right\"><b>Visibilité :</b></td>\n"; |
$res .= "<td align=\"left\">\n"; |
$res .= "<input style=\"background-color:#FFFFFF;\" type=\"radio\" name=\"visible\" value=\"public\"" ; |
if ($visibilite == "public" or $visibilite == "") $res .= " checked" ; |
$res .= ">Tout public "; |
$res .= "<input style=\"background-color:#FFFFFF;\" type=\"radio\" name=\"visible\" value=\"prive\"" ; |
if ($visibilite == "prive") $res.= " checked" ; |
$res .= ">Projet seulement</td></tr>\n"; |
$res .= "<tr class=\"text\"><td><input type=\"hidden\" name=\"repcourant\" value=\"$repcourant\"</td><td>\n" ; |
$res .= "<input type=\"hidden\" name=\"id\" value=\"$id\">" ; |
$res .= "<input type=\"submit\" style=\"background-color:#FFFFFF;\"" ; |
if ($origine == "NOUVEAU") { $res.= "value=\"Valider\"" ; } else { $res .= "value=\"Modifier\"" ; } |
$res .= "></td></tr></table></form>\n" ; |
return $res ; |
} |
// renvoie le chemin complet depuis la racine de l'application |
// on indique en argument l'identifiant du repertoire en cour |
// la fonction remonte d'etage en etage jusqu'a ce que gen_voiraussi.PERE soit NULL |
function getPath($ID_rep) { |
$path = "" ; |
$query = "SELECT PERE,NOM FROM gen_repertoire WHERE ID='$ID_rep'" ; |
$result = mysql_query($query) or die ("Echec de la requête dans gen_voiraussi, au cours de la recherche |
du chemin des repertoire") ; |
$row = mysql_fetch_object($result) ; |
if ($row->PERE != NULL) { |
$path .= getPath($row->PERE)."/".$row->NOM ; |
} |
return $path ; |
} |
// renvoie le chemin avec les tag <a href |
function getHTMLPath($ID_rep) { |
global $baseURL ; |
$query = "SELECT PERE,NOM FROM gen_repertoire WHERE ID='$ID_rep'" ; |
$result = mysql_query($query) or die ("Echec de la requête dans gen_voiraussi, au cours de la recherche |
du chemin des repertoire") ; |
$row = mysql_fetch_object($result) ; |
if ($row->PERE != NULL) { |
$path .= " <b>></b><a href=\"$baseURL&repcourant=$ID_rep\">" ; |
$path .= $row->NOM ; |
$path .= "</a>\n" ; |
$path = getHTMLPath($row->PERE).$path ; |
} |
return $path ; |
} |
function nettoieAccent(&$texte) { |
// un peu barbare |
$texte = ereg_replace("é","e",$texte) ; |
$texte = ereg_replace("è","e",$texte) ; |
$texte = ereg_replace("ê","e",$texte) ; |
$texte = ereg_replace("à","a",$texte) ; |
$texte = ereg_replace("ù","u",$texte) ; |
$texte = ereg_replace("â","a",$texte) ; |
$texte = ereg_replace("ä","a",$texte) ; |
$texte = ereg_replace("ë","e",$texte) ; |
$texte = ereg_replace("î","i",$texte) ; |
$texte = ereg_replace("ô","o",$texte) ; |
$texte = ereg_replace("û","u",$texte) ; |
$texte = ereg_replace("ö","o",$texte) ; |
$texte = ereg_replace("ü","u",$texte) ; |
return $texte ; |
} |
?> |
/trunk/client/ins_annuaire/bibliotheque/inscription.fonct.spip.php |
---|
New file |
0,0 → 1,131 |
<?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: inscription.fonct.spip.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
/** |
* Fonctions wikini |
* |
* Ce fichier propose 3 fonctions pour intervenir sur la table interwikini_users. |
* |
*@package inscription |
*@subpackage fonctions_wikini |
//Auteur original : |
*@author Alexandre Granier <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
function inscription_spip($id, &$valeur) |
{ |
// Requete pour inscrire dans SPIP |
if (isset ($valeur['nomwiki'])) { |
$login = $valeur['nomwiki'] ; |
} else { |
$login = $valeur['email'] ; |
} |
$requete = "insert into spip_auteurs set id_auteur=$id, nom=\"".$valeur['prenom']." ".$valeur['nom']. |
"\",email=\"".$valeur['email']."\",login=\"".$login. |
"\", pass=\"".md5($valeur['password'])."\", statut=\"nouveau\", lang=\"". |
strtolower($valeur['pays'])."\"" ; |
@mysql_query($requete) or die ("$requete<br>Echec <br>".mysql_error()) ; |
} |
function mod_inscription_spip($id, &$valeur) |
{ |
if (isset ($valeur['nomwiki'])) { |
$login = $valeur['nomwiki'] ; |
} else { |
$login = $valeur['email'] ; |
} |
//BIEN METTRE alea_actuel, htpass ET alea_futur À "" |
$requete = "update spip_auteurs set nom=\"".$valeur['prenom']." ".$valeur['nom']. |
"\",email=\"".$valeur['email']."\",login=\"".$login. |
"\", pass=\"".md5($valeur['password'])."\", htpass=\"\", alea_actuel=\"\", alea_futur=\"\", lang=\"fr\" where id_auteur=$id" ; |
//echo $requete; |
@mysql_query($requete) or die ("$requete<br>Echec <br>".mysql_error()) ; |
} |
function desinscription_spip($id_utilisateur) |
{ |
$requete = 'delete from spip_auteurs where id_auteur='.$id_utilisateur ; |
@mysql_query($requete) or die ("$requete<br>Echec de la requête de mise à la poubelle de l'utilisateur dans spip <br>".mysql_error()) ; |
} |
function spip_cookie() { |
if ($userid != 0) { |
setcookie("spip_admin", "@$login", time()+3600*24*30, "/vecam/") ; |
include ("ecrire/inc_version.php3"); |
include_ecrire ("inc_meta.php3"); |
include_ecrire ("inc_session.php3"); |
$query = "SELECT * FROM spip_auteurs WHERE id_auteur=$userid"; |
$result = mysql_query($query); |
$GLOBALS['auteur_session'] = mysql_fetch_array($result) ; |
$GLOBALS['auteur_session']['statut'] = "1comite" ; |
$GLOBALS['auteur_session']['lang'] = "en" ; |
if (!$HTTP_COOKIE_VARS["spip_session"]) { |
$id_session = $userid."_".(md5 (uniqid (rand ()))); |
setcookie("spip_session", $id_session, time()+3600*24*30, "/vecam/") ; |
} else { |
$id_session = preg_replace("/[0-9]+_/", $userid."_", $HTTP_COOKIE_VARS["spip_session"]) ; |
setcookie("spip_session", $id_session, time()+3600*24*30, "/vecam/") ; |
} |
ajouter_session($GLOBALS['auteur_session'], $id_session) ; |
} |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.2 2005/03/21 16:57:30 florian |
* correction de bug, mise à jour interface |
* |
* Revision 1.1 2004/12/15 13:32:25 alex |
* version initiale |
* |
* Revision 1.1 2004/07/06 15:42:17 alex |
* en cours |
* |
* Revision 1.2 2004/06/25 14:25:27 alex |
* modification de la requete de suppresssion |
* |
* Revision 1.1 2004/06/18 09:20:48 alex |
* version initiale |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/client/ins_annuaire/bibliotheque/inscription.class.php |
---|
New file |
0,0 → 1,225 |
<?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: inscription.class.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
/** |
* Inscription |
* |
* Un module d'inscription, en général ce code est spécifique à |
* un site web |
* |
*@package inscription |
//Auteur original : |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
require_once 'HTML/QuickForm.php' ; |
class ListeDePays extends PEAR{ |
var $_db ; |
/** Constructeur |
* Vérifie l'existance de la table gen_pays_traduction |
* |
* @param DB Un objet PEAR::DB |
* @return |
*/ |
function ListeDePays(&$objetDB) { |
$this->_db = $objetDB ; |
$requete = "show tables" ; |
$resultat = $objetDB->query ($requete) ; |
if (DB::isError ($resultat)) { |
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ; |
} |
while ($ligne = $resultat->fetchRow()) { |
if ($ligne[0] == INS_TABLE_PAYS) { |
return ; |
} |
} |
return $this->raiseError('La table gen_pays_traduction n\'est pas présente dans la base de donnée !') ; |
} |
/** Renvoie la liste des pays traduite |
* |
* @param string une chaine de type i18n ou une chaine code iso langue (fr_FR ou fr ou FR) |
* @return un tableau contenant en clé, le code iso du pays, en majuscule et en valeur le nom du pays traduit |
*/ |
function getListePays($i18n) { |
if (strlen($i18n) == 2) { |
$i18n = strtolower($i18n)."-".strtoupper($i18n) ; |
} |
$requete = 'select '.INS_CHAMPS_ID_PAYS.', '.INS_CHAMPS_LABEL_PAYS.' from '.INS_TABLE_PAYS; |
$resultat = $this->_db->query ($requete) ; |
if (DB::isError ($resultat)) { |
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ; |
} |
if ($resultat->numRows() == 0) { |
return $this->raiseError('Le code fourni ne correspond à aucun pays ou n\'est pas dans la table!') ; |
} |
$retour = array() ; |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) { |
$retour[$ligne[INS_CHAMPS_ID_PAYS]] = $ligne[INS_CHAMPS_LABEL_PAYS] ; |
} |
return $retour ; |
} |
} |
class HTML_formulaireInscription extends HTML_Quickform { |
/** |
* Constructeur |
* |
* @param string formName Le nom du formulaire |
* @param string method Méthode post ou get |
* @param string action L'action du formulaire. |
* @param int target La cible. |
* @param Array attributes Les attributs HTML en plus. |
* @param bool trackSubmit ?? |
* @return void |
* @access public |
*/ |
function HTML_formulaireInscription( $formName, $method = "post", $action, $target = "_self", $attributes, $trackSubmit = false ) { |
HTML_Quickform::HTML_Quickform($formName, $method, $action, $target, $attributes, $trackSubmit) ; |
} |
/** |
* |
* |
* @return void |
* @access public |
*/ |
function construitFormulaire($url) |
{ |
$squelette =& $this->defaultRenderer(); |
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'."\n"); |
$squelette->setElementTemplate( '<li class="liste_inscription">'."\n".'{label}'."\n".'{element}'."\n". |
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
'</li>'."\n"); |
$squelette->setGroupElementTemplate('<span class="groupe_formulaire">{label}{element}</span>', 'groupe_mot_de_passe') ; |
$squelette->setGroupElementTemplate('<span class="groupe_formulaire">{label}{element}</span>', 'groupe_cp_ville') ; |
$squelette->setGroupElementTemplate('<span class="groupe_formulaire">{label}{element}</span>', 'groupe_nom') ; |
$squelette->setRequiredNoteTemplate("\n".'<p>'."\n".'<span class="symbole_obligatoire">*</span> {requiredNote}'."\n".'</p>'."\n"); |
$fieldset_debut = '<fieldset>'."\n". |
'<legend>'.INS_AJOUT_MEMBRE.'</legend>'."\n". |
'<ul>'."\n"; |
$this->addElement('html', $fieldset_debut); |
$this->addElement('text', 'email', INS_EMAIL) ; |
$this->addRule('email', INS_EMAIL_REQUIS, 'required','', 'client') ; |
$this->addRule('email', INS_MAIL_INCORRECT, 'email', '', 'client') ; |
$this->registerRule('doublonmail', 'callback', 'verif_doublonMail'); |
$this->addRule('email', INS_MAIL_DOUBLE, 'doublonmail', true); |
// A faire, grouper les mots de passe |
$this->addElement('password', 'mot_de_passe', INS_MOT_DE_PASSE) ; |
$this->addElement('password', 'mot_de_passe_repete', INS_REPETE_MOT_DE_PASSE) ; |
$this->addRule('mot_de_passe', INS_MOT_DE_PASSE_REQUIS, 'required', '', 'client') ; |
$this->addRule('mot_de_passe_repete', INS_MOT_DE_PASSE_REQUIS, 'required', '', 'client') ; |
$this->addRule(array ('mot_de_passe', 'mot_de_passe_repete'), INS_MOTS_DE_PASSE_DIFFERENTS, 'compare', '', 'client') ; |
$this->addElement('text', 'nom', INS_NOM) ; |
$this->addElement('text', 'prenom', INS_PRENOM) ; |
if (INS_UTILISE_WIKINI) { |
$this->addElement('text', 'nom_wikini', INS_NOM_WIKI) ; |
$this->addRule('nom_wikini', INS_MAUVAIS_NOM_WIKI, 'regex', '/(!?[A-Z][A-Za-z0-9]*[a-z0-9]+[A-Z][A-Za-z0-9]*)/', 'client') ; |
$this->registerRule('doublonwikini', 'callback', 'verif_doublonNomWiki'); |
$this->addRule('nom_wikini', INS_NOMWIKI_DOUBLE, 'doublonwikini', true); |
} |
$this->addElement('text', 'adresse_1', INS_ADRESSE_1) ; |
$this->addElement('text', 'adresse_2', INS_ADRESSE_2) ; |
$this->addElement('text', 'region', INS_REGION) ; |
$this->addElement('text', 'cp', INS_CODE_POSTAL) ; |
$this->addElement('text', 'ville', INS_VILLE) ; |
$this->addRule('cp', INS_CODE_POSTAL_REQUIS, 'required', '', 'client') ; |
// L'élément pays est construit à partir du tableau liste_pays |
$liste_pays = new ListeDePays($GLOBALS['ins_db']) ; |
$this->addElement('select', 'pays', INS_PAYS, $liste_pays->getListePays(INS_LANGUE_DEFAUT)) ; |
$this->addElement('text', 'site', INS_SITE_INTERNET) ; |
$this->addElement('checkbox', 'lettre',INS_LETTRE) ; |
$defauts=array ('lettre'=>1,'pays'=>'FR'); |
$this->setDefaults($defauts); |
// on fait un groupe avec les boutons pour les mettres sur la même ligne |
$buttons[] = &HTML_QuickForm::createElement('button', 'annuler', INS_ANNULER, array ("onclick" => "javascript:document.location.href='".$url."'")); |
$buttons[] = &HTML_QuickForm::createElement('submit', 'valider', INS_VALIDER); |
$this->addGroup($buttons, null, null, ' '); |
$fieldset_fin = '</ul>'."\n". |
'</fieldset>'."\n"; |
$this->addElement('html', $fieldset_fin); |
$this->setRequiredNote(INS_CHAMPS_REQUIS) ; |
} // end of member function construitFormulaire |
/** Modifie le formulaire pour l'adapter au cas des structures |
* |
* |
* @return void |
* @access public |
*/ |
function formulaireStructure() |
{ |
$this->removeElement('nom') ; |
$this->removeElement('prenom') ; |
$this->removeElement('email', false) ; |
$mail = & HTML_QuickForm::createElement ('text', 'email', INS_MAIL_STRUCTURE) ; |
$this->insertElementBefore ($mail, 'mot_de_passe') ; |
$nom_structure = & HTML_QuickForm::createElement ('text', 'nom', INS_NOM_STRUCTURE) ; |
$this->insertElementBefore ($nom_structure, 'email') ; |
$this->removeElement ('site', false) ; |
$site_structure = & HTML_QuickForm::createElement ('text', 'site', INS_SITE_STRUCTURE) ; |
$this->insertElementBefore ($site_structure, 'pays') ; |
$this->addElement ('hidden', 'est_structure', 1) ; |
$sigle_structure = & HTML_QuickForm::createElement ('text', 'sigle_structure', INS_SIGLE_STRUCTURE) ; |
$this->insertElementBefore ($sigle_structure, 'nom') ; |
$this->addRule ('sigle_structure', INS_SIGLE_REQUIS, 'required', '', 'client') ; |
} |
/** |
* |
* |
* @return string |
* @access public |
*/ |
function toHTML( ) |
{ |
$res = HTML_QuickForm::toHTML() ; |
return $res ; |
} // end of member function toHTML |
} |
?> |
/trunk/client/ins_annuaire/bibliotheque/annuaire_backoffice.fonct.php |
---|
New file |
0,0 → 1,385 |
<?php |
// +--------------------------------------------------------------------------------+ |
// | annuaire_moteur_fonction.php | |
// +--------------------------------------------------------------------------------+ |
// | Copyright (c) 2000 - 2003 Tela Botanica | |
// +--------------------------------------------------------------------------------+ |
// | Les fonctions de annuaire_moteur.php | |
// +--------------------------------------------------------------------------------+ |
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> | |
// +--------------------------------------------------------------------------------+ |
// |
// $Id: annuaire_backoffice.fonct.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
/** function mkengine () |
* |
* |
* |
* @return |
*/ |
function mkengine() |
{ |
global $label_bbota; |
global $nbr_total; |
global $bouton, $HTTP_POST_VARS ; |
$mon_frag = new fragmenteur_session() ; |
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "cotisant", "pays", "sort", "T_REPONSE", "lettre","statut") ; |
// Deux cas , soit on a cliqué sur rechercher, soit on a cliqué sur un lien |
foreach ($mes_vars as $key=>$value) { |
if (!$bouton) { // on a cliqué sur un lien |
if (empty($HTTP_POST_VARS[$value])) { |
$$value = $mon_frag->getVariable($value); |
} |
} else { |
// Si on clique sur le bouton rechercher |
if (empty ($HTTP_POST_VARS[$value])) { |
$$value = "" ; |
} else { |
$$value = $HTTP_POST_VARS[$value] ; |
} |
} |
} |
// Comptage du nombre total de données dans la table (hors CACHER = 1) |
$query = "select count(*) as CPT from ".ANN_ANNUAIRE; |
$result = mysql_query($query) or die("<B>Erreur !</B> $query a échoué..."); |
if (mysql_num_rows($result) == 1) |
{ |
$tmp_nb = mysql_fetch_object($result); |
$nbr_total = $tmp_nb->CPT; |
if ($nbr_total > 0) $chaine = "parmi $nbr_total données"; |
else die("<B>Erreur</B> lors du comptage des structures ($nbr_total trouvées) : $query"); |
} |
else die("<B>Erreur</B> lors du comptage des structures : $query"); |
mysql_free_result($result); |
// fin comptage |
$ret = ""; |
// construction du moteur de str |
$ret .= "<form action=\"".$GLOBALS['ann_url']->getURL()."\" method=\"post\">\n"; |
$ret .= "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" summary=\"\">\n"; |
$ret .= "<tr class=\"titlePage\"><td colspan=\"2\">".AM_L_TITRE."</td></tr>\n" ; |
$ret .= "<tr class=\"insTitle1\"><td colspan=\"2\">".AM_L_TITRE." $chaine :</td></tr>\n" ; |
// ligne de recherche |
$ret .= "<tr><td colspan=\"2\">\n"; |
$ret .= "<table border=\"0\"><tr>\n" ; |
$ret .= "<td class=\"insLabel\">".AM_L_RECHERCHER." :\n</td>\n<td>"; |
$ret .= form_mk_chaineI(stripslashes($recherche), "recherche")." "; |
$ret .= "</td><td class=\"insLabel\" colspan=\"4\">".AM_L_PAYS." : \n" ; |
$ret .= "" ; |
// formulaire contenant les pays, avec par défaut soit le pays en cours |
// soit "tous les pays" |
$query_pays = "select GC_ID, GC_NAME from gen_COUNTRY where GC_LOCALE='fr'" ; |
$result_pays = mysql_query($query_pays) or die ("Echec de la requete sur gen_COUNTRY") ; |
$ret .= "<select name=\"pays\" class=\"insInputForm\">\n" ; |
$ret .= "<option value=\"tous\">Tous les pays</option>\n" ; |
while ($row_pays = mysql_fetch_object($result_pays)) { |
$ret .= "<option value=\"$row_pays->GC_ID\"" ; |
if (!empty($pays)) { |
if ($pays == $row_pays->GC_ID) $ret .= " selected" ; |
} |
$ret .= ">$row_pays->GC_NAME</option>\n" ; |
} |
$ret .= "</select>\n" ; |
$ret .= "</td>\n" ; |
$ret .= "<tr>\n"; |
$ret .= "<td class=\"insLabel\">".AM_L_NOM." :\n</td><td>"; |
$ret .= form_mk_chaineI(stripslashes($nom), "nom")." </td>\n<td class=\"insLabel\">" ; |
$ret .= AM_L_PRENOM." :</td>\n<td>".form_mk_chaineI(stripslashes($prenom), "prenom")." </td>\n<td class=\"insLabel\">" ; |
$ret .= AM_L_VILLE." :</td>\n<td>".form_mk_chaineI(stripslashes($ville), "ville")." </td>" ; |
$ret .= "</tr><tr>\n" ; |
$ret .= "<td class=\"insLabel\">".AM_L_DEPARTEMENT." : </td>\n<td>" ; |
// Construction du <select> des départements |
$requete_dpt = "select GFD_ID, GFD_NAME from gen_FRENCH_DPT" ; |
$resultat_dpt = mysql_query($requete_dpt) or die ("Echec de la requete sur gen_FRENCH_DPT<br>".mysql_error()) ; |
$ret .= "<select name=\"dept\" class=\"insInputForm\">\n" ; |
$ret .= "<option value=\"tous\">tous</option>\n" ; |
while ($ligne_dpt = mysql_fetch_object($resultat_dpt)) { |
$ret .= "<option value=\"$ligne_dpt->GFD_ID\"" ; |
if ($dept == $ligne_dpt->GFD_ID) $ret .= " selected" ; |
$ret .= ">$ligne_dpt->GFD_ID - $ligne_dpt->GFD_NAME</option>\n" ; |
} |
$ret .= "</select></td>\n" ; |
$ret .= "<td class=\"insLabel\">".AM_L_MAIL." : </td>\n<td>".form_mk_chaineI(stripslashes($mail), "mail")."</td>\n" ; |
$ret .= "<td class=\"insLabel\">".AM_L_COTISANTS." : </td>\n" ; |
$ret .= "<td>".form_mk_select(stripslashes($cotisant), "cotisant")."</td>\n"; |
$ret .= "</tr></table>\n"; |
$ret .= "</td></tr>\n"; |
$ret .= "<tr><td><table>\n" ; |
// Les statuts des inscrits |
$tableau_statut = array ("0" => "Désinscrit", "1" =>"Cotisant non inscrit", "3" =>"Inscrit") ; |
$ret .= "<tr>\n"; |
$ret .= "<td class=\"insLabel\">Statut : </td>" ; |
$ret .= "<td><select name=\"statut\" class=\"insInputForm\">\n" ; |
foreach ($tableau_statut as $key=>$value) { |
$ret .= "<option value=\"$key\"" ; |
if (!empty($HTTP_POST_VARS["statut"]) && $HTTP_POST_VARS["statut"] == $key) $ret .= " selected" ; |
if (empty($HTTP_POST_VARS["statut"]) && $key == "3") $ret .= " selected" ; |
$ret .= ">$value</option>\n" ; |
} |
$ret .= "</select></td>" ; |
$ret .= "<td class=\"insLabel\" width=\"60%\">\n"; |
$ret .= AM_L_GRP_RES." : </td>" ; |
$grp = array(20, 50, 100) ; |
$ret .= "<td><select name=\"T_REPONSE\" class=\"insInputForm\">\n" ; |
for ($i = 0; $i < count($grp); $i++) { |
$ret .= "<option value=\"".$grp[$i]."\">".$grp[$i]."</option>\n" ; |
} |
$ret .= "</select></td>" ; |
$ret .= "<td class=\"texte_tb\" align=\"right\" width=\"40%\">\n"; |
$ret .= "<input type=\"submit\" class=\"texte_tb\" value=\"".AM_L_RECHERCHER."\" name =\"bouton\">\n"; |
$ret .= "</td></tr></table>\n</td></tr>\n"; |
$ret .= "</table></form>\n"; |
return $ret; |
} |
/** function form_mk_chaineI () Renvoie une balise de type <input> |
* |
* @param string l'attribut value de la balise |
* @param string l'attibut name de la balise |
* @param string la classe CSS |
* @return string HTML |
*/ |
function form_mk_chaineI($value="", $name, $class="insInputForm") |
{ |
return "<input type=\"text\" size=\"15\" value=\"$value\" name=\"$name\" class=\"$class\">"; |
} |
function form_mk_select($value="", $name="", $class="insInputForm") { |
$res = "<select name=\"$name\" class=\"$class\">\n" ; |
$res .= "<option value=\"1\"" ; |
if ($value == 1) $res .= " selected" ; |
$res .= ">Cotisants</option>\n" ; |
$res .= "<option value=\"2\"" ; |
if ($value == 2) $res .= " selected" ; |
$res .= ">Non cotisants</option>\n" ; |
$res .= "<option value=\"3\"" ; |
if ($value == 3 || $value == "") $res .= " selected" ; |
$res .= ">Tous</option>\n" ; |
$res .= "</select>\n" ; |
return $res ; |
} |
function mkquery() |
{ |
// définition des variables globales |
global $lettre ; |
global $bouton, $HTTP_POST_VARS ; |
$mon_frag = new fragmenteur_session() ; |
// Requete sur l'annuaire pour extraire le nom, prénom, ville, nom du département (jointure), |
// l'état de la cotisation (jointure) |
// le tableau suivant contient tous les champs de la table annuaire_tela sur lesquels on peut effectuer une recherche |
$fields_annu = array("nom" => "U_NAME", "prenom" => "U_SURNAME" , "mail" => "U_MAIL" , "ville" => "U_CITY", |
"dept" => "U_FRENCH_DPT", "pays" => "U_COUNTRY" ) ; |
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "cotisant", "pays", "sort", "T_REPONSE", "lettre","statut") ; |
foreach ($mes_vars as $key=>$value) { |
if (!$bouton) { |
if (empty($HTTP_POST_VARS[$value])) { |
$$value = $mon_frag->getVariable($value); |
} |
} else { |
$lettre = "" ; |
$mon_frag->setVariable("lettre", "") ; |
$mon_frag->fixerLeDebut(0) ; |
if (empty ($HTTP_POST_VARS[$value])) { |
$$value = "" ; |
} else { |
$$value = $HTTP_POST_VARS[$value] ; |
} |
} |
} |
if ($bouton) $sort = $mon_frag->getVariable("sort") ; |
$queries = "select ".ANN_ANNUAIRE.".*" ; |
$queries .= ", ".ANN_TABLE_PAYS.".GC_NAME "; |
$queries .= "from ".ANN_ANNUAIRE ; |
$queries .= ",".ANN_TABLE_PAYS ; |
// Construction en fonction des champs saisies |
// juste le champs "rechercher", on regarde partout |
$queries .= " where (" ; |
if ($lettre == "") { |
if ($recherche != "") { |
$queries .= "(U_NAME like '%$recherche%'" ; // le premier |
foreach($fields_annu as $key=>$value) { |
if ($key == "nom") continue ; |
$queries .= ($key == "pays" ? |
$pays == "tous" ? ")" : |
") and $value = '$pays'" : " or $value like '%$recherche%'") ; // les autres |
} |
} else { |
// si un ou plusieurs autres champs ont été indiqué, on les rajoute ici |
$or_flag = false ; |
foreach($fields_annu as $key=>$valeur) { |
if ($key != "") { |
if ($key == "pays") { |
if ($$key == "tous") $queries .= ") and U_COUNTRY like '%'"; |
else $queries .= ") and $valeur like \"%".$$key."%\"" ; |
} else { |
if ($key == "dept") { |
if ($$key != "tous" && isset($HTTP_POST_VARS[$key])) { |
$queries .= " and U_FRENCH_DPT=".$$key ; |
if ($fields_annu["pays"] != "fr") $queries .= " and U_COUNTRY=\"fr\"" ; |
} |
} else { |
if ($or_flag) $queries .= "$valeur like \"%".$$key."%\"" ; |
else $queries .= "($valeur like \"%".$$key."%\"" ; |
if ($key != "ville") $queries .= " and " ; |
} |
} |
$or_flag = true ; |
} |
} |
// ici le cas ou rien n'a été saisie du tout, on affiche tout |
if (!$or_flag) { |
$queries .= "U_NAME like '%')" ; |
} |
} |
} else { |
if ($lettre == "tous") $lettre = "" ; |
$queries .="U_NAME like '$lettre%'" ; |
} |
$queries .= ")" ; |
$queries .= " and ".ANN_ANNUAIRE.".U_COUNTRY=".ANN_TABLE_PAYS.".GC_ID" ; |
if (isset($cotisant) && $cotisant != 3) if ($cotisant == 1) { |
$queries .= " and ".ANN_ANNUAIRE.".U_COT=$cotisant" ; |
} else { |
$queries .= " and ".ANN_ANNUAIRE.".U_COT=0" ; |
} |
if (isset($nom) && $nom != "") $queries .= " and U_NAME like \"%$nom%\"" ; |
if (isset($prenom) && $prenom != "") $queries .= " and U_SURNAME like \"%$prenom%\"" ; |
if (isset($ville) && $ville != "") $queries .= " and U_CITY like \"%$ville%\"" ; |
if (isset($mail) && $mail != "") $queries .= " and U_MAIL like \"%$mail%\"" ; |
if (isset($statut) && $statut != "") $queries .= " and U_SHOW=$statut" ; else $queries .= " and U_SHOW=0" ; |
if (isset($sort) && $sort != "") $queries .= " order by $sort" ; |
return $queries; |
} |
function mkresu() |
{ |
global $HTTP_HOST, $SCRIPT_URL, $SCRIPT_NAME, $bouton ; |
$mon_frag = new fragmenteur_session() ; |
$mon_frag->setURL($GLOBALS['ann_url']->getURL()) ; |
if ($bouton) $mon_frag->fixerLeDebut(0) ; |
$requete = mkquery() ; |
// Deux requetes, une avec tous les resultats, l'autre avec les résultats affichés |
$result_total = mysql_query($requete) or print ("Echec de la requete <br>$requete<br>".mysql_error()) ; |
// Affichage de la requete |
$ret_req = "<tr class=\"texte_tb\"><td><br><b>La requete : </b><br>$requete". |
" limit ".$mon_frag->lireLeDebut().",".$mon_frag->lireLePas()."</td></tr>\n" ; |
$result_final = mysql_query($requete." limit ".$mon_frag->lireLeDebut().",".$mon_frag->lireLePas()) or print (mysql_error()); |
$nbr_final = mysql_num_rows($result_total) ; |
mysql_free_result($result_total) ; |
// cxt_addVariable(AM_BD_BOTA, AM_BD_LINK, "requete_mail_tous", $requete) ; |
$_SESSION['requete_mail_tous'] = $requete ; |
$ret = "<div><table><tr>" ; |
for ($i = 65 ; $i <91 ; $i++) { |
$ret .= "\t<td><a href=\"".$GLOBALS['ann_url']->getURL()."&lettre="; |
$ret .= chr($i)."\">"; |
$ret .= chr($i) ; |
$ret .= "</a></td>\n"; |
} |
$ret .= "<td> <a href=\"".$GLOBALS['ann_url']->getURL()."&lettre=tous\">".AM_L_TOUS."</a></td>\n" ; |
$ret .= "<tr></table></div>\n" ; |
$ret .= "<div>".$mon_frag->affNbRes($nbr_final).'</div>' ; |
$ret .= "<div>".$mon_frag->fragmente($nbr_final)."</div>\n" ; |
if ($nbr_final != 0) { |
$ret .= "<div><table>\n"; |
$ret .= "<tr class=\"insTitle1\"><td nowrap><a href=\"".$GLOBALS['ann_url']->getURL()."&sort=U_NAME\">Identité</a></td>\n"; |
$ret .= "<td><a href=\"".$GLOBALS['ann_url']->getURL()."&sort=U_MAIL\">Adresse mail</a></td>\n" ; |
$ret .= "<td><a href=\"".$GLOBALS['ann_url']->getURL()."&sort=U_CITY\">".AM_L_VILLE."</a></td>\n" ; |
$ret .= "<td>Pays ou Dpt (fr)</td>\n" ; |
$ret .= "<td><a href=\"".$GLOBALS['ann_url']->getURL()."&sort=U_COT\">".AM_L_COTISANTS."</a></td></tr>\n" ; |
$cotisant = array( "non", "oui") ; |
$pair = true ; // pour afficher une ligne de résultat coloré, l'autre non |
while ($row = mysql_fetch_object($result_final)) |
{ |
$ret .= "<tr class=\"texte_tb2\""; |
if ($pair) { |
$ret .= " bgcolor=\"\"" ; |
$pair = false ; |
} else { |
$pair = true ; |
} |
$ret .= ">" ; |
$ret .= "\n<td nowrap>"; |
$urlPop = $GLOBALS['ann_url']->getURL()."&u_id=$row->U_ID"; |
$ret .= "<a href=\"$urlPop\">" ; |
$ret .= $row->U_NAME." ".$row->U_SURNAME ; |
$ret .= "</a></td>\n "; |
$ret .= "<td><a href=\"mailto:$row->U_MAIL\">$row->U_MAIL</a></td>\n" ; |
$ret .= "<td>$row->U_CITY</td>" ; |
if ($row->U_COUNTRY != 'fr') { |
$ret .= "<td>$row->GC_NAME</td>" ; |
} else { |
$req_dpt = "select GFD_NAME from ".ANN_TABLE_DEPARTEMENT.",".ANN_ANNUAIRE." where ".ANN_ANNUAIRE.".U_ID=$row->U_ID" ; |
$req_dpt .= " and ".ANN_ANNUAIRE.".U_FRENCH_DPT=".ANN_TABLE_DEPARTEMENT.".GFD_ID" ; |
$resultat_dpt = mysql_query($req_dpt) or die ("Echec de la requete sur ".ANN_TABLE_DEPARTEMENT."<br>".mysql_error()) ; |
$ligne_dpt = mysql_fetch_object($resultat_dpt) ; |
$ret .= "<td>$ligne_dpt->GFD_NAME</td>" ; |
} |
$ret .= "<td>".$cotisant[$row->U_COT]."</td></tr>\n" ; |
} |
$ret .= "</table></div>\n" ; |
$ret .= "<div>".$mon_frag->fragmente($nbr_final)."</div>\n" ; |
$ret .= "<div><a href=\"".$GLOBALS['ann_url']->getURL()."&action=".ANN_MAIL_TOUS."\">".AM_L_MAIL_SELECTION."</a></div>\n" ; |
} |
// $ret .= $ret_req ; |
return $ret; |
} |
/** function presa_mk_blkline () insere des lignes vides du type <tr><td> </td></tr> |
* |
* |
* @param integer nombre de ligne à insérer |
* @return string HTML |
*/ |
function presa_mk_blkline ($nombre) { |
$res = "" ; |
for ($i = 0; $i < $nombre; $i++) { |
$res .= "<tr><td> </td></tr>\n" ; |
} |
return $res ; |
} |
?> |
/trunk/client/ins_annuaire/bibliotheque/voir_recu_pdf.php |
---|
New file |
0,0 → 1,39 |
<?php |
// +----------------------------------------------------------------------------+ |
// |recu_pdf.php | |
// +----------------------------------------------------------------------------+ |
// | Copyright (c) 2003 Tela Botanica | |
// +----------------------------------------------------------------------------+ |
// | Ce fichier génère un fichier PDF | |
// | contenant le recu pour une cotisation à Tela Botanica | |
// | Il utilise la librairie FPDF | |
// | http://www.fpdf.org/ | |
// | | |
// | Recoie $cotisation_id en parametre | |
// +----------------------------------------------------------------------------+ |
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> | |
// +----------------------------------------------------------------------------+ |
// |
// $Id: voir_recu_pdf.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
// Inclusion des fichiers nécessaire à une connection |
include_once ("../../papyrus/configuration/pap_config.inc.php") ; |
include_once 'DB.php' ; |
$db = DB::connect (PAP_DSN) ; |
include_once "../../api/fpdf/fpdf.php"; |
$envoie = 1 ; |
include_once "recu_pdf_corps.php" ; |
// buffer est une propriété de la classe FPDF qui contient les données au format PDF. |
// habituellement on ne l'utilise pas, on appelle $pdf->Output() qui envoie les |
// entete HTTP du document généré |
$pdf->Output() ; |
?> |
/trunk/client/ins_annuaire/bibliotheque/edition_fiche.php |
---|
New file |
0,0 → 1,504 |
<?php |
// +--------------------------------------------------------------------------------+ |
// | admin_annu.php | |
// +--------------------------------------------------------------------------------+ |
// | Copyright (c) 2002 | |
// +--------------------------------------------------------------------------------+ |
// | Administration des inscrits à un annuaire de type annuaire_tela | |
// | de Gsite, | |
// | Sont également mises en jeux les tables gen_COUNTRY, gen_FRENCH_DPT, | |
// | LABELS | |
// | Plus spécifique la fonction cotisation($id) en bas permet de | |
// | gérer les cotisations versées par les inscrits, avec la table | |
// | annuaire_COTISATION | |
// +--------------------------------------------------------------------------------+ |
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> | |
// +--------------------------------------------------------------------------------+ |
// |
// $Id: edition_fiche.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
global $HTTP_HOST ; |
define ("URL_RECU", $GLOBALS['ann_url']->protocol. '://'.$GLOBALS['ann_url']->host."/client/annuaire/voir_recu_pdf.php") ; |
include_once ("HTML/Table.php") ; |
include_once 'api/formulaire/FORM_formulaire.class.php' ; |
// admin_annu est une application cliente de gsite elle commence donc |
// dans une fonction putFrame() |
function putFrame() |
{ |
global $u_id, $cotisation_id ; |
global $action ; |
global $link ; |
if (empty($action)) $action = false ; |
$url = $GLOBALS['ann_url']->getURL() ; |
// mise à jour si il y lieu |
if ($action == "up") { |
upSQL() ; |
} |
// Requete de pour récupérer toutes les infos d'un usager |
$query = "select annuaire_tela.*,annuaire_LABEL_ACT.*,annuaire_LABEL_ASS.*,gen_COUNTRY.GC_NAME" ; |
$query .= ", annuaire_LABEL_NIV.*, annuaire_LABEL_STATUT.*" ; |
$query .= " from annuaire_tela,gen_COUNTRY,gen_FRENCH_DPT," ; |
$query .= " annuaire_LABEL_ACT,annuaire_LABEL_ASS, annuaire_LABEL_NIV, annuaire_LABEL_STATUT" ; |
$query .= " where U_ID=$u_id" ; |
//$query .= " and annuaire_tela.U_FRENCH_DPT=gen_FRENCH_DPT.GFD_ID" ; |
$query .= " and annuaire_tela.U_COUNTRY=gen_COUNTRY.GC_ID" ; |
$query .= " and annuaire_tela.U_ACT=annuaire_LABEL_ACT.ID_LABEL_ACT" ; |
$query .= " and annuaire_tela.U_ASS=annuaire_LABEL_ASS.ID_LABEL_ASS" ; |
$query .= " and annuaire_tela.U_NIV=annuaire_LABEL_NIV.ID_LABEL_NIV" ; |
$query .= " and annuaire_tela.U_SHOW=annuaire_LABEL_STATUT.ID_LABEL_STATUT" ; |
$result = mysql_query($query) or die("Echec de la requete sur ".ANN_ANNUAIRE.":<br>".mysql_error().'<br>'.$query) ; |
$row = mysql_fetch_object($result) ; |
$res = "<h1>Edition d'un adhérent : $row->U_NAME $row->U_SURNAME</h1>\n" ; |
$res .= "<div>".form("Nom : ", "U_NAME", $row->U_NAME)."</div>\n" ; |
$res .= "<div>".form("Prénom : ", "U_SURNAME", $row->U_SURNAME)."</div>\n" ; |
$res .= "<div>".form("Adresse mail : ", "U_MAIL", $row->U_MAIL)."</div>\n" ; |
$res .= "<div>".form("Date d'inscription : ", "U_DATE", $row->U_DATE)."</div>\n" ; |
$res .= "<div>".form("Adresse 1 : ", "U_ADDR1", $row->U_ADDR1)."</div>\n" ; |
$res .= "<div>".form("Adresse 2 : ", "U_ADDR2", $row->U_ADDR2)."</div>\n" ; |
$res .= "<div>".form("Région : ", "U_STATE", $row->U_STATE)."</div>\n" ; |
$res .= "<div>".form("Code postal : ", "U_ZIP_CODE", $row->U_ZIP_CODE)."</div>\n" ; |
$res .= "<div>".form("Ville : ", "U_CITY", $row->U_CITY)."</div>\n" ; |
$res .= "<div>".form("Pays : ", "U_COUNTRY", $row->U_COUNTRY)."</div>\n" ; |
$res .= "<div>".form("Site web personnel : ", "U_WEB", $row->U_WEB)."</div>\n" ; |
$res .= "<div>".form("Organisme : ", "U_TITLE", $row->U_TITLE)."</div>\n" ; |
$res .= "<div>".form("Fonction : ", "U_FONCTION", $row->U_FONCTION)."</div>\n" ; |
$res .= "<div>".form("Niveau en botanique : ", "LABEL_NIV", $row->LABEL_NIV)."</div>\n" ; |
$res .= "<div>".form("Activité : ", "LABEL_ACT", $row->LABEL_ACT)."</div>\n" ; |
$res .= "<div>".form("Secteur associatif : ", "LABEL_ASS", $row->LABEL_ASS)."</div>\n" ; |
$res .= "<div>".form("Spécialité : ", "U_SPE", $row->U_SPE)."</div>\n" ; |
$res .= "<div>".form("Spécialité géographique : ", "U_GEO", $row->U_GEO)."</div>\n" ; |
$res .= "<div>".form("Statut : ", "LABEL_STATUT", $row->LABEL_STATUT)."</div>\n" ; |
if (isset($cotisation_id) && $cotisation_id != "") { |
$db = & $GLOBALS['ann_db']; |
include_once ANN_CHEMIN_APPLI."recu_pdf_corps.php" ; |
// buffer est une propriété de la classe FPDF qui contient les données au format PDF. |
// habituellement on ne l'utilise pas, on appelle $pdf->Output() qui envoie les |
// entete HTTP du document généré |
$pdf->Close() ; |
$buf = $pdf->buffer; |
// Inclusion des bibliothèques PEAR |
include_once ('Mail.php'); |
include_once ('Mail/mime.php'); |
$file = 'Recu_Fiscal_Tela_Botanica.pdf'; |
$crlf = "\r\n"; |
$hdrs = array( |
'From' => 'accueil@tela-botanica.org', |
'Subject' => 'Reçu pour don à Tela Botanica' |
); |
$mime = new Mail_mime($crlf); |
$text = "Bonjour !\n\n". |
"Le Réseau Tela Botanica vous remercie du soutien financier que vous lui avez apporté. Votre contribution permettra au réseau :\n\n". |
"- de continuer à encourager et accompagner des projets botaniques,\n". |
"- de maintenir et d'améliorer nos services Internet dédiés à la botanique.\n\n". |
"Vous trouverez en pièce jointe à ce message un document PDF contenant le reçu fiscal à imprimer". |
" et à joindre à votre déclaration d'impôts. Si vous n'arrivez pas à imprimer ce document, veuillez". |
" nous le signaler en répondant à ce mail et en indiquant votre nom et votre adresse postale. Nous vous". |
" ferons parvenir le reçu imprimé à cette adresse.\n\n". |
"Rappel : Votre contribution financière ne constitue pas une adhésion à l'Association Tela Botanica mais ". |
"bien un soutien aux actions menées par le Réseau Tela Botanica.\n\n". |
"Si ce n'est déjà fait, n'oubliez pas de vous inscrire au Réseau sur le site Internet, à l'adresse : ". |
"http://www.tela-botanica.org (menu « Inscription», onglet « Inscription»), afin que vous puissiez :\n\n". |
"- consulter l'annuaire des personnes inscrites au Réseau ;\n- localiser les membres du Réseau dans tous". |
" les pays;\n- accédez à certaines données diffusées sur le site ;\n- vous inscrire à des projets ". |
"botaniques ;\n- être informé personnellement des actualités du Réseau.\n\n". |
"Bien cordialement,\n\n". |
"Tela Botanica\nLe Réseau des Botanistes Francophones\n163, rue A. Broussonnet\n34090 Montpellier\n". |
"Tél. : 04-67-52-41-22\naccueil@tela-botanica.org\nhttp://www.tela-botanica.org\n" ; |
$mime->setTXTBody($text); |
// On attache le document PDF grace à $buf, et en indiquant son type MIME |
$mime->addAttachment($buf, 'application/pdf', $file, false) ; |
$body = $mime->get(); |
$hdrs = $mime->headers($hdrs); |
$mail =& Mail::factory('mail'); |
$mail->send($ligne->U_MAIL, $hdrs, $body); |
// On insere le numéro du reçu dans la table annuaire_COTISATION |
@mysql_query("update annuaire_COTISATION set IC_RECU=$num_recu, IC_DATE_ENVOIE_RECU=NOW() where IC_ID=$cotisation_id") ; |
// On incrémente le compteur de mail de 1 |
if (!$deja_envoye) { |
$num_recu++ ; |
mysql_query("update COMPTEUR_COTISATION set COMPTEUR=$num_recu ") ; |
} |
$res .= "<div>Le reçu a été envoyé</div>\n" ; |
} |
$res .= cotisation($u_id) ; |
$res .= suppression($u_id) ; |
return $res ; |
} |
// form construit soit un formulaire de type <input type="text" ...> et |
// de nom $field_ et place un $label devant |
// soit construit un lien vers un formulaire à partir du champs $field_ |
function form($label, $field_, $value) |
{ |
global $u_id, $GS_GLOBAL, $field ; |
$url = $GLOBALS['ann_url']->getURL() ; |
if ($field != $field_) { |
$res = "<b>$label</b>" ; |
$res .= "<a href=\"$url&field=$field_\">" ; |
if ($field_ == 'LABEL_NIV' || $field_ == 'LABEL_ACT' || $field_== 'LABEL_ASS') { |
$res .= $value ? $value : "(vide)"; |
} else if ($field_ == "U_COT") { |
if ($value == 0) { |
$res .= "non" ; |
} else { |
$res .= "oui" ; |
} |
} else { |
$res .= $value ? $value : "(vide)"; |
} |
$res .= "</a>\n" ; |
} |
if ($field == $field_) { |
$res = "\n<form action=\"$url&u_id=$u_id&action=up&field_=$field_\" method=\"post\">" ; |
$res .= "<b>$label</b>\n" ; |
switch ($field_) { |
case "U_COUNTRY" : |
$select_country = new form($GS_GLOBAL['link']) ; |
$res .= ereg_replace("gen_COUNTRY", "U_COUNTRY", $select_country->selectFromTable("gen_COUNTRY", $value, "GC_ID", "GC_NAME")) ; |
unset($select_country) ; |
break ; |
case "LABEL_NIV" : |
$res .= getFormInsInfo($field_, $value) ; |
break ; |
case "LABEL_ASS" : |
$res .= getFormInsInfo($field_, $value) ; |
break ; |
case "LABEL_ACT" : |
$res .= getFormInsInfo($field_, $value) ; |
break ; |
case "LABEL_STATUT" : |
$res .= getFormInsInfo($field_, $value) ; |
break ; |
case "U_COT" : |
$res .= "<select class=\"insInputForm\" name=\"II_COT\">\n" ; |
if ($value == 0) { |
$check0 = " selected" ; |
$check1 = "" ; |
} else { |
$check1 = " selected" ; |
$check0 = "" ; |
} |
$res .= "<option value=\"0\"$check0>non</option>\n" ; |
$res .= "<option value=\"1\"$check1>oui</option>\n" ; |
$res .= "</select>\n" ; |
break ; |
default : |
$res .= "<input type=\"text\" size=\"40\" name=\"$field_\" value=\"$value\">\n" ; |
} |
$res .= "<input type=\"submit\" value=\"valider\" class=\"texte_tb\">\n" ; |
$res .= "</form>" ; |
} |
return $res ; |
} |
// upSQL met à jour la table annuaire_tela |
function upSQL() |
{ |
global $field_ ; |
global $u_id ; |
global $HTTP_POST_VARS ; |
switch ($field_) { |
case "LABEL_STATUT" : $field_ = "U_SHOW" ; |
$id_field = "ID_LABEL_STATUT"; |
break ; |
case "LABEL_NIV" : $field_ = "U_NIV" ; |
$id_field = "ID_LABEL_NIV"; |
break ; |
case "LABEL_ACT" : $field_ = "U_ACT" ; |
$id_field = "ID_LABEL_ACT"; |
break ; |
case "LABEL_ASS" : $field_ = "U_ACT" ; |
$id_field = "ID_LABEL_ASS"; |
break ; |
default :$id_field = $field_ ; |
} |
// Recherche de l'ancien mail |
$req_am = "select U_MAIL from annuaire_tela where U_ID = $u_id" ; |
$res_am = mysql_query ($req_am) or die ("Echec ".mysql_error()) ; |
$ligne_am = mysql_fetch_object ($res_am) ; |
$ancien_mail = $ligne_am->U_MAIL ; |
$query = "update annuaire_tela set $field_=\"".$HTTP_POST_VARS[$id_field]."\" where U_ID = $u_id" ; |
mysql_query($query) or die ("<br>Echec de la requete de mise à jour<br>\n") ; |
// Traitement du département |
if ($field_ == "U_ZIP_CODE") { |
if (preg_match("/^97|98[0-9]*/", $HTTP_POST_VARS['U_ZIP_CODE'])) { |
$n_dpt = substr($HTTP_POST_VARS['U_ZIP_CODE'], 0, 3) ; |
} else { |
$n_dpt = substr($HTTP_POST_VARS['U_ZIP_CODE'], 0, 2) ; |
} |
mysql_query ("update annuaire_tela set U_FRENCH_DPT='$n_dpt' where U_ID='$u_id'") ; |
} |
// Traitement de l'adresse mail |
if ($field_ == "U_MAIL") { |
$requete = "update ins_STATS set IS_MAIL=\"".$HTTP_POST_VARS['U_MAIL']."\" where IS_MAIL=\"$ancien_mail\"" ; |
mysql_query ($requete) ; |
} |
} |
function getFormInsInfo($field, $value) |
{ |
$query = "select * from annuaire_$field" ; |
$id_field = "ID_$field" ; |
$result = mysql_query($query) or die ("Echec de la requete sur ID_$field<br>".mysql_error()) ; |
$res = "<select name=\"$id_field\" class=\"insInputForm\">\n" ; |
$i = 0 ; |
while ($row = mysql_fetch_object($result)) { |
$res .= "<option value=\"".$row->$id_field."\"" ; |
if ($value == $row->$field) $res .= " selected"; |
$res .= ">" ; |
$res .= $row->$field ; |
$res .= "</option>\n" ; |
$i++ ; |
} |
$res .= "</select>\n" ; |
return $res ; |
} |
// Fonction pour gérer les cotisations d'un inscrit, en |
// fonction de son id ($u_id) |
function cotisation($u_id) |
{ |
global $GS_GLOBAL, $action, $IC_MONTANT, $IC_DATE, $id_cot, $IC_MC_ID ; |
$res = '' ; |
// un peu de javascript pour la confirmation en cas de destruction |
$outputText = "function confirmLink(theLink, theSqlQuery) |
{ |
var is_confirmed = confirm(theSqlQuery); |
return is_confirmed; |
} " ; |
// fonction gsite pour inclure la fonction Javascript |
// au code html |
GEN_stockerCodeScript($outputText) ; |
$url = $GLOBALS['ann_url']->getURL() ; |
// Ce qui suit sont le traitement des 3 actions ajouter, modifier, supprimer |
// qui agissent sur la table annuaire_COTISATION |
// l'action 'cu' consiste en l'insertion d'une ligne dans la table annuaire_COTISATION |
if ($action == "cu") { |
$date = preg_replace("/([0-9]+)-([0-9]+)-([0-9]+)/", "\\3\\2\\1", $IC_DATE) ; |
$query = "insert into annuaire_COTISATION values (\"\", $IC_MC_ID, $u_id, UNIX_TIMESTAMP($date),\"$IC_MONTANT\", 0, \"0000-00-00\")" ; |
mysql_query ($query) or die ("Echec de la requete d'insertion dans annuaire_COTISATION<br>$query<br>".mysql_error()) ; |
mysql_query("update annuaire_tela set U_COT=1 where U_ID=$u_id") ; |
} |
// l'action 'mu' permet de mettre à jour une ligne dans annuaire_COTISATION |
if ($action == "mu") { |
$date = preg_replace("/([0-9]+)-([0-9]+)-([0-9]+)/", "\\3\\2\\1", $IC_DATE) ; |
$query = "update annuaire_COTISATION set IC_DATE=UNIX_TIMESTAMP($date), IC_MONTANT=\"$IC_MONTANT\", |
IC_MC_ID=$IC_MC_ID where IC_ID=$id_cot" ; |
mysql_query ($query) or die ("Echec de la requete d'insertion dans annuaire_COTISATION<br>$query<br>".mysql_error()) ; |
} |
// l'action 'rm' retire une ligne de la table annuaire_COTISATION |
if ($action == "rm") { |
$query = "delete from annuaire_COTISATION where IC_ID=$id_cot" ; |
mysql_query ($query) or die ("Echec de la requete de suppression dans annuaire_COTISATION") ; |
mysql_query("update annuaire_tela set U_COT=0 where U_ID=$u_id") ; |
} |
// Quoi qu'il arrive, on récupère les informations concernant |
// les cotisations d'un inscrit et on les affiche sous forme de |
// table HTML |
$query = "select * from annuaire_COTISATION, MODE_COTISATION where IC_ANNU_ID=$u_id |
and IC_MC_ID=MC_ID" ; |
$result = mysql_query($query) or die ("Echec de la requete sur annuaire_COTISATION<br>".$query) ; |
$res = "<h1>Etat des cotisations : </h1>" ; |
// formatage de la date |
$date = date("d-m-Y") ; |
// l'action 'sc' correspond à l'édition d'une ligne de la table |
// annuaire_COTISATION. Si elle est présente on affiche un formulaire |
// de modification |
if ($action == "sc") { |
$res .= "<div><form action=\"$url&action=cu\" method=\"post\"><b>Date : </b>" ; |
$res .= "<input type=\"text\" size=\"9\" class=\"insInputForm\" name=\"IC_DATE\" value=\""; |
$res .= $date ; |
$res .= "\">\n" ; |
$res .= "<b>Montant : </b><input type=\"text\" class=\"insInputForm\" size=\"5\" name=\"IC_MONTANT\" value=\"30\"> €\n" ; |
$res .= mode_paiement(0) ; |
$res .= "<input type=\"submit\" value=\"Valider\" class=\"texte_tb\">\n" ; |
$res .= "<input type=\"button\" value=\"Annuler\" class=\"texte_tb\" onclick=\"javascript:window.location.href='$url';\"></form>\n" ; |
$res .= "</div>\n" ; |
// si l'action 'sc' n'est pas active on affiche toutes les lignes |
// de cotisation de l'inscrit |
} else { |
if (mysql_num_rows($result) != 0) { |
$res .= "<div>" ; |
$table = new HTML_Table(array("width" => "100%", "class" => "texte_tb2")) ; |
$table->addRow(array("Date", "Montant", "Mode", "modifier", "supprimer", "Voir le reçu", "Envoyer le reçu", |
"Date d'envoie du reçu"), |
array("class" => "insTitle1")) ; |
while ($row = mysql_fetch_object($result)) { |
// Le reçu a t il été envoyé ? |
if ($row->IC_RECU != 0) { |
$message_envoye = $row->IC_DATE_ENVOIE_RECU ; ; |
} else { |
$message_envoye = "Reçu non envoyé"; |
} |
if ($action != "mc" || $id_cot != $row->IC_ID) { |
$table->addRow(array (date ("j m Y", $row->IC_DATE), $row->IC_MONTANT." <b>€</b>", $row->MC_LABEL, |
"<a href=\"$url&action=mc&id_cot=$row->IC_ID\">modifier</a>", |
"<a href=\"$url&action=rm&id_cot=$row->IC_ID\"". |
" onclick=\"javascript:return confirmLink(this, 'êtes-vous". |
" sûr de vouloir supprimer cette entrée');\">supprimer</a>", |
"<a href=\"".URL_RECU."?cotisation_id=$row->IC_ID\">Voir le reçu</a>", |
"<a href=\"$url&cotisation_id=$row->IC_ID\">Envoyer le reçu</a>", |
$message_envoye)) ; |
} else { |
// Recherche du mode de paiement |
$table->addRow(array("<form action=\"$url&action=mu&id_cot=$row->IC_ID\" method=\"post\">\n". |
"<input type=\"text\" size=\"9\" class=\"insInputForm\" name=\"IC_DATE\" value=\"".date ("j-m-Y", $row->IC_DATE)."\">", |
"<input type=\"text\" size=\"5\" class=\"insInputForm\" name=\"IC_MONTANT\" value=\"$row->IC_MONTANT\"><b>€</b>", |
mode_paiement($row->IC_MC_ID), |
"<input type=\"submit\" class=\"texte_tb\" value=\"valider\">". |
"<input type=\"button\" value=\"Annuler\" class=\"texte_tb\" onclick=\"javascript:window.location.href='$url';\"></form>", |
" ")) ; |
} |
} |
$table->altRowAttributes(1, array("class" => "texte_tb2"), array("class" => "text2")) ; |
$res .= $table->toHTML()."</div>\n" ; |
unset($table) ; |
} else { |
$res .= "<div>non cotisant</div>\n" ; |
} |
$res .= "<div><input type=\"button\" class=\"texte_tb\" " ; |
$res .= "value=\"Saisir une cotisation\" onclick=\"javascript:window.location.href='$url&action=sc';\"></div>\n" ; |
} |
return $res ; |
} |
function suppression($u_id) { |
global $GS_GLOBAL, $action ; |
// un peu de javascript pour la confirmation en cas de destruction |
$outputText = "function confirmLink(theLink, theSqlQuery) |
{ |
var is_confirmed = confirm(theSqlQuery); |
return is_confirmed; |
} " ; |
// fonction gsite pour inclure la fonction Javascript |
// au code html |
GEN_stockerCodeScript($outputText) ; |
$url = $GLOBALS['ann_url']->getURL() ; |
$res = "<div>Supprimer l'inscription</div>\n" ; |
$res .="<div><form action=\"$url&action=suppr_adh\" method=\"post\">\n" ; |
$res .= "<input type=\"submit\" class=\"texte_tb\" value=\"Supprimer\" " ; |
$res .= "onclick=\"javascript:return confirmLink(this, 'êtes-vous sûr de vouloir supprimer cet adhérent');\">\n" ; |
$res .= "</form></div>\n" ; |
if ($action=="suppr_adh") { |
$queryLogin = "select U_MAIL from annuaire_tela where U_ID=$u_id" ; |
$resultLogin = mysql_query($queryLogin) or die ("Echec de la requete sur annu_USERS"); |
$rowLogin = mysql_fetch_object($resultLogin) ; |
$mail = $rowLogin->U_MAIL ; |
mysql_free_result($resultLogin) ; |
// vérifications |
// 1. annu_ADMIN |
$q_annu_ADMIN = "select AA_ID from annu_ADMIN where AA_ID=$u_id" ; |
$r_annu_ADMIN = mysql_query($q_annu_ADMIN) or die ("Echec ..." ); |
if (mysql_num_rows($r_annu_ADMIN) != 0) { |
$res .= "Une référence dans annu_ADMIN" ; |
} |
// 2. |
// suppression |
$query = "delete from annuaire_tela where U_ID=$u_id" ; |
} |
return $res ; |
} |
/** function mode_paiement () Produit un champs select avec le mode de paiement |
* |
* |
* @param integer mode de paiement par defaut |
* @return string HTML |
*/ |
function mode_paiement ($defaut) { |
$res = "<select name=\"IC_MC_ID\" class=\"insInputForm\">\n" ; |
$req_mode = "select * from MODE_COTISATION" ; |
$res_mode = mysql_query($req_mode) or die ($req_mode."<br>".mysql_error()) ; |
while ($ligne_mode = mysql_fetch_object($res_mode)) { |
$res .= "<option value=\"$ligne_mode->MC_ID\"" ; |
if ($ligne_mode ->MC_ID == $defaut) $res .= " selected" ; |
$res .= ">$ligne_mode->MC_LABEL</option>\n" ; |
} |
$res .= "</select>\n" ; |
return $res ; |
} |
?> |
/trunk/client/ins_annuaire/bibliotheque/inscription.fonct.php |
---|
New file |
0,0 → 1,553 |
<?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: inscription.fonct.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
// CVS : $Id: inscription.fonct.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
/** |
* Fonctions du module inscription |
* |
* Fonctions du module inscription |
* |
*@package inscription |
//Auteur original : |
*@author Alexandre Granier <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $ |
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
include_once 'inscription.fonct.wiki.php' ; |
if (INS_UTILISE_SPIP) include_once 'inscription.fonct.spip.php' ; |
require_once 'HTML/QuickForm.php' ; |
require_once 'HTML/QuickForm/checkbox.php' ; |
require_once 'HTML/QuickForm/password.php' ; |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** |
* |
* @param array les valeurs renvoyés par le formulaire |
* @return |
*/ |
// A COMPLETER , NE MARCHE PAS |
function demande_inscription($valeurs) { |
// On stocke les informations dans un variable de session |
$_SESSION['donnees_inscription'] = $valeurs ; |
// On envoie un email de confirmation pour l'utilisateur |
$GLOBALS['ins_url']->addQueryString('id', session_id()) ; |
mail($GLOBALS['email'], INS_ENTETE_INSCRIPTION, INS_MESSAGE_VALIDER_INSCRIPTION.$GLOBALS['ins_url']->getURL()) ; |
} |
/** |
* |
* @param array les valeurs renvoyés par le formulaire |
* @return |
*/ |
function inscription_validee($valeurs) { |
insertion($valeurs) ; |
$GLOBALS['AUTH']->username = $valeurs['email'] ; |
$GLOBALS['AUTH']->password = $valeurs['mot_de_passe'] ; |
// On loggue l'utilisateur |
$GLOBALS['AUTH']->login() ; |
// inscription à la lettre d'information |
if (isset ($valeurs['lettre'])) { |
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ; |
} |
} |
/** |
* Réalise l'insertion dans la base de donnée |
* |
* @param array un tableau de valeur avec en clé les noms des champs du formulaire |
* @return void |
*/ |
function AUTH_formulaire_login($msg = '') { |
//-------------------------------------------------------------------------- |
// Le formulaire |
//-------------------------------------------------------------------------- |
$res = ''; |
if ($msg!='') {$res .= $msg.'<br /><br />';} |
$res .= '<br /><div>'.INS_DEJA_INSCRIT.'</div><br />'."\n" ; |
$GLOBALS['ins_url']->removeQueryString('action') ; |
$form = new HTML_QuickForm('inscription', 'post', str_replace ('&', '&', $GLOBALS['ins_url']->getURL())) ; |
$form->addElement('text', 'username', INS_EMAIL) ; |
$form->addElement('password', 'password', INS_MOT_DE_PASSE) ; |
$form->addElement('submit', 'valider', INS_VALIDER); |
$res .= $form->toHTML()."\n" ; |
$res .= '<div>'.INS_TEXTE_PERDU.'</div><br /><br />'."\n" ; |
$GLOBALS['ins_url']->addQueryString('action', 'inscription') ; |
$form = new HTML_QuickForm('inscription', 'post', preg_replace ('/&/', '&', str_replace ('&', '&', $GLOBALS['ins_url']->getURL()))) ; |
$form->addElement('submit', 'Inscription', INS_INSCRIPTION_PERSONNE) ; |
if (INS_FORMULAIRE_STRUCTURE) $form->addElement('submit', 'form_structure', INS_INSCRIPTION_STRUCTURE) ; |
$res .= "<div>".INS_LAIUS_INSCRIPTION_2."</div>\n" ; |
$res .= $form->toHTML() ; |
return $res; |
} |
/** message_erreur () - Renvoie le code HTML d'un message d'erreur |
* |
* @return string HTML |
*/ |
function message_erreur() { |
$res = ''; |
$url = preg_replace ('/&/', '&', $GLOBALS['ins_url']->getURL()) ; |
$res .= "<div class=\"inscription_erreur\">".INS_ERREUR_LOGIN."</div>\n" ; |
$res .= "<div>".INS_SI_PASSE_PERDU."</div>\n" ; |
$res .= '<div>' ; |
$res .= '<form action="'.$url.'&action=sendpasswd" method="post">'."\n" ; |
$res .= INS_EMAIL.' ' ; |
$res .= '<input type="text" value="'.$_POST['username'].'" name="mail" size="32" /></li></ul>'."\n" ; |
$res .= "<input type=\"submit\" value=\"".INS_ENVOIE_PASSE."\" />" ; |
$res .= "</form></div>\n" ; |
// On remet le formulaire d'inscription mais un peu réduit |
$res .= '<br /><h3 class="titre2_inscription">'.INS_DEJA_INSCRIT.'</h3>' ; |
$form = new HTML_QuickForm ('inscription', 'post', $url) ; |
$form->addElement ('text', 'username', INS_EMAIL) ; |
$form->addElement ('password', 'password', INS_MOT_DE_PASSE) ; |
$form->addElement('submit', 'valider', INS_VALIDER); |
$res .= $form->toHTML() ; |
$res .= '<h3 class="titre2_inscription">'.INS_PAS_INSCRIT.'</h3>' ; |
$GLOBALS['ins_url']->addQueryString('action', 'inscription') ; |
$form = new HTML_QuickForm('inscription', 'post', preg_replace ('/&/', '&', str_replace ('&', '&', $GLOBALS['ins_url']->getURL()))) ; |
$form->addElement('submit', 'Inscription', INS_INSCRIPTION) ; |
if (INS_FORMULAIRE_STRUCTURE) $form->addElement('submit', 'form_structure', INS_INSCRIPTION_STRUCTURE) ; |
$res .= "<div>".INS_LAIUS_INSCRIPTION_2."</div>\n" ; |
$res .= $form->toHTML() ; |
return $res; |
} |
function insertion($valeur) { |
// =========== Insertion dans l'annuaire gen_annuaire =================== |
$id_administrateur = nextId(INS_ANNUAIRE, INS_CHAMPS_ID, $GLOBALS['ins_db']) ; |
$requete = 'insert into '.INS_ANNUAIRE.' set '. |
INS_CHAMPS_ID.'="'.$id_administrateur.'",'. |
requete_annuaire($valeur) ; |
$resultat = $GLOBALS['ins_db']->query ($requete) ; |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().$resultat->getDebugInfo()) ; |
} |
// ================ Insertion dans SPIP ========================================= |
if (INS_UTILISE_SPIP) { |
inscription_spip($id_administrateur, $valeur) ; |
} |
//inscription_interwikini_users() ; |
} |
/** |
* Réalise une mise à jour dans la base de donnée |
* |
* @param array un tableau de valeur avec en clé les noms des champs du formulaire |
* @return void |
*/ |
function mise_a_jour($valeur) { |
// ====================Mise à jour dans l'annuaire gen_annuaire ==================== |
$requete = 'update '.INS_ANNUAIRE.' set '. |
requete_annuaire ($valeur). |
'where '.INS_CHAMPS_ID.'="'.$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID).'"'; |
$resultat = $GLOBALS['ins_db']->query ($requete) ; |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().$resultat->getDebugInfo()) ; |
} |
unset ($resultat) ; |
// ========================= Mise à jour dans SPIP ================================ |
if (INS_UTILISE_SPIP) { |
mod_inscription_spip($GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID), $valeur) ; |
} |
} |
/** requete_annuaire() - Renvoie une chaine contenant les champs de l'annuaire avec leur valeur suite à le fonction process de QuickForm |
* |
* @return string une requete du type champs="valeur",... |
*/ |
function requete_annuaire($valeur) { |
$req = INS_CHAMPS_NOM.'="'.$valeur['nom'].'",'. |
INS_CHAMPS_PRENOM.'="'.$valeur['prenom'].'",'. |
INS_CHAMPS_MAIL.'="'.$valeur['email'].'",' ; |
if (INS_UTILISE_WIKINI) $req .= INS_CHAMPS_NOM_WIKINI.'="'.$valeur['nomwiki'].'",' ; |
$req .= INS_CHAMPS_PASSE.'="'.md5 ($valeur['mot_de_passe']).'",'. |
INS_CHAMPS_PAYS.'="'.$valeur['pays'].'",'. |
INS_CHAMPS_ADRESSE_1.'="'.$valeur['adresse_1'].'",'. |
INS_CHAMPS_ADRESSE_2.'="'.$valeur['adresse_2'].'",'. |
INS_CHAMPS_DATE_INSCRIPTION.'=NOW(),'. |
INS_CHAMPS_CODE_POSTAL.'="'.$valeur['cp'].'" ' ; |
if (INS_FORMULAIRE_STRUCTURE) { |
$req .= ",".INS_CHAMPS_EST_STRUCTURE.'="'.$valeur['est_structure'].'"' ; |
$req .= ",".INS_CHAMPS_SIGLE_STRUCTURE.'="'.$valeur['sigle_structure'].'"' ; |
} |
// traitement du numéro de département pour la france |
if (isset($valeur[INS_CHAMPS_PAYS])) { |
if ($valeur[INS_CHAMPS_PAYS] == 'FR') { |
if (preg_match("/^97|98[0-9]*/", $valeur['cp'])) { |
$n_dpt = substr($valeur['cp'], 0, 3) ; |
} else { |
$n_dpt = substr($valeur['cp'], 0, 2) ; |
} |
$req .= ",".INS_CHAMPS_DEPARTEMENT."='$n_dpt'"; |
}} |
// Le téléphone et le fax |
if (INS_CHAMPS_TELEPHONE) { |
$req .= ",".INS_CHAMPS_TELEPHONE.'="'.$valeur['telephone'].'"' ; |
} |
if (INS_CHAMPS_FAX) { |
$req .= ",".INS_CHAMPS_FAX.'="'.$valeur['fax'].'"' ; |
} |
if (INS_CHAMPS_STRUCTURE) { |
$req .= ",".INS_CHAMPS_STRUCTURE.'="'.$valeur['structure'].'"' ; |
} |
return $req ; |
} |
/** formulaire_defaults() - Renvoie un tableau avec les valeurs par défaut du formulaire d'inscription |
* |
* @return array Valeurs par défaut du formulaire d'inscription |
*/ |
function formulaire_defaults() { |
$requete = 'select '.INS_ANNUAIRE.'.* '. |
'from '.INS_ANNUAIRE.' '. |
'where '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'= "'.$GLOBALS['AUTH']->getAuthData (INS_CHAMPS_ID).'"' ; |
$resultat = $GLOBALS['ins_db']->query ($requete) ; |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ; |
$valeurs_par_defaut = array() ; |
$valeurs_par_defaut['email'] = $ligne[INS_CHAMPS_MAIL]; |
$valeurs_par_defaut['nom'] = $ligne[INS_CHAMPS_NOM]; |
$valeurs_par_defaut['prenom'] = $ligne[INS_CHAMPS_PRENOM] ; |
$valeurs_par_defaut['pays'] = $ligne[INS_CHAMPS_PAYS] ; |
if (INS_UTILISE_WIKINI) {$valeurs_par_defaut['nomwiki'] = $ligne[INS_CHAMPS_NOM_WIKINI] ;} |
$valeurs_par_defaut['cp'] = $ligne[INS_CHAMPS_CODE_POSTAL] ; |
$valeurs_par_defaut['ville'] = $ligne[INS_CHAMPS_VILLE] ; |
$valeurs_par_defaut['adresse_1'] = $ligne[INS_CHAMPS_ADRESSE_1] ; |
$valeurs_par_defaut['adresse_2'] = $ligne[INS_CHAMPS_ADRESSE_2] ; |
$valeurs_par_defaut['telephone'] = $ligne[INS_CHAMPS_TELEPHONE] ; |
$valeurs_par_defaut['fax'] = $ligne[INS_CHAMPS_FAX] ; |
$valeurs_par_defaut['structure'] = $ligne[INS_CHAMPS_STRUCTURE] ; |
$valeurs_par_defaut['lettre'] = $ligne[INS_CHAMPS_LETTRE] ; |
return $valeurs_par_defaut ; |
} |
function bouton($url) { |
$boutons = new HTML_QuickForm('inscription', 'post', $url) ; ; |
//confirmation() ; |
$buttons[] = &HTML_QuickForm::createElement('submit', 'modifier', INS_MODIFIER_INSCRIPTION); |
$buttons[] = &HTML_QuickForm::createElement('submit', 'supprimer', INS_SUPPRIMER_INSCRIPTION, |
array ("onclick" => "javascript:return confirm('".INS_SUPPRIMER_INSCRIPTION." ?');")); |
$boutons->addGroup($buttons, null, null, ' '); |
return '<div>'.$boutons->toHTML().'</div>' ; |
} |
/** |
* Renvoie un lien pour se déconnex=cter |
* |
* @return string |
*/ |
function deconnexion($url) { |
// Un champs logout |
return "<div><a href=\"".$url."&logout=1\">".INS_DECONNEXION."</a></div>" ; |
} |
function info() { |
$requete = 'select * from '.INS_ANNUAIRE.' '. |
'where '.INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'="'.$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID).'"' ; |
$resultat = $GLOBALS['ins_db'] -> query($requete) ; |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ; |
$res .= "<br /><h2 class=\"inscription_titre1\">".INS_MESSAGE_BIENVENU ; |
$res .= "</h2><br />\n" ; |
$res .= "<h3 class=\"inscription_titre2\">".INS_FICHE_PERSONNELLE."</h3><br />\n" ; |
$res .= "<div>".INS_EMAIL." : ".$ligne[INS_CHAMPS_MAIL]."</div>\n" ; |
if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 1) $nom = INS_NOM_STRUCTURE ; else $nom = INS_NOM ; |
$res .= "<div>".$nom." : ".$ligne[INS_CHAMPS_NOM]."</div>" ; |
if ($ligne[INS_CHAMPS_EST_STRUCTURE] == 0) $res .= "<div>".INS_PRENOM." : ".$ligne[INS_CHAMPS_PRENOM]."</div>\n" ; |
if (INS_UTILISE_WIKINI) {if ($ligne[INS_CHAMPS_NOM_WIKINI] != "") $res .= "<div>".INS_NOM_WIKI." : ".$ligne[INS_CHAMPS_NOM_WIKINI]."</div>\n" ;} |
if ($ligne[INS_CHAMPS_ADRESSE_1] != "") $res .= "<div>".INS_ADRESSE_1." : ".$ligne[INS_CHAMPS_ADRESSE_1]."</div>\n" ; |
if ($ligne[INS_CHAMPS_ADRESSE_2] != "") $res .= "<div>".INS_ADRESSE_2." : ".$ligne[INS_CHAMPS_ADRESSE_2]."</div>\n" ; |
if ($ligne[INS_CHAMPS_TELEPHONE] != "") $res .= "<div>".INS_TEL." : ".$ligne[INS_CHAMPS_TELEPHONE]."</div>\n" ; |
if ($ligne[INS_CHAMPS_FAX] != "") $res .= "<div>".INS_FAX." : ".$ligne[INS_CHAMPS_FAX]."</div>\n" ; |
if ($ligne[INS_CHAMPS_STRUCTURE] != "") $res .= "<div>".INS_STRUCTURE." : ".$ligne[INS_CHAMPS_STRUCTURE]."</div>\n" ; |
$res .= bouton(str_replace ('&', '&', $GLOBALS['ins_url']->getURL())); |
$res .= deconnexion($GLOBALS['ins_url']->getURL()) ; |
return $res ; |
} |
function verif_doublonMail($mail) { |
if (isset ($GLOBALS['AUTH']) && $GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) != '') { |
$requete_mail = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".INS_CHAMPS_ID."=".$GLOBALS['AUTH']->getAuthData(INS_CHAMPS_ID) ; |
$resultat_mail = $GLOBALS['ins_db']->query ($requete_mail) ; |
if (DB::isError ($resultat_mail)) { |
die ("Echec de la requete : $requete_mail<br />".$resultat_mail->getMessage()) ; |
} |
$ligne_mail = $resultat_mail->fetchRow(DB_FETCHMODE_ASSOC) ; |
if ($mail == $ligne_mail[INS_CHAMPS_MAIL]) { |
return true ; |
} |
} |
$requete = "select ".INS_CHAMPS_MAIL." from ".INS_ANNUAIRE." where ".INS_CHAMPS_MAIL."= \"$mail\"" ; |
$resultat = $GLOBALS['ins_db']->query ($requete) ; |
if (DB::isError ($resultat)) { |
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ; |
} |
if ($resultat->numRows() == 0) return true ; |
return false ; |
} |
function envoie_passe() |
{ |
global $SERVER_ADMIN ; |
$headers['From'] = $SERVER_ADMIN ; |
$headers['Subject'] = INS_NOUVEAU_MOT_DE_PASSE; |
$nouveau_passe = create_new_random(6) ; |
$body = INS_NOUVEAU_MOT_DE_PASSE_2.$nouveau_passe ; |
$body .= INS_NOUVEAU_MOT_DE_PASSE_LAIUS ; |
// modification du mot de passe dans la base |
$requete = "update ".INS_ANNUAIRE." set ".INS_CHAMPS_PASSE."=MD5(\"$nouveau_passe\") where ".INS_CHAMPS_MAIL."=\"".$GLOBALS['username']."\"" ; |
$resultat = $GLOBALS['ins_db']->query($requete) ; |
if (DB::isError($resultat)) { |
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
} |
// création du mail |
if (!mail ($GLOBALS['username'], $headers['Subject'], $body)) { |
return 'erreur lors de l\'envoie de mail' ; |
} |
return "<div class=\"titre1_inscription\">".INS_MOT_DE_PASSE_ENVOYE_1.': '.$GLOBALS['mail']."</div>\n". |
"<div><br />".INS_MOT_DE_PASSE_ENVOYE_2."</div>\n"; |
} |
/** |
* Inscrit un adhérent à la lettre d'actualité par l'envoie d'un email subscribe / unsubscribe |
* à la liste |
* |
* @global AUTH Un objet PEAR::Auth |
* @return boolean true en cas de succès |
*/ |
function inscription_lettre($action) { |
include_once 'Mail.php' ; |
$mail = & Mail::factory ('smtp') ; |
$email = $GLOBALS['AUTH']->getUsername() ; |
$headers ['Return-Path'] = $email ; |
$headers ['From'] = "<".$email.">" ; |
$headers ['Subject'] = $action ; |
$headers ['Reply-To'] = $email ; |
$mail -> send ($action, $headers, "") ; |
if (PEAR::isError ($mail)) { |
echo '<div class="erreur">Le mail n\'est pas partie...</div>' ; |
return false ; |
} |
return true ; |
} |
/** |
* |
* @global ins_db Un pointeur vers un objet PEAR::DB connecté |
* @return |
*/ |
function envoie_mail() //A COMPLETER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
{ |
include_once 'Mail/mime.php' ; |
$crlf="\n"; |
$headers ['From'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ; |
$headers ['Subject'] = INS_MAIL_COORD_SUJET ; |
$headers ['Reply-To'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ; |
$mime = new Mail_mime($crlf); |
$requete = "select *, ".INS_CHAMPS_LABEL_PAYS." from ".INS_ANNUAIRE.",".INS_TABLE_PAYS. |
" where ".INS_CHAMPS_MAIL."=\"".$GLOBALS['AUTH']->getUsername()."\"". |
" and ".INS_CHAMPS_ID_PAYS."=".INS_CHAMPS_PAYS; |
$resultat = $GLOBALS['ins_db']->query($requete) ; |
if (DB::isError ($resultat)) { |
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ; |
$body_entete = INS_MAIL_COORD_CORPS."\n" ; |
$body = "mail : ".$ligne[INS_CHAMPS_MAIL]."\n" ; |
$body .= "------------------------------------------\n"; |
$body .= INS_NOM.": ".unhtmlentities($ligne[INS_CHAMPS_NOM])." \n" ; |
$body .= INS_PRENOM.' : '.unhtmlentities($ligne[INS_CHAMPS_PRENOM])." \n" ; |
$body .= INS_PAYS." : ".unhtmlentities($ligne[PROJET_CHAMPS_LABEL_PAYS])." \n" ; |
$body .= "-------------------------------------------\n" ; |
$mime->setTXTBody($body); |
$mime->setHTMLBody(info()) ; |
$body = $mime->get(); |
$headers = $mime->headers($headers); |
$mail = & Mail::factory('mail') ; |
$mail -> send ($ligne[INS_CHAMPS_MAIL], $headers, $body) ; |
if (PEAR::isError($mail)) { |
echo 'erreur d\'envoi' ; |
return false ; |
} |
return true ; |
} |
// For users prior to PHP 4.3.0 you may do this: |
function unhtmlentities($string) |
{ |
$trans_tbl = get_html_translation_table (HTML_ENTITIES); |
$trans_tbl = array_flip ($trans_tbl); |
return strtr ($string, $trans_tbl); |
} |
//============================================================================== |
/** function create_new_random($n,$type) permet de générer un nombre de caractères aléatoires. |
* |
* |
* |
* ENTREE : |
* - $n : créer un 'mot' de $n caractères |
* - $type : permet de définir la liste des caractères disponibles |
* |
* SORTIE : chaine de $n caractères pris dans une liste $type |
*/ |
function create_new_random($n,$type="") |
{ |
$str = ""; |
switch ($type){ |
default:{ |
$chaine = "abcdefghkmnpqrstuvwxyzABCDEFGHKLMNPQRSTUVWXYZ23456789"; |
} |
break; |
} |
srand((double)microtime()*1000000); |
for($i = 0; $i < $n; $i++){ |
$str .= $chaine[rand()%strlen($chaine)]; |
} |
return "$str"; |
} |
//============================================================================== |
/** function nextId () Renvoie le prochain identifiant numérique libre d'une table |
* |
* On passe en paramètre le nom de la table et l'identifiant de la base selon PEAR DB |
* |
* @param mixed handler de connexion |
* @param string Nom de la table |
* return interger l'identifiant |
*/ |
function nextId($table, $colonne_identifiant) |
{ |
$requete = 'select MAX('.$colonne_identifiant.') as maxi from '.$table ; |
$resultat = $GLOBALS['ins_db']->query($requete) ; |
if (DB::isError($resultat)) { |
die (__FILE__ . __LINE__ . $resultat->getMessage() . $requete); |
return $GLOBALS['ins_db']->raiseError($resultat) ; |
} |
if ($resultat->numRows() > 1) { |
return $GLOBALS['ins_db']->raiseError("<br/>La table $table a un identifiant non unique<br/>") ; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ; |
return $ligne->maxi + 1 ; |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.3 2005/03/21 16:57:30 florian |
* correction de bug, mise à jour interface |
* |
* Revision 1.2 2004/12/17 17:41:51 alex |
* ajout du numéro de tel, du fax et de la structure |
* |
* Revision 1.1 2004/12/15 13:32:25 alex |
* version initiale |
* |
* Revision 1.2 2004/09/01 16:37:52 alex |
* modification du formulaire |
* |
* Revision 1.1 2004/07/06 15:42:17 alex |
* en cours |
* |
* Revision 1.7 2004/07/06 15:28:41 alex |
* en cours |
* |
* Revision 1.5 2004/07/06 15:22:19 alex |
* en cours |
* |
======= |
* Revision 1.4 2004/06/30 10:00:26 alex |
* modification de l'envoie de mail |
* |
* Revision 1.2 2004/06/23 12:41:51 alex |
* amélioration de la gestion de la perte de mot de passe |
* |
* Revision 1.1 2004/06/18 09:20:47 alex |
* version initiale |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/client/ins_annuaire/bibliotheque/annuaire.fonct.php |
---|
New file |
0,0 → 1,205 |
<?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: annuaire.fonct.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
/** |
* Fonctions du module annuaire |
* |
* Fonctions du module annuaire |
* |
*@package annuaire |
//Auteur original : |
*@author Alexandre Granier <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
include_once "HTML/QuickForm.php" ; |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** function parcourirAnnu () Affiche l'annuaire à partir d'une lettre |
* |
* |
* |
* @return string HTML |
*/ |
function parcourirAnnu() { |
$res = '<div><table><tr>'; |
// ecrire toutes les lettres avec un lien |
for ($i = 65 ; $i <91 ; $i++) { |
$res .= '<td><a style="font-size:15px;" href="'.$GLOBALS['ins_url']->getURL().'&lettre='; |
$res .= chr($i) ; |
$res .= '">'; |
$res .= chr($i) ; |
$res .= '</a></td>'."\n"; |
} |
$res .= '</tr></table></div>'."\n"; |
// si une lettre est selectionne |
if (!empty($_REQUEST['lettre'])) { |
$requete = 'SELECT '.INS_CHAMPS_ID; |
foreach($GLOBALS['annuaire_champs_visibles']['champs_db'] as $i) { |
$requete .= ', '.$i; |
} |
$requete .= ' FROM '.INS_ANNUAIRE.' WHERE '; |
if ($_REQUEST['lettre'] != 'tous') { |
$requete .= INS_CHAMPS_NOM.' LIKE "'.$_REQUEST['lettre'].'%"'; |
} else { |
$requete .= '1'; |
} |
$requete .= ' ORDER BY '.INS_CHAMPS_NOM ; |
$resultat = $GLOBALS['ins_db']->query($requete); |
var_dump($resultat); |
if ($resultat->numRows()>0) { |
$i=0; |
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) { |
$donnees_membres[$i++]=$ligne; |
} |
$res .= listes_inscrit($donnees_membres, $GLOBALS['annuaire_champs_visibles']['label_champs']); |
} else {$res .= ANN_PAS_D_INSCRITS;} |
} |
return $res ; |
} |
/** |
* Renvoie le code HTML de la liste des inscrits |
* en fonction de la requete passé en parametre |
* |
* @return Renvoie le code HTML de la liste des inscrits |
*/ |
function listes_inscrit(& $donnees_membres, & $entete , $case_a_cocher=true) { |
$res = '<div>'."\n"; |
if ($case_a_cocher) {$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'"&lettre='.$_REQUEST['lettre'].'" method="post" name="formmail">'."\n";} |
$res .= '<table id="table_inscrit">'."\n".'<colgroup>'."\n"; |
if ($case_a_cocher) {$res .= '<col />';} |
foreach($entete as $i) {$res .= '<col />'; } |
$res .= '</colgroup>'."\n".'<thead>'."\n"; |
if ($case_a_cocher) {$res .= '<th> </th>'."\n";} |
foreach($entete as $i) { |
$res .= '<th>'.$i.'</th>'."\n"; |
} |
$res .= '</thead>'."\n"; |
$indic=0; |
$i=1; |
foreach($entete as $i) { |
if ($indic==0) { |
$res.='<tr class="ligne_impaire">'."\n"; |
$indic=1; |
} |
else { |
$res.='<tr class="ligne_paire">'."\n"; |
$indic=0; |
} |
} |
for ($i=0;$i<count($donnees_membres);$i++) { |
$id = array_shift($donnees_membres[$i]); |
if ($case_a_cocher) {$res.='<td><input type="checkbox" name="select[]" value="'.$id.'"></td>'."\n";} |
foreach($donnees_membres[$i] as $valeur) $res .= '<td>'.$valeur.'</td>'."\n" ; |
$res .= '</tr>'."\n"; |
} |
$res .= '</table></div>'."\n"; |
if ($case_a_cocher) { |
$res .= '<div class="texte">'.ANN_CHECK_UNCHECK ; |
$res .= ' <input type="checkbox" name="selecttotal" onclick="javascript:setCheckboxes(\'formmail\');"></div>'; |
$res .= '<h3>'.ANN_ENVOYER_MAIL.'</h3>'."\n"; |
$res .= '<div>'."\n".'<table border="0">'."\n" |
.'<tr><td class="texte">'.ANN_SUJET.' :</td>'."\n" |
.'<td><input class="forml" type="text" name="titre_mail" size="60"></td>'."\n" |
.'</tr><tr><td class="texte" valign="top">'.ANN_MESSAGE.' : </td>'."\n" |
.'<td><textarea class="forml" name="corps" rows="5" cols="60"></textarea></td>'."\n" |
.'</tr><tr><td></td><td align="center">'; |
$res.='<input type="submit" value="'.ANN_ENVOYER.'">'; |
$res.='</td>'."\n".'</tr>'."\n".'</table>'."\n".'</div>'."\n".'</form>'."\n"; |
} |
return $res ; |
} |
/** envoie_mail_depuis_annuaire() |
* |
* |
* @return envoie l'email |
*/ |
function envoie_mail_depuis_annuaire() { |
$requete = "select ".ANN_CHAMPS_MAIL." from ".ANN_ANNUAIRE. |
" where ".ANN_CHAMPS_ID."='".$GLOBALS['AUTH']->getAuthData (ANN_CHAMPS_ID)."'"; |
$resultat = $GLOBALS['ann_db']->query($requete); |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()); |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC); |
$entete = "From: <".$ligne[ANN_CHAMPS_MAIL].">\n"; |
$_POST['corps'] .= ANN_PIED_MESSAGE; |
$_POST['corps'] = stripslashes($_POST['corps']) ; |
$liste = "" ; |
foreach ($_POST['select'] as $key => $value) { |
mail ($value, stripslashes($_POST['titre_mail']), $_POST['corps'] , $entete) ; |
$liste .= $value."\n" ; |
} |
$_POST['corps'] .= "\n----------------------------------------------------------------------------"; |
$_POST['corps'] .= "\n".ANN_MESSAGE_ENVOYE_A." :\n $liste" ; |
mail (CAR_MAIL_ADMIN, stripslashes($_POST['titre_mail']), $_POST['corps'], $entete); |
$_POST['corps'] = ''; |
$_POST['titre_mail'] = ''; |
return '<div>'.ANN_MAIL_ENVOYER.'</div>' ; |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.3 2005/03/24 08:24:29 alex |
* -- |
* |
* Revision 1.2 2005/01/06 15:18:31 alex |
* modification de la fonction de formulaire d'authentification |
* |
* Revision 1.1.1.1 2005/01/03 17:27:49 alex |
* Import initial |
* |
* Revision 1.1 2005/01/03 17:18:49 alex |
* retour vers la liste des participants après un ajout. |
* |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/client/ins_annuaire/bibliotheque/inscription.fonct.wiki.php |
---|
New file |
0,0 → 1,133 |
<?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: inscription.fonct.wiki.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
/** |
* Fonctions wikini |
* |
* Ce fichier propose 3 fonctions pour intervenir sur la table interwikini_users. |
* |
*@package inscription |
*@subpackage fonctions_wikini |
//Auteur original : |
*@author Alexandre Granier <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ $Date: 2005-04-06 13:33:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
function inscription_interwikini_users() { |
global $db, $HTTP_POST_VARS ; |
$requete = "insert into interwikini_users set name=\"".$HTTP_POST_VARS['nomwiki']. |
"\", password=\"".md5($HTTP_POST_VARS['password'])."\", email=\"".$HTTP_POST_VARS['email']."\"" ; |
$resultat = $db->query ($requete) ; |
if (DB::isError($resultat)) { |
die ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ; |
} |
} |
function mod_inscription_interwikini_users($id) { |
global $db, $HTTP_POST_VARS, $AUTH ; |
$requete = "update interwikini_users set password=\"".md5($HTTP_POST_VARS['password'])."\", email=\"".$HTTP_POST_VARS['mail']."\"". |
" where name=\"".$AUTH->getAuthData(INS_CHAMPS_LOGIN)."\"" ; |
$resultat = $db->query ($requete) ; |
if (DB::isError($resultat)) { |
die ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ; |
} |
} |
function desinscription_interwikini_users($nomwiki) { |
global $db ; |
$requete = "delete from interwikini_users where name=\"$nomwiki\"" ; |
$resultat = $db->query ($requete) ; |
if (DB::isError($resultat)) { |
die ("Echec de la requete dans interwikini_users<br />".$resultat->getMessage()) ; |
} |
} |
function verif_doublonNomWiki($nom_wiki) { |
global $db ; |
$requete = "select name from interwikini_users where name = \"$nom_wiki\"" ; |
$resultat = $db->query ($requete) ; |
if (DB::isError ($resultat)) { |
die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ; |
} |
if ($resultat->numRows() == 0) return true ; |
return false ; |
} |
function wiki_cookie() { |
if ($userid != "") { |
// 1. name |
// On recherche le nom |
$nomwikini = $AUTH->getAuthData('ga_login') ; |
setcookie ("name", $nomwikini, time () + 3600 * 24 * 30, "/" ) ; // 1 mois |
//2. password |
// on recherche le mot de passe crypté |
$requete = "select ga_mot_de_passe from gen_annuaire where ga_id_administrateur=$userid" ; |
$resultat = $db->query ($requete) ; |
if (DB::isError($resultat)) { |
die ("Erreur") ; |
} |
$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ; |
$mot_de_passe = $ligne->ga_mot_de_passe ; |
setcookie ("password", $mot_de_passe, time () + 3600 * 24 * 30, "/") ; |
// 3. remember |
setcookie ("remember", 1, time () + 3600 * 24 * 30, "/") ; |
} |
} |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.2 2005/03/21 16:57:30 florian |
* correction de bug, mise à jour interface |
* |
* Revision 1.1 2004/12/15 13:32:25 alex |
* version initiale |
* |
* Revision 1.1 2004/07/06 15:42:17 alex |
* en cours |
* |
* Revision 1.1 2004/06/18 09:20:48 alex |
* version initiale |
* |
* |
* +-- Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |
/trunk/client/ins_annuaire/bibliotheque/mail_tous.php |
---|
New file |
0,0 → 1,105 |
<?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: mail_tous.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
/** |
* Permet d'envoie un mail à une sélection dans l'annuaire |
* |
* |
*@package annuaire |
//Auteur original : |
*@author Alexandre Granier <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.1 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
function putFrame() { |
// configuration |
global $objet, $corps, $annuaire_LABEL_STATUT, $SERVER_ADMIN ; |
global $action ; |
$url = $GLOBALS['ann_url']->getURL() ; |
$annu_table = "annuaire_tela" ; |
$champs_mail = "U_MAIL" ; |
// Entete |
$corps_debut = "RESEAU TELA BOTANICA - Le ".date("j/m/Y"). |
"\n\nBonjour,\n"."\n\nCordialement,\n-------------------\nTela Botanica le réseau des botanistes francophones\naccueil@tela-botanica.org\nhttp://www.tela-botanica.org\n"; |
$res = "<h1>Envoi d'un mail à tous les membres</h1>\n" ; |
if ($_GET['action'] == ANN_MAIL_TOUS_ENVOIE) $res .= envoie_mail_selection() ; |
// formulaire |
$res .= "<div><form action=\"$url&action=".ANN_MAIL_TOUS_ENVOIE."\" method=\"post\"><table>\n" ; |
$res .= "<tr><td class=\"insLabel\">" ; |
$res .= "Objet : </td><td><input size=\"91\" name=\"objet\" type=\"text\" class=\"insInputForm\"></td></tr>\n" ; |
$res .= "<tr><td class=\"insLabel\">Corps : </td><td><textarea name=\"corps\" cols=\"90\" rows=\"30\" class=\"insInputForm\">$corps_debut</textarea></td></tr>\n" ; |
$res .= "<tr><td></td><td><input type=\"submit\" class=\"texte_tb\" value=\"envoyer\"" ; |
$res .= " onclick=\"javascript:return confirm('Etes-vous sur de vouloir envoyer ce message !!');\"" ; |
$res .= "></td></tr>\n" ; |
$res .= "</table></form></div>\n" ; |
return $res ; |
} |
include_once ("Mail.php"); |
// envoie le mail à tous |
function envoie_mail_selection() |
{ |
global $objet, $corps, $annuaire_LABEL_STATUT, $SERVER_ADMIN, $GS_GLOBAL ; |
$annuaire = "annuaire_tela" ; |
$champs_mail = "U_MAIL" ; |
$headers['From'] = "accueil@tela-botanica.org" ; |
$headers['Subject'] = stripslashes($objet) ; |
$corps = stripslashes($corps) ; |
$requete = $_SESSION['requete_mail_tous'] ; |
unset ($_SESSION['requete_mail_tous']) ; |
$resultat = mysql_query($requete) or die ("echec") ; |
while ($ligne = mysql_fetch_object($resultat)) { |
if (!mail($ligne->U_MAIL, $headers['Subject'], $corps, "From: ".$headers['From'])) { |
return "<tr><td>Une erreur s'est produite:<br>".$mail_object->getMessage()."</td></tr>\n" ; |
} |
} |
return "<div>Le mail est parti !</div>\n"; |
} |
?> |
/trunk/client/ins_annuaire/bibliotheque/recu_pdf_corps.php |
---|
New file |
0,0 → 1,166 |
<?php |
// +----------------------------------------------------------------------------+ |
// |pdf_recu_et_mail.php | |
// +----------------------------------------------------------------------------+ |
// | Copyright (c) 2003 Tela Botanica | |
// +----------------------------------------------------------------------------+ |
// | Ce fichier génère un fichier PDF | |
// | contenant le recu pour une cotisation à Tela Botanica | |
// | Il utilise la librairie FPDF | |
// | http://www.fpdf.org/ | |
// | Il envoie également un email à l'adhérent concerné | |
// +----------------------------------------------------------------------------+ |
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> | |
// +----------------------------------------------------------------------------+ |
// |
// $Id: recu_pdf_corps.php,v 1.1 2005-04-06 13:33:32 florian Exp $ |
// Recherche des informations sur un utilisateur |
$requete = "select * from annuaire_COTISATION, annuaire_tela, MODE_COTISATION |
where IC_ID=$cotisation_id |
and IC_ANNU_ID=U_ID |
and IC_MC_ID=MC_ID" ; |
$resultat = $db->query($requete) ; |
if (DB::isError ($resultat)) { |
die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ; |
} |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ; |
$resultat->free() ; |
/* |
// On regarde si le reçu a déjà été envoyé |
$requete = "select IC_RECU from annuaire_COTISATION where IC_ID=$cotisation_id" ; |
$resultat = mysql_query ($requete) or die ($requete."<br>".mysql_error()) ; |
$ligne = mysql_fetch_object($resultat) ; |
mysql_free_result($resultat) ; |
*/ |
if ($ligne->IC_RECU != 0) { |
$num_recu = $ligne->IC_RECU ; |
// $deja_envoye permettra au programme admin_annu.php de ne pas incrementé |
// le compteur de recu |
$deja_envoye = true ; |
} else { |
$res_compteur = $db->query("select COMPTEUR from COMPTEUR_COTISATION") ; |
$ligne_compteur = $res_compteur->fetchRow(DB_FETCHMODE_OBJECT) ; |
$num_recu = $ligne_compteur->COMPTEUR ; |
$deja_envoye = false ; |
} |
@include_once "api/fpdf/fpdf.php"; |
if (!isset($envoie)) $chemin = "client/annuaire/" ; |
// Constante nécessaire à fpdf.php |
define('FPDF_FONTPATH','font/'); |
// Création de l'objet pdf |
$pdf = new FPDF(); |
$pdf->Open(); |
$pdf->AddPage("P"); |
// La ligne du haut |
$pdf->Line(10, 10, 200, 10) ; |
// Contenu du document |
$pdf->SetFont('Arial', '', 8) ; |
$pdf->Cell(150, 10, "", 0, 0) ; |
$pdf->MultiCell(40, 10, "Numéro d'ordre : $num_recu", 1,1, "C") ; |
$pdf->SetY($pdf->GetY() - 10) ; |
$pdf->SetFont('Arial','B',14); |
$pdf->Cell(0,10,'Reçu dons aux uvres', 0, 1, "C"); |
$pdf->SetFont('Arial', '', 10) ; |
$pdf->Cell(0, 0, '(Article 200-5 et 238 bis du Code Général des impôts)', 0, 1, "C") ; |
$pdf->Cell(0, 10, 'REÇU A CONSERVER ET A JOINDRE A VOTRE DECLARATION DE REVENUS 2004', 0, 1, "L") ; |
// On met le logo de Tela |
$pdf->Image($chemin."logotb.png", 12, 35, "29", "", "PNG", "http://www.tela-botanica.org/") ; |
// On écrie Les titres du cadre |
$pdf->SetFontSize(12) ; |
$pdf->Cell(100, 10, 'Bénéficiaire du don', 0, 0, "C") ; |
$pdf->Cell(100, 10, 'Donateur', 0, 1, "C") ; |
$pdf->SetFont('Arial', 'B', 10) ; |
$pdf->Cell(38, 5, '', 0, 0) ; |
$pdf->Cell(62, 5, 'Association Tela Botanica', 0, 0, "L") ; |
$pdf->SetFont('Arial', 'B', 10) ; |
$pdf->Cell(100, 5, "$ligne->U_NAME $ligne->U_SURNAME", 0, 1, "L") ; |
$pdf->SetFont('Arial', '', 10) ; |
$pdf->Cell(38, 5, '', 0, 0) ; |
$pdf->Cell(62, 5, 'Institut de Botanique', 0, 1, "L") ; |
$pdf->Cell(38, 5, '', 0, 0) ; |
$pdf->Cell(62, 5, '163, rue A. Broussonnet', 0, 0, "L") ; |
$pdf->Cell(100, 5, "$ligne->U_ADDR1", 0, 1, "L") ; |
$pdf->Cell(38, 5, '', 0, 0) ; |
$pdf->Cell(62, 5, '34090 Montpellier', 0, 0, "L") ; |
$pdf->Cell(100, 8, "$ligne->U_ADDR2", 0, 1, "L") ; |
$pdf->Cell(100, 5, 'Objet :', 0,1, "L") ; |
$pdf->SetFontSize(8) ; |
$pdf->MultiCell(100, 4, 'Contribuer au rapprochement de tous les botanistes de langue française. Favoriser l\'échange d\'information'. |
' et animer des projets botaniques grâce aux nouvelles technologies de la communication.', 0, 1, "") ; |
$pdf->SetFontSize(10) ; |
$pdf->Text(111, 58 + 8, "$ligne->U_ZIP_CODE $ligne->U_CITY") ; |
$pdf->SetFontSize(8) ; |
$pdf->MultiCell(100,4, 'Organisme d\'intérêt général à caractère scientifique concourant à la diffusion de la langue et des connaissances scientifiques françaises.', 0,1, "R") ; |
// On remonte le curseur de 52 |
$pdf->SetY($pdf->GetY() - 58) ; |
// Le cadre central |
$pdf->Cell(100, 60, '', 1) ; |
$pdf->Cell(90, 60, '', 1) ; |
$pdf->Ln() ; |
$pdf->SetFontSize(10) ; |
$pdf->Cell(0,10, 'L\'Association reconnaît avoir reçu, à titre de don, la somme de :', 0, 1, "L") ; |
$pdf->SetFont('Arial', 'B', 11) ; |
$pdf->Cell(0,10, "*** $ligne->IC_MONTANT euros ***", 0, 1, "C") ; |
$pdf->SetFont('Arial', '', 10) ; |
$pdf->Ln() ; |
$pdf->Cell(100,10, "Date du paiement : ".date ("d/m/Y", $ligne->IC_DATE), 0, 0, "L") ; |
$pdf->Cell(100, 10, 'Montpellier, le '.date("d/m/Y"), 0, 1, "L") ; |
// La signature de Daniel |
$pdf->Image($chemin."signature_Daniel.png", 110, $pdf->GetY(),28.22, "") ; |
$pdf->Ln() ; |
$pdf->Cell(0, 10, "Mode de versement : $ligne->MC_LABEL", 0, 1, "L") ; |
$pdf->Cell(100, 10, '', 0, 0) ; |
$pdf->Cell (100, 10, 'Daniel MATHIEU, Président', 0, 1, "L") ; |
$pdf->Ln(5) ; |
$pdf->SetFontSize(10) ; |
$pdf->Cell(0, 7, '60 % de votre don à Tela Botanica est déductible de vos impôts dans la limite de 20 % de votre revenu imposable.', 1, 1, "C") ; |
?> |