calendar_plugin_display_block.inc in Calendar 6.2
File
includes/calendar_plugin_display_block.inc
View source
<?php
class calendar_plugin_display_block extends views_plugin_display_block {
function init(&$view, &$display, $options = NULL) {
parent::init($view, $display, $options);
}
function validate() {
$errors = parent::validate();
$arguments = $this->display->handler
->get_option('arguments');
if (!in_array('date_argument', array_keys($arguments))) {
if (empty($this->view->date_info->arg_missing)) {
$errors[] = t("The Calendar period display '@display_title' will not work without a Date argument.", array(
'@display_title' => $this->definition['title'],
));
}
$this->view->date_info->arg_missing = TRUE;
}
elseif ($arguments['date_argument']['default_action'] != 'default' || $arguments['date_argument']['default_argument_type'] != 'date') {
if (empty($this->view->date_info->arg_missing_default)) {
$errors[] = calendar_errors('missing_argument_default');
}
$this->view->date_info->arg_missing_default = TRUE;
}
return $errors;
}
function get_style_type() {
return 'calendar';
}
function defaultable_sections($section = NULL) {
if (in_array($section, array(
'style_plugin',
'row_options',
'row_plugin',
'items_per_page',
))) {
return FALSE;
}
return parent::defaultable_sections($section);
}
function options(&$display) {
parent::options($display);
$display['style_plugin'] = 'calendar_nav';
$display['items_per_page'] = 0;
$display['row_plugin'] = '';
$display['defaults']['style_plugin'] = FALSE;
$display['defaults']['style_options'] = FALSE;
$display['defaults']['items_per_page'] = FALSE;
$display['defaults']['row_plugin'] = FALSE;
$display['defaults']['row_options'] = FALSE;
}
function execute() {
$info['content'] = $this->view
->render();
$info['subject'] = filter_xss_admin($this->view
->get_title());
if (!empty($this->view->result) || $this
->get_option('empty') || !empty($this->view->style_plugin->definition['even empty'])) {
return $info;
}
}
}