示例#1
0
 function extraireOeuvresDepuisLogGit($loggit = null)
 {
     if (!file_exists($loggit) && !$loggit == null) {
         return false;
     }
     if ($loggit == null) {
         $loggit = $this->{$loggit};
     }
     $fp = fopen($this->loggit, 'r');
     while (($data = fgetcsv($fp, 1000, ";")) !== false) {
         $date = strtotime($data[3]);
         $date = mktime(0, 0, 0, date("m", $date), 1, date("Y", $date));
         $auteur = $data[2];
         if (!isset($auteurs[$auteur])) {
             $personnes_physiques = new AFUP_Personnes_Physiques($this->_bdd);
             $infosUser = $personnes_physiques->getUserByEmail($auteur);
             if ($infosUser) {
                 $auteurs[$auteur] = $infosUser['id'];
             }
         }
         if (isset($auteurs[$auteur])) {
             // on affiche que les membres AFUP
             $id_personne_physique = $auteurs[$auteur];
             if (!isset($this->details['git'][$id_personne_physique][$date])) {
                 $this->details['git'][$id_personne_physique][$date] = 0;
             }
             $this->details['git'][$id_personne_physique][$date]++;
         }
     }
     fclose($fp);
     return true;
 }
示例#2
0
// Impossible to access the file itself
if (!defined('PAGE_LOADED_USING_INDEX')) {
    trigger_error("Direct access forbidden.", E_USER_ERROR);
    exit;
}
$action = verifierAction(array('lister', 'detail', 'rechercher'));
$smarty->assign('action', $action);
//require_once dirname(__FILE__).'/../../../sources/Afup/AFUP_Liste_Membres.php';
//$tags = new AFUP_Liste_Membres($bdd);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Morales.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Pays.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Tags.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Utils.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
$pays = new AFUP_Pays($bdd);
$personnes_morales = new AFUP_Personnes_Morales($bdd);
$tags = new AFUP_Tags($bdd);
$list_champs = '*';
$list_ordre = 'nom, prenom';
$list_sens = 'asc';
$list_filtre = isset($_POST["nom"]) ? $_POST["nom"] : false;
$is_active = 1;
// Obtention du gravatar
$personnes_physiques_liste = $personnes_physiques->obtenirListe($list_champs, $list_ordre, $list_filtre, false, false, false, $is_active);
foreach ($personnes_physiques_liste as &$personne_physique) {
    $personne_physique["gravatar"] = AFUP_Utils::get_gravatar($personne_physique["email"]);
    $personne_physique["tags"] = $tags->obtenirTagsSurPersonnePhysique($personne_physique["id"]);
}
// var_dump($personnes_physiques_liste);die;
示例#3
0
文件: pages.php 项目: fferriere/web
<?php

