thomascube
2010-09-18 62c791f60923e12ef157f6de7018d0f7ada47911
program/include/rcube_template.php
@@ -138,13 +138,21 @@
     */
    public function set_skin($skin)
    {
        if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin))
        $valid = false;
        if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin)) {
            $skin_path = 'skins/'.$skin;
        else
            $valid = true;
        }
        else {
            $skin_path = $this->config['skin_path'] ? $this->config['skin_path'] : 'skins/default';
            $valid = !$skin;
        }
        $this->app->config->set('skin_path', $skin_path);
        $this->config['skin_path'] = $skin_path;
        return $valid;
    }
    /**
@@ -444,7 +452,10 @@
     */
    public function abs_url($str)
    {
        return preg_replace('/^\//', $this->config['skin_path'].'/', $str);
        if ($str[0] == '/')
            return $this->config['skin_path'] . $str;
        else
            return $str;
    }
@@ -770,7 +781,6 @@
     */
    public function button($attrib)
    {
        static $sa_buttons = array();
        static $s_button_count = 100;
        // these commands can be called directly via url
@@ -787,25 +797,14 @@
        else {
            $attrib['type'] = ($attrib['image'] || $attrib['imagepas'] || $attrib['imageact']) ? 'image' : 'link';
        }
        $command = $attrib['command'];
        // take the button from the stack
        if ($attrib['name'] && $sa_buttons[$attrib['name']]) {
            $attrib = $sa_buttons[$attrib['name']];
        }
        else if($attrib['image'] || $attrib['imageact'] || $attrib['imagepas'] || $attrib['class']) {
            // add button to button stack
            if (!$attrib['name']) {
                $attrib['name'] = $command;
            }
            if (!$attrib['image']) {
                $attrib['image'] = $attrib['imagepas'] ? $attrib['imagepas'] : $attrib['imageact'];
            }
            $sa_buttons[$attrib['name']] = $attrib;
        }
        else if ($command && $sa_buttons[$command]) {
            // get saved button for this command/name
            $attrib = $sa_buttons[$command];
        if ($attrib['task'])
          $command = $attrib['task'] . '.' . $command;
        if (!$attrib['image']) {
            $attrib['image'] = $attrib['imagepas'] ? $attrib['imagepas'] : $attrib['imageact'];
        }
        if (!$attrib['id']) {
@@ -849,6 +848,9 @@
            if (in_array($attrib['command'], rcmail::$main_tasks)) {
                $attrib['href'] = rcmail_url(null, null, $attrib['command']);
            }
            else if ($attrib['task'] && in_array($attrib['task'], rcmail::$main_tasks)) {
                $attrib['href'] = rcmail_url($attrib['command'], null, $attrib['task']);
            }
            else if (in_array($attrib['command'], $a_static_commands)) {
                $attrib['href'] = rcmail_url($attrib['command']);
            }
@@ -861,7 +863,11 @@
        if (!$attrib['href']) {
            $attrib['href'] = '#';
        }
        if ($command && !$attrib['onclick']) {
        if ($attrib['task']) {
            if ($attrib['classact'])
                $attrib['class'] = $attrib['classact'];
        }
        else if ($command && !$attrib['onclick']) {
            $attrib['onclick'] = sprintf(
                "return %s.command('%s','%s',this)",
                JS_OBJECT_NAME,