phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] phpgwapi/templates/desktop/inc/class.desktop.inc.php


From: nomail
Subject: [Phpgroupware-cvs] phpgwapi/templates/desktop/inc/class.desktop.inc.php, 1.2
Date: Thu, 30 Dec 2004 07:47:34 +0100

Update of /phpgwapi/templates/desktop/inc
Added Files:
        Branch: 
          class.desktop.inc.php

date: 2004/12/30 06:47:34;  author: skwashd;  state: Exp;  lines: +256 -0

Log Message:
new HEAD
=====================================================================
<?php
/**
* phpGroupWare desktop template
* @author Dave Hall dave.hall at mbox.com.au
* @copyright Copyright (C) 2004 Free Software Foundation http://www.fsf.org/
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
* @package phpgwapi
* @subpackage gui
* @version $Id: class.desktop.inc.php,v 1.2 2004/12/30 06:47:34 skwashd Exp $
*/


class desktop
{
        var $iframe;
        var $info;
        var $js;
        var $sessions;
        var $t;
        var $target;
        var $vars;
        function desktop()
        {
                if(!is_object($GLOBALS['phpgw']->sessions))
                {
                        $GLOBALS['phpgw']->sessions = 
createObject('phpgwapi.sessions');
                }

                $this->sessions =& $GLOBALS['phpgw']->sessions;
                if($GLOBALS['phpgw']->sessions->is_repost() && 
!isset($_GET['desktop_target']))
                {
                        $status = $this->sessions->appsession('desktop', 
'phpgwapi', False);    
                }
                $status = $this->sessions->appsession('desktop', 'phpgwapi');

                if( (isset($_GET['desktop_target']) && 
substr($_GET['desktop_target'],0,6) == 'iframe' )
                        || (is_array($status) && @$status['head'] && 
@$status['navbar'] ))//&& @$status['footer']) )
                {
                        $this->iframe = True;
                        $this->target = 
intval(substr($_GET['desktop_target'],6));
                }
                else
                {
                        $this->iframe = False;
                }

                if(!is_object($GLOBALS['phpgw']->js))
                {
                        $GLOBALS['phpgw']->js = 
createObject('phpgwapi.javascript');
                }
                $this->js =& $GLOBALS['phpgw']->js;
                
                if(!is_object($GLOBALS['phpgw']->template))
                {
                        $GLOBALS['phpgw']->template = 
createObject('phpgwapi.Template', PHPGW_TEMPLATE_DIR);
                }
                $this->t =& $GLOBALS['phpgw']->template;
                $this->t->set_root(PHPGW_TEMPLATE_DIR);
                $this->t->set_unknowns('remove');

                $this->info =& $GLOBALS['phpgw_info'];

                $this->vars['img_root'] = 
$this->info['server']['webserver_url'] . '/phpgwapi/templates/desktop/images';
        }

        function footer()
        {
                $this->sessions->appsession('desktop', 'phpgwapi', 
                        array('head'            => True,
                                'navbar'        => True,
                                'footer'        => True
                        )
                );
        }

        function footer_iframe()
        {
                $this->t->set_file('footer', 'footer_iframe.tpl');
                $this->t->pfp('out', 'footer');
        }

        function footer_render()
        {
                if($this->iframe)
                {
                        $this->footer_iframe();
                }
                else
                {
                        $this->footer();
                }
        }

        function head()
        {
                $this->t->set_file(array('head' => 'head.tpl'));
                $GLOBALS['phpgw_info']['flags']['java_script'] .= '<script 
type="text/javascript"'
                . ' src="' . $GLOBALS['phpgw_info']['server']['webserver_url'] 
                . '/phpgwapi/templates/desktop/js/desktop.js"></script>';
                
                $GLOBALS['phpgw']->js->set_onload('startMain();');

                $this->vars = array_merge($this->vars,
                        array (
                                'img_icon'      => PHPGW_IMAGES_DIR . 
'/favicon.ico',
                                'img_shortcut'  => PHPGW_IMAGES_DIR . 
'/favicon.ico',
                                'website_title' => 
$GLOBALS['phpgw_info']['server']['site_title'],
                        )
                );
                $this->sessions->appsession('desktop', 'phpgwapi', array('head' 
=> True));

        }

        function head_iframe()
        {
                $this->t->set_file(array('head' => 'head_iframe.tpl'));
                //$GLOBALS['phpgw']->js->set_onload('window.top.startFrame();');

                $this->vars = array_merge($this->vars,
                        array (
                                'charset'       => lang('charset'),
                                'target'        => $this->target,
                                'website_title' => 
                                        
$this->info['apps'][$this->info['flags']['currentapp']]['title']
                        )
                );
        }

        function head_render()
        {
                if(file_exists(PHPGW_SERVER_ROOT . 
'/phpgwapi/templates/desktop/css/' 
                        . $this->info['user']['preferences']['common']['theme'] 
. '.css'))
                {
                        $this->vars['theme_css'] = 
$this->info['server']['webserver_url'] 
                                . '/phpgwapi/templates/desktop/css/' 
                                . 
$this->info['user']['preferences']['common']['theme'].'.css';
                }
                else
                {
                        $this->vars['theme_css'] = 
$this->info['server']['webserver_url'] 
                                . '/phpgwapi/templates/desktop/css/desktop.css';
                }
                
                if($this->iframe)
                {
                        $this->head_iframe();
                }
                else
                {
                        $this->head();
                }

                $this->vars = array_merge($this->vars, 
                        array(
                                'charset'       => lang('charset'),
                                'body_tags'     => 
$GLOBALS['phpgw']->common->get_body_attribs(),
                                'css'           => 
$GLOBALS['phpgw']->common->get_css(),
                                'java_script'   => 
$GLOBALS['phpgw']->common->get_java_script(),
                        )
                );
                
                $this->t->set_var($this->vars);
                $this->t->pfp('out', 'head');
        }
        
        function navbar()
        {
                $this->t->set_file(array('navbar' => 'navbar.tpl'));
                $this->t->set_block('navbar','appmenu','menuitem');

                $use_icons = 
!!strpos($this->info['user']['preferences']['common']['navbar_format'],'con');
                $blank_img = $this->vars['img_root'] . '/blank.png';

                $this->vars['url_home'] = 
$GLOBALS['phpgw_info']['navbar']['home']['url'];
                $this->vars['img_home'] = ($use_icons ? $this->vars['img_root'] 
. '/home.png' : $blank_img);
                $this->vars['lang_home'] = lang('home');

                /* TODO - make this work properly
                $this->vars['url_about'] = 
$GLOBALS['phpgw_info']['navbar']['about']['url'];
                $this->vars['img_about'] = ($use_icons ? 
$this->vars['img_root'] . '/about.png' : $blank_img);
                $this->vars['lang_about'] = lang('about %1', '');
                */

                $this->vars['url_logout'] = 
$GLOBALS['phpgw_info']['navbar']['logout']['url'];
                $this->vars['img_logout'] = ($use_icons ? 
$this->vars['img_root'] . '/logout.png' : $blank_img);
                $this->vars['lang_logout'] = lang('logout');

                $items = 2;//3;
                @ksort($GLOBALS['phpgw_info']['navbar']);
                foreach($GLOBALS['phpgw_info']['navbar'] as $app => $app_data)
                {
                        if ($app != 'home' && $app != 'about' && $app != 
'logout')
                        {
                                $GLOBALS['phpgw']->template->set_var(
                                        array('lang_app' => $app_data['title'],
                                                'url_app'=> $app_data['url'],
                                                'id_app' => strtolower($app),
                                                'img_app'=> ($use_icons 
                                                        ? $app_data['icon'] 
                                                        : $blank_img
                                                )
                                        )
                                );
                                $GLOBALS['phpgw']->template->parse('menuitem', 
'appmenu', True);
                                $items++;
                        }
                }
                $this->vars['items'] = $items;
                $this->vars['no_rows'] = ($items + 1);
                $this->vars['lang_go'] = strtoupper(lang('go'));
                $this->vars['lang_go_title'] = lang('whered\' GNU wanna go 
today?');
                
                /* TODO make this work
                $this->vars['loadURL'] = $GLOBALS['phpgw']->link('/' 
                        . 
$this->info['user']['preferences']['common']['default_app'] 
                        . '/index.php', array('desktop_target' => 'iframe1'));
                */
                
                $this->vars['username'] = 
$GLOBALS['phpgw']->common->display_fullname();

                $this->vars['url_null'] = 
$this->info['server']['webserver_url'] . '/phpgwapi/templates/desktop/null.php';
                
                $this->sessions->appsession('desktop', 'phpgwapi', array('head' 
=> True, 'navbar' => True));

        }

        function navbar_iframe()
        {
                        $this->t->set_file(array('navbar' => 
'navbar_iframe.tpl'));
                        /* TODO remove when this works :)
                        $this->vars['img_currentapp'] = 
$this->info['apps'][$this->info['flags']['currentapp']]['icon'];
                        $this->vars['title_currentapp'] = 
$this->info['apps'][$this->info['flags']['currentapp']]['title'];
                        $this->vars['target'] = $this->target;
                        */

        }

        function navbar_render()
        {
                if($this->iframe)
                {
                        $this->navbar_iframe();
                }
                else
                {
                        $this->navbar();
                }
                $this->t->set_var($this->vars);
                $this->t->pfp('out', 'navbar');
                if(!$this->iframe)
                {
                        $GLOBALS['phpgw']->common->phpgw_exit();
                }
        }
}
?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]