phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] phpgwapi/inc/class.javascript.inc.php, 1.4


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

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

date: 2004/12/30 06:47:30;  author: skwashd;  state: Exp;  lines: +39 -48

Log Message:
new HEAD
=====================================================================
<?php
        /**
        * Javascript support class
        * @author Dave Hall <address@hidden>
        * @copyright Portions Copyright (C) 2003,2004 Free Software Foundation, 
Inc http://www.fsf.org/
        * @license http://www.fsf.org/licenses/gpl.html GNU General Public 
License
        * @package phpgwapi
        * @subpackage gui
        * @version $Id: class.javascript.inc.php,v 1.4 2004/12/30 06:47:30 
skwashd Exp $
        * @link http://docs.phpgroupware.org/wiki/classJavaScript
        */

        /**
        * phpGroupWare javascript support class
        *
        * Only instanstiate this class using:
        * <code>
        *  if(address@hidden($GLOBALS['phpgw']->js))
        *  {
        *    $GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript');
        *  }
        * </code>
        *
        * This way a theme can see if this is a defined object and include the 
data,
        * while the is_object() wrapper prevents whiping out existing data held 
in 
        * this instance variables, primarily the $files variable.
        *
        * Note: The package arguement is the subdirectory of js - all js should 
live in subdirectories
        *
        * @package phpgwapi
        * @subpackage gui
        * @uses template
        */
        class javascript
        {
                /**
                * @var array elements to be used for the on(Un)Load attributes 
of the body tag
                */
                var $body;

                /**
                * @var array list of validated files to be included in the head 
section of a page
                */
                var $files;

                /**
                * @var object used for holding an instance of the Template class
                */
                var $t;
                
                /**
                * Constructor
                *
                * Initialize the instance variables
                */
                function javascript()
                {
                //      $this->t = CreateObject('phpgwapi.Template', 
'phpgwapi');
                        //not currently used, but will be soon - I hope :)
                }

                
                /**
                * Returns the javascript required for displaying a popup 
message box
                *
                * @param string $msg the message to be displayed to user
                * @returns string the javascript to be used for displaying the 
message
                */
                function get_alert($msg)
                {
                  return 'return alert("'.lang($msg).'");';
                }

                /**
                * Adds on(Un)Load= attributes to the body tag of a page
                *
                * @returns string the attributes to be used
                */
                function get_body_attribs()
                {
                        $js  = ($this->body['onLoad'] ? ' onLoad="' . 
$this->body['onLoad'] . '"' : '');
                        $js .= ($this->body['onUnload'] ? ' onUnLoad="' . 
$this->body['onUnload'] . '"': '');
                        return $js;
                }

                /**
                * Returns the javascript required for displaying a confirmation 
message box
                *
                * @param string $msg the message to be displayed to user
                * @returns string the javascript to be used for displaying the 
message
                */
                function get_confirm($msg)
                {
                        return 'return confirm("'.lang($msg).'");';
                }
                
                /**
                * Used for generating the list of external js files to be 
included in the head of a page
                *
                * NOTE: This method should only be called by the template class.
                * The validation is done when the file is added so we don't 
have to worry now
                *
                * @returns string the html needed for importing the js into a 
page
                */
                function get_script_links()
                {
                        $links = '';
                        if(!empty($this->files) && is_array($this->files))
                        {
                                $links = "<!--JS Imports from phpGW javascript 
class -->\n";
                                foreach($this->files as $app => $packages)
                                {
                                        if(!empty($packages) && 
is_array($packages))
                                        {
                                                foreach($packages as $pkg => 
$files)
                                                {
                                                        if(!empty($files) && 
is_array($files))
                                                        {
                                                                foreach($files 
as $file => $ignored)
                                                                {
                                                                        $links 
.= '<script type="text/javascript" src="'
                                                                        . 
$GLOBALS['phpgw_info']['server']['webserver_url']
                                                                        . 
"/$app/js/$pkg/$file" . '.js">'
                                                                        . 
"</script>\n";
                                                                }
                                                        }
                                                }
                                        }
                                }
                        }
                        return $links;
                }

                /**
                * Sets an onLoad action for a page
                *
                * @param string javascript to be used
                */
                function set_onload($code)
                {
                        $this->body['onLoad'] = $code;
                }

                /**
                * Sets an onUnload action for a page
                *
                * @param string javascript to be used
                */
                function set_onunload($code)
                {
                        $this->body['onUnload'] = $code;
                }

                /**
                * DO NOT USE - NOT SURE IF I AM GOING TO USE IT - ALSO IT NEEDS 
SOME CHANGES!!!!
                * Used for removing a file or package of files to be included 
in the head section of a page
                *
                * @param string $app application to use
                * @param string $package the name of the package to be removed
                * @param string $file the name of a file in the package to be 
removed - if ommitted package is removed
                */
                function unset_script_link($app, $package, $file=False)
                {
                        /* THIS DOES NOTHING ATM :P
                        if($file !== False)
                        {
                                unset($this->files[$app][$package][$file]);
                        }
                        else
                        {
                                unset($this->files[$app][$package]);
                        }
                        */
                }

                /**
                * Checks to make sure a valid package and file name is provided
                *
                * @param string $package package to be included
                * @param string $file file to be included - no ".js" on the end
                * @param string $app application directory to search - default 
= phpgwapi
                * @returns bool was the file found?
                */
                function validate_file($package, $file, $app='phpgwapi')
                {
                        if(is_readable(PHPGW_INCLUDE_ROOT . 
"/$app/js/$package/$file.js"))
                        {
                                $this->files[$app][$package][$file] = True;
                                return True;
                        }
                        elseif($app != 'phpgwapi')
                        {
                                if(is_readable(PHPGW_INCLUDE_ROOT . 
"/phpgwapi/js/$package/$file.js"))
                                {
                                        
$this->files['phpgwapi'][$package][$file] = True;
                                        return True;
                                }
                                return False;
                        }
                }
        }
?>




reply via email to

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