phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] phpgwapi/inc class.jscalendar.inc.php, 1.1.2.3, 1.1.2


From: Dave Hall <address@hidden>
Subject: [Phpgroupware-cvs] phpgwapi/inc class.jscalendar.inc.php, 1.1.2.3, 1.1.2.4
Date: Sun, 16 Nov 2003 14:24:27 +0000

Update of /cvsroot/phpgroupware/phpgwapi/inc
In directory subversions:/tmp/cvs-serv11352

Added Files:
      Tag: Version-0_9_16-branch
        class.jscalendar.inc.php 
Log Message:
starting to readd properly licensed jscalendar

--- NEW FILE: class.jscalendar.inc.php ---
<?php
/**************************************************************************\
* phpGroupWare - API jsCalendar wrapper-class                              *
* http://www.phpgroupware.org                                              *
* Written by Ralf Becker <address@hidden>                  *
* --------------------------------------------                             *
*  This program is free software; you can redistribute it and/or modify it *
*  under the terms of the GNU General Public License as published by the   *
*  Free Software Foundation; either version 2 of the License, or (at your  *
*  option) any later version.                                              *
\**************************************************************************/

/* $Id: class.jscalendar.inc.php,v 1.1.2.4 2003/11/16 14:24:24 skwashd Exp $ */

/*!
@class jscalendar
@author ralfbecker
@abstract wrapper for the jsCalendar
@discussion the constructor load the necessary javascript-files
*/
class jscalendar
{
        /*!
        @function jscalendar
        @syntax jscalendar( $do_header=True )
        @author ralfbecker
        @abstract constructor of the class
        @param $do_header if true, necessary javascript and css gets loaded, 
only needed for input
        */
        function jscalendar($do_header=True)
        {
                $this->phpgwapi_inc_url = 
$GLOBALS['phpgw_info']['server']['webserver_url'].'/phpgwapi/inc';
                $this->dateformat = 
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];

                if ($do_header && 
!strstr($GLOBALS['phpgw_info']['flags']['java_script'],'jscalendar'))
                {
                        $GLOBALS['phpgw_info']['flags']['java_script'] .=
'<link rel="stylesheet" type="text/css" media="all" 
href="'.$this->phpgwapi_inc_url.'/jscalendar/calendar-win2k-cold-1.css" 
title="win2k-cold-1" />
<script type="text/javascript" 
src="'.$this->phpgwapi_inc_url.'/jscalendar/calendar.js"></script>
<script type="text/javascript" 
src="'.ereg_replace('[?&]*click_history=[0-9a-f]*','',$GLOBALS['phpgw']->link('/phpgwapi/inc/jscalendar-setup.php')).'"></script>
';
                }
        }

        /*!
        @function input
        @syntax input( $name,$date,$year=0,$month=0,$day=0 )
        @author ralfbecker
        @abstract creates an inputfield for the jscalendar (returns the 
necessary html and js)
        @param $name name and id of the input-field (it also names the id of 
the img $name.'-toggle')
        @param $date date as string or unix timestamp (in users localtime)
        @param $year,$month,$day if $date is not used
        @param $helpmsg a helpmessage for the statusline of the browser
        @param $options any other options to the inputfield
        */
        function 
input($name,$date,$year=0,$month=0,$day=0,$helpmsg='',$options='')
        {
                //echo "<p>jscalendar::input(name='$name', 
date='$date'='".date('Y-m-d',$date)."', year='$year', month='$month', 
day='$day')</p>\n";

                if ($date && (is_int($date) || is_numeric($date)))
                {
                        $year  = 
intval($GLOBALS['phpgw']->common->show_date($date,'Y'));
                        $month = 
intval($GLOBALS['phpgw']->common->show_date($date,'n'));
                        $day   = 
intval($GLOBALS['phpgw']->common->show_date($date,'d'));
                }
                if ($year && $month && $day)
                {
                        $date = 
date($this->dateformat,mktime(12,0,0,$month,$day,$year));
                }
                if ($helpmsg !== '')
                {
                        $options .= " 
onFocus=\"self.status='".addslashes($helpmsg)."'; return true;\"" .
                                " onBlur=\"self.status=''; return true;\"";
                }
                return
'<input type="text" id="'.$name.'" name="'.$name.'" size="10" 
value="'.$date.'"'.$options.'/>
<script type="text/javascript">
        document.writeln(\'<img id="'.$name.'-trigger" 
src="'.$this->phpgwapi_inc_url.'/jscalendar/img.gif" title="'.lang('Select 
date').'" style="cursor:pointer; cursor:hand;"/>\');
        Calendar.setup(
        {
                inputField  : "'.$name.'",
                button      : "'.$name.'-trigger"
        }
        );
</script>
';
        }

        /*!
        @function input2date
        @syntax input2date( 
$datestr,$raw='raw',$day='day',$month='month',$year='year' )
        @author ralfbecker
        @abstract converts the date-string back to an array with year, month, 
day and a timestamp
        @param $datestr content of the inputfield generated by 
jscalendar::input()
        @param $raw key of the timestamp-field in the returned array or False 
of no timestamp
        @param $day,$month,$year keys for the array, eg. to set mday instead of 
day
        */
        function 
input2date($datestr,$raw='raw',$day='day',$month='month',$year='year')
        {
                if ($datestr === '')
                {
                        return False;
                }
                $fields = split('[./-]',$datestr);
                foreach(split('[./-]',$this->dateformat) as $n => $field)
                {
                        $date[$field] = intval($fields[$n]);
                }
                $ret = array(
                        $year  => $date['Y'],
                        $month => $date['m'],
                        $day   => $date['d']
                );
                if ($raw)
                {
                        $ret[$raw] = 
mktime(12,0,0,$date['m'],$date['d'],$date['Y']);
                }
                //echo 
"<p>jscalendar::input2date('$datestr','$raw',$day','$month','$year') = "; 
print_r($ret); echo "</p>\n";

                return $ret;
        }
}





reply via email to

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