Initialize calendar and tasklist plugins in 'startup' hook and allow other plugins (e.g. kolab:auth) to disabled them (#2476)
This commit is contained in:
parent
03c4261caf
commit
750be9225f
2 changed files with 51 additions and 23 deletions
|
@ -88,15 +88,6 @@ class calendar extends rcube_plugin
|
||||||
require($this->home . '/lib/calendar_ui.php');
|
require($this->home . '/lib/calendar_ui.php');
|
||||||
$this->ui = new calendar_ui($this);
|
$this->ui = new calendar_ui($this);
|
||||||
|
|
||||||
// load Calendar user interface which includes jquery-ui
|
|
||||||
if (!$this->rc->output->ajax_call && !$this->rc->output->env['framed']) {
|
|
||||||
$this->ui->init();
|
|
||||||
|
|
||||||
// settings are required in (almost) every GUI step
|
|
||||||
if ($this->rc->action != 'attend')
|
|
||||||
$this->rc->output->set_env('calendar_settings', $this->load_settings());
|
|
||||||
}
|
|
||||||
|
|
||||||
// catch iTIP confirmation requests that don're require a valid session
|
// catch iTIP confirmation requests that don're require a valid session
|
||||||
if ($this->rc->action == 'attend' && !empty($_REQUEST['_t'])) {
|
if ($this->rc->action == 'attend' && !empty($_REQUEST['_t'])) {
|
||||||
$this->add_hook('startup', array($this, 'itip_attend_response'));
|
$this->add_hook('startup', array($this, 'itip_attend_response'));
|
||||||
|
@ -104,8 +95,32 @@ class calendar extends rcube_plugin
|
||||||
else if ($this->rc->action == 'feed' && !empty($_REQUEST['_cal'])) {
|
else if ($this->rc->action == 'feed' && !empty($_REQUEST['_cal'])) {
|
||||||
$this->add_hook('startup', array($this, 'ical_feed_export'));
|
$this->add_hook('startup', array($this, 'ical_feed_export'));
|
||||||
}
|
}
|
||||||
else if ($this->rc->task == 'calendar' && $this->rc->action != 'save-pref') {
|
else {
|
||||||
if ($this->rc->action != 'upload') {
|
// default startup routine
|
||||||
|
$this->add_hook('startup', array($this, 'startup'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Startup hook
|
||||||
|
*/
|
||||||
|
public function startup($args)
|
||||||
|
{
|
||||||
|
// the calendar module can be enabled/disabled by the kolab_auth plugin
|
||||||
|
if ($this->rc->config->get('calendar_disabled', false) || !$this->rc->config->get('calendar_enabled', true))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// load Calendar user interface
|
||||||
|
if (!$this->rc->output->ajax_call && !$this->rc->output->env['framed']) {
|
||||||
|
$this->ui->init();
|
||||||
|
|
||||||
|
// settings are required in (almost) every GUI step
|
||||||
|
if ($args['action'] != 'attend')
|
||||||
|
$this->rc->output->set_env('calendar_settings', $this->load_settings());
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($args['task'] == 'calendar' && $args['action'] != 'save-pref') {
|
||||||
|
if ($args['action'] != 'upload') {
|
||||||
$this->load_driver();
|
$this->load_driver();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,15 +153,15 @@ class calendar extends rcube_plugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($this->rc->task == 'settings') {
|
else if ($args['task'] == 'settings') {
|
||||||
// add hooks for Calendar settings
|
// add hooks for Calendar settings
|
||||||
$this->add_hook('preferences_sections_list', array($this, 'preferences_sections_list'));
|
$this->add_hook('preferences_sections_list', array($this, 'preferences_sections_list'));
|
||||||
$this->add_hook('preferences_list', array($this, 'preferences_list'));
|
$this->add_hook('preferences_list', array($this, 'preferences_list'));
|
||||||
$this->add_hook('preferences_save', array($this, 'preferences_save'));
|
$this->add_hook('preferences_save', array($this, 'preferences_save'));
|
||||||
}
|
}
|
||||||
else if ($this->rc->task == 'mail') {
|
else if ($args['task'] == 'mail') {
|
||||||
// hooks to catch event invitations on incoming mails
|
// hooks to catch event invitations on incoming mails
|
||||||
if ($this->rc->action == 'show' || $this->rc->action == 'preview') {
|
if ($args['action'] == 'show' || $args['action'] == 'preview') {
|
||||||
$this->add_hook('message_load', array($this, 'mail_message_load'));
|
$this->add_hook('message_load', array($this, 'mail_message_load'));
|
||||||
$this->add_hook('template_object_messagebody', array($this, 'mail_messagebody_html'));
|
$this->add_hook('template_object_messagebody', array($this, 'mail_messagebody_html'));
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,13 +71,26 @@ class tasklist extends rcube_plugin
|
||||||
// load plugin configuration
|
// load plugin configuration
|
||||||
$this->load_config();
|
$this->load_config();
|
||||||
|
|
||||||
// load localizations
|
|
||||||
$this->add_texts('localization/', $this->rc->task == 'tasks' && (!$this->rc->action || $this->rc->action == 'print'));
|
|
||||||
$this->rc->load_language($_SESSION['language'], array('tasks.tasks' => $this->gettext('navtitle'))); // add label for task title
|
|
||||||
|
|
||||||
$this->timezone = $this->lib->timezone;
|
$this->timezone = $this->lib->timezone;
|
||||||
|
|
||||||
if ($this->rc->task == 'tasks' && $this->rc->action != 'save-pref') {
|
// proceed initialization in startup hook
|
||||||
|
$this->add_hook('startup', array($this, 'startup'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Startup hook
|
||||||
|
*/
|
||||||
|
public function startup($args)
|
||||||
|
{
|
||||||
|
// the tasks module can be enabled/disabled by the kolab_auth plugin
|
||||||
|
if ($this->rc->config->get('tasklist_disabled', false) || !$this->rc->config->get('tasklist_enabled', true))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// load localizations
|
||||||
|
$this->add_texts('localization/', $args['task'] == 'tasks' && (!$args['action'] || $args['action'] == 'print'));
|
||||||
|
$this->rc->load_language($_SESSION['language'], array('tasks.tasks' => $this->gettext('navtitle'))); // add label for task title
|
||||||
|
|
||||||
|
if ($args['task'] == 'tasks' && $args['action'] != 'save-pref') {
|
||||||
$this->load_driver();
|
$this->load_driver();
|
||||||
|
|
||||||
// register calendar actions
|
// register calendar actions
|
||||||
|
@ -94,9 +107,9 @@ class tasklist extends rcube_plugin
|
||||||
|
|
||||||
$this->collapsed_tasks = array_filter(explode(',', $this->rc->config->get('tasklist_collapsed_tasks', '')));
|
$this->collapsed_tasks = array_filter(explode(',', $this->rc->config->get('tasklist_collapsed_tasks', '')));
|
||||||
}
|
}
|
||||||
else if ($this->rc->task == 'mail') {
|
else if ($args['task'] == 'mail') {
|
||||||
// TODO: register hooks to catch ical/vtodo email attachments
|
// TODO: register hooks to catch ical/vtodo email attachments
|
||||||
if ($this->rc->action == 'show' || $this->rc->action == 'preview') {
|
if ($args['action'] == 'show' || $args['action'] == 'preview') {
|
||||||
// $this->add_hook('message_load', array($this, 'mail_message_load'));
|
// $this->add_hook('message_load', array($this, 'mail_message_load'));
|
||||||
// $this->add_hook('template_object_messagebody', array($this, 'mail_messagebody_html'));
|
// $this->add_hook('template_object_messagebody', array($this, 'mail_messagebody_html'));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue