X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=program%2Finclude%2Frcube_plugin.php;h=748d958e8ed1cb98eac1b73d778ef82f3178f2be;hb=76507f7c63a660742e76889ad6e3919f3dde3bb0;hp=a75e9276f22e68f7465aedbc90ddd5113d239714;hpb=4212156c5c79d2f58342feb0d3ed1893f177bcab;p=roundcube.git diff --git a/program/include/rcube_plugin.php b/program/include/rcube_plugin.php index a75e927..748d958 100644 --- a/program/include/rcube_plugin.php +++ b/program/include/rcube_plugin.php @@ -5,7 +5,7 @@ | program/include/rcube_plugin.php | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2008-2009, Roundcube Dev. - Switzerland | + | Copyright (C) 2008-2009, The Roundcube Dev Team | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -15,7 +15,7 @@ | Author: Thomas Bruederli | +-----------------------------------------------------------------------+ - $Id: rcube_plugin.php 4363 2010-12-22 19:17:47Z alec $ + $Id: rcube_plugin.php 5168 2011-09-05 11:08:48Z alec $ */ @@ -83,7 +83,20 @@ abstract class rcube_plugin * Initialization method, needs to be implemented by the plugin itself */ abstract function init(); - + + + /** + * Attempt to load the given plugin which is required for the current plugin + * + * @param string Plugin name + * @return boolean True on success, false on failure + */ + public function require_plugin($plugin_name) + { + return $this->api->load_plugin($plugin_name); + } + + /** * Load local config file from plugins directory. * The loaded values are patched over the global configuration. @@ -134,8 +147,11 @@ abstract class rcube_plugin ob_start(); foreach (array('en_US', $lang) as $lng) { - @include($locdir . $lng . '.inc'); - $texts = (array)$labels + (array)$messages + (array)$texts; + $fpath = $locdir . $lng . '.inc'; + if (is_file($fpath) && is_readable($fpath)) { + include($fpath); + $texts = (array)$labels + (array)$messages + (array)$texts; + } } ob_end_clean(); @@ -270,14 +286,14 @@ abstract class rcube_plugin else return $fn; } - + /** * Provide path to the currently selected skin folder within the plugin directory * with a fallback to the default skin folder. * * @return string Skin path relative to plugins directory */ - protected function local_skin_path() + public function local_skin_path() { $skin_path = 'skins/'.$this->api->config->get('skin'); if (!is_dir(realpath(slashify($this->home) . $skin_path)))