thomascube
2010-11-24 fbe24e9fa92bf1f118bac2053fea822b8213c3f6
Allow plugin templates to include local files (#1487133); make autocomplete on login screen configurable

3 files modified
16 ■■■■ changed files
config/main.inc.php.dist 3 ●●●●● patch | view | raw | blame | history
program/include/rcube_template.php 11 ●●●● patch | view | raw | blame | history
skins/default/templates/login.html 2 ●●● patch | view | raw | blame | history
config/main.inc.php.dist
@@ -180,6 +180,9 @@
// set the port for the ssl connection as value of this option if it differs from the default 443
$rcmail_config['force_https'] = false;
// Allow browser-autocompletion on login form
$rcmail_config['login_autocomplete'] = false;
// automatically create a new Roundcube user when log-in the first time.
// a new user will be created once the IMAP login succeeds.
// set to false if only registered users can use this service
program/include/rcube_template.php
@@ -37,6 +37,7 @@
    private $js_env = array();
    private $js_commands = array();
    private $object_handlers = array();
    private $plugin_skin_path;
    public $browser;
    public $framed = false;
@@ -373,16 +374,17 @@
    {
        $skin_path = $this->config['skin_path'];
        $plugin = false;
        $this->plugin_skin_path = null;
        $temp = explode(".", $name, 2);
        if (count($temp) > 1) {
            $plugin = $temp[0];
            $name = $temp[1];
            $skin_dir = $plugin . '/skins/' . $this->config['skin'];
            $skin_path = $this->app->plugins->dir . $skin_dir;
            $skin_path = $this->plugin_skin_path = $this->app->plugins->dir . $skin_dir;
            if (!is_dir($skin_path)) {  // fallback to default skin
                $skin_dir = $plugin . '/skins/default';
                $skin_path = $this->app->plugins->dir . $skin_dir;
                $skin_path = $this->plugin_skin_path = $this->app->plugins->dir . $skin_dir;
            }
        }
@@ -664,7 +666,9 @@
            // include a file
            case 'include':
                $path = realpath($this->config['skin_path'].$attrib['file']);
                if (!$this->plugin_skin_path || !is_file($path = realpath($this->plugin_skin_path . $attrib['file'])))
                    $path = realpath(($attrib['skin_path'] ? $attrib['skin_path'] : $this->config['skin_path']).$attrib['file']);
                if (is_readable($path)) {
                    if ($this->config['skin_include_php']) {
                        $incl = $this->include_php($path);
@@ -1041,6 +1045,7 @@
    private function login_form($attrib)
    {
        $default_host = $this->config['default_host'];
        $attrib['autocomplete'] = $this->config['login_autocomplete'] ? null : 'off';
        $_SESSION['temp'] = true;
skins/default/templates/login.html
@@ -16,7 +16,7 @@
<div class="boxcontent">
<form name="form" action="./" method="post">
<roundcube:object name="loginform" form="form" autocomplete="off" />
<roundcube:object name="loginform" form="form" />
<p style="text-align:center;"><input type="submit" class="button mainaction" value="<roundcube:label name='login' />" /></p>