* Name: html_select_duration
* params: prefix, default_unit(key word or value in secs), default (nb of units), default_value (duration in secs) * Purpose: Prints the dropdowns for duration selection */ function smarty_function_html_select_duration($params, $smarty_tpl) { $smarty = TikiLib::lib('smarty'); $smarty->loadPlugin('smarty_function_html_options'); $html_result = ''; $default = ['prefix' => 'Duration_', 'default_unit' => 'week', 'default' => '', 'default_value' => '', 'id' => '']; $params = array_merge($default, $params); $values = [31536000, 2628000, 604800, 86400, 3600, 60]; $output = [tra('Year'), tra('Month'), tra('Week'), tra('Day'), tra('Hour'), tra('Minute')]; $defs = ['year', 'month', 'week', 'day', 'hour', 'minute']; if (! empty($params['default_value'])) { foreach ($values as $selected) { if ($params['default_value'] >= $selected) { $params['default'] = round($params['default_value'] / $selected); break; } } } elseif (($key = array_search($params['default_unit'], $defs)) !== false) { $selected = $values[$key]; } elseif (in_array($params['default_unit'], $values)) { $selected = $params['default_unit']; } else { $selected = 604800; } $id = ! empty($params['id']) ? ' id="' . $params['id'] . '" ' : ''; $html_result .= '
'; $html_result .= '
'; if (strstr($params['prefix'], '[]')) { $prefix = str_replace('[]', '_unit[]', $params['prefix']); } else { $prefix = $params['prefix'] . '_unit'; } $html_result .= '
'; return $html_result; } function compute_select_duration($params, $prefix = 'Duration') { return $_REQUEST[$prefix] * $_REQUEST[$prefix . '_unit']; }