datetime: new field_timezone() function, new template field_select_raw.tpl

returns a timezone select like select_timezone() but using template field_select_raw.tpl.
field_select_raw get options html as forth argument, instead of array value=>label like field_select
This commit is contained in:
Fabio Comuni 2012-01-02 20:09:25 +01:00
parent 4b09566579
commit f35109827b
2 changed files with 26 additions and 2 deletions

View File

@ -15,7 +15,6 @@ function timezone_cmp($a, $b) {
}} }}
// emit a timezone selector grouped (primarily) by continent // emit a timezone selector grouped (primarily) by continent
if(! function_exists('select_timezone')) { if(! function_exists('select_timezone')) {
function select_timezone($current = 'America/Los_Angeles') { function select_timezone($current = 'America/Los_Angeles') {
@ -55,6 +54,23 @@ function select_timezone($current = 'America/Los_Angeles') {
return $o; return $o;
}} }}
// return a select using 'field_select_raw' template, with timezones
// groupped (primarily) by continent
// arguments follow convetion as other field_* template array:
// 'name', 'label', $value, 'help'
if (!function_exists('field_timezone')){
function field_timezone($name='timezone', $label='', $current = 'America/Los_Angeles', $help){
$options = select_timezone($current);
$options = str_replace('<select id="timezone_select" name="timezone">','', $options);
$options = str_replace('</select>','', $options);
$tpl = get_markup_template('field_select_raw.tpl');
return replace_macros($tpl, array(
'$field' => array($name, $label, $current, $help, $options),
));
}}
// General purpose date parse/convert function. // General purpose date parse/convert function.
// $from = source timezone // $from = source timezone
// $to = dest timezone // $to = dest timezone
@ -446,4 +462,4 @@ function update_contact_birthdays() {
} }
} }
} }

View File

@ -0,0 +1,8 @@
<div class='field select'>
<label for='id_$field.0'>$field.1</label>
<select name='$field.0' id='id_$field.0'>
$field.4
</select>
<span class='field_help'>$field.3</span>
</div>