89 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php 
 | 
						|
 | 
						|
/* 
 | 
						|
 * Proof of concept of what a new feature look like with the new mail interface
 | 
						|
 *
 | 
						|
**/
 | 
						|
 | 
						|
Class m_mail_jabber{
 | 
						|
  var $advanced;
 | 
						|
  var $enabled;
 | 
						|
 | 
						|
  function m_mail_jabber(){
 | 
						|
    // Get configuration var
 | 
						|
    $this->enabled=variable_get('mail_jabber_enabled',null);
 | 
						|
    $this->advanced=variable_get('mail_jabber_advanced',null);
 | 
						|
 | 
						|
    // Setup the vars if there aren't any
 | 
						|
    if (is_null($this->enabled)) { 
 | 
						|
      variable_set('mail_jabber_enabled',true,'To enable or disable the Jabber module in the mail edit page');
 | 
						|
      $this->enabled=true;
 | 
						|
    }
 | 
						|
 | 
						|
    if (is_null($this->advanced)) { 
 | 
						|
      variable_set('mail_jabber_advanced',true,'To choose the category of Jabber in the mail edit page');
 | 
						|
      $this->advanced=true;
 | 
						|
    }
 | 
						|
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
    * Hooks called by the mail class, it's 
 | 
						|
    * used to verify that a given mail is 
 | 
						|
    * allowed to be created by all the class friends of mail
 | 
						|
    *
 | 
						|
    * @param dom_id integer domain id of the target mail
 | 
						|
    * @param mail_arg string left part of '@' of the target mail
 | 
						|
    * @return array a hashtable contening the statei (boolean) and an error message
 | 
						|
    *
 | 
						|
   */
 | 
						|
  function hooks_mail_cancreate($dom_id, $mail_arg){
 | 
						|
    global $db, $err, $cuid;  
 | 
						|
    $err->log("m_mail_jabber","hooks_mail_cancreate");    
 | 
						|
    $return = array ( 
 | 
						|
       "state"   => true, // Do we allow this creation ?
 | 
						|
       "error"   => "");  // Error message (txt)
 | 
						|
 | 
						|
    // Return our informations
 | 
						|
    return $return;
 | 
						|
  }  
 | 
						|
 | 
						|
  /**
 | 
						|
    * Hooks called to list a given mail properties
 | 
						|
    * @param mail_id the id of the mail being processed
 | 
						|
    * @return false, or an hashtable of the usefull information
 | 
						|
    *
 | 
						|
   **/ 
 | 
						|
  function hooks_mail_properties_list($mail_id){    
 | 
						|
    global $db, $err;
 | 
						|
    $err->log("mail_jabber","mail_properties_list");
 | 
						|
 | 
						|
    // Return if this feature isn't enabled
 | 
						|
    if (!$this->enabled) return false;
 | 
						|
 | 
						|
    // Setup the object
 | 
						|
    $return = array (
 | 
						|
        "label"         => "jabberdemo",      // an internal label 
 | 
						|
        "short_desc"    => _("Jabber Demo"),  // A human short description
 | 
						|
        "class"         => "mail_jabber",
 | 
						|
        "human_desc"    => _("This is just a demo.<br/>Look at m_mail_jabber.php"), // A human long description
 | 
						|
        "form_param"  => Array($mail_id),
 | 
						|
        "url"           => "javascript:alert('Ici un renvoie vers le formulaire adequat de cette entrée.');", // The URL to go
 | 
						|
        "pass_required" => true, 	            // This feature require the mail to have a global password ?
 | 
						|
        "advanced"      => $this->advanced,   // Is this an advanced feature ?
 | 
						|
	      );
 | 
						|
 | 
						|
    /* We can return many array merged to have many 
 | 
						|
     * entry (with different informations, for example 
 | 
						|
     * different description or target URL), to list many
 | 
						|
     * action directly in the page
 | 
						|
    **/
 | 
						|
    // To view an example, uncomment next line
 | 
						|
    // $return=Array($return,$return,$return);
 | 
						|
    return $return;
 | 
						|
  }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
?>
 |