Hi. GREAT idea for a module. When I enable it, all the data in the calendar is gone (month view) except for the times. The title of the nodes are gone. Any ideas?

CommentFileSizeAuthor
#2 calendar_plus.png35.73 KBgbrands
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

iconify’s picture

Hy duckydan,

This is still a rough version so some issues haven't been worked out. I'd really appreciate your input on how the module should behave. If you could post a screen capture of what you're seeing that would help so we can comment on specific items.

The display of calendar items on the month view is a bit of a challenge because there isn't really a way to display multi-day items that span several cells. The HTML Table element does allow this kind of display because a single cell can occupy more than one column and row. Here I'm using an unordered list (UL) element so that isn't possible. So I'll need to come up with an alternative that comes close but probably won't be a perfect substitute.

If you don't mind, post the screen cap then let me know what you'd like to see. I'll do my best to accommodate and update the code accordingly.

Thanks for the feedback and for checking out the module.

Scott (iconify)

gbrands’s picture

FileSize
35.73 KB

Screen cap should be attached as well as the view pasted below:

$view = new view();
$view->name = 'calendar';
$view->description = '';
$view->tag = 'Calendar';
$view->base_table = 'node';
$view->human_name = 'Calendar';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['link_display'] = 'page_1';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'date_views_pager';
$handler->display->display_options['pager']['options']['date_id'] = 'month';
$handler->display->display_options['style_plugin'] = 'calendar_style';
$handler->display->display_options['style_options']['name_size'] = '3';
$handler->display->display_options['style_options']['with_weekno'] = '0';
$handler->display->display_options['style_options']['multiday_theme'] = '1';
$handler->display->display_options['style_options']['theme_style'] = '1';
$handler->display->display_options['style_options']['max_items'] = '0';
$handler->display->display_options['row_plugin'] = 'calendar_entity';
/* Field: Content: Title */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['title']['hide_alter_empty'] = FALSE;
$handler->display->display_options['fields']['title']['link_to_node'] = FALSE;
/* Field: Content: Date */
$handler->display->display_options['fields']['field_date_event']['id'] = 'field_date_event';
$handler->display->display_options['fields']['field_date_event']['table'] = 'field_data_field_date_event';
$handler->display->display_options['fields']['field_date_event']['field'] = 'field_date_event';
$handler->display->display_options['fields']['field_date_event']['label'] = '';
$handler->display->display_options['fields']['field_date_event']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_date_event']['hide_alter_empty'] = FALSE;
$handler->display->display_options['fields']['field_date_event']['settings'] = array(
  'format_type' => 'short',
  'fromto' => 'both',
  'multiple_number' => '',
  'multiple_from' => '',
  'multiple_to' => '',
  'show_repeat_rule' => '',
);
$handler->display->display_options['fields']['field_date_event']['group_rows'] = FALSE;
$handler->display->display_options['fields']['field_date_event']['delta_offset'] = '0';
/* Sort criterion: Content: Date -  start date (field_date_event) */
$handler->display->display_options['sorts']['field_date_event_value']['id'] = 'field_date_event_value';
$handler->display->display_options['sorts']['field_date_event_value']['table'] = 'field_data_field_date_event';
$handler->display->display_options['sorts']['field_date_event_value']['field'] = 'field_date_event_value';
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 0;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;

