function calendar_view_plugin_style::options_form in Calendar 6.2
Same name and namespace in other branches
- 7 includes/calendar_view_plugin_style.inc \calendar_view_plugin_style::options_form()
- 7.2 includes/calendar_view_plugin_style.inc \calendar_view_plugin_style::options_form()
Style options.
File
- includes/
calendar_view_plugin_style.inc, line 71
Class
- calendar_view_plugin_style
- Style plugin to render the year, month, week, or day calendar view.
Code
function options_form(&$form, &$form_state) {
$calendar_type = $this->display->handler
->get_option('calendar_type');
$form['name_size'] = array(
'#title' => t('Calendar day of week names'),
'#default_value' => $this->options['name_size'],
'#type' => in_array($calendar_type, array(
'year',
'month',
'week',
)) ? 'radios' : 'value',
'#options' => array(
1 => t('First letter of name'),
2 => t('First two letters of name'),
3 => t('Abbreviated name'),
99 => t('Full name'),
),
'#description' => t('The way day of week names should be displayed in a calendar.'),
);
$form['with_weekno'] = array(
'#title' => t('Show week numbers'),
'#default_value' => $this->options['with_weekno'],
'#type' => in_array($calendar_type, array(
'month',
)) ? 'radios' : 'value',
'#options' => array(
0 => t('No'),
1 => t('Yes'),
),
'#description' => t('Whether or not to show week numbers in the left column of calendar weeks and months.'),
);
$form['max_items'] = array(
'#title' => t('Maximum items'),
'#type' => in_array($calendar_type, array(
'month',
)) ? 'select' : 'value',
'#options' => array(
CALENDAR_SHOW_ALL => t('Unlimited'),
CALENDAR_HIDE_ALL => t('No items'),
1 => format_plural(1, '1 item', '@count items'),
3 => format_plural(3, '1 item', '@count items'),
5 => format_plural(5, '1 item', '@count items'),
10 => format_plural(10, '1 item', '@count items'),
),
'#default_value' => $calendar_type != 'day' ? $this->options['max_items'] : 0,
'#description' => t('Maximum number of items to show in calendar cells, used to keep the calendar from expanding to a huge size when there are lots of items in one day. '),
);
$form['max_items_behavior'] = array(
'#title' => t('Too many items'),
'#type' => in_array($calendar_type, array(
'month',
)) ? 'select' : 'value',
'#options' => array(
'more' => t("Show maximum, add 'more' link"),
'hide' => t('Hide all, add link to day'),
),
'#default_value' => $calendar_type != 'day' ? $this->options['max_items_behavior'] : 'more',
'#description' => t('Behavior when there are more than the above number of items in a single day. When there more items than this limit, a link to the day view will be displayed.'),
);
$form['groupby_times'] = array(
'#title' => t('Time grouping'),
'#type' => in_array($calendar_type, array(
'day',
'week',
)) ? 'select' : 'value',
'#default_value' => $this->options['groupby_times'],
'#description' => t("Group items together into time periods based on their start time."),
'#options' => array(
'' => t('None'),
'hour' => t('Hour'),
'half' => t('Half hour'),
'custom' => t('Custom'),
),
);
$form['groupby_times_custom'] = array(
'#title' => t('Custom time grouping'),
'#type' => in_array($calendar_type, array(
'day',
'week',
)) ? 'textarea' : 'value',
'#default_value' => $this->options['groupby_times_custom'],
'#description' => t("When choosing the 'custom' Time grouping option above, create custom time period groupings as a comma-separated list of 24-hour times in the format HH:MM:SS, like '00:00:00,08:00:00,18:00:00'. Be sure to start with '00:00:00'. All items after the last time will go in the final group."),
);
// Create a list of fields that are available for grouping and truncation,
// excluding the date fields in the view from the grouping options.
$field_options = array();
$date_field_options = array();
$fields = $this->display->handler
->get_option('fields');
$date_fields = array_keys($this
->date_fields());
foreach ($fields as $field_name => $field) {
$handler = views_get_handler($field['table'], $field['field'], 'field');
if (!in_array($field['table'] . '.' . $field['field'], $date_fields)) {
$field_options[$field['table'] . '_' . $field['field']] = $handler
->ui_name();
}
else {
$date_field_options[$field['table'] . '_' . $field['field']] = $handler
->ui_name();
}
}
$form['groupby_field'] = array(
'#title' => t('Field grouping'),
'#type' => in_array($calendar_type, array(
'day',
)) ? 'select' : 'value',
'#default_value' => $this->options['groupby_field'],
'#description' => t("Optionally group items into columns by a field value, for instance select the content type to show items for each content type in their own column, or use a location field to organize items into columns by location."),
'#options' => array(
'' => '',
) + $field_options,
);
if (module_exists('calendar_multiday')) {
$form['multiday_theme'] = array(
'#title' => t('Multi-day style'),
'#default_value' => $this->options['multiday_theme'],
'#type' => in_array($calendar_type, array(
'month',
'week',
)) ? 'select' : 'value',
'#options' => array(
0 => t('Display multi-day item as a single column'),
1 => t('Display multi-day item as a multiple column row'),
),
'#description' => t('If selected, items which span multiple days will displayed as a multi-column row. If not selected, items will be displayed as an individual column.'),
);
$form['theme_style'] = array(
'#title' => t('Overlapping time style'),
'#default_value' => $this->options['theme_style'],
'#type' => in_array($calendar_type, array(
'day',
'week',
)) ? 'select' : 'value',
'#options' => array(
0 => t('Do not display overlapping items'),
1 => t('Display overlapping items'),
),
'#description' => t('Select whether calendar items are displayed as overlapping items.'),
);
}
foreach ($form as $key => $value) {
if ($value['#type'] == 'value') {
$form[$key]['#value'] = $value['#default_value'];
}
}
}