View source
<?php
function asaf_example_api_depended_elements($form, &$form_state) {
$form['time'] = array(
'#markup' => t('Form generation time: @time', array(
'@time' => date('H:i:s'),
)),
);
$form['year_chooser'] = array(
'#type' => 'fieldset',
'#title' => t('Hierarchical year chooser'),
'#collapsible' => TRUE,
);
$centuries = array();
for ($i = 1; $i <= date('Y') / 100 + 1; $i++) {
$centuries[$i] = $i;
}
$form['year_chooser']['century'] = array(
'#type' => 'select',
'#title' => t('Century'),
'#options' => array(
'' => '',
) + $centuries,
'#asaf_control' => 'century',
'#asaf_target_area' => 'decade_and_year',
);
$form['year_chooser']['decade_and_year'] = array(
'#asaf_area' => 'decade_and_year',
);
if (isset($form_state['values']['century']) && $form_state['values']['century']) {
$decades = array();
for ($i = ($form_state['values']['century'] - 1) * 100; $i < $form_state['values']['century'] * 100 && $i <= date('Y'); $i = $i + 10) {
$name = $i / 10 . 'x';
$decades[$i] = $name;
}
$form['year_chooser']['decade_and_year']['decade'] = array(
'#type' => 'select',
'#title' => t('Decade'),
'#options' => array(
'' => '',
) + $decades,
'#description' => t('Element generation time: @time', array(
'@time' => date('H:i:s'),
)),
'#asaf_control' => 'decade',
'#asaf_target_area' => 'year',
);
if (isset($form_state['values']['decade']) && $form_state['values']['decade'] && isset($decades[$form_state['values']['decade']])) {
$range = array();
for ($i = $form_state['values']['decade']; $i < $form_state['values']['decade'] + 10 && $i <= date('Y'); $i++) {
$range[$i] = $i;
}
$form['year_chooser']['decade_and_year']['year'] = array(
'#type' => 'select',
'#title' => t('Year'),
'#options' => $range,
'#description' => t('Element generation time: @time', array(
'@time' => date('H:i:s'),
)),
'#asaf_area' => 'year',
);
}
else {
$form['year_chooser']['decade_and_year']['year'] = array(
'#asaf_area' => 'year',
);
}
}
asaf_prepare_form($form, $form_state);
return $form;
}