public static string
calendar
(mixed $value, mixed $name, mixed $id, mixed $format = '%Y-%m-%d', mixed $attribs = array())
/**
* Displays a calendar control field
*
* @param string $value The date value
* @param string $name The name of the text field
* @param string $id The id of the text field
* @param string $format The date format
* @param mixed $attribs Additional HTML attributes
* The array can have the following keys:
* readonly Sets the readonly parameter for the input tag
* disabled Sets the disabled parameter for the input tag
* autofocus Sets the autofocus parameter for the input tag
* autocomplete Sets the autocomplete parameter for the input tag
* filter Sets the filter for the input tag
*
* @return string HTML markup for a calendar field
*
* @since 1.5
*
*/
public static function calendar($value, $name, $id, $format = '%Y-%m-%d', $attribs = array())
{
$app = Factory::getApplication();
$lang = $app->getLanguage();
$tag = $lang->getTag();
$calendar = $lang->getCalendar();
$direction = strtolower($app->getDocument()->getDirection());
// Get the appropriate file for the current language date helper
$helperPath = 'system/fields/calendar-locales/date/gregorian/date-helper.min.js';
if ($calendar && is_dir(JPATH_ROOT . '/media/system/js/fields/calendar-locales/date/' . strtolower($calendar))) {
$helperPath = 'system/fields/calendar-locales/date/' . strtolower($calendar) . '/date-helper.min.js';
}
$readonly = isset($attribs['readonly']) && $attribs['readonly'] === 'readonly';
$disabled = isset($attribs['disabled']) && $attribs['disabled'] === 'disabled';
$autocomplete = isset($attribs['autocomplete']) && $attribs['autocomplete'] === '';
$autofocus = isset($attribs['autofocus']) && $attribs['autofocus'] === '';
$required = isset($attribs['required']) && $attribs['required'] === '';
$filter = isset($attribs['filter']) && $attribs['filter'] === '';
$todayBtn = $attribs['todayBtn'] ?? true;
$weekNumbers = $attribs['weekNumbers'] ?? true;
$showTime = $attribs['showTime'] ?? false;
$fillTable = $attribs['fillTable'] ?? true;
$timeFormat = $attribs['timeFormat'] ?? 24;
$singleHeader = $attribs['singleHeader'] ?? false;
$hint = $attribs['placeholder'] ?? '';
$class = $attribs['class'] ?? '';
$onchange = $attribs['onChange'] ?? '';
$minYear = $attribs['minYear'] ?? null;
$maxYear = $attribs['maxYear'] ?? null;
$showTime = $showTime ? "1" : "0";
$todayBtn = $todayBtn ? "1" : "0";
$weekNumbers = $weekNumbers ? "1" : "0";
$fillTable = $fillTable ? "1" : "0";
$singleHeader = $singleHeader ? "1" : "0";
// Format value when not nulldate ('0000-00-00 00:00:00'), otherwise blank it as it would result in 1970-01-01.
if ($value && $value !== Factory::getDbo()->getNullDate() && strtotime($value) !== false) {
$tz = date_default_timezone_get();
date_default_timezone_set('UTC');
$inputvalue = strftime($format, strtotime($value));
date_default_timezone_set($tz);
} else {
$inputvalue = '';
}
$data = array('id' => $id, 'name' => $name, 'class' => $class, 'value' => $inputvalue, 'format' => $format, 'filter' => $filter, 'required' => $required, 'readonly' => $readonly, 'disabled' => $disabled, 'hint' => $hint, 'autofocus' => $autofocus, 'autocomplete' => $autocomplete, 'todaybutton' => $todayBtn, 'weeknumbers' => $weekNumbers, 'showtime' => $showTime, 'filltable' => $fillTable, 'timeformat' => $timeFormat, 'singleheader' => $singleHeader, 'tag' => $tag, 'helperPath' => $helperPath, 'direction' => $direction, 'onchange' => $onchange, 'minYear' => $minYear, 'maxYear' => $maxYear, 'dataAttribute' => '', 'dataAttributes' => '', 'calendar' => $calendar, 'firstday' => $lang->getFirstDay(), 'weekend' => explode(',', $lang->getWeekEnd()));
return LayoutHelper::render('joomla.form.field.calendar', $data, null, null);
}