loadLSclass('LSformElement_text'); $GLOBALS['LSsession'] -> loadLSaddon('maildir'); /** * Element maildir d'un formulaire pour LdapSaisie * * Cette classe définis les éléments maildir des formulaires. * Elle étant la classe LSformElement_text. * * @author Benjamin Renard */ class LSformElement_maildir extends LSformElement_text { var $_toDo=null; var $JSscripts = array( 'LSformElement_maildir_field.js', 'LSformElement_maildir.js' ); var $fieldTemplate = 'LSformElement_maildir_field.tpl'; function getDisplay() { $GLOBALS['LSsession'] -> addHelpInfos ( 'LSformElement_maildir', array( 'do' => _("La création ou modification de la maildir en même temps que l'utilisateur est activée. Cliquer sur ce bouton pour la désactiver."), 'nodo' => _("Cliquer sur ce bouton pour activer la création/modification de la maildir en même temps que l'utilisateur.") ) ); return parent :: getDisplay($return); } /** * Recupère la valeur de l'élement passée en POST * * Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère * pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément * * @param[] array Pointeur sur le tableau qui recupèrera la valeur. * * @retval boolean true si la valeur est présente en POST, false sinon */ function getPostData(&$return) { // Récupère la valeur dans _POST, et les vérifie avec la fonction générale $retval = parent :: getPostData($return); // Si une valeur est recupérée if ($retval&&$_POST['LSformElement_maildir_description_do']) { $cur = $this -> form -> ldapObject -> attrs[$this -> name] -> getValue(); $cur=$cur[0]; $new = $return[$this -> name][0]; $action=null; if ( $new != $cur ) { if( ($new=="") && ( $cur!="" ) ) { $action='delete'; } else if ( ($new!="") && ( $cur!="" ) ) { $action='modify'; } else { $action='create'; } if ($action) { if ($this -> params['html_options']['remoteRootPathRegex']) { if ( (ereg($this -> params['html_options']['remoteRootPathRegex'],$new,$r_new) ||empty($new)) && (ereg($this -> params['html_options']['remoteRootPathRegex'],$cur,$r_cur)||empty($cur)) ) { $new = $r_new[1]; $cur = $r_cur[1]; } else { LSdebug('Pbl remoteRootPathRegex'); } } $this -> _toDo = array ( 'action' => $action, 'old' => $cur, 'new' => $new ); $this -> attr_html -> attribute -> addObjectEvent('after_modify',$this,'toDo'); } } } return $retval; } function toDo() { if (is_array($this -> _toDo)) { switch($this -> _toDo['action']) { case 'delete': if ($this -> params['html_options']['archiveNameFormat']) { $newname=getFData($this -> params['html_options']['archiveNameFormat'],$this -> _toDo['old']); if ($newname) { return renameMaildirByFTP($this -> _toDo['old'],$newname); } LSdebug($this -> name." - LSformElement_maildir->toDo() : Nom d'archivage incorrect."); return; } break; case 'modify': return renameMaildirByFTP($this -> _toDo['old'],$this -> _toDo['new']); break; case 'create': return createMaildirByFTP(null,$this -> _toDo['new']); break; default: LSdebug($this -> name.' - LSformElement_maildir->toDo() : Action inconnu.'); } } LSdebug($this -> name.' - LSformElement_maildir->toDo() : Rien à faire.'); return true; } } ?>