/* Display: Month */
$handler = $view->new_display('page', 'Month', 'page_1');
$handler->display->display_options['defaults']['pager'] = FALSE;
$handler->display->display_options['pager']['type'] = 'date_views_pager';
$handler->display->display_options['pager']['options']['date_id'] = 'month';
$handler->display->display_options['pager']['options']['link_format'] = 'clean';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'calendar_style';
$handler->display->display_options['style_options']['name_size'] = '99';
$handler->display->display_options['style_options']['mini'] = '0';
$handler->display->display_options['style_options']['with_weekno'] = '0';
$handler->display->display_options['style_options']['multiday_theme'] = '1';
$handler->display->display_options['style_options']['theme_style'] = '1';
$handler->display->display_options['style_options']['max_items'] = '3';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'calendar_entity';
$handler->display->display_options['row_options']['colors']['legend'] = 'type';
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Contextual filter: Date: Date (node) */
$handler->display->display_options['arguments']['date_argument']['id'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['table'] = 'node';
$handler->display->display_options['arguments']['date_argument']['field'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['default_action'] = 'default';
$handler->display->display_options['arguments']['date_argument']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['date_argument']['add_delta'] = 'yes';
$handler->display->display_options['arguments']['date_argument']['date_fields'] = array(
  'field_data_field_date_event.field_date_event_value' => 'field_data_field_date_event.field_date_event_value',
);
$handler->display->display_options['path'] = 'calendar-node-field-date-event/month';
$handler->display->display_options['menu']['type'] = 'default tab';
$handler->display->display_options['menu']['title'] = 'Month';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['context'] = 0;
$handler->display->display_options['tab_options']['type'] = 'normal';
$handler->display->display_options['tab_options']['title'] = 'Calendar';
$handler->display->display_options['tab_options']['weight'] = '0';

/* Display: Week */
$handler = $view->new_display('page', 'Week', 'page_2');
$handler->display->display_options['defaults']['pager'] = FALSE;
$handler->display->display_options['pager']['type'] = 'date_views_pager';
$handler->display->display_options['pager']['options']['date_id'] = 'week';
$handler->display->display_options['pager']['options']['link_format'] = 'clean';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'calendar_style';
$handler->display->display_options['style_options']['calendar_type'] = 'week';
$handler->display->display_options['style_options']['name_size'] = '3';
$handler->display->display_options['style_options']['mini'] = '0';
$handler->display->display_options['style_options']['with_weekno'] = '0';
$handler->display->display_options['style_options']['multiday_theme'] = '1';
$handler->display->display_options['style_options']['theme_style'] = '1';
$handler->display->display_options['style_options']['max_items'] = '0';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'calendar_entity';
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Contextual filter: Date: Date (node) */
$handler->display->display_options['arguments']['date_argument']['id'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['table'] = 'node';
$handler->display->display_options['arguments']['date_argument']['field'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['default_action'] = 'default';
$handler->display->display_options['arguments']['date_argument']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['date_argument']['granularity'] = 'week';
$handler->display->display_options['arguments']['date_argument']['add_delta'] = 'yes';
$handler->display->display_options['arguments']['date_argument']['date_fields'] = array(
  'field_data_field_date_event.field_date_event_value' => 'field_data_field_date_event.field_date_event_value',
);
$handler->display->display_options['path'] = 'calendar-node-field-date-event/week';
$handler->display->display_options['menu']['type'] = 'tab';
$handler->display->display_options['menu']['title'] = 'Week';
$handler->display->display_options['menu']['weight'] = '2';
$handler->display->display_options['menu']['context'] = 0;

/* Display: Day */
$handler = $view->new_display('page', 'Day', 'page_3');
$handler->display->display_options['defaults']['pager'] = FALSE;
$handler->display->display_options['pager']['type'] = 'date_views_pager';
$handler->display->display_options['pager']['options']['date_id'] = 'day';
$handler->display->display_options['pager']['options']['link_format'] = 'clean';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'calendar_style';
$handler->display->display_options['style_options']['calendar_type'] = 'day';
$handler->display->display_options['style_options']['name_size'] = '3';
$handler->display->display_options['style_options']['mini'] = '0';
$handler->display->display_options['style_options']['with_weekno'] = '0';
$handler->display->display_options['style_options']['multiday_theme'] = '1';
$handler->display->display_options['style_options']['theme_style'] = '1';
$handler->display->display_options['style_options']['max_items'] = '0';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'calendar_entity';
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Contextual filter: Date: Date (node) */
$handler->display->display_options['arguments']['date_argument']['id'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['table'] = 'node';
$handler->display->display_options['arguments']['date_argument']['field'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['default_action'] = 'default';
$handler->display->display_options['arguments']['date_argument']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['date_argument']['granularity'] = 'day';
$handler->display->display_options['arguments']['date_argument']['date_fields'] = array(
  'field_data_field_date_event.field_date_event_value' => 'field_data_field_date_event.field_date_event_value',
);
$handler->display->display_options['path'] = 'calendar-node-field-date-event/day';
$handler->display->display_options['menu']['type'] = 'tab';
$handler->display->display_options['menu']['title'] = 'Day';
$handler->display->display_options['menu']['weight'] = '3';
$handler->display->display_options['menu']['context'] = 0;

/* Display: Year */
$handler = $view->new_display('page', 'Year', 'page');
$handler->display->display_options['defaults']['pager'] = FALSE;
$handler->display->display_options['pager']['type'] = 'date_views_pager';
$handler->display->display_options['pager']['options']['date_id'] = 'year';
$handler->display->display_options['pager']['options']['link_format'] = 'clean';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'calendar_style';
$handler->display->display_options['style_options']['calendar_type'] = 'year';
$handler->display->display_options['style_options']['name_size'] = '1';
$handler->display->display_options['style_options']['mini'] = '0';
$handler->display->display_options['style_options']['with_weekno'] = '0';
$handler->display->display_options['style_options']['multiday_theme'] = '1';
$handler->display->display_options['style_options']['theme_style'] = '1';
$handler->display->display_options['style_options']['max_items'] = '0';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'calendar_entity';
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['fields'] = FALSE;
/* Field: Content: Title */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['title']['hide_alter_empty'] = FALSE;
/* Field: Content: Date */
$handler->display->display_options['fields']['field_date_event']['id'] = 'field_date_event';
$handler->display->display_options['fields']['field_date_event']['table'] = 'field_data_field_date_event';
$handler->display->display_options['fields']['field_date_event']['field'] = 'field_date_event';
$handler->display->display_options['fields']['field_date_event']['label'] = '';
$handler->display->display_options['fields']['field_date_event']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_date_event']['hide_alter_empty'] = FALSE;
$handler->display->display_options['fields']['field_date_event']['settings'] = array(
  'format_type' => 'short',
  'fromto' => 'both',
  'multiple_number' => '',
  'multiple_from' => '',
  'multiple_to' => '',
  'show_repeat_rule' => '',
);
$handler->display->display_options['fields']['field_date_event']['group_rows'] = FALSE;
$handler->display->display_options['fields']['field_date_event']['delta_offset'] = '0';
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Contextual filter: Date: Date (node) */
$handler->display->display_options['arguments']['date_argument']['id'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['table'] = 'node';
$handler->display->display_options['arguments']['date_argument']['field'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['default_action'] = 'default';
$handler->display->display_options['arguments']['date_argument']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['date_argument']['granularity'] = 'year';
$handler->display->display_options['arguments']['date_argument']['add_delta'] = 'yes';
$handler->display->display_options['arguments']['date_argument']['date_fields'] = array(
  'field_data_field_date_event.field_date_event_value' => 'field_data_field_date_event.field_date_event_value',
);
$handler->display->display_options['path'] = 'calendar-node-field-date-event/year';
$handler->display->display_options['menu']['type'] = 'tab';
$handler->display->display_options['menu']['title'] = 'Year';
$handler->display->display_options['menu']['weight'] = '4';
$handler->display->display_options['menu']['context'] = 0;

/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block_1');
$handler->display->display_options['defaults']['use_ajax'] = FALSE;
$handler->display->display_options['use_ajax'] = TRUE;
$handler->display->display_options['defaults']['pager'] = FALSE;
$handler->display->display_options['pager']['type'] = 'date_views_pager';
$handler->display->display_options['pager']['options']['date_id'] = 'mini';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'calendar_style';
$handler->display->display_options['style_options']['name_size'] = '1';
$handler->display->display_options['style_options']['mini'] = '1';
$handler->display->display_options['style_options']['with_weekno'] = '0';
$handler->display->display_options['style_options']['multiday_theme'] = '1';
$handler->display->display_options['style_options']['theme_style'] = '1';
$handler->display->display_options['style_options']['max_items'] = '0';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'calendar_entity';
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Contextual filter: Date: Date (node) */
$handler->display->display_options['arguments']['date_argument']['id'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['table'] = 'node';
$handler->display->display_options['arguments']['date_argument']['field'] = 'date_argument';
$handler->display->display_options['arguments']['date_argument']['default_action'] = 'default';
$handler->display->display_options['arguments']['date_argument']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['date_argument']['add_delta'] = 'yes';
$handler->display->display_options['arguments']['date_argument']['date_fields'] = array(
  'field_data_field_date_event.field_date_event_value' => 'field_data_field_date_event.field_date_event_value',
);

/* Display: iCal */
$handler = $view->new_display('feed', 'iCal', 'feed_1');
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['style_plugin'] = 'date_ical';
$handler->display->display_options['row_plugin'] = 'date_ical';
$handler->display->display_options['row_options']['date_field'] = 'field_data_field_date_event.field_date_event_value';
$handler->display->display_options['defaults']['filter_groups'] = FALSE;
$handler->display->display_options['defaults']['filters'] = FALSE;
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 0;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Date: Date (node) */
$handler->display->display_options['filters']['date_filter']['id'] = 'date_filter';
$handler->display->display_options['filters']['date_filter']['table'] = 'node';
$handler->display->display_options['filters']['date_filter']['field'] = 'date_filter';
$handler->display->display_options['filters']['date_filter']['operator'] = '>=';
$handler->display->display_options['filters']['date_filter']['default_date'] = 'now';
$handler->display->display_options['filters']['date_filter']['add_delta'] = 'yes';
$handler->display->display_options['filters']['date_filter']['date_fields'] = array(
  'field_data_field_date_event.field_date_event_value' => 'field_data_field_date_event.field_date_event_value',
);
$handler->display->display_options['path'] = 'calendar-node-field-date-event/ical/%/calendar.ics';
$handler->display->display_options['displays'] = array(
  'page' => 'page',
  'page_1' => 'page_1',
  'page_2' => 'page_2',
  'page_3' => 'page_3',
  'block_1' => 'block_1',
  'block_2' => 'block_2',
  'default' => 0,
);

/* Display: Upcoming */
$handler = $view->new_display('block', 'Upcoming', 'block_2');
$handler->display->display_options['display_description'] = 'Upcoming events block';
$handler->display->display_options['defaults']['use_more'] = FALSE;
$handler->display->display_options['use_more'] = TRUE;
$handler->display->display_options['defaults']['pager'] = FALSE;
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['pager']['options']['items_per_page'] = '5';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'list';
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['filter_groups'] = FALSE;
$handler->display->display_options['defaults']['filters'] = FALSE;
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 0;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Date: Date (node) */
$handler->display->display_options['filters']['date_filter']['id'] = 'date_filter';
$handler->display->display_options['filters']['date_filter']['table'] = 'node';
$handler->display->display_options['filters']['date_filter']['field'] = 'date_filter';
$handler->display->display_options['filters']['date_filter']['operator'] = '>=';
$handler->display->display_options['filters']['date_filter']['default_date'] = 'now';
$handler->display->display_options['filters']['date_filter']['add_delta'] = 'yes';
$handler->display->display_options['filters']['date_filter']['date_fields'] = array(
  'field_data_field_date_event.field_date_event_value' => 'field_data_field_date_event.field_date_event_value',
);

iconify’s picture

First, let's make sure this isn't simply a CSS issue. Next to the event time in the calendar month view, the module should out-put a SPAN with the class "event-title" that contains the hyperlinked title of the event. If you are using a dev tool like Firebug in Firefox, or Chrome natively can do this, just right-click on the element (like the time) and check to see if the ... tag is present. You can also just view source on the page and search for . If that code is present then it's just a CSS issue and really easy to fix.

Otherwise, it may be a View settings issue but I'm not 100% familiar with the settings so I'll need to spend some time looking how they affect the display of the title. They shouldn't have any effect since the title code is new but you never know.

Let me know what you find out from the CSS (inspect element) test and I'll go from there.

Thanks,
Scott

iconify’s picture

Scratch that previous response. I hadn't committed the latest version of the code with the event title in it. Update your code and try it again. It should work now.

Thanks,
Scott

gbrands’s picture

Awesome! Thanks for the quick response. It's showing the title now.

Is the spanning of columns from the original calendar that you don't use the the 'rendered' property of the event?

gbrands’s picture

Using the rendered property from views:

              <span class="event-info">
                <?php print $e->rendered; ?>
              </span>

Original code:

              <span class="event-info">
                <span class="event-time"><?php print l($e->date_start->format("h:i A"), $e->url); ?></span>
                <?php if (isset($e->title) && !empty($e->title)): ?>
                  <span class="event-title"><?php print l($e->title, $e->url); ?></span>
                <?php endif; ?>
              </span>
iconify’s picture

No problem. Thanks for the feedback and for trying out the module.

Honestly, I can't remember the specifics from that one. I think the "rendered" property was a pre-formed HTML link. I wanted to create the HTML myself so I didn't use that. I'm pretty sure that's correct but I could be mistaken.

Scott

gbrands’s picture

Oh, yeah. The calendar module has some preset display properties that would have caused the pre-formed HTML. To get around this I edited the date field and changed the following:
- Hide the repeat rule
- for the 'Choose how users view dates and times' I created a new time format (admin/config/regional/date-time/formats) of 'g:i a' and then created a new type (admin/config/regional/date-time) and called it 'TIme Only' associating the new format and used that for the view.
- Then I linked the title to it's node

Thanks again for this module! It's saved me some time trying to make my own calendar view be responsive.

iconify’s picture

Thanks for the info on the settings. I really need to dig into those. This is a work-in-progress so I'll get to it as time permits. As soon as this project goes live on Drupal.org, I'll be happy to allow others to help improve the module as well. It'd actually be great if the Calendar devs just roll this approach into their module.

I'm glad to hear it is useful. That's the goal. :-)

Thanks,
Scott

kingfisher64’s picture

Thanks iconify for your hard work.

I've noticed that regardless of the start/end date output only the start is rendered. Also the entire event is linked to the node (which in my case just displays 3 small fields of info) so is not desired.

Are there official fixes for these issues that are not work arounds? #8 suggests some hacky workarounds but it would be great to have control over these.

Would be good to see if you could get this committed as part of the calendar project.

iconify’s picture

Hi kingfisher64,

I'm glad you like the module.

The start/end date display is complicated. In order to make the calendar responsive, I had to use an UL (unordered list) instead of a table to display the days on the calendar. In HTML, the DOM allows one to extend TD (table cells) across multiple rows and columns, so it is ideal for depicting multi-day events. An UL does not allow the same behavior so the best one could do would be to programmatically "fake" the multi-row/multi-column display, but that is some seriously complicated code and I'm not even sure it would work, at least not reliably. So I'm not sure how to resolve that issue. I would be thrilled if you (or anyone) has ideas about how to address that one. That's my only disappointment with the concept. Otherwise I think it's solid. Please feel free to help me out in the idea area.

I've been so slammed that I haven't had a chance to implement any fixes but I'll try to get back on top of this and issue patches for any bug fixes/issue resolutions.

Regards,
Scott

iconify’s picture

BTW, @kingfisher64, how do you envision the node-linking issue being resolved? What behavior would work for you?

kingfisher64’s picture

#12 - that's a good question. I was wondering this myself. I suppose sticking with the default views options of linking each individual field (if desired) to the node would work. So by default remove the link and then let the user set the link on specific fields. Probably would result in the user having to set each field they include in their calendar to link to the node - but still it provides a bit more flexibility and choice.

Only other thing I can think off is (if possible) add a wrapper field around all fields which is linked or not when "display as calendar" is selected as the view format. Not sure how easy or plausible this would be though?

Thanks for the explanation though Scott it gives me an idea of how the module works and why the workarounds solve the issue. :)