mediamosa_statistics_filter_form($form, $form_state)Form builder; Return form for mediafile filters.
mediamosa_statistics_list_form()
sites/all/modules/mediamosa/modules/statistics/mediamosa_statistics.inc, line 45
<?php
function mediamosa_statistics_filter_form($form, $form_state) {
assert(!empty($form_state['build_info']['args'][0]));
$type = empty($form_state['build_info']['args'][0]) ? '' : $form_state['build_info']['args'][0];
$form['filters'] = array(
'#type' => 'fieldset',
'#title' => t('Filters'),
'#theme' => 'mediamosa_statistics_filters',
);
drupal_add_css(drupal_get_path('module', 'mediamosa_statistics') . '/mediamosa_statistics.css');
// Get session.
$session = isset($_SESSION['mediamosa_statistics_filter'][$type]) ? $_SESSION['mediamosa_statistics_filter'][$type] : array();
switch ($type) {
case MEDIAMOSA_STATISTICS_FILTER_TYPE_MEDIAFILE_LATEST:
case MEDIAMOSA_STATISTICS_FILTER_TYPE_MEDIAFILE_POPULAR:
case MEDIAMOSA_STATISTICS_FILTER_TYPE_COLLECTION_LATEST:
case MEDIAMOSA_STATISTICS_FILTER_TYPE_COLLECTION_POPULAR:
case MEDIAMOSA_STATISTICS_FILTER_TYPE_DISKSPACE:
case MEDIAMOSA_STATISTICS_FILTER_TYPE_STREAMREQUESTS:
case MEDIAMOSA_STATISTICS_FILTER_TYPE_POPULARSTREAMS:
$app_owners = mediamosa_app::collect_app_owners();
$owners = array();
foreach ($app_owners as $owner => $app_owner) {
$owners[$owner] = $owner;
}
// Get all apps.
$result = mediamosa_app::get_all_apps(array(mediamosa_app_db::APP_ID, mediamosa_app_db::APP_NAME));
$apps = array();
foreach ($result as $row) {
$apps[$row['app_id']] = $row[mediamosa_app_db::APP_NAME] . ' (app id ' . $row['app_id'] .')';
}
$form['filters']['status']['app_owner'] = array(
'#type' => 'select',
'#options' => array('' => '') + $owners,
'#title' => 'Owner',
'#default_value' => !empty($session['app_owner']) ? $session['app_owner'] : '',
);
$form['filters']['status']['app_id'] = array(
'#type' => 'select',
'#options' => array('' => '') + $apps,
'#title' => 'Application',
'#default_value' => !empty($session['app_id']) ? $session['app_id'] : '',
);
break;
}
$years = $months = array();
for ($y = 1970; $y <= date('Y'); $y++) {
$years[$y] = $y;
}
for ($m = 1; $m <= 12; $m++) {
$months[$m] = $m;
}
switch ($type) {
case MEDIAMOSA_STATISTICS_FILTER_TYPE_DISKSPACE:
$form['filters']['status']['year'] = array(
'#type' => 'select',
'#options' => $years,
'#title' => 'Year',
'#default_value' => !empty($session['year']) ? $session['year'] : date('Y'),
);
$form['filters']['status']['month'] = array(
'#type' => 'select',
'#options' => $months,
'#title' => 'Month',
'#default_value' => !empty($session['month']) ? $session['month'] : date('n'),
);
$types = array(
mediamosa_statistics_diskspace_used_db::TYPE_CONTAINER => t('Container'),
mediamosa_statistics_diskspace_used_db::TYPE_GROUP => t('Group'),
mediamosa_statistics_diskspace_used_db::TYPE_USER => t('User')
);
$form['filters']['status']['type'] = array(
'#type' => 'select',
'#options' => $types,
'#title' => 'Type',
'#default_value' => !empty($session['type']) ? $session['type'] : mediamosa_statistics_diskspace_used_db::TYPE_CONTAINER,
);
break;
case MEDIAMOSA_STATISTICS_FILTER_TYPE_STREAMREQUESTS:
$form['filters']['status']['year'] = array(
'#type' => 'select',
'#options' => $years,
'#title' => 'Year',
'#default_value' => !empty($session['year']) ? $session['year'] : date('Y'),
);
$form['filters']['status']['month'] = array(
'#type' => 'select',
'#options' => $months,
'#title' => 'Month',
'#default_value' => !empty($session['month']) ? $session['month'] : date('n'),
);
break;
case MEDIAMOSA_STATISTICS_FILTER_TYPE_SEARCHEDWORDS:
case MEDIAMOSA_STATISTICS_FILTER_TYPE_POPULARSTREAMS:
$form['filters']['status']['year'] = array(
'#type' => 'select',
'#options' => $years,
'#title' => 'Year',
'#default_value' => !empty($session['year']) ? $session['year'] : date('Y'),
);
$form['filters']['status']['month'] = array(
'#type' => 'select',
'#options' => $months,
'#title' => 'Month',
'#default_value' => !empty($session['month']) ? $session['month'] : date('n'),
);
$year_end = !empty($session['year_end']) ? $session['year_end'] : date('Y');
$month_end = !empty($session['month_end']) ? $session['month_end'] : date('n') + 1;
if ($month_end > 12) {
$month_end = 1;
$year_end = date('Y') + 1;
}
$form['filters']['status']['year_end'] = array(
'#type' => 'select',
'#options' => $years,
'#title' => 'Year end',
'#default_value' => $year_end,
);
$form['filters']['status']['month_end'] = array(
'#type' => 'select',
'#options' => $months,
'#title' => 'Month end',
'#default_value' => $month_end,
);
break;
}
$form['filters']['actions'] = array(
'#type' => 'container',
'#attributes' => array('class' => array('form-actions', 'container-inline')),
'#id' => 'mediamosa-statistics-buttons',
);
$form['filters']['actions']['submit'] = array('#type' => 'submit', '#value' => t('Filter'));
$form['filters']['filter_type'] = array('#type' => 'hidden', '#value' => $type);
$form['#submit'][] = 'mediamosa_statistics_filter_form_submit';
return $form;
}
?>