array ( * // Required * 'LSform' => array ( // To define if the user can active triggers for the LSform * 'create' => 1, // Example : LSform 'create' => Triggers active by default * 'modify' => 0 // Example : LSform 'modify' => Triggers disable by default * ), * // Optional * 'remoteRootPathRegex' => "^\/home\/vmail\/([^\/]*)\/+$", // Regex to determine the path of * // maildir from the attribute value * 'archiveNameFormat' => "archives/%{old}" // To archive rather than destroyed : * // At the elimination, the maildir is moved * // rather than deleted. The new name / path * // of the maildir is determined from the old * // name and LSformat. * ), * // ************************************* * * @author Benjamin Renard */ class LSformElement_maildir extends LSformElement_text { var $JSscripts = array( 'LSformElement_maildir_field.js', 'LSformElement_maildir.js' ); var $fetchVariables = array( 'additionalCssClass' => array('LSformElement_maildir'), ); public function getDisplay() { LStemplate :: addHelpInfo( 'LSformElement_maildir', array( 'do' => _("Maildir creation/modification on user creation/modification is enabled. Click to disable."), 'nodo' => _("Click to enable maildir creation/modification on user creation/modification.") ) ); return parent :: getDisplay(); } /** * 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 &$return Reference of the array for retrieved values * @param boolean $onlyIfPresent If true and data of this element is not present in POST data, * just ignore it. * * @return boolean true si la valeur est présente en POST, false sinon */ public function getPostData(&$return, $onlyIfPresent=false) { // 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 && !$this -> form -> api_mode && $_POST['LSformElement_maildir_'.$this -> name.'_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 (is_a($this -> attr_html, 'LSattr_html_maildir')) { $new = $this -> attr_html -> getRemoteRootPathRegex($new); $cur = $this -> attr_html -> getRemoteRootPathRegex($cur); $this -> attr_html -> doOnModify($action,$cur,$new); } else { $this -> form -> setElementError( $this -> attr_html, _( "%{label}: the attribute HTML type is not maildir (but %{type}). ". "Can't handle on modify hook." ), array('type' => get_class($this -> attr_html)) ); unset($return[$this -> name]); return false; } } } } return $retval; } }