/** * Create array with all inputs required for date selection and calendar. * * @param string $name * @param int|array $date unix timestamp/date array(Y,m,d,H,i) * @param string|null $relatedCalendar name of the calendar which must be closed when this calendar opens * * @return array */ function createDateSelector($name, $date, $relatedCalendar = null) { $calendarIcon = new CImg('images/general/bar/cal.gif', 'calendar', 16, 12, 'pointer'); $onClick = 'var pos = getPosition(this); pos.top += 10; pos.left += 16; CLNDR["' . $name . '_calendar"].clndr.clndrshow(pos.top, pos.left);'; if ($relatedCalendar) { $onClick .= ' CLNDR["' . $relatedCalendar . '_calendar"].clndr.clndrhide();'; } $calendarIcon->onClick($onClick); if (is_array($date)) { $y = $date['y']; $m = $date['m']; $d = $date['d']; $h = $date['h']; $i = $date['i']; } else { $y = date('Y', $date); $m = date('m', $date); $d = date('d', $date); $h = date('H', $date); $i = date('i', $date); } $day = new CNumericBox($name . '_day', $d, 2); $day->attr('placeholder', _('dd')); $month = new CNumericBox($name . '_month', $m, 2); $month->attr('placeholder', _('mm')); $year = new CNumericBox($name . '_year', $y, 4); $year->attr('placeholder', _('yyyy')); $hour = new CNumericBox($name . '_hour', $h, 2); $hour->attr('placeholder', _('hh')); $minute = new CNumericBox($name . '_minute', $i, 2); $minute->attr('placeholder', _('mm')); $fields = array($day, '/', $month, '/', $year, SPACE, $hour, ':', $minute, $calendarIcon); zbx_add_post_js('create_calendar(null,' . '["' . $name . '_day","' . $name . '_month","' . $name . '_year","' . $name . '_hour","' . $name . '_minute"],' . '"' . $name . '_calendar",' . '"' . $name . '");'); return $fields; }