static function showTimeStamp($myname, $options = array())
{
global $CFG_GLPI;
$params['value'] = 0;
$params['rand'] = mt_rand();
$params['min'] = 0;
$params['max'] = DAY_TIMESTAMP;
$params['step'] = $CFG_GLPI["time_step"] * MINUTE_TIMESTAMP;
$params['emptylabel'] = self::EMPTY_VALUE;
$params['addfirstminutes'] = false;
$params['toadd'] = array();
$params['inhours'] = false;
$params['display'] = true;
$params['display_emptychoice'] = true;
$params['width'] = '80%';
if (is_array($options) && count($options)) {
foreach ($options as $key => $val) {
$params[$key] = $val;
}
}
// Manage min :
$params['min'] = floor($params['min'] / $params['step']) * $params['step'];
if ($params['min'] == 0) {
$params['min'] = $params['step'];
}
$params['max'] = max($params['value'], $params['max']);
// Floor with MINUTE_TIMESTAMP for rounded purpose
if (empty($params['value'])) {
$params['value'] = 0;
}
if ($params['value'] < max($params['min'], 10 * MINUTE_TIMESTAMP) && $params['addfirstminutes']) {
$params['value'] = floor($params['value'] / MINUTE_TIMESTAMP) * MINUTE_TIMESTAMP;
} else {
$params['value'] = floor($params['value'] / $params['step']) * $params['step'];
}
$values = array();
if ($params['value']) {
$values[$params['value']] = '';
}
if ($params['addfirstminutes']) {
for ($i = MINUTE_TIMESTAMP; $i < max($params['min'], 10 * MINUTE_TIMESTAMP); $i += MINUTE_TIMESTAMP) {
$values[$i] = '';
}
}
for ($i = $params['min']; $i <= $params['max']; $i += $params['step']) {
$values[$i] = '';
}
if (count($params['toadd'])) {
foreach ($params['toadd'] as $key) {
$values[$key] = '';
}
ksort($values);
}
foreach ($values as $i => $val) {
if (empty($val)) {
if ($params['inhours']) {
$day = 0;
$hour = floor($i / HOUR_TIMESTAMP);
} else {
$day = floor($i / DAY_TIMESTAMP);
$hour = floor($i % DAY_TIMESTAMP / HOUR_TIMESTAMP);
}
$minute = floor($i % HOUR_TIMESTAMP / MINUTE_TIMESTAMP);
if ($minute === '0') {
$minute = '00';
}
$values[$i] = '';
if ($day > 0) {
if ($hour > 0 || $minute > 0) {
if ($minute < 10) {
$minute = '0' . $minute;
}
//TRANS: %1$d is the number of days, %2$d the number of hours,
// %3$s the number of minutes : display 1 day 3h15
$values[$i] = sprintf(_n('%1$d day %2$dh%3$s', '%1$d days %2$dh%3$s', $day), $day, $hour, $minute);
} else {
$values[$i] = sprintf(_n('%d day', '%d days', $day), $day);
}
} else {
if ($hour > 0 || $minute > 0) {
if ($minute < 10) {
$minute = '0' . $minute;
}
//TRANS: %1$d the number of hours, %2$s the number of minutes : display 3h15
$values[$i] = sprintf(__('%1$dh%2$s'), $hour, $minute);
}
}
}
}
return Dropdown::showFromArray($myname, $values, array('value' => $params['value'], 'display' => $params['display'], 'width' => $params['width'], 'display_emptychoice' => $params['display_emptychoice'], 'rand' => $params['rand'], 'emptylabel' => $params['emptylabel']));
}