Source for file function.pncalendarinput.php
Documentation is available at function.pncalendarinput.php
* Zikula Application Framework
* @copyright (c) 2004, Zikula Development Team
* @link http://www.zikula.org
* @version $Id: function.pncalendarinput.php 24342 2008-06-06 12:03:14Z markwest $
* @license GNU/GPL - http://www.gnu.org/copyleft/gpl.html
* @package Zikula_Template_Plugins
* Smarty function to display a calendar input control
* This function displays a javascript (jscalendar) calendar control
* - objectname The name of the object the field will be placed in
* - htmlname: The html fieldname under which the date value will be submitted
* - dateformat: The dateformat to use for displaying the chosen date
* - defaultstring: The String to display before a value has been selected
* - defaultdate: The Date the calendar should to default to (format: Y/m/d)
* - hidden: Boolean to show a hidden input or not
* - display: Boolean to show a display output (when date is added in a hidden field)
* - class: The class to apply to the html elements
* - time: If set show time selection
* <!--[pncalendarinput objectname=myobject htmlname=from dateformat='%Y-%m-%d' defaultdate='2005/12/31']-->
* @param array $params All attributes passed to this function from the template
* @param object &$smarty Reference to the Smarty object
* @param assign The smarty variable to assign the resulting menu HTML to
* @return string the language constant
if (!isset ($params['objectname'])) {
$smarty->trigger_error('pncalendarinput: parameter [objectname] required');
if (!isset ($params['htmlname'])) {
$smarty->trigger_error('pncalendarinput: parameter [htmlname] required');
if (!isset ($params['dateformat'])) {
$smarty->trigger_error('pncalendarinput: parameter [dateformat] required');
// start of old pncalendarinit
// pagevars make an extra pncalendarinit obsolete, they take care about the fact
// that the styles/jsvascript do not get loaded multiple times
$langFile = 'javascript/jscalendar/lang/calendar-en.js';
PageUtil::addVar('stylesheet', 'javascript/jscalendar/calendar-win2k-cold-2.css');
PageUtil::addVar('javascript', 'javascript/jscalendar/calendar-setup.js');
// end of old pncalendarinit
if (!isset ($params['defaultstring'])) $params['defaultstring'] = null;
if (!isset ($params['defaultdate'])) $params['defaultdate'] = null;
$fieldKey = $params['htmlname'];
if ($params['objectname']) {
$fieldKey = $params['objectname'] . '[' . $params['htmlname'] . ']';
$triggerName = 'trigger_' . $params['htmlname'];
$displayName = 'display_' . $params['htmlname'];
if (isset ($params['class']) && !empty($params['class'])) {
if (isset ($params['display']) && $params['display']) {
$html .= '<span id="'. $displayName. '"'. $params['class']. '>'. $params['defaultstring']. '</span>';
if (isset ($params['hidden']) && $params['hidden']) {
$html .= '<input type="hidden" name="'. $fieldKey. '" id="'. $params['htmlname']. '" value="'. $params['defaultdate']. '" />';
$html .= '<script type="text/javascript"> Calendar.setup({';
//$html .= 'ifFormat : "%Y-%m-%d %H:%M:00",'; // universal format, don't change this!
$html .= 'ifFormat : "'. $params['dateformat']. '",';
$html .= 'inputField : "'. $params['htmlname']. '",';
$html .= 'displayArea : "'. $displayName. '",';
$html .= 'daFormat : "'. $params['dateformat']. '",';
$html .= 'button : "'. $triggerName. '",';
$html .= 'defaultDate : "'. $params['defaultdate']. '",';
$html .= 'align : "Tl",';
if (isset ($params['defaultdate']) && $params['defaultdate']) {
$html .= 'date : "'. $d. '",';
if (isset ($params['time'])) {
$html .= 'showsTime : true,';
$html .= 'singleClick : true }); </script>';
$alllangs = array('afr' => 'af',
return $alllangs[$currentlang];
|