$pages = array('accueil' => array('nom' => 'Accueil', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'membre' => array('nom' => 'Mon compte', 'elements' => array('membre_coordonnees' => array('nom' => 'Mes coordonnées', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'membre_wiki' => array('nom' => 'Accès  wiki', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE, 'nouvelle_fenetre' => true), 'membre_redmine' => array('nom' => 'Déclarer un problème (GitHub)', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE, 'nouvelle_fenetre' => true), 'membre_cotisation' => array('nom' => 'Ma cotisation', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'membre_personne_morale' => array('nom' => 'Ma personne morale', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'membre_ml' => array('nom' => 'Listes de diffusion', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'membre_assemblee_generale' => array('nom' => 'Présence prochaine AG', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'membre_votes' => array('nom' => 'Votes', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'membre_tags' => array('nom' => 'Tags', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'membre_oeuvres' => array('nom' => 'Oeuvres', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'membres_liste' => array('nom' => 'Annuaire', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR))), 'membres' => array('nom' => 'Membres', 'elements' => array('personnes_physiques' => array('nom' => 'Personnes physiques', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'personnes_morales' => array('nom' => 'Personnes morales', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'relances' => array('nom' => 'Relances', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'statistiques' => array('nom' => 'Statistiques', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'mailing' => array('nom' => 'Mailing', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'assemblee_generale' => array('nom' => 'Assemblée générale', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'votes' => array('nom' => 'Votes', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR))), 'site' => array('nom' => 'Site', 'elements' => array('site_feuilles' => array('nom' => 'Feuilles', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 2), 'site_rubriques' => array('nom' => 'Rubriques', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 2), 'site_articles' => array('nom' => 'Articles', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 2))), 'antenne' => array('nom' => 'Antennes AFUP', 'elements' => array('rendez_vous' => array('nom' => 'Rendez-vous', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 4), 'antenne' => array('nom' => 'Liste des antennes', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 4))), 'forum' => array('nom' => 'Forum', 'elements' => array('forum_gestion' => array('nom' => 'Gestion forum', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'forum_suivi' => array('nom' => 'Suivi', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'forum_inscriptions' => array('nom' => 'Inscriptions', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'forum_facturation' => array('nom' => 'Factures', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'forum_projet' => array('nom' => 'Projet PHP', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 3), 'forum_sessions' => array('nom' => 'Sessions', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 3), 'forum_sessions_notees' => array('nom' => 'Vote des sessions', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 3), 'forum_conferenciers' => array('nom' => 'Conférenciers', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 3), 'forum_planning' => array('nom' => 'Planning', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 3), 'forum_emargement' => array('nom' => 'Feuille d\'émargement', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'forum_badge' => array('nom' => 'Badges', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'forum_planning_vote' => array('nom' => 'Vote Planning', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'forum_joind_in' => array('nom' => 'Export sites externes', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'forum_partenaire' => array('nom' => 'Sponsors/Partenaires', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'forum_accreditation_presse' => array('nom' => 'Accréditation presse', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR))), 'annuaire' => array('nom' => 'Annuaire pro', 'elements' => array('annuairepro_membres' => array('nom' => 'Membres', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 1))), 'tresorerie' => array('nom' => 'Trésorerie', 'elements' => array('compta_devis' => array('nom' => 'Devis - Facture', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'compta_journal' => array('nom' => 'Journal', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'compta_banque' => array('nom' => 'Compte Banques', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'compta_synthese' => array('nom' => 'Synthese Evenement', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'compta_balance' => array('nom' => 'Balance comptable', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'compta_bilan' => array('nom' => 'Bilan', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'compta_conf_evenement' => array('nom' => 'Configuration', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'compta_recherche' => array('nom' => 'Recherche comptable', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR))), 'apero' => array('nom' => 'Apéros PHP', 'elements' => array('aperos' => array('nom' => 'Apéros', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 0), 'aperos_inscrits' => array('nom' => 'Inscrits', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR, 'module' => 0))), 'planete' => array('nom' => 'Planète PHP FR', 'elements' => array('planete_flux' => array('nom' => 'Flux', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'planete_billet' => array('nom' => 'Billets', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR))), 'divers' => array('nom' => 'Divers', 'elements' => array('configuration' => array('nom' => 'Configuration', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'membre_administrateur' => array('nom' => 'Administrateurs du site', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'logs' => array('nom' => 'Logs', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'logsvn' => array('nom' => 'Logs SVN', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'loggit' => array('nom' => 'Logs GIT', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'updatesvn' => array('nom' => 'Mise à jour via Git', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR), 'info_serveur' => array('nom' => 'Information serveur', 'niveau' => AFUP_DROITS_NIVEAU_ADMINISTRATEUR))), 'se_deconnecter' => array('nom' => 'Se déconnecter', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'connexion' => array('nom' => 'Connexion', 'masquee' => true, 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'mot_de_passe_perdu' => array('nom' => 'Mot de passe perdu', 'masquee' => true, 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'message' => array('nom' => 'Message', 'masquee' => true, 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'inscription' => array('nom' => 'Inscription', 'masquee' => true, 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE), 'desinscription_mailing' => array('nom' => 'Désinscription mailing', 'masquee' => true, 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE));
require_once dirname(__FILE__) . '/../../sources/Afup/AFUP_Personnes_Physiques.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
$identifiant = $droits->obtenirIdentifiant();
$personne_physique = $personnes_physiques->obtenir($identifiant);
if ($personne_physique['id_personne_morale'] == 0) {
    // Suppression des pages accessibles aux membres d'une personne morale
    unset($pages['membre']['elements']['membre_personne_morale']);
}
示例#4
0
 /**
  * Relance une personne afin qu'elle renouvelle sa cotisation.
  *
  * @access public
  * @param	int	$type_personne	Type de personne concerné
  * @param	int $id_personne 	Identifiant de la personne concernée
  * @return bool
  */
 function relancer($type_personne, $id_personne)
 {
     require_once 'Afup/AFUP_Configuration.php';
     $configuration = $GLOBALS['AFUP_CONF'];
     if (AFUP_PERSONNES_MORALES == $type_personne) {
         $personnes = new AFUP_Personnes_Morales($this->_bdd);
     } else {
         $personnes = new AFUP_Personnes_Physiques($this->_bdd);
     }
     $infos = $personnes->obtenir($id_personne, 'nom, prenom, email');
     $sujet = "Relance cotisation AFUP\n";
     $montant = AFUP_PERSONNES_MORALES == $type_personne ? AFUP_COTISATION_PERSONNE_MORALE : AFUP_COTISATION_PERSONNE_PHYSIQUE;
     $corps = "Bonjour, \n\n";
     $corps .= "Votre cotisation annuelle à l'AFUP est arrivée à son terme.\n\n";
     $corps .= "Afin de la renouveller, il vous suffit d'envoyer un chèque de " . $montant;
     $corps .= " euros libellé à l'ordre de l'AFUP ainsi que votre identité à l'adresse suivante :\n\n";
     $corps .= "AFUP\n";
     $corps .= "32 boulevard de Strasbourg\n";
     $corps .= "CS 30108\n";
     $corps .= "75468 Paris Cedex 10\n\n";
     $corps .= "Vous pouvez aussi la renouveller directement :\n\n";
     $corps .= "* En ligne via l'espace d'administration:\n";
     $corps .= "  http://www.afup.org/pages/administration/\n\n";
     $corps .= "* Par virement bancaire en contactant le trésorier tresorier@afup.org:\n";
     $corps .= "Cordialement\n\n";
     $corps .= "Le trésorier";
     $ok = AFUP_Mailing::envoyerMail($GLOBALS['conf']->obtenir('mails|email_expediteur'), array($infos['email'], $infos['nom'] . " " . $infos['prenom']), $sujet, $corps . $link);
     if (false === $ok) {
         return false;
     }
     $requete = 'UPDATE';
     $requete .= '  afup_cotisations ';
     $requete .= 'SET';
     $requete .= '  nombre_relances=IF(nombre_relances IS NULL, 1, nombre_relances+1),';
     $requete .= '  date_derniere_relance=' . time() . ' ';
     $requete .= 'WHERE';
     $requete .= '  type_personne=' . $type_personne;
     $requete .= '  AND id_personne=' . $id_personne;
     $this->_bdd->executer($requete);
     return true;
 }
示例#5
0
文件: index.php 项目: fferriere/web
}
/*
 * Define LOADED_USING_INDEX to true
 * See compta_journal.php first lines as example for security check.
 */
define('PAGE_LOADED_USING_INDEX', true);
if (!empty($_POST['connexion'])) {
    if ($droits->seConnecter($_POST['utilisateur'], $_POST['mot_de_passe'])) {
        if (isset($_POST['page_demandee']) && $_POST['page_demandee']) {
            header('Location: ' . $_POST['page_demandee']);
        }
    }
}
if (!empty($_POST['motdepasse_perdu'])) {
    require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
    $personnes_physiques = new AFUP_Personnes_Physiques($bdd);
    $result = $personnes_physiques->envoyerMotDePasse($_POST['email']);
    if (!$result) {
        $_GET['echec'] = 1;
        $_GET['page'] = 'mot_de_passe_perdu';
    } else {
        afficherMessage('Votre mot de passe vous a été envoyé par mail', 'index.php');
    }
}
if (!empty($_POST['inscription'])) {
    // Initialisation de AFUP_Log
    require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Logs.php';
    AFUP_Logs::initialiser($bdd, $droits->obtenirIdentifiant());
    require_once 'inscription.php';
}
if ($_GET['page'] == 'se_deconnecter') {
示例#6
0
    /**
     * Relance une personne afin qu'elle renouvelle sa cotisation.
     *
     * @access public
     * @param	int	$type_personne	Type de personne concerné
     * @param	int $id_personne 	Identifiant de la personne concernée
     * @return bool
     */
    function relancer($type_personne, $id_personne)
    {
        require_once 'Afup/AFUP_Configuration.php';
        $configuration = $GLOBALS['AFUP_CONF'];
        if (AFUP_PERSONNES_MORALES == $type_personne) {
            $personnes = new AFUP_Personnes_Morales($this->_bdd);
        } else {
            $personnes = new AFUP_Personnes_Physiques($this->_bdd);
        }
        $infos = $personnes->obtenir($id_personne, 'nom, prenom, email');
        $sujet = "Relance cotisation AFUP\n";
        $montant = AFUP_PERSONNES_MORALES == $type_personne ? AFUP_COTISATION_PERSONNE_MORALE : AFUP_COTISATION_PERSONNE_PHYSIQUE;
        $corps = <<<TXT
Bonjour,

Votre cotisation annuelle à l'AFUP est arrivée à son terme.

Vous pouvez la renouveler :

* En ligne via l'espace d'administration (c'est de loin la meilleure option !) :

\thttp://www.afup.org/pages/administration/

* Par virement bancaire en contactant le trésorier sur tresorier@afup.org.

* Ou encore par chèque d'un montant de {$montant} euros libellé à l'ordre de l'AFUP ainsi que votre identité à l'adresse suivante :

\tAFUP
\t32 boulevard de Strasbourg
\tCS 30108
\t75468 Paris Cedex 10

Merci !

Cordialement,
Le trésorier
TXT;
        $ok = AFUP_Mailing::envoyerMail($GLOBALS['conf']->obtenir('mails|email_expediteur'), array($infos['email'], $infos['nom'] . " " . $infos['prenom']), $sujet, $corps . $link);
        if (false === $ok) {
            return false;
        }
        $requete = 'UPDATE';
        $requete .= '  afup_cotisations ';
        $requete .= 'SET';
        $requete .= '  nombre_relances=IF(nombre_relances IS NULL, 1, nombre_relances+1),';
        $requete .= '  date_derniere_relance=' . time() . ' ';
        $requete .= 'WHERE';
        $requete .= '  type_personne=' . $type_personne;
        $requete .= '  AND id_personne=' . $id_personne;
        $this->_bdd->executer($requete);
        return true;
    }
示例#7
0
<?php

// Impossible to access the file itself
if (!defined('PAGE_LOADED_USING_INDEX')) {
    trigger_error("Direct access forbidden.", E_USER_ERROR);
    exit;
}
$action = verifierAction(array('modifier', 'supprimer', 'contempler'));
$smarty->assign('action', $action);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Tags.php';
$tags = new AFUP_Tags($bdd);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
$smarty->assign('tags_utilises', $tags->obtenirListeUnique());
if (isset($_GET['tag'])) {
    $smarty->assign('tag_selectionne', $_GET['tag']);
    $smarty->assign('membres_tagues', $tags->obtenirPersonnesPhysisquesTagues($_GET['tag']));
}
if (isset($_GET['id_personne_physique'])) {
    $smarty->assign('id_personne_physique', $_GET['id_personne_physique']);
    $smarty->assign('id_personne_connectee', $droits->obtenirIdentifiant());
    $smarty->assign('membre', $personnes_physiques->obtenir($_GET['id_personne_physique']));
    $smarty->assign('tags_membre', $tags->obtenirTagsSurPersonnePhysique($_GET['id_personne_physique']));
    $id_source = $_GET['id_personne_physique'];
}
$liste_personnes_physiques = $personnes_physiques->obtenirListe('id, CONCAT(nom, " ", prenom)', 'nom, prenom', false, false, true);
$formulaire =& instancierFormulaire();
if (!isset($id_source)) {
    $id_source = $droits->obtenirIdentifiant();
}
$tagsMembre = $tags->obtenirTagsSurPersonnePhysique($id_source, 'id, tag', 'tag', true);
示例#8
0
文件: accueil.php 项目: fferriere/web
<?php

// Impossible to access the file itself
if (!defined('PAGE_LOADED_USING_INDEX')) {
    trigger_error("Direct access forbidden.", E_USER_ERROR);
    exit;
}
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Pays.php';
$pays = new AFUP_Pays($bdd);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Utils.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Tags.php';
$tags = new AFUP_Tags($bdd);
$membre = $personnes_physiques->obtenir($droits->obtenirIdentifiant());
unset($membre['mot_de_passe']);
// Obtention du gravatar
$membre["gravatar"] = AFUP_Utils::get_gravatar($membre["email"]);
$membre["tags"] = $tags->obtenirTagsSurPersonnePhysique($membre["id"]);
//var_dump($membre);die;
$smarty->assign('membre', $membre);
$smarty->assign('pays', $pays->obtenirPays());
示例#9
0
<?php

// On supprime ce qui a déjà été écrit dans le buffer de sortie
// car on va afficher une page "indépendente"
ob_clean();
$action = verifierAction(array('ajouter'));
$smarty->assign('action', $action);
if ($action == 'ajouter') {
    require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
    $personnes_physiques = new AFUP_Personnes_Physiques($bdd);
    require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Morales.php';
    $personnes_morales = new AFUP_Personnes_Morales($bdd);
    require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Pays.php';
    $pays = new AFUP_Pays($bdd);
    $formulaire =& instancierFormulaire();
    $formulaire->setDefaults(array('civilite' => 'M.', 'id_pays' => 'FR', 'niveau' => AFUP_DROITS_NIVEAU_MEMBRE, 'niveau_apero' => AFUP_DROITS_NIVEAU_MEMBRE, 'niveau_annuaire' => AFUP_DROITS_NIVEAU_MEMBRE, 'etat' => AFUP_DROITS_ETAT_ACTIF));
    $formulaire->addElement('hidden', 'inscription', 1);
    $formulaire->addElement('hidden', 'niveau');
    $formulaire->addElement('hidden', 'niveau_apero');
    $formulaire->addElement('hidden', 'niveau_annuaire');
    $formulaire->addElement('hidden', 'etat');
    $formulaire->addElement('hidden', 'compte_svn');
    $formulaire->addElement('hidden', 'login');
    $formulaire->addElement('header', '', 'Informations');
    $formulaire->addElement('select', 'id_personne_morale', 'Personne morale', array(null => '') + $personnes_morales->obtenirListe('id, raison_sociale', 'raison_sociale', true));
    $formulaire->addElement('select', 'civilite', 'Civilité', array('M.', 'Mme', 'Mlle'));
    $formulaire->addElement('text', 'nom', 'Nom', array('size' => 30, 'maxlength' => 40, 'onblur' => 'login.value=login2.value=login.value=creerLogin(nom.value, prenom.value)'));
    $formulaire->addElement('text', 'prenom', 'Prénom', array('size' => 30, 'maxlength' => 40, 'onblur' => 'login.value=login2.value=creerLogin(nom.value, prenom.value)'));
    $formulaire->addElement('text', 'email', 'Email', array('size' => 30, 'maxlength' => 100));
    $formulaire->addElement('textarea', 'adresse', 'Adresse', array('cols' => 42, 'rows' => 10));
    $formulaire->addElement('text', 'code_postal', 'Code postal', array('size' => 6, 'maxlength' => 10));
示例#10
0
<?php

// Impossible to access the file itself
if (!defined('PAGE_LOADED_USING_INDEX')) {
    trigger_error("Direct access forbidden.", E_USER_ERROR);
    exit;
}
$action = verifierAction(array('lister', 'ajouter', 'modifier', 'supprimer', 'envoi_mdp', 'envoi_bienvenue'));
$tris_valides = array('nom' => 'nom <sens>, prenom', 'prenom' => 'prenom <sens>, nom', 'etat' => 'etat <sens>, prenom, nom');
$sens_valides = array('asc', 'desc');
$smarty->assign('action', $action);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
if ($action == 'lister') {
    // Valeurs par défaut des paramètres de tri
    $list_champs = '*';
    $list_ordre = 'nom, prenom';
    $list_sens = 'asc';
    $list_filtre = false;
    // Modification des paramètres de tri en fonction des demandes passées en GET
    if (isset($_GET['tri']) && in_array($_GET['tri'], array_keys($tris_valides)) && isset($_GET['sens']) && in_array($_GET['sens'], $sens_valides)) {
        $list_ordre = str_replace('<sens>', $_GET['sens'], $tris_valides[$_GET['tri']]);
    }
    if (isset($_GET['filtre'])) {
        $list_filtre = $_GET['filtre'];
    }
    // Mise en place de la liste dans le scope de smarty
    $smarty->assign('personnes', $personnes_physiques->obtenirListe($list_champs, $list_ordre, $list_filtre));
} elseif ($action == 'supprimer') {
    if ($personnes_physiques->supprimer($_GET['id'])) {
        AFUP_Logs::log('Suppression de la personne physique ' . $_GET['id']);
示例#11
0
<?php

// Impossible to access the file itself
if (!defined('PAGE_LOADED_USING_INDEX')) {
    trigger_error("Direct access forbidden.", E_USER_ERROR);
    exit;
}
$action = 'modifier';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Assemblee_Generale.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Cotisations.php';
$assemblee_generale = new AFUP_Assemblee_Generale($bdd);
$cotisations = new AFUP_Cotisations($bdd);
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
$timestamp = $assemblee_generale->obternirDerniereDate();
$identifiant = $droits->obtenirIdentifiant();
$cotisation = $personnes_physiques->obtenirDerniereCotisation($identifiant);
if ($timestamp > strtotime("-1 day", time())) {
    $date_assemblee_generale = convertirTimestampEnDate($timestamp);
    $smarty->assign('date_assemblee_generale', $date_assemblee_generale);
    if ($timestamp > strtotime("+14 day", $cotisation['date_fin'])) {
        $smarty->assign('erreur', 'La date d\'échéance de votre dernière cotisation précède la date de la prochaine assemblée générale.<br/><br/>Vous ne pourrez donc pas voter lors de cette assemblée générale.<br/><br/>Vous pouvez dès à présent régler votre cotisation via <a href="/pages/administration/index.php?page=membre_cotisation">"Ma cotisation"</a>');
    } else {
        list($presence, $id_personne_avec_pouvoir) = $assemblee_generale->obtenirInfos($_SESSION['afup_login'], $timestamp);
        $assemblee_generale->marquerConsultation($_SESSION['afup_login'], $timestamp);
        $formulaire =& instancierFormulaire('index.php?page=membre_assemblee_generale');
        $formulaire->setDefaults(array('date' => date("d/m/Y", time()), 'presence' => $presence, 'id_personne_avec_pouvoir' => $id_personne_avec_pouvoir));
        $formulaire->addElement('header', '', 'Je serais présent(e)');
        $formulaire->addElement('radio', 'presence', 'Oui', '', AFUP_ASSEMBLEE_GENERALE_PRESENCE_OUI);
        $formulaire->addElement('radio', 'presence', 'Non', '', AFUP_ASSEMBLEE_GENERALE_PRESENCE_NON);
        $formulaire->addElement('radio', 'presence', 'Je ne sais pas encore', '', AFUP_ASSEMBLEE_GENERALE_PRESENCE_INDETERMINE);
示例#12
0
        $list_ordre = $_GET['tri'] . ' ' . $_GET['sens'];
    }
    if (isset($_GET['filtre'])) {
        $list_filtre = $_GET['filtre'];
    }
    $smarty->assign('personnes', $personnes_morales->obtenirListe($list_champs, $list_ordre, $list_associatif, $list_filtre));
} elseif ($action == 'supprimer') {
    if ($personnes_morales->supprimer($_GET['id'])) {
        AFUP_Logs::log('Suppression de la personne morale ' . $_GET['id']);
        afficherMessage('La personne morale a été supprimée', 'index.php?page=personnes_morales&action=lister');
    } else {
        afficherMessage('Une erreur est survenue lors de la suppression de la personne morale', 'index.php?page=personnes_morales&action=lister', true);
    }
} else {
    require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
    $personnes_physiques = new AFUP_Personnes_Physiques($bdd);
    $personnes_physiques_liste = empty($_GET['id']) ? array() : $personnes_physiques->obtenirListe('*', 'nom, prenom', false, $_GET['id']);
    require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Pays.php';
    $pays = new AFUP_Pays($bdd);
    $formulaire =& instancierFormulaire();
    if ($action == 'ajouter') {
        $formulaire->setDefaults(array('civilite' => 'M.', 'id_pays' => 'FR', 'niveau' => AFUP_DROITS_NIVEAU_REDACTEUR, 'etat' => AFUP_DROITS_ETAT_ACTIF));
    } else {
        $champs = $personnes_morales->obtenir($_GET['id']);
        unset($champs['mot_de_passe']);
        $formulaire->setDefaults($champs);
    }
    $formulaire->addElement('header', '', 'Informations');
    $formulaire->addElement('text', 'raison_sociale', 'Raison sociale', array('size' => 30, 'maxlength' => 40));
    $formulaire->addElement('text', 'siret', 'Siret', array('size' => 30, 'maxlength' => 40));
    $formulaire->addElement('textarea', 'adresse', 'Adresse', array('cols' => 42, 'rows' => 10));
示例#13
0
<?php

// Impossible to access the file itself
if (!defined('PAGE_LOADED_USING_INDEX')) {
    trigger_error("Direct access forbidden.", E_USER_ERROR);
    exit;
}
$action = verifierAction(array('lister', 'detail', 'rechercher'));
$smarty->assign('action', $action);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
$administrateurs = $personnes_physiques->getListeAvecDroitsAdministration();
$smarty->assign('administrateurs', $administrateurs);
示例#14
0
 $formulaire->addElement('text', 'email', 'Email', array('size' => 30, 'maxlength' => 100));
 $formulaire->addElement('textarea', 'adresse', 'Adresse', array('cols' => 42, 'rows' => 10));
 $formulaire->addElement('text', 'code_postal', 'Code postal', array('size' => 6, 'maxlength' => 10));
 $formulaire->addElement('text', 'ville', 'Ville', array('size' => 30, 'maxlength' => 50));
 $formulaire->addElement('select', 'id_pays', 'Pays', $pays->obtenirPays());
 $formulaire->addElement('text', 'telephone_fixe', 'Tél. fixe', array('size' => 20, 'maxlength' => 20));
 $formulaire->addElement('text', 'telephone_portable', 'Tél. portable', array('size' => 20, 'maxlength' => 20));
 $formulaire->addElement('password', 'mot_de_passe', 'Mot de passe', array('size' => 30, 'maxlength' => 30));
 $formulaire->addElement('password', 'confirmation_mot_de_passe', '', array('size' => 30, 'maxlength' => 30));
 $formulaire->addElement('header', 'boutons', '');
 $formulaire->addElement('submit', 'soumettre', ucfirst($action));
 $formulaire->addRule('nom', 'Nom manquant', 'required');
 $formulaire->addRule('prenom', 'Prénom manquant', 'required');
 $formulaire->addRule('login', 'Login manquant', 'required');
 $formulaire->addRule('login', 'Login déjà existant', 'callback', function ($value) use($bdd) {
     $personnePhysique = new AFUP_Personnes_Physiques($bdd);
     return !$personnePhysique->loginExists(0, $value);
 });
 $formulaire->addRule('email', 'Email manquant', 'required');
 $formulaire->addRule('email', 'Email invalide', 'email');
 $formulaire->addRule('adresse', 'Adresse manquante', 'required');
 $formulaire->addRule('code_postal', 'Code postal manquant', 'required');
 $formulaire->addRule('ville', 'Ville manquante', 'required');
 $formulaire->addRule('mot_de_passe', 'Mot de passe manquant', 'required');
 $formulaire->addRule(array('mot_de_passe', 'confirmation_mot_de_passe'), 'Le mot de passe et sa confirmation ne concordent pas', 'compare');
 if ($formulaire->validate()) {
     // Construction du champ niveau_modules : concaténation dse différentes valeurs
     $niveau_modules = $formulaire->exportValue('niveau_apero') . $formulaire->exportValue('niveau_annuaire') . $formulaire->exportValue('niveau_site');
     $login = $formulaire->exportValue('login');
     $mot_de_passe = md5($formulaire->exportValue('mot_de_passe'));
     try {
示例#15
0
<?php

// Impossible to access the file itself
if (!defined('PAGE_LOADED_USING_INDEX')) {
    trigger_error("Direct access forbidden.", E_USER_ERROR);
    exit;
}
$action = verifierAction(array('payer', 'telecharger_facture', 'envoyer_facture'));
$smarty->assign('action', $action);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Morales.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Pays.php';
$pays = new AFUP_Pays($bdd);
$formulaire =& instancierFormulaire();
$identifiant = $droits->obtenirIdentifiant();
$champs = $personnes_physiques->obtenir($identifiant);
$cotisation = $personnes_physiques->obtenirDerniereCotisation($identifiant);
unset($champs['mot_de_passe']);
$cotisations = new AFUP_Cotisations($bdd);
if (!$cotisation) {
    $message = empty($_GET['hash']) ? 'Est-ce vraiment votre première cotisation ?' : '';
} else {
    $endSubscription = $cotisations->finProchaineCotisation($cotisation);
    $message = sprintf('Votre dernière cotisation -- %s %s -- est valable jusqu\'au %s. <br />
        Si vous renouvellez votre cotisation maintenant, celle-ci sera valable jusqu\'au %s', $cotisation['montant'], EURO, date("d/m/Y", $cotisation['date_fin']), $endSubscription->format('d/m/Y'));
}
if (isset($_GET['action']) && $_GET['action'] == 'envoyer_facture') {
    if ($cotisations->envoyerFacture($_GET['id'])) {
        AFUP_Logs::log('Envoi par email de la facture pour la cotisation n°' . $_GET['id']);
        afficherMessage('La facture a été envoyée par mail', 'index.php?page=membre_cotisation');
示例#16
0
 /**
  * Supprime une personne morale
  *
  * @param  int      $id     Identifiant de la personne morale à supprimer
  * @access public
  * @return bool     Succès de la suppression
  */
 function supprimer($id)
 {
     require_once 'Afup/AFUP_Cotisations.php';
     $cotisation = new AFUP_Cotisations($this->_bdd);
     $cotisation_personne_morale = $cotisation->obtenirListe(AFUP_PERSONNES_MORALES, $id, 'id');
     require_once 'Afup/AFUP_Personnes_Physiques.php';
     $personne_physique = new AFUP_Personnes_Physiques($this->_bdd);
     $personne_physique_de_personne_morale = $personne_physique->obtenirListe('id', 'nom', '', $id);
     if (sizeof($cotisation_personne_morale) == 0 and sizeof($personne_physique_de_personne_morale) == 0) {
         $requete = 'DELETE FROM afup_personnes_morales WHERE id=' . $id;
         return $this->_bdd->executer($requete);
     }
     return false;
 }
示例#17
0
<?php

require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
$smarty->assign('membres_actifs', $personnes_physiques->obtenirNombreMembres(AFUP_DROITS_ETAT_ACTIF));
$smarty->assign('membres_inactifs', $personnes_physiques->obtenirNombreMembres(AFUP_DROITS_ETAT_INACTIF));
$smarty->assign('membres_total', $personnes_physiques->obtenirNombreMembres());
$smarty->assign('personnes_physiques_actives', $personnes_physiques->obtenirNombrePersonnesPhysiques(AFUP_DROITS_ETAT_ACTIF));
$smarty->assign('personnes_physiques_inactives', $personnes_physiques->obtenirNombrePersonnesPhysiques(AFUP_DROITS_ETAT_INACTIF));
$smarty->assign('personnes_physiques_total', $personnes_physiques->obtenirNombrePersonnesPhysiques());
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Morales.php';
$personnes_morales = new AFUP_Personnes_Morales($bdd);
$smarty->assign('personnes_morales_actives', $personnes_morales->obtenirNombrePersonnesMorales(AFUP_DROITS_ETAT_ACTIF));
$smarty->assign('personnes_morales_inactives', $personnes_morales->obtenirNombrePersonnesMorales(AFUP_DROITS_ETAT_INACTIF));
$smarty->assign('personnes_morales_total', $personnes_morales->obtenirNombrePersonnesMorales());
示例#18
0
<?php

$action = verifierAction(array('ausculter', 'calculer'));
$smarty->assign('action', $action);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Planete_Billet.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Oeuvres.php';
$oeuvres = new AFUP_Oeuvres($bdd);
$persone_physique = new AFUP_Personnes_Physiques($bdd);
if ($action == 'calculer') {
    if ($oeuvres->calculer()) {
        AFUP_Logs::log('Calculer les oeuvres de l\'AFUP');
        afficherMessage('Les oeuvres ont été calculées', 'index.php?page=membre_oeuvres');
    } else {
        afficherMessage('Une erreur est survenue lors du calcul des oeuvres', 'index.php?page=membre_oeuvres', true);
    }
}
$id_personne_physique = isset($_GET['id_personne_physique']) ? (int) $_GET['id_personne_physique'] : $droits->obtenirIdentifiant();
$mes_sparklines = $oeuvres->obtenirSparklinePersonnelleSur12Mois($id_personne_physique);
$smarty->assign('mes_sparklines', $mes_sparklines);
$categories = $oeuvres->obtenirCategories();
$les_personnes_physiques = array();
foreach ($categories as $categorie) {
    $id_personnes_physiques = $oeuvres->obtenirPersonnesPhysiquesLesPlusActives($categorie);
    $les_sparklines = $oeuvres->obtenirSparklinesParCategorieDes12DerniersMois($id_personnes_physiques, $categorie);
    $smarty->assign('les_sparklines_actives_' . $categorie, $les_sparklines);
    $les_personnes_physiques += $persone_physique->obtenirListe('*', 'nom, prenom', false, false, true, $id_personnes_physiques);
}
$smarty->assign('les_personnes_physiques', $les_personnes_physiques);
示例#19
0
<?php

$action = verifierAction(array('modifier'));
$smarty->assign('action', $action);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Pays.php';
$pays = new AFUP_Pays($bdd);
$formulaire =& instancierFormulaire();
$champs = $personnes_physiques->obtenir($droits->obtenirIdentifiant());
unset($champs['mot_de_passe']);
$formulaire->setDefaults($champs);
$formulaire->addElement('header', '', 'Informations');
$formulaire->addElement('text', 'email', 'Email', array('size' => 30, 'maxlength' => 100));
$formulaire->addElement('textarea', 'adresse', 'Adresse', array('cols' => 42, 'rows' => 10));
$formulaire->addElement('text', 'code_postal', 'Code postal', array('size' => 6, 'maxlength' => 10));
$formulaire->addElement('text', 'ville', 'Ville', array('size' => 30, 'maxlength' => 50));
$formulaire->addElement('select', 'id_pays', 'Pays', $pays->obtenirPays());
$formulaire->addElement('text', 'telephone_fixe', 'Tél. fixe', array('size' => 20, 'maxlength' => 20));
$formulaire->addElement('text', 'telephone_portable', 'Tél. portable', array('size' => 20, 'maxlength' => 20));
$formulaire->addElement('header', '', 'Paramètres');
$formulaire->addElement('text', 'login', 'Login', array('size' => 30, 'maxlength' => 30));
$formulaire->addElement('static', 'note', '    ', 'Ne renseignez le mot de passe et sa confirmation que si vous souhaitez le changer');
$formulaire->addElement('password', 'mot_de_passe', 'Mot de passe', array('size' => 30, 'maxlength' => 30));
$formulaire->addElement('password', 'confirmation_mot_de_passe', '', array('size' => 30, 'maxlength' => 30));
$formulaire->addElement('header', 'boutons', '');
$formulaire->addElement('submit', 'soumettre', ucfirst($action));
$formulaire->addRule('email', 'Email manquant', 'required');
$formulaire->addRule('email', 'Email invalide', 'email');
$formulaire->addRule('adresse', 'Adresse manquante', 'required');
$formulaire->addRule('code_postal', 'Code postal manquant', 'required');
示例#20
0
<?php

// Impossible to access the file itself
if (!defined('PAGE_LOADED_USING_INDEX')) {
    trigger_error("Direct access forbidden.", E_USER_ERROR);
    exit;
}
$action = verifierAction(array('lister', 'ajouter', 'modifier', 'supprimer'));
$tris_valides = array('titre', 'date');
$sens_valides = array('asc', 'desc');
$smarty->assign('action', $action);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Site.php';
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
$rubriques = new AFUP_Site_Rubriques($bdd);
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
if ($action == 'lister') {
    $list_champs = '*';
    $list_ordre = 'date';
    $list_sens = 'desc';
    $list_filtre = false;
    if (isset($_GET['sens']) && in_array($_GET['sens'], array_keys($sens_valides))) {
        $list_sens = $_GET['sens'];
    } else {
        $_GET['sens'] = $list_sens;
    }
    if (isset($_GET['tri']) && in_array($_GET['tri'], array_keys($tris_valides))) {
        $list_ordre = $_GET['tri'];
    } else {
        $_GET['tri'] = $list_ordre;
    }
    if (isset($_GET['filtre'])) {
示例#21
0
 function test_obtenirIdDepuisCompteSVN()
 {
     $personnes_physiques = new AFUP_Personnes_Physiques($this->bdd);
     $this->assertEqual($personnes_physiques->obtenirIdDepuisCompteSVN("arnaud"), 1);
 }
示例#22
0
文件: index.php 项目: perrich/web
    if (!$droits->estConnecte()) {
        $_GET['page'] = 'connexion';
    } else {
        $_GET['page'] = 'accueil';
    }
}
if (!empty($_POST['connexion'])) {
    if ($droits->seConnecter($_POST['utilisateur'], $_POST['mot_de_passe'])) {
        if (isset($_POST['page_demandee']) && $_POST['page_demandee']) {
            header('Location: ' . $_POST['page_demandee']);
        }
    }
}
if (!empty($_POST['motdepasse_perdu'])) {
    require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
    $personnes_physiques = new AFUP_Personnes_Physiques($bdd);
    $result = $personnes_physiques->envoyerMotDePasse($_POST['utilisateur'], $_POST['email']);
    if (!$result) {
        $_GET['echec'] = 1;
        $_GET['page'] = 'mot_de_passe_perdu';
    } else {
        afficherMessage('Votre mot de passe vous a été envoyé par mail', 'index.php');
    }
}
if (!empty($_POST['inscription'])) {
    // Initialisation de AFUP_Log
    require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Logs.php';
    AFUP_Logs::initialiser($bdd, $droits->obtenirIdentifiant());
    require_once 'inscription.php';
}
if ($_GET['page'] == 'se_deconnecter') {
示例#23
0
<?php

// Impossible to access the file itself
if (!defined('PAGE_LOADED_USING_INDEX')) {
    trigger_error("Direct access forbidden.", E_USER_ERROR);
    exit;
}
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Morales.php';
$personnes_morales = new AFUP_Personnes_Morales($bdd);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Personnes_Physiques.php';
$personnes_physiques = new AFUP_Personnes_Physiques($bdd);
$identifiant = $droits->obtenirIdentifiant();
$personne_physique = $personnes_physiques->obtenir($identifiant);
if ($personne_physique['id_personne_morale'] == 0) {
    // Cette page est reservee aux membres appartenants à une personne morale
    header('HTTP/1.1 403 FORBIDDEN');
    exit;
}
$id_personne_morale = $personne_physique['id_personne_morale'];
$action = 'modifier';
$smarty->assign('action', $action);
$personnes_physiques_liste = $personnes_physiques->obtenirListe('*', 'nom, prenom', false, $id_personne_morale);
require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Pays.php';
$pays = new AFUP_Pays($bdd);
$formulaire =& instancierFormulaire();
$champs = $personnes_morales->obtenir($id_personne_morale);
unset($champs['mot_de_passe']);
$formulaire->setDefaults($champs);
$formulaire->addElement('header', '', 'Informations');
$formulaire->addElement('text', 'raison_sociale', 'Raison sociale', array('size' => 30, 'maxlength' => 40));
$formulaire->addElement('text', 'siret', 'Siret', array('size' => 30, 'maxlength' => 40));