Changeset 2210 in subversion


Ignore:
Timestamp:
Jan 1, 2009 1:15:29 PM (4 years ago)
Author:
thomasb
Message:

Allow plugins to be limited to a specific task

Location:
branches/devel-api
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/devel-api/plugins/emoticons/emoticons.php

    r2209 r2210  
    1010  function init() 
    1111  { 
     12    $this->task = 'mail'; 
    1213    $this->add_hook('message-body-after', array($this, 'replace')); 
    1314   
  • branches/devel-api/program/include/rcube_plugin_api.php

    r2209 r2210  
    5353  private function __construct() 
    5454  { 
    55     $config = rcmail::get_instance()->config; 
     55    $rcmail = rcmail::get_instance(); 
    5656     
    5757    // only active in devel_mode for now 
    58     if (!$config->get('devel_mode')) 
     58    if (!$rcmail->config->get('devel_mode')) 
    5959      return; 
    6060     
    6161    // load all enabled plugins 
    62     $plugins_dir = dir($config->get('plugins_dir')); 
    63     $plugins_enabled = (array)$config->get('plugins', array()); 
     62    $plugins_dir = dir($rcmail->config->get('plugins_dir')); 
     63    $plugins_enabled = (array)$rcmail->config->get('plugins', array()); 
    6464     
    6565    foreach ($plugins_enabled as $plugin_name) { 
     
    7171        // instantiate class if exists 
    7272        if (class_exists($plugin_name, false)) { 
    73           $this->plugins[] = new $plugin_name($this); 
     73          $plugin = new $plugin_name($this); 
     74          // check inheritance and task specification 
     75          if (is_subclass_of($plugin, 'rcube_plugin') && (!$plugin->task || $plugin->task == $rcmail->task)) { 
     76            $this->plugins[] = $plugin; 
     77          } 
    7478        } 
    7579        else { 
Note: See TracChangeset for help on using the changeset viewer.