diff --git a/cod_bof/cod_bof.strongarm.inc b/cod_bof/cod_bof.strongarm.inc index 34bb97e33501842d666d9d9f67d60030afa9828c..153ab1d374620e7d6f560cc2deba566ddaddfeec 100755 --- a/cod_bof/cod_bof.strongarm.inc +++ b/cod_bof/cod_bof.strongarm.inc @@ -123,6 +123,7 @@ function cod_bof_strongarm() { $strongarm->value = array( 0 => 'status', 1 => 'revision', + 2 => 'panelizer', ); $export['node_options_bof_session'] = $strongarm; diff --git a/cod_bof/cod_bof.views_default.inc b/cod_bof/cod_bof.views_default.inc index 91f48f7d180e06ba4b473f10c89758ac6785d859..a75998d209b97d8022b2f858c164dde943c6fb6b 100755 --- a/cod_bof/cod_bof.views_default.inc +++ b/cod_bof/cod_bof.views_default.inc @@ -343,10 +343,6 @@ function cod_bof_views_default_views() { $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['limit'] = '0'; $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['break_phrase'] = TRUE; - /* Display: Block */ - $handler = $view->new_display('block', 'Block', 'block'); - $handler->display->display_options['defaults']['hide_admin_links'] = FALSE; - /* Display: Bof Grid Block */ $handler = $view->new_display('block', 'Bof Grid Block', 'block_1'); $handler->display->display_options['defaults']['style_plugin'] = FALSE; @@ -355,6 +351,147 @@ function cod_bof_views_default_views() { $handler->display->display_options['defaults']['row_plugin'] = FALSE; $handler->display->display_options['row_plugin'] = 'fields'; $handler->display->display_options['defaults']['row_options'] = FALSE; + + /* Display: BoF time schedule pane */ + $handler = $view->new_display('panel_pane', 'BoF time schedule pane', 'cod_bof_session_time_pane'); + $handler->display->display_options['defaults']['title'] = FALSE; + $handler->display->display_options['defaults']['style_plugin'] = FALSE; + $handler->display->display_options['style_plugin'] = 'default'; + $handler->display->display_options['style_options']['grouping'] = array( + 0 => array( + 'field' => 'field_evttime_date', + 'rendered' => 1, + 'rendered_strip' => 0, + ), + ); + $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']['fields'] = FALSE; + /* Field: Field collection item: Field collection item ID */ + $handler->display->display_options['fields']['item_id']['id'] = 'item_id'; + $handler->display->display_options['fields']['item_id']['table'] = 'field_collection_item'; + $handler->display->display_options['fields']['item_id']['field'] = 'item_id'; + $handler->display->display_options['fields']['item_id']['label'] = ''; + $handler->display->display_options['fields']['item_id']['exclude'] = TRUE; + $handler->display->display_options['fields']['item_id']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['item_id']['separator'] = ''; + /* Field: Room: Label */ + $handler->display->display_options['fields']['name']['id'] = 'name'; + $handler->display->display_options['fields']['name']['table'] = 'cod_event_room'; + $handler->display->display_options['fields']['name']['field'] = 'name'; + $handler->display->display_options['fields']['name']['relationship'] = 'field_timeslot_room_target_id'; + $handler->display->display_options['fields']['name']['label'] = ''; + $handler->display->display_options['fields']['name']['element_label_colon'] = FALSE; + /* Field: Room: Capacity */ + $handler->display->display_options['fields']['capacity']['id'] = 'capacity'; + $handler->display->display_options['fields']['capacity']['table'] = 'cod_event_room'; + $handler->display->display_options['fields']['capacity']['field'] = 'capacity'; + $handler->display->display_options['fields']['capacity']['relationship'] = 'field_timeslot_room_target_id'; + $handler->display->display_options['fields']['capacity']['label'] = ''; + $handler->display->display_options['fields']['capacity']['exclude'] = TRUE; + $handler->display->display_options['fields']['capacity']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['capacity']['separator'] = ''; + /* Field: Content: Nid */ + $handler->display->display_options['fields']['nid']['id'] = 'nid'; + $handler->display->display_options['fields']['nid']['table'] = 'node'; + $handler->display->display_options['fields']['nid']['field'] = 'nid'; + $handler->display->display_options['fields']['nid']['relationship'] = 'field_event_timeslots_node'; + $handler->display->display_options['fields']['nid']['label'] = 'Conference NID'; + $handler->display->display_options['fields']['nid']['exclude'] = TRUE; + /* Field: Global: View */ + $handler->display->display_options['fields']['view']['id'] = 'view'; + $handler->display->display_options['fields']['view']['table'] = 'views'; + $handler->display->display_options['fields']['view']['field'] = 'view'; + $handler->display->display_options['fields']['view']['label'] = ''; + $handler->display->display_options['fields']['view']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['view']['hide_alter_empty'] = FALSE; + $handler->display->display_options['fields']['view']['view'] = 'cod_bof_schedule_content'; + $handler->display->display_options['fields']['view']['arguments'] = '[!item_id]/!3/[!capacity]/[!nid]'; + /* Field: Time: Date and time */ + $handler->display->display_options['fields']['field_evttime_date']['id'] = 'field_evttime_date'; + $handler->display->display_options['fields']['field_evttime_date']['table'] = 'field_data_field_evttime_date'; + $handler->display->display_options['fields']['field_evttime_date']['field'] = 'field_evttime_date'; + $handler->display->display_options['fields']['field_evttime_date']['relationship'] = 'field_timeslot_time_target_id'; + $handler->display->display_options['fields']['field_evttime_date']['label'] = ''; + $handler->display->display_options['fields']['field_evttime_date']['exclude'] = TRUE; + $handler->display->display_options['fields']['field_evttime_date']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['field_evttime_date']['settings'] = array( + 'format_type' => 'cod_time', + 'fromto' => 'both', + 'multiple_number' => '', + 'multiple_from' => '', + 'multiple_to' => '', + 'show_remaining_days' => 0, + ); + $handler->display->display_options['defaults']['sorts'] = FALSE; + /* Sort criterion: Time: Date and time - start date (field_evttime_date) */ + $handler->display->display_options['sorts']['field_evttime_date_value']['id'] = 'field_evttime_date_value'; + $handler->display->display_options['sorts']['field_evttime_date_value']['table'] = 'field_data_field_evttime_date'; + $handler->display->display_options['sorts']['field_evttime_date_value']['field'] = 'field_evttime_date_value'; + $handler->display->display_options['sorts']['field_evttime_date_value']['relationship'] = 'field_timeslot_time_target_id'; + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Contextual filter: Content: Nid */ + $handler->display->display_options['arguments']['nid']['id'] = 'nid'; + $handler->display->display_options['arguments']['nid']['table'] = 'node'; + $handler->display->display_options['arguments']['nid']['field'] = 'nid'; + $handler->display->display_options['arguments']['nid']['relationship'] = 'field_event_timeslots_node'; + $handler->display->display_options['arguments']['nid']['default_action'] = 'access denied'; + $handler->display->display_options['arguments']['nid']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25'; + /* Contextual filter: Time: Date and time - start date (field_evttime_date) */ + $handler->display->display_options['arguments']['field_evttime_date_value']['id'] = 'field_evttime_date_value'; + $handler->display->display_options['arguments']['field_evttime_date_value']['table'] = 'field_data_field_evttime_date'; + $handler->display->display_options['arguments']['field_evttime_date_value']['field'] = 'field_evttime_date_value'; + $handler->display->display_options['arguments']['field_evttime_date_value']['relationship'] = 'field_timeslot_time_target_id'; + $handler->display->display_options['arguments']['field_evttime_date_value']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['field_evttime_date_value']['default_argument_type'] = 'date'; + $handler->display->display_options['arguments']['field_evttime_date_value']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['field_evttime_date_value']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['field_evttime_date_value']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['field_evttime_date_value']['granularity'] = 'day'; + $handler->display->display_options['arguments']['field_evttime_date_value']['granularity_reset'] = 0; + $handler->display->display_options['arguments']['field_evttime_date_value']['timezone'] = 'America/Los_Angeles'; + /* Contextual filter: Field collection item: Allowed Types (field_timeslot_allowed_types) */ + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['id'] = 'field_timeslot_allowed_types_value'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['table'] = 'field_data_field_timeslot_allowed_types'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['field'] = 'field_timeslot_allowed_types_value'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['limit'] = '0'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['break_phrase'] = TRUE; + $handler->display->display_options['argument_input'] = array( + 'nid' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Conference', + ), + 'field_evttime_date_value' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Time-Y-M-D', + ), + 'field_timeslot_allowed_types_value' => array( + 'type' => 'fixed', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => 'bof_session', + 'label' => 'Field collection item: Allowed Types (field_timeslot_allowed_types)', + ), + ); $export['cod_bof_schedule_timeslots'] = $view; return $export; diff --git a/cod_bof/modules/cod_bof_pages/cod_bof_pages.pages_default.inc b/cod_bof/modules/cod_bof_pages/cod_bof_pages.pages_default.inc index 5e0562307b76bb6e5e57ee39ba28319c8f0c2324..8f9f0667706c9f1e576f77ef1d0d0f7252c14f3c 100644 --- a/cod_bof/modules/cod_bof_pages/cod_bof_pages.pages_default.inc +++ b/cod_bof/modules/cod_bof_pages/cod_bof_pages.pages_default.inc @@ -15,7 +15,7 @@ function cod_bof_pages_default_page_manager_pages() { $page->task = 'page'; $page->admin_title = 'cod_bof_pages'; $page->admin_description = ''; - $page->path = 'node/%node/bofs'; + $page->path = 'node/%node/bofs/!day'; $page->access = array(); $page->menu = array(); $page->arguments = array( @@ -25,6 +25,14 @@ function cod_bof_pages_default_page_manager_pages() { 'name' => 'entity_id:node', 'settings' => array(), ), + 'day' => array( + 'id' => 1, + 'identifier' => 'Schedule Day', + 'name' => 'string', + 'settings' => array( + 'use_tail' => 0, + ), + ), ); $page->conf = array( 'admin_paths' => FALSE, @@ -33,11 +41,49 @@ function cod_bof_pages_default_page_manager_pages() { $handler = new stdClass(); $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */ $handler->api_version = 1; + $handler->name = 'page-cod_bof_pages__bof_schedule_default_day'; + $handler->task = 'page'; + $handler->subtask = 'cod_bof_pages'; + $handler->handler = 'http_response'; + $handler->weight = -30; + $handler->conf = array( + 'title' => 'Bof Schedule Default day', + 'contexts' => array( + 0 => array( + 'identifier' => 'Schedule Default Day', + 'keyword' => 'cod_schedule_default_day', + 'name' => 'cod_schedule_day', + 'id' => 1, + 'day' => '', + ), + ), + 'relationships' => array(), + 'code' => '301', + 'destination' => 'node/%node:nid/bofs/%cod_schedule_default_day', + 'name' => 'bof_schedule_default_day', + 'access' => array( + 'plugins' => array( + 0 => array( + 'name' => 'context_exists', + 'settings' => array( + 'exists' => '0', + ), + 'context' => 'argument_string_1', + 'not' => FALSE, + ), + ), + 'logic' => 'and', + ), + ); + $page->default_handlers[$handler->name] = $handler; + $handler = new stdClass(); + $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */ + $handler->api_version = 1; $handler->name = 'page_cod_bof_pages__panel_context_d1b7e4a1-edf8-4c94-bc18-5b7362409cc6'; $handler->task = 'page'; $handler->subtask = 'cod_bof_pages'; $handler->handler = 'panel_context'; - $handler->weight = 0; + $handler->weight = -29; $handler->conf = array( 'title' => 'Bof Schedule', 'no_blocks' => 0, @@ -66,15 +112,16 @@ function cod_bof_pages_default_page_manager_pages() { $display->content = array(); $display->panels = array(); $pane = new stdClass(); - $pane->pid = 'new-284d0511-afdd-40f5-863c-42e3cc6090cd'; + $pane->pid = 'new-9498e9f1-adf3-4345-af97-3c7c784dbc7b'; $pane->panel = 'content'; $pane->type = 'views_panes'; - $pane->subtype = 'cod_bof_schedule-panel_pane_1'; + $pane->subtype = 'cod_bof_schedule_timeslots-cod_bof_session_time_pane'; $pane->shown = TRUE; $pane->access = array(); $pane->configuration = array( 'arguments' => array( - 'gid' => '%node:nid', + 'nid' => '%node:nid', + 'field_evttime_date_value' => '%day', ), ); $pane->cache = array(); @@ -85,11 +132,30 @@ function cod_bof_pages_default_page_manager_pages() { $pane->extras = array(); $pane->position = 0; $pane->locks = array(); - $pane->uuid = '284d0511-afdd-40f5-863c-42e3cc6090cd'; - $display->content['new-284d0511-afdd-40f5-863c-42e3cc6090cd'] = $pane; - $display->panels['content'][0] = 'new-284d0511-afdd-40f5-863c-42e3cc6090cd'; + $pane->uuid = '9498e9f1-adf3-4345-af97-3c7c784dbc7b'; + $display->content['new-9498e9f1-adf3-4345-af97-3c7c784dbc7b'] = $pane; + $display->panels['content'][0] = 'new-9498e9f1-adf3-4345-af97-3c7c784dbc7b'; + $pane = new stdClass(); + $pane->pid = 'new-4c14bf58-31f4-45d4-812a-44119df82554'; + $pane->panel = 'preface'; + $pane->type = 'cod_schedule_menu_pane'; + $pane->subtype = 'cod_schedule_menu_pane'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array(); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 0; + $pane->locks = array(); + $pane->uuid = '4c14bf58-31f4-45d4-812a-44119df82554'; + $display->content['new-4c14bf58-31f4-45d4-812a-44119df82554'] = $pane; + $display->panels['preface'][0] = 'new-4c14bf58-31f4-45d4-812a-44119df82554'; $display->hide_title = PANELS_TITLE_FIXED; - $display->title_pane = 'new-284d0511-afdd-40f5-863c-42e3cc6090cd'; + $display->title_pane = '0'; $handler->conf['display'] = $display; $page->default_handlers[$handler->name] = $handler; $pages['cod_bof_pages'] = $page; diff --git a/cod_bof/modules/cod_bof_pages/cod_bof_pages.strongarm.inc b/cod_bof/modules/cod_bof_pages/cod_bof_pages.strongarm.inc index b42cdb00a61a1dec3508bd5487d343d7b272c316..d1860de7d944d9f6de4a2f9334de18104d1bcd8f 100644 --- a/cod_bof/modules/cod_bof_pages/cod_bof_pages.strongarm.inc +++ b/cod_bof/modules/cod_bof_pages/cod_bof_pages.strongarm.inc @@ -27,46 +27,16 @@ function cod_bof_pages_strongarm() { 'default' => 1, 'choice' => 0, ), - 'full' => array( - 'status' => 0, - 'default' => 0, - 'choice' => 0, - ), 'teaser' => array( 'status' => 0, 'default' => 0, 'choice' => 0, ), - 'rss' => array( - 'status' => 0, - 'default' => 0, - 'choice' => 0, - ), - 'search_index' => array( - 'status' => 0, - 'default' => 0, - 'choice' => 0, - ), - 'search_result' => array( - 'status' => 0, - 'default' => 0, - 'choice' => 0, - ), 'listing' => array( 'status' => 0, 'default' => 0, 'choice' => 0, ), - 'diff_standard' => array( - 'status' => 0, - 'default' => 0, - 'choice' => 0, - ), - 'token' => array( - 'status' => 0, - 'default' => 0, - 'choice' => 0, - ), ), ); $export['panelizer_defaults_node_bof_session'] = $strongarm; diff --git a/cod_schedule/cod_schedule.features.field_instance.inc b/cod_schedule/cod_schedule.features.field_instance.inc index e85a2b7096ed5bc39e305293c9b56e9d0a2ac557..986a6141d278816ee291089969abe978470b5609 100644 --- a/cod_schedule/cod_schedule.features.field_instance.inc +++ b/cod_schedule/cod_schedule.features.field_instance.inc @@ -78,6 +78,7 @@ function cod_schedule_field_default_field_instances() { 'multiple_from' => '', 'multiple_number' => '', 'multiple_to' => '', + 'show_remaining_days' => FALSE, ), 'type' => 'date_default', 'weight' => 0, diff --git a/cod_schedule/cod_schedule.module b/cod_schedule/cod_schedule.module index 8689a2ef522cc0da66f67239cb3be03c8f37d9fb..6df1a1c6f338c951c2a7407439cd57f8727107ff 100644 --- a/cod_schedule/cod_schedule.module +++ b/cod_schedule/cod_schedule.module @@ -20,6 +20,12 @@ function cod_schedule_ctools_plugin_directory($module, $plugin) { if ($module == 'ctools' && $plugin == 'content_types') { return 'plugins/content_types'; } + if ($module == 'ctools' && $plugin == 'contexts') { + return 'plugins/contexts'; + } + if ($module == 'ctools' && $plugin == 'arguments') { + return 'plugins/arguments'; + } } /** @@ -272,6 +278,9 @@ function cod_schedule_update_session() { * Helper function determines days there are time slots for. */ function cod_schedule_days($node) { + if (is_numeric($node)) { + $node = node_load($node); + } if(!empty($node->field_dates)) { $tz = $node->field_dates[LANGUAGE_NONE][0]['timezone']; diff --git a/cod_schedule/cod_schedule.views_default.inc b/cod_schedule/cod_schedule.views_default.inc index d41de05d3513f7027d691a9cf1c4cb673ee68426..87ed0e7b74c104fa565d43e73c5d5ec14f5226de 100644 --- a/cod_schedule/cod_schedule.views_default.inc +++ b/cod_schedule/cod_schedule.views_default.inc @@ -12,10 +12,10 @@ function cod_schedule_views_default_views() { $view = new view(); $view->name = 'cod_schedule'; - $view->description = 'Main Schedule View for Events'; + $view->description = 'Schedule View eSignage for Events'; $view->tag = 'cod_schedule'; $view->base_table = 'cod_event_time'; - $view->human_name = 'COD Event Schedule'; + $view->human_name = 'COD Event Schedule Sign'; $view->core = 7; $view->api_version = '3.0'; $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ @@ -30,16 +30,7 @@ function cod_schedule_views_default_views() { $handler->display->display_options['query']['type'] = 'views_query'; $handler->display->display_options['exposed_form']['type'] = 'basic'; $handler->display->display_options['pager']['type'] = 'none'; - $handler->display->display_options['style_plugin'] = 'quicktabs'; - $handler->display->display_options['style_options']['grouping'] = array( - 0 => array( - 'field' => 'field_evttime_date', - 'rendered' => 1, - 'rendered_strip' => 1, - ), - ); - $handler->display->display_options['style_options']['tab_style'] = 'Zen'; - $handler->display->display_options['style_options']['tab_title_field'] = 'field_evttime_date'; + $handler->display->display_options['style_plugin'] = 'default'; $handler->display->display_options['row_plugin'] = 'fields'; /* No results behavior: Global: Text area */ $handler->display->display_options['empty']['area']['id'] = 'area'; @@ -92,6 +83,7 @@ function cod_schedule_views_default_views() { $handler->display->display_options['fields']['view']['element_label_colon'] = FALSE; $handler->display->display_options['fields']['view']['hide_empty'] = TRUE; $handler->display->display_options['fields']['view']['view'] = 'cod_schedule_content'; + $handler->display->display_options['fields']['view']['display'] = 'block_1'; $handler->display->display_options['fields']['view']['arguments'] = '[!evttid]/session+schedule_item'; /* Sort criterion: Time: Date and time - start date (field_evttime_date) */ $handler->display->display_options['sorts']['field_evttime_date_value']['id'] = 'field_evttime_date_value'; @@ -193,21 +185,6 @@ function cod_schedule_views_default_views() { $handler->display->display_options['filters']['field_evttime_date_value2']['default_date'] = '10 minutes'; $handler->display->display_options['filters']['field_evttime_date_value2']['year_range'] = '-1:+1'; $handler->display->display_options['path'] = 'node/%/program/schedule/sessions/sign'; - - /* Display: Content pane */ - $handler = $view->new_display('panel_pane', 'Content pane', 'panel_pane_1'); - $handler->display->display_options['defaults']['title'] = FALSE; - $handler->display->display_options['argument_input'] = array( - 'gid' => array( - 'type' => 'user', - 'context' => 'entity:comment.author', - 'context_optional' => 0, - 'panel' => '0', - 'fixed' => '', - 'label' => 'Conference', - ), - ); - $handler->display->display_options['inherit_panels_path'] = '1'; $export['cod_schedule'] = $view; $view = new view(); @@ -222,6 +199,7 @@ function cod_schedule_views_default_views() { /* Display: Master */ $handler = $view->new_display('default', 'Master', 'default'); + $handler->display->display_options['use_ajax'] = TRUE; $handler->display->display_options['use_more_always'] = FALSE; $handler->display->display_options['access']['type'] = 'perm'; $handler->display->display_options['cache']['type'] = 'none'; @@ -233,6 +211,7 @@ function cod_schedule_views_default_views() { $handler->display->display_options['pager']['options']['id'] = '0'; $handler->display->display_options['pager']['options']['quantity'] = '9'; $handler->display->display_options['style_plugin'] = 'default'; + $handler->display->display_options['style_options']['row_class'] = '[name_2]'; $handler->display->display_options['row_plugin'] = 'fields'; /* No results behavior: Global: Text area */ $handler->display->display_options['empty']['area']['id'] = 'area'; @@ -259,6 +238,16 @@ function cod_schedule_views_default_views() { $handler->display->display_options['relationships']['field_timeslot_time_target_id']['relationship'] = 'field_session_timeslot_target_id'; $handler->display->display_options['relationships']['field_timeslot_time_target_id']['label'] = 'Time entity'; $handler->display->display_options['relationships']['field_timeslot_time_target_id']['required'] = TRUE; + /* Relationship: Flags: session_schedule */ + $handler->display->display_options['relationships']['flag_content_rel']['id'] = 'flag_content_rel'; + $handler->display->display_options['relationships']['flag_content_rel']['table'] = 'node'; + $handler->display->display_options['relationships']['flag_content_rel']['field'] = 'flag_content_rel'; + $handler->display->display_options['relationships']['flag_content_rel']['required'] = 0; + $handler->display->display_options['relationships']['flag_content_rel']['flag'] = 'session_schedule'; + /* Relationship: Entity Reference: Referenced Entity */ + $handler->display->display_options['relationships']['og_vocabulary_target_id']['id'] = 'og_vocabulary_target_id'; + $handler->display->display_options['relationships']['og_vocabulary_target_id']['table'] = 'field_data_og_vocabulary'; + $handler->display->display_options['relationships']['og_vocabulary_target_id']['field'] = 'og_vocabulary_target_id'; /* Field: Content: Title */ $handler->display->display_options['fields']['title']['id'] = 'title'; $handler->display->display_options['fields']['title']['table'] = 'node'; @@ -283,6 +272,31 @@ function cod_schedule_views_default_views() { 'link' => 1, ); $handler->display->display_options['fields']['field_speakers']['delta_offset'] = '0'; + /* Field: Flags: Flag link */ + $handler->display->display_options['fields']['ops']['id'] = 'ops'; + $handler->display->display_options['fields']['ops']['table'] = 'flagging'; + $handler->display->display_options['fields']['ops']['field'] = 'ops'; + $handler->display->display_options['fields']['ops']['relationship'] = 'flag_content_rel'; + $handler->display->display_options['fields']['ops']['label'] = ''; + $handler->display->display_options['fields']['ops']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['ops']['link_type'] = 'toggle'; + /* Field: Taxonomy term: Name */ + $handler->display->display_options['fields']['name_1']['id'] = 'name_1'; + $handler->display->display_options['fields']['name_1']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['name_1']['field'] = 'name'; + $handler->display->display_options['fields']['name_1']['relationship'] = 'og_vocabulary_target_id'; + $handler->display->display_options['fields']['name_1']['label'] = ''; + $handler->display->display_options['fields']['name_1']['element_label_colon'] = FALSE; + /* Field: Taxonomy term: Name */ + $handler->display->display_options['fields']['name_2']['id'] = 'name_2'; + $handler->display->display_options['fields']['name_2']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['name_2']['field'] = 'name'; + $handler->display->display_options['fields']['name_2']['relationship'] = 'og_vocabulary_target_id'; + $handler->display->display_options['fields']['name_2']['label'] = ''; + $handler->display->display_options['fields']['name_2']['exclude'] = TRUE; + $handler->display->display_options['fields']['name_2']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['name_2']['case'] = 'lower'; + $handler->display->display_options['fields']['name_2']['convert_spaces'] = TRUE; /* Sort criterion: Room: Label */ $handler->display->display_options['sorts']['name']['id'] = 'name'; $handler->display->display_options['sorts']['name']['table'] = 'cod_event_room'; @@ -323,11 +337,8 @@ function cod_schedule_views_default_views() { $handler->display->display_options['filters']['status']['group'] = 1; $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; - /* Display: Block */ - $handler = $view->new_display('block', 'Block', 'block_1'); - - /* Display: Page */ - $handler = $view->new_display('page', 'Page', 'page_1'); + /* Display: Sessions JSON */ + $handler = $view->new_display('page', 'Sessions JSON', 'page_1'); $handler->display->display_options['defaults']['style_plugin'] = FALSE; $handler->display->display_options['style_plugin'] = 'views_json'; $handler->display->display_options['style_options']['plaintext_output'] = 1; @@ -452,6 +463,203 @@ function cod_schedule_views_default_views() { $handler->display->display_options['defaults']['row_plugin'] = FALSE; $handler->display->display_options['row_plugin'] = 'fields'; $handler->display->display_options['defaults']['row_options'] = FALSE; + + /* Display: Session schedule pane */ + $handler = $view->new_display('panel_pane', 'Session schedule pane', 'cod_schedule_session_content_pane'); + $handler->display->display_options['defaults']['style_plugin'] = FALSE; + $handler->display->display_options['style_plugin'] = 'default'; + $handler->display->display_options['style_options']['grouping'] = array( + 0 => array( + 'field' => 'field_evttime_date', + 'rendered' => 1, + 'rendered_strip' => 0, + ), + ); + $handler->display->display_options['style_options']['row_class'] = '[name_2] [type]'; + $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['exposed_block'] = TRUE; + $handler->display->display_options['defaults']['fields'] = FALSE; + /* Field: Time: Date and time */ + $handler->display->display_options['fields']['field_evttime_date']['id'] = 'field_evttime_date'; + $handler->display->display_options['fields']['field_evttime_date']['table'] = 'field_data_field_evttime_date'; + $handler->display->display_options['fields']['field_evttime_date']['field'] = 'field_evttime_date'; + $handler->display->display_options['fields']['field_evttime_date']['relationship'] = 'field_timeslot_time_target_id'; + $handler->display->display_options['fields']['field_evttime_date']['label'] = ''; + $handler->display->display_options['fields']['field_evttime_date']['exclude'] = TRUE; + $handler->display->display_options['fields']['field_evttime_date']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['field_evttime_date']['settings'] = array( + 'format_type' => 'cod_time', + 'fromto' => 'both', + 'multiple_number' => '', + 'multiple_from' => '', + 'multiple_to' => '', + 'show_remaining_days' => 0, + ); + /* 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; + /* Field: Room: Label */ + $handler->display->display_options['fields']['name']['id'] = 'name'; + $handler->display->display_options['fields']['name']['table'] = 'cod_event_room'; + $handler->display->display_options['fields']['name']['field'] = 'name'; + $handler->display->display_options['fields']['name']['relationship'] = 'field_timeslot_room_target_id'; + $handler->display->display_options['fields']['name']['label'] = ''; + $handler->display->display_options['fields']['name']['element_label_colon'] = FALSE; + /* Field: Content: Speaker(s) */ + $handler->display->display_options['fields']['field_speakers']['id'] = 'field_speakers'; + $handler->display->display_options['fields']['field_speakers']['table'] = 'field_data_field_speakers'; + $handler->display->display_options['fields']['field_speakers']['field'] = 'field_speakers'; + $handler->display->display_options['fields']['field_speakers']['label'] = ''; + $handler->display->display_options['fields']['field_speakers']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['field_speakers']['settings'] = array( + 'link' => 1, + ); + $handler->display->display_options['fields']['field_speakers']['delta_offset'] = '0'; + /* Field: Flags: Flag link */ + $handler->display->display_options['fields']['ops']['id'] = 'ops'; + $handler->display->display_options['fields']['ops']['table'] = 'flagging'; + $handler->display->display_options['fields']['ops']['field'] = 'ops'; + $handler->display->display_options['fields']['ops']['relationship'] = 'flag_content_rel'; + $handler->display->display_options['fields']['ops']['label'] = ''; + $handler->display->display_options['fields']['ops']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['ops']['link_type'] = 'toggle'; + /* Field: Taxonomy term: Name */ + $handler->display->display_options['fields']['name_2']['id'] = 'name_2'; + $handler->display->display_options['fields']['name_2']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['name_2']['field'] = 'name'; + $handler->display->display_options['fields']['name_2']['relationship'] = 'og_vocabulary_target_id'; + $handler->display->display_options['fields']['name_2']['label'] = ''; + $handler->display->display_options['fields']['name_2']['exclude'] = TRUE; + $handler->display->display_options['fields']['name_2']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['name_2']['case'] = 'lower'; + $handler->display->display_options['fields']['name_2']['convert_spaces'] = TRUE; + /* Field: Content: Type */ + $handler->display->display_options['fields']['type']['id'] = 'type'; + $handler->display->display_options['fields']['type']['table'] = 'node'; + $handler->display->display_options['fields']['type']['field'] = 'type'; + $handler->display->display_options['fields']['type']['label'] = ''; + $handler->display->display_options['fields']['type']['exclude'] = TRUE; + $handler->display->display_options['fields']['type']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['type']['machine_name'] = TRUE; + $handler->display->display_options['defaults']['sorts'] = FALSE; + /* Sort criterion: Time: Date and time - start date (field_evttime_date) */ + $handler->display->display_options['sorts']['field_evttime_date_value']['id'] = 'field_evttime_date_value'; + $handler->display->display_options['sorts']['field_evttime_date_value']['table'] = 'field_data_field_evttime_date'; + $handler->display->display_options['sorts']['field_evttime_date_value']['field'] = 'field_evttime_date_value'; + $handler->display->display_options['sorts']['field_evttime_date_value']['relationship'] = 'field_timeslot_time_target_id'; + /* Sort criterion: Room: Label */ + $handler->display->display_options['sorts']['name']['id'] = 'name'; + $handler->display->display_options['sorts']['name']['table'] = 'cod_event_room'; + $handler->display->display_options['sorts']['name']['field'] = 'name'; + $handler->display->display_options['sorts']['name']['relationship'] = 'field_timeslot_room_target_id'; + /* Sort criterion: Field collection item: Room (field_timeslot_room) */ + $handler->display->display_options['sorts']['field_timeslot_room_target_id']['id'] = 'field_timeslot_room_target_id'; + $handler->display->display_options['sorts']['field_timeslot_room_target_id']['table'] = 'field_data_field_timeslot_room'; + $handler->display->display_options['sorts']['field_timeslot_room_target_id']['field'] = 'field_timeslot_room_target_id'; + $handler->display->display_options['sorts']['field_timeslot_room_target_id']['relationship'] = 'field_session_timeslot_target_id'; + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Contextual filter: OG membership: Group ID */ + $handler->display->display_options['arguments']['gid']['id'] = 'gid'; + $handler->display->display_options['arguments']['gid']['table'] = 'og_membership'; + $handler->display->display_options['arguments']['gid']['field'] = 'gid'; + $handler->display->display_options['arguments']['gid']['relationship'] = 'field_timeslot_time_target_id'; + $handler->display->display_options['arguments']['gid']['default_action'] = 'empty'; + $handler->display->display_options['arguments']['gid']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['gid']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['gid']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['gid']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['gid']['specify_validation'] = TRUE; + $handler->display->display_options['arguments']['gid']['validate']['type'] = 'og'; + $handler->display->display_options['arguments']['gid']['validate']['fail'] = 'access denied'; + /* Contextual filter: Field collection item: Allowed Types (field_timeslot_allowed_types) */ + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['id'] = 'field_timeslot_allowed_types_value'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['table'] = 'field_data_field_timeslot_allowed_types'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['field'] = 'field_timeslot_allowed_types_value'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['relationship'] = 'field_session_timeslot_target_id'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['limit'] = '0'; + $handler->display->display_options['arguments']['field_timeslot_allowed_types_value']['break_phrase'] = TRUE; + /* Contextual filter: Time: Date and time - start date (field_evttime_date) */ + $handler->display->display_options['arguments']['field_evttime_date_value']['id'] = 'field_evttime_date_value'; + $handler->display->display_options['arguments']['field_evttime_date_value']['table'] = 'field_data_field_evttime_date'; + $handler->display->display_options['arguments']['field_evttime_date_value']['field'] = 'field_evttime_date_value'; + $handler->display->display_options['arguments']['field_evttime_date_value']['relationship'] = 'field_timeslot_time_target_id'; + $handler->display->display_options['arguments']['field_evttime_date_value']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['field_evttime_date_value']['default_argument_type'] = 'date'; + $handler->display->display_options['arguments']['field_evttime_date_value']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['field_evttime_date_value']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['field_evttime_date_value']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['field_evttime_date_value']['granularity'] = 'day'; + $handler->display->display_options['arguments']['field_evttime_date_value']['granularity_reset'] = 0; + $handler->display->display_options['arguments']['field_evttime_date_value']['timezone'] = 'America/Los_Angeles'; + $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'] = 1; + $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; + /* Filter criterion: Taxonomy term: Term ID */ + $handler->display->display_options['filters']['tid_raw']['id'] = 'tid_raw'; + $handler->display->display_options['filters']['tid_raw']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['filters']['tid_raw']['field'] = 'tid_raw'; + $handler->display->display_options['filters']['tid_raw']['relationship'] = 'og_vocabulary_target_id'; + $handler->display->display_options['filters']['tid_raw']['exposed'] = TRUE; + $handler->display->display_options['filters']['tid_raw']['expose']['operator_id'] = 'tid_raw_op'; + $handler->display->display_options['filters']['tid_raw']['expose']['label'] = 'Term ID'; + $handler->display->display_options['filters']['tid_raw']['expose']['operator'] = 'tid_raw_op'; + $handler->display->display_options['filters']['tid_raw']['expose']['identifier'] = 'track_id'; + $handler->display->display_options['filters']['tid_raw']['expose']['remember_roles'] = array( + 2 => '2', + 1 => 0, + 8 => 0, + 9 => 0, + 6 => 0, + 7 => 0, + 10 => 0, + 3 => 0, + 5 => 0, + 4 => 0, + ); + $handler->display->display_options['argument_input'] = array( + 'gid' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Conference', + ), + 'field_timeslot_allowed_types_value' => array( + 'type' => 'fixed', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => 'session+schedule_item', + 'label' => 'Field collection item: Allowed Types (field_timeslot_allowed_types)', + ), + 'field_evttime_date_value' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Time-Y-M-D', + ), + ); $export['cod_schedule_content'] = $view; $view = new view(); diff --git a/cod_schedule/includes/cod_schedule_style_plugin.inc b/cod_schedule/includes/cod_schedule_style_plugin.inc new file mode 100644 index 0000000000000000000000000000000000000000..96ff05e0026f21be2b982a72aae01ea5e8ecc811 --- /dev/null +++ b/cod_schedule/includes/cod_schedule_style_plugin.inc @@ -0,0 +1,132 @@ + NULL); + + return $options; + } + + // Create the options form. + function options_form(&$form, &$form_state) { + parent::options_form($form, $form_state); + $options = array(); + + if (isset($form['grouping'])) { + $options = array(); + foreach (element_children($form['grouping']) as $key => $value) { + if (!empty($form['grouping'][$key]['field']['#options']) && is_array($form['grouping'][$key]['field']['#options'])) { + $options = array_merge($options, $form['grouping'][$key]['field']['#options']); + } + } + + unset($options['']); + $form['tab_title_field'] = array( + '#type' => 'select', + '#title' => t('Title field'), + '#options' => $options, + '#required' => TRUE, + '#default_value' => $this->options['tab_title_field'], + '#description' => t('Select the field that will be used as the tab title.'), + '#weight' => -3, + ); + } + } + + // Ensure we have all the settings necessary to render into tabs. + function validate() { + $errors = parent::validate(); + + // Ensure that we're using the field row style. + if (!$this->row_plugin->uses_fields()) { + $errors[] = t('Display "@display" uses the "@style" row style, but the Schedule display style requires use of the "Fields" row style.', array('@display' => $this->display->display_title, '@style' => $this->row_plugin->definition['title'])); + } + + // Ensure that a valid tab title field is selected. + $fields = $this->display->handler->get_handlers('field'); + if (empty($this->options['tab_title_field']) || !isset($fields[$this->options['tab_title_field']])) { + $errors[] = t('The Schedule display style requires that a field be configured to be used as the tab title.'); + } + + return $errors; + } + + // Override the render functionality. + function render() { + if (empty($this->row_plugin)) { + vpr('views_plugin_style_default: Missing row plugin'); + return; + } + + $view = $this->view; + $qt_name = 'view__' . $view->name .'__'. $view->current_display; + + // Group the rows according to the grouping field, if specified. + $sets = $this->render_grouping($this->view->result, $this->options['grouping']); + $tabs = array(); + + foreach ($sets as $title => $records) { + if ($this->uses_row_plugin()) { + $rows = array(); + foreach ($records as $row_index => $row) { + $this->view->row_index = $row_index; + $rows[] = $this->row_plugin->render($row); + } + } + else { + $rows = $records; + } + + // If grouped, we'll be using the group title for each tab. + if ($this->options['grouping']) { + + // Remove labels from titles. + foreach (element_children($this->options['grouping']) as $key => $value) { + if (!empty($this->view->field[$this->options['grouping'][$key]['field']]->options['label'])) { + $title = str_replace($this->view->field[$this->options['grouping'][$key]['field']]->options['label'] . ': ', '', $title); + } + } + + $contents = ''; + foreach ($rows as $row) { + $contents .= '
' . $row . '
'; + } + $tabs[] = array( + 'title' => $title, + 'contents' => array('#markup' => $contents), + ); + } + + // If not grouped, there's just one set of rows that we loop through. + else { + foreach ($rows as $index => $row) { + $title = $this->get_field($index, $this->options['tab_title_field']); + $tabs[] = array( + 'title' => $title, + 'contents' => array('#markup' => $row), + ); + } + } + } + + $output = theme() + $output = drupal_render($quicktabs); + + + unset($view->row_index); + + return $output; + } + +} diff --git a/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.info b/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.info index c4f46438fdec5bb03fe22d74ba5e5f0798407d74..3372f3c377dfa663a77e2b5c5160067f0bc77b3f 100644 --- a/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.info +++ b/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.info @@ -1,10 +1,13 @@ name = COD Schedule Pages core = 7.x package = COD Pages +version = 7.x-1.0-beta8+8-dev project = cod_support dependencies[] = ctools dependencies[] = page_manager +datestamp = 1428958318 features[ctools][] = page_manager:pages_default:1 features[features_api][] = api:2 features[page_manager_pages][] = cod_schedule_admin_page +features[page_manager_pages][] = cod_schedule_mine features[page_manager_pages][] = cod_schedule_public diff --git a/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.install b/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.install index de99c8cc44e1092b71825fc81e1f9bc7ba50d58f..2a352b355d037e47e4ffb8bf89dccd9f51acaab7 100644 --- a/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.install +++ b/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.install @@ -11,3 +11,15 @@ function cod_schedule_pages_update_7001() { return array(); } + +/** + * Add the my schedule panel. + */ +function cod_schedule_pages_update_7002() { + $revert = array( + 'cod_schedule_pages' => array('page_manager_pages'), + ); + features_revert($revert); + + return array(); +} \ No newline at end of file diff --git a/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.pages_default.inc b/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.pages_default.inc index 62b190d82eb8ea406d2072c8d688245c9fe2083a..d56925ae616214f9f864546be4bedbad7cf3ecb7 100644 --- a/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.pages_default.inc +++ b/cod_schedule/modules/cod_schedule_pages/cod_schedule_pages.pages_default.inc @@ -38,6 +38,8 @@ function cod_schedule_pages_default_page_manager_pages() { ), ), 'logic' => 'and', + 'type' => 'none', + 'settings' => NULL, ); $page->menu = array( 'type' => 'tab', @@ -145,12 +147,15 @@ function cod_schedule_pages_default_page_manager_pages() { $page = new stdClass(); $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */ $page->api_version = 1; - $page->name = 'cod_schedule_public'; + $page->name = 'cod_schedule_mine'; $page->task = 'page'; - $page->admin_title = 'Public Schedule page'; + $page->admin_title = 'My Schedule'; $page->admin_description = ''; - $page->path = 'node/%node/schedule'; - $page->access = array(); + $page->path = 'node/%node/schedule/mine'; + $page->access = array( + 'type' => 'none', + 'settings' => NULL, + ); $page->menu = array(); $page->arguments = array( 'node' => array( @@ -167,11 +172,75 @@ function cod_schedule_pages_default_page_manager_pages() { $handler = new stdClass(); $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */ $handler->api_version = 1; + $handler->name = 'page_cod_schedule_mine__panel_context_4c6ae307-de5a-4064-8903-97f7c9c284a5'; + $handler->task = 'page'; + $handler->subtask = 'cod_schedule_mine'; + $handler->handler = 'panel_context'; + $handler->weight = 0; + $handler->conf = array( + 'title' => 'My Schedule', + 'no_blocks' => 0, + 'pipeline' => 'ipe', + 'body_classes_to_remove' => '', + 'body_classes_to_add' => '', + 'css_id' => '', + 'css' => '', + 'contexts' => array(), + 'relationships' => array(), + ); + $display = new panels_display(); + $display->layout = 'cygnus'; + $display->layout_settings = array(); + $display->panel_settings = array( + 'style_settings' => array( + 'default' => NULL, + 'preface' => NULL, + 'content' => NULL, + 'footer' => NULL, + ), + ); + $display->cache = array(); + $display->title = 'My Schedule'; + $display->uuid = 'e37336dc-989b-45cf-b43f-1c64b64773b9'; + $display->content = array(); + $display->panels = array(); + $pane = new stdClass(); + $pane->pid = 'new-ca1f880f-8cf9-4310-8e74-5858614cd653'; + $pane->panel = 'content'; + $pane->type = 'views_panes'; + $pane->subtype = 'cod_session_sessions-pane_sessions_mine'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array( + 'arguments' => array( + 'og_group_ref_target_id' => '%node:nid', + ), + ); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 0; + $pane->locks = array(); + $pane->uuid = 'ca1f880f-8cf9-4310-8e74-5858614cd653'; + $display->content['new-ca1f880f-8cf9-4310-8e74-5858614cd653'] = $pane; + $display->panels['content'][0] = 'new-ca1f880f-8cf9-4310-8e74-5858614cd653'; + $display->hide_title = PANELS_TITLE_FIXED; + $display->title_pane = 'new-ca1f880f-8cf9-4310-8e74-5858614cd653'; + $handler->conf['display'] = $display; + $page->default_handlers[$handler->name] = $handler; + $pages['cod_schedule_mine'] = $page; + + $handler = new stdClass(); + $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */ + $handler->api_version = 1; $handler->name = 'page_cod_schedule_public__panel_context_931cc9dd-ba60-4165-9530-0abad52c7c4b'; $handler->task = 'page'; $handler->subtask = 'cod_schedule_public'; $handler->handler = 'panel_context'; - $handler->weight = 0; + $handler->weight = -29; $handler->conf = array( 'title' => 'Schedule Page', 'no_blocks' => 0, @@ -200,15 +269,16 @@ function cod_schedule_pages_default_page_manager_pages() { $display->content = array(); $display->panels = array(); $pane = new stdClass(); - $pane->pid = 'new-da4f4f1a-2b55-4e8e-95ce-e40a92a0dbfb'; + $pane->pid = 'new-220151d2-a724-460e-8851-715d41070cc8'; $pane->panel = 'content'; $pane->type = 'views_panes'; - $pane->subtype = 'cod_schedule-panel_pane_1'; + $pane->subtype = 'cod_schedule_content-cod_schedule_session_content_pane'; $pane->shown = TRUE; $pane->access = array(); $pane->configuration = array( 'arguments' => array( 'gid' => '%node:nid', + 'field_evttime_date_value' => '%day', ), ); $pane->cache = array(); @@ -219,13 +289,56 @@ function cod_schedule_pages_default_page_manager_pages() { $pane->extras = array(); $pane->position = 0; $pane->locks = array(); - $pane->uuid = 'da4f4f1a-2b55-4e8e-95ce-e40a92a0dbfb'; - $display->content['new-da4f4f1a-2b55-4e8e-95ce-e40a92a0dbfb'] = $pane; - $display->panels['content'][0] = 'new-da4f4f1a-2b55-4e8e-95ce-e40a92a0dbfb'; + $pane->uuid = '220151d2-a724-460e-8851-715d41070cc8'; + $display->content['new-220151d2-a724-460e-8851-715d41070cc8'] = $pane; + $display->panels['content'][0] = 'new-220151d2-a724-460e-8851-715d41070cc8'; + $pane = new stdClass(); + $pane->pid = 'new-9e717097-25dc-48fc-b8bc-65212ec84f12'; + $pane->panel = 'preface'; + $pane->type = 'cod_schedule_menu_pane'; + $pane->subtype = 'cod_schedule_menu_pane'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array(); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 0; + $pane->locks = array(); + $pane->uuid = '9e717097-25dc-48fc-b8bc-65212ec84f12'; + $display->content['new-9e717097-25dc-48fc-b8bc-65212ec84f12'] = $pane; + $display->panels['preface'][0] = 'new-9e717097-25dc-48fc-b8bc-65212ec84f12'; + $pane = new stdClass(); + $pane->pid = 'new-f71d9b52-8e00-4059-9b26-297422799348'; + $pane->panel = 'preface'; + $pane->type = 'views_panes'; + $pane->subtype = 'cod_session_tracks-schedule_session_tracks'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array( + 'arguments' => array( + 'machine_name' => 'session_tracks_%node:nid', + 'null_1' => '', + 'null' => '%day', + ), + ); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 1; + $pane->locks = array(); + $pane->uuid = 'f71d9b52-8e00-4059-9b26-297422799348'; + $display->content['new-f71d9b52-8e00-4059-9b26-297422799348'] = $pane; + $display->panels['preface'][1] = 'new-f71d9b52-8e00-4059-9b26-297422799348'; $display->hide_title = PANELS_TITLE_FIXED; - $display->title_pane = 'new-da4f4f1a-2b55-4e8e-95ce-e40a92a0dbfb'; + $display->title_pane = '0'; $handler->conf['display'] = $display; - $page->default_handlers[$handler->name] = $handler; $pages['cod_schedule_public'] = $page; return $pages; diff --git a/cod_schedule/plugins/arguments/cod_schedule_argument_day.inc b/cod_schedule/plugins/arguments/cod_schedule_argument_day.inc new file mode 100644 index 0000000000000000000000000000000000000000..e6646e5badf2b41c205f84b05f127d098299bed8 --- /dev/null +++ b/cod_schedule/plugins/arguments/cod_schedule_argument_day.inc @@ -0,0 +1,55 @@ + t("Schedule Day"), + // keyword to use for %substitution + 'keyword' => 'cod_schedule_day', + 'description' => t('Creates a date context from a day.'), + 'settings form' => 'cod_schedule_argument_day_settings_form', + 'context' => 'cod_session_argument_day_context', + 'placeholder form' => array( + '#type' => 'textfield', + '#description' => t('Enter a value for this argument'), + ), + 'path placeholder' => 'cod_session_argument_day_path_placeholder', // This is in pagemanager. +); + +/** + * Discover if this argument gives us the term we crave. + */ +function cod_session_argument_day_context($arg = NULL, $conf = NULL, $empty = FALSE) { + // If unset it wants a generic, unfilled context. + if ($empty) { + return ctools_context_create_empty('cod_schedule_day'); + } + + if (!$arg) { + return FALSE; + } + $context = ctools_context_create('cod_schedule_day', $arg); + $context->original_argument = $arg; + return $context; +} + +/** + * Settings form for the argument + */ +function cod_schedule_argument_day_settings_form(&$form, &$form_state, $conf) { +// return $form; +} + +/** + * Switch the placeholder based upon user settings. + */ +function cod_session_argument_day_path_placeholder($argument) { + return '%pm_arg'; +} diff --git a/cod_schedule/plugins/content_types/cod_schedule_menu_pane.inc b/cod_schedule/plugins/content_types/cod_schedule_menu_pane.inc new file mode 100644 index 0000000000000000000000000000000000000000..0b5fae56f2eff9147616723adbff90776733994f --- /dev/null +++ b/cod_schedule/plugins/content_types/cod_schedule_menu_pane.inc @@ -0,0 +1,118 @@ + t('Schedule Day Menu'), + // no one knows if "single" defaults to FALSE... + 'single' => TRUE, + // oh joy, I get my own section of panel panes + 'category' => array(t('Conference Organizing'), -9), + //'edit form' => 'cod_events_pane_content_type_edit_form', + 'render callback' => 'cod_schedule_menu_pane_render' +); + +/** +* Run-time rendering of the body of the block (content type) +* See ctools_plugin_examples for more advanced info +*/ +function cod_schedule_menu_pane_render($subtype, $conf, $context = NULL) { + // our output is generate by js. Any markup or theme functions + // could go here. + // that private js function is so bad that fixing it will be the + // basis of the next tutorial + $block = new stdClass(); + $block->title = ''; + + if($event = node_load(array_shift($context))) { + $block->content = cod_schedule_menu_render($event, array_shift($context)); + } else { + $block->content = t('Invalid Event Type'); + } + return $block; +} + +/* + * functions similar to menu_tree_output + */ +function cod_schedule_menu_render($event, $context = NULL) { + $build = array(); + $items = array(); + + // Grab the days. + if ($days = cod_schedule_days($event)) { + $router_item = menu_get_item(); + + // Pull out just the menu links we are going to render so that we + // get an accurate count for the first/last classes. + foreach ($days as $k => $day) { + $items[$k]['link']['href'] = dirname(current_path()) . '/' . $day; + if ($router_item['href'] == $items[$k]['link']['href']) { + $items[$k]['link']['in_active_trail'] = TRUE; + } + else { + $items[$k]['link']['in_active_trail'] = FALSE; + } + $items[$k]['link']['title'] = date('l', strtotime($day)); + } + + } + + + $num_items = count($items); + foreach ($items as $i => $data) { + $class = array(); + if ($i == 0) { + $class[] = 'first'; + } + if ($i == $num_items - 1) { + $class[] = 'last'; + } + // Set a class for the
  • -tag. Since $data['below'] may contain local + // tasks, only set 'expanded' class if the link also has children within + // the current menu. + if ($data['link']['has_children'] && $data['below']) { + $class[] = 'expanded'; + } + elseif ($data['link']['has_children']) { + $class[] = 'collapsed'; + } + else { + $class[] = 'leaf'; + } + // Set a class if the link is in the active trail. + if ($data['link']['in_active_trail']) { + $class[] = 'active-trail'; + $data['link']['localized_options']['attributes']['class'][] = 'active-trail'; + } + // Normally, l() compares the href of every link with $_GET['q'] and sets + // the active class accordingly. But local tasks do not appear in menu + // trees, so if the current path is a local task, and this link is its + // tab root, then we have to set the class manually. + if ($data['link']['href'] == $router_item['tab_root_href'] && $data['link']['href'] != $_GET['q']) { + $data['link']['localized_options']['attributes']['class'][] = 'active'; + } + + // Allow menu-specific theme overrides. + $element['#theme'] = 'menu_link__'. 'cod_schedule'; + $element['#attributes']['class'] = $class; + $element['#title'] = $data['link']['title']; + $element['#href'] = $data['link']['href']; + $element['#localized_options'] = !empty($data['link']['localized_options']) ? $data['link']['localized_options'] : array(); + $element['#below'] = $data['below'] ? menu_tree_output($data['below']) : $data['below']; + $element['#original_link'] = $data['link']; + // Index using the link's unique mlid. + // Index using the link's unique mlid. + $build[] = $element; + } + if ($build) { + // Make sure drupal_render() does not re-order the links. + $build['#sorted'] = TRUE; + // Add the theme wrapper for outer markup. + // Allow menu-specific theme overrides. + $build['#theme_wrappers'][] = 'menu_tree__' . 'cod_schedule'; + } + + return $build; +} \ No newline at end of file diff --git a/cod_schedule/plugins/contexts/cod_schedule_day.inc b/cod_schedule/plugins/contexts/cod_schedule_day.inc new file mode 100644 index 0000000000000000000000000000000000000000..d07a978bd7644b4094d6d4090f51becdef1c0b30 --- /dev/null +++ b/cod_schedule/plugins/contexts/cod_schedule_day.inc @@ -0,0 +1,125 @@ + t("Schedule Day"), + 'description' => t('Display schedule of particular day.'), + 'context' => 'cod_schedule_context_create_day', + 'required context' => new ctools_context_required(t('Node'), 'node'), + 'edit form' => 'cod_schedule_context_day_settings_form', + 'defaults' => '', + 'no ui' => FALSE, + 'keyword' => 'cod_schedule_day', + 'context name' => 'cod_schedule_day', + 'convert' => 'cod_schedule_context_day_convert', + 'placeholder form' => array( + '#type' => 'textfield', + '#description' => t('Enter the schedule day machine name for this context.'), + ), +); + +/** + * It's important to remember that $conf is optional here, because contexts + * are not always created from the UI. + */ +function cod_schedule_context_create_day($empty, $data = NULL, $conf = FALSE) { + $context = new ctools_context('cod_schedule_day'); + $context->plugin = 'cod_schedule_day'; + + // We don't know the current date in the argument, lets try to create one + if ($empty) { + return $context; + } + + if (!empty($data)) { + // Support the array storage from the settings form but also handle direct input from arguments. + $context->data = is_array($data) ? $data['day'] : $data; + // We're using a configured context, but its not set. Use todays date. + if(isset($data['day'])) { + if ($data['day'] == '') { + // Fetch the event via path. TODO: Get event via panels context. + if (arg(0) == 'node' && is_numeric(arg(1))) { + $event_days = cod_schedule_days(arg(1)); + $today_dt = new DateTime(); + $event_start = new DateTime(array_shift($event_days)); + $event_end = new DateTime(array_pop($event_days)); + if ($today_dt < $event_start) { + $date = $event_start; + } + else { + if ($today_dt > $event_end) { + $date = $event_end; + } + else { + $date = $today_dt; + } + } + $context->data = date('Y-m-d', $date->getTimestamp()); + $context->title = date('l', $date->getTimestamp()); + } + } + else if ($data['day'] !== '') { + $date = new DateTime(strtotime($data['day'])); + $context->data = date('Y-m-d', $date->getTimestamp()); + $context->title = date('l', $date->getTimestamp()); + } + } + else { + $output = check_plain($data); + $context->title = ($conf) ? check_plain($data['identifier']) : drupal_strtoupper(drupal_substr($output, 0, 1)) . drupal_substr($output, 1); + } + return $context; + } +} + +function cod_schedule_context_day_settings_form($form, &$form_state) { + $conf = &$form_state['conf']; + + $form['day'] = array( + '#title' => t('Enter the day in YYYY-MM-DD'), + '#type' => 'textfield', + '#maxlength' => 64, + '#weight' => -10, + ); + + if (!empty($conf['day'])) { + $form['day']['#description'] = t('Currently set to !link', array('!link' => $conf['day'])); + } + + return $form; +} + +/** + * Validate a time format. + */ +function cod_schedule_context_day_settings_form_validate($form, &$form_state) { + // Validate the autocomplete + // We should do something here! +} + +function cod_schedule_context_day_settings_form_submit($form, &$form_state) { + // This will either be the value set previously or a value set by the + // validator. + $form_state['conf']['day'] = $form_state['values']['day']; +} + +/** + * Convert a context into a string. + */ +function cod_schedule_context_day_convert($context, $type) { + switch ($type) { + // Convert a vocabulary keyword into the data. + case 'nid': + return $context->data; + } +} diff --git a/cod_session/cod_session.features.field_base.inc b/cod_session/cod_session.features.field_base.inc index 28b1df340229e67892df819b7f53746a3747c896..8b2278c05e0c122e2369d19b40a64143740b18bb 100644 --- a/cod_session/cod_session.features.field_base.inc +++ b/cod_session/cod_session.features.field_base.inc @@ -31,7 +31,7 @@ function cod_session_field_default_field_bases() { 'module' => 'list', 'settings' => array( 'allowed_values' => array( - 'unprocessed' => 'Unprocessed', + 'proposed' => 'Proposed', 'accepted' => 'Accepted', 'declined' => 'Declined', 'featured' => 'Featured', @@ -72,8 +72,8 @@ function cod_session_field_default_field_bases() { 'module' => 'list', 'settings' => array( 'allowed_values' => array( - 0 => 'Unprocessed', - 1 => 'Accepted', + 'proposed' => 'Proposed', + 'accepted' => 'Accepted', ), 'allowed_values_function' => '', ), diff --git a/cod_session/cod_session.features.field_instance.inc b/cod_session/cod_session.features.field_instance.inc index aeb8d7802566e6f4727185911b18866a8dda2196..e30b8614ea27169092e5213b3b68c5768d379069 100644 --- a/cod_session/cod_session.features.field_instance.inc +++ b/cod_session/cod_session.features.field_instance.inc @@ -222,7 +222,7 @@ function cod_session_field_default_field_instances() { // Exported field_instance: 'node-schedule_item-field_accepted' $field_instances['node-schedule_item-field_accepted'] = array( 'bundle' => 'schedule_item', - 'default_value' => 'unprocessed', + 'default_value' => 'proposed', 'deleted' => 0, 'description' => '', 'display' => array( @@ -396,7 +396,7 @@ function cod_session_field_default_field_instances() { 'bundle' => 'session', 'default_value' => array( 0 => array( - 'value' => 'unprocessed', + 'value' => 'proposed', ), ), 'default_value_function' => '', @@ -773,9 +773,9 @@ function cod_session_field_default_field_instances() { // Included for use with string extractors like potx. t('An image to be used for highlighted sessions in the front page rotator.'); t('Body'); + t('Conference'); t('Default Session View'); t('Description'); - t('Conference'); t('Experience level'); t('File attachments'); t('Image'); diff --git a/cod_session/cod_session.features.inc b/cod_session/cod_session.features.inc index 074d7083d4aed803c190a9ab1c4d99672bc72b4c..6f16ab0a1dc559655281bab14ef9fb2e683031e9 100644 --- a/cod_session/cod_session.features.inc +++ b/cod_session/cod_session.features.inc @@ -19,8 +19,11 @@ function cod_session_ctools_plugin_api($module = NULL, $api = NULL) { /** * Implements hook_views_api(). */ -function cod_session_views_api($module = NULL, $api = NULL) { - return array("api" => "3.0"); +function cod_session_views_api() { + return array( + 'api' => 3, + 'path' => drupal_get_path('module', 'cod_session') . '/views', + ); } /** diff --git a/cod_session/cod_session.features.user_role.inc b/cod_session/cod_session.features.user_role.inc index b67ccb7fff0eb4729ad8f5a2a9ff1c47a1d722a8..532343ae0c74a290f93444f876fdad084ace28ff 100644 --- a/cod_session/cod_session.features.user_role.inc +++ b/cod_session/cod_session.features.user_role.inc @@ -13,7 +13,7 @@ function cod_session_user_default_roles() { // Exported role: session organizer. $roles['session organizer'] = array( 'name' => 'session organizer', - 'weight' => 3, + 'weight' => 5, ); return $roles; diff --git a/cod_session/cod_session.info b/cod_session/cod_session.info index 3a72f8528195a93595534a6c8dd7baea4524ed0f..fd50c9e6892f0d3031eef704d548f66570a99e3e 100644 --- a/cod_session/cod_session.info +++ b/cod_session/cod_session.info @@ -39,6 +39,11 @@ dependencies[] = views_content dependencies[] = views_json dependencies[] = views_send dependencies[] = views_ui + +files[] = views/cod_session.views.inc +files[] = views/cod_session_views_handler_field_track_link.inc +files[] = views/cod_session_views_plugin_style_schedule.inc + features[ctools][] = field_group:field_group:1 features[ctools][] = strongarm:strongarm:1 features[ctools][] = views:views_default:3.0 diff --git a/cod_session/cod_session.install b/cod_session/cod_session.install index c88354770695b1fc3027aefa0298e4c72ec6122d..00cd018cc5ae19133cef74f0563ac77bc961c6b1 100644 --- a/cod_session/cod_session.install +++ b/cod_session/cod_session.install @@ -188,7 +188,7 @@ function cod_session_update_7013() { // Update the values for each field. db_update('field_data_field_accepted') - ->fields(array('field_accepted_value' => 'unprocessed')) + ->fields(array('field_accepted_value' => 'proposed')) ->condition('field_accepted_value', '0', '=') ->execute(); db_update('field_data_field_accepted') @@ -203,6 +203,23 @@ function cod_session_update_7013() { ->fields(array('field_accepted_value' => 'featured')) ->condition('field_accepted_value', '3', '=') ->execute(); + // Update the values for each field. + db_update('field_revision_field_accepted') + ->fields(array('field_accepted_value' => 'proposed')) + ->condition('field_accepted_value', '0', '=') + ->execute(); + db_update('field_revision_field_accepted') + ->fields(array('field_accepted_value' => 'accepted')) + ->condition('field_accepted_value', '1', '=') + ->execute(); + db_update('field_revision_field_accepted') + ->fields(array('field_accepted_value' => 'declined')) + ->condition('field_accepted_value', '2', '=') + ->execute(); + db_update('field_revision_field_accepted') + ->fields(array('field_accepted_value' => 'featured')) + ->condition('field_accepted_value', '3', '=') + ->execute(); // Revert the feature to include cancelled & backup options // Change the views to use the new machine names as keys. @@ -215,16 +232,8 @@ function cod_session_update_7013() { } /** - * Reset the session menu weight to order correctly on the admin tabs + * Update 7014 doesn't exist anymore because it didn't do anything */ -function cod_session_update_7014() { - $revert = array( - 'cod_session' => array('page_manager_pages'), - ); - features_revert($revert); - - return array(); -} /** * Update session views to fix an issue with broken handlers for session confirmation. @@ -263,4 +272,105 @@ function cod_session_update_7017() { features_revert($revert); return array(); +} + +/** + * Update 'unprocessed' to 'proposed' for session submissions. + */ +function cod_session_update_7018() { + // Change the field configuration manually. + $result = db_select('field_config', 'fc') + ->fields('fc', array('data')) + ->condition('field_name', 'field_accepted', '=') + ->execute() + ->fetchField(); + $data = unserialize($result); + $data['settings']['allowed_values'] = array( + 'proposed' => 'Proposed', + 'accepted' => 'Accepted', + 'declined' => 'Declined', + 'featured' => 'Featured', + 'cancelled' => 'Speaker(s) Cancelled', + 'backup' => 'Backup' + ); + + db_update('field_config') + ->fields(array('data' => serialize($data))) + ->condition('field_name', 'field_accepted', '=') + ->execute(); + + // Change the field configuration manually. + $result = db_select('field_config', 'fc') + ->fields('fc', array('data')) + ->condition('field_name', 'field_event_default_session_view', '=') + ->execute() + ->fetchField(); + $data = unserialize($result); + $data['settings']['allowed_values'] = array( + 'proposed' => 'Proposed', + 'accepted' => 'Accepted', + ); + + db_update('field_config') + ->fields(array('data' => serialize($data))) + ->condition('field_name', 'field_event_default_session_view', '=') + ->execute(); + + $revert = array( + 'cod_session_pages' => array('page_manager_pages'), + 'cod_session' => array('field_base', 'field_instance', 'views_view'), + ); + features_revert($revert); + + // Re-run cod_session_update_7013 again just in case. + cod_session_update_7013(); + + $field_values_to_change = array( + 'unprocessed' => 'proposed', + ); + // Run a DB query to alter the fields + foreach ($field_values_to_change AS $existing => $new) { + db_update('field_data_field_accepted') + ->fields(array( + 'field_accepted_value' => $new, + )) + ->condition('field_accepted_value', $existing, '=') + ->execute(); + db_update('field_revision_field_accepted') + ->fields(array( + 'field_accepted_value' => $new, + )) + ->condition('field_accepted_value', $existing, '=') + ->execute(); + } + if (!module_exists('cod_session_pages')) { + module_enable(array('cod_session_pages')); + } + return array(); +} + +/** + * Update session to change processed/accepted key from 0/1 + */ +function cod_session_update_7019() { + $field_values_to_change = array( + 0 => 'proposed', + 1 => 'accepted', + ); + // Run a DB query to alter the fields + foreach ($field_values_to_change AS $existing => $new) { + db_update('field_data_field_event_default_session_view') + ->fields(array( + 'field_event_default_session_view_value' => $new, + )) + ->condition('field_event_default_session_view_value', $existing, '=') + ->execute(); + db_update('field_revision_field_event_default_session_view') + ->fields(array( + 'field_event_default_session_view_value' => $new, + )) + ->condition('field_event_default_session_view_value', $existing, '=') + ->execute(); + } + return array(); } \ No newline at end of file diff --git a/cod_session/cod_session.module b/cod_session/cod_session.module index 07869e073ac61ced9ea838705d4567a442a5f071..cd1e408e1ac7abf3e8602e1f051206611307b625 100644 --- a/cod_session/cod_session.module +++ b/cod_session/cod_session.module @@ -16,6 +16,12 @@ function cod_session_ctools_plugin_directory($module, $plugin) { if ($module == 'ctools' && $plugin == 'content_types') { return 'plugins/content_types'; } + if ($module == 'ctools' && $plugin == 'contexts') { + return 'plugins/contexts'; + } + if ($module == 'ctools' && $plugin == 'arguments') { + return 'plugins/arguments'; + } } /** @@ -698,3 +704,20 @@ function cod_session_custom_theme() { return 'seven'; } } + +/** + * Create a block for filtered session tracks + * Implements hook_form_FORM_ID_alter(). + */ +function cod_session_form_views_exposed_form_alter(&$form, &$form_state) { + $view = $form_state['view']; + + // Only react on block Views specifically configured with exposed form blocks. + if ($view->name == 'cod_session_sessions' && $view->current_display == 'panel_pane_2') { + if ($view->display_handler->get_option('exposed_block')) { + // Ensure that the fallback form action is the current page. + $form['#action'] = url(drupal_get_path_alias(), array('absolute' => TRUE)); + + } + } +} \ No newline at end of file diff --git a/cod_session/cod_session.strongarm.inc b/cod_session/cod_session.strongarm.inc index f0c16832213bf655d6bbe8636e6128a8ec26b4f8..1ac6c53139d386fe96e46db81ede31c68b61c46b 100644 --- a/cod_session/cod_session.strongarm.inc +++ b/cod_session/cod_session.strongarm.inc @@ -98,7 +98,7 @@ function cod_session_strongarm() { $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */ $strongarm->api_version = 1; $strongarm->name = 'comment_page'; - $strongarm->value = 0; + $strongarm->value = '0'; $export['comment_page'] = $strongarm; $strongarm = new stdClass(); @@ -322,7 +322,6 @@ function cod_session_strongarm() { $strongarm->name = 'node_options_schedule_item'; $strongarm->value = array( 0 => 'status', - 1 => 'promote', ); $export['node_options_schedule_item'] = $strongarm; @@ -358,7 +357,7 @@ function cod_session_strongarm() { $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */ $strongarm->api_version = 1; $strongarm->name = 'node_submitted_page'; - $strongarm->value = FALSE; + $strongarm->value = 0; $export['node_submitted_page'] = $strongarm; $strongarm = new stdClass(); diff --git a/cod_session/cod_session.views.inc b/cod_session/cod_session.views.inc deleted file mode 100644 index a74f92303eb48ee27b360925316d3d710410b48e..0000000000000000000000000000000000000000 --- a/cod_session/cod_session.views.inc +++ /dev/null @@ -1,33 +0,0 @@ - 'cod_session', - 'style' => array( - 'cod_session_session_schedule' => array( - 'title' => t('Session schedule grid'), - 'help' => t('Display view as a table with room columns and time slot rows'), - 'handler' => 'cod_session_views_plugin_style_schedule', - 'theme' => 'cod_session_session_schedule', - 'uses row plugin' => TRUE, - 'uses fields' => TRUE, - 'uses grouping' => TRUE, - 'uses options' => TRUE, - 'use sort' => FALSE, - 'use pager' => FALSE, - 'use ajax' => FALSE, - 'use more' => FALSE, - 'type' => 'normal', - 'help topic' => 'style-unformatted', - 'even empty' => TRUE, // Make the View render when there are no results. - ), - ), - ); -} diff --git a/cod_session/cod_session_views_style_plugin_schedule.inc b/cod_session/cod_session_views_style_plugin_schedule.inc deleted file mode 100644 index 371f2280ce536b7740332f3a8c2ff6b2503df3c7..0000000000000000000000000000000000000000 --- a/cod_session/cod_session_views_style_plugin_schedule.inc +++ /dev/null @@ -1,105 +0,0 @@ -cod_schedule_interactive = $this->options['schedule_interactive']; - if (!empty($this->options['schedule_days'])) { - $all_schedule_days = cod_session_days(); - $schedule_days = array_filter($this->options['schedule_days']); - if (!empty($schedule_days)) { - $view->cod_schedule_days = array_intersect_key($all_schedule_days, $schedule_days); - } - else { - $view->cod_schedule_days = !empty($all_schedule_days) ? array_keys($all_schedule_days) : array(); - } - } - else { - $schedule_days = cod_session_days(); - $view->cod_schedule_days = !empty($schedule_days) ? array_keys($schedule_days) : array(); - } - $interactive_type = $this->options['interactive_type']; - $view->cod_interactive_type = !empty($view->cod_schedule_interactive) ? $interactive_type : FALSE; - $view->cod_room_queue = $this->options['room_queue']; - $view->cod_time_queue = $this->options['time_queue']; - - // Make sure views does't try to limit the number of items in this view. - $this->view->pager['items_per_page'] = 0; - } - - /** - * Set default options - */ - function option_definition() { - $options = parent::option_definition(); - $options['schedule_interactive'] = 0; - $schedule_days = cod_session_days(); - $options['schedule_days'] = !empty($schedule_days) ? array_keys($schedule_days) : array(); - $options['interactive_type'] = 0; - $options['room_queue'] = NULL; - $options['time_queue'] = NULL; - return $options; - } - - /** - * Style options. - */ - function options_form(&$form, &$form_state) { - - // "interactive" is an internal name, in the UI it's referred to as the - // scheduling mode. - $form['schedule_interactive'] = array( - '#title' => t('Schedule mode'), - '#default_value' => isset($this->options['schedule_interactive']) ? $this->options['schedule_interactive'] : 0, - '#type' => 'radios', - '#options' => array(0 => t('Show schedule only'), 1 => t('Show schedule and scheduling controls')), - '#description' => t('Include schedule slot availability and scheduling link controls or just the schedule.'), - ); - $types = cod_session_schedulable_types(); - $options = array(0 => 'N/A'); - foreach ($types as $type => $content_type) { - $options[$type] = check_plain($content_type); - } - $form['interactive_type'] = array( - '#title' => t('Content type that can be scheduled'), - '#default_value' => isset($this->options['interactive_type']) ? $this->options['interactive_type'] : 0, - '#type' => 'radios', - '#options' => $options, - '#description' => t("Set the content type to provide scheduling controls for. 'Show schedule and scheduling controls' mode must be enabled."), - ); - - // Provide nodequeues for room and timeslot ordering. If set this nodequeue - // becomes the argument to the schedule_room_list view. - if (module_exists('nodequeue')) { - $options = array(); - $queues = nodequeue_load_queues(nodequeue_get_all_qids(NULL)); - if (!empty($queues)) { - foreach ($queues as $queue) { - $options[$queue->qid] = $queue->title; - } - $form['room_queue'] = array( - '#type' => 'radios', - '#title' => t('Room queue'), - '#options' => $options, - '#default_value' => $this->options['room_queue'], - '#description' => t('Limit and order rooms to the nodes in a queue.'), - ); - $form['time_queue'] = array( - '#type' => 'radios', - '#title' => t('Time queue'), - '#options' => $options, - '#default_value' => $this->options['time_queue'], - '#description' => t('Limit and order times to the nodes in a queue.'), - ); - } - } - } -} diff --git a/cod_session/modules/cod_session_management_pages/cod_session_management_pages.pages_default.inc b/cod_session/modules/cod_session_management_pages/cod_session_management_pages.pages_default.inc index 3c08bc5db180953c138c64c37a8b5ce42144ae0d..c506fa1b23abab7f5e4df8c33f749642604dc4f1 100644 --- a/cod_session/modules/cod_session_management_pages/cod_session_management_pages.pages_default.inc +++ b/cod_session/modules/cod_session_management_pages/cod_session_management_pages.pages_default.inc @@ -208,7 +208,7 @@ function cod_session_management_pages_default_page_manager_pages() { $pane->pid = 'new-299bb228-0927-4f74-acf0-4f21b278101a'; $pane->panel = 'right_sidebar'; $pane->type = 'views_panes'; - $pane->subtype = 'cod_session_tracks-panel_pane_1'; + $pane->subtype = 'cod_session_tracks-track_session_admin'; $pane->shown = TRUE; $pane->access = array(); $pane->configuration = array( diff --git a/cod_session/modules/cod_session_pages/cod_session_pages.pages_default.inc b/cod_session/modules/cod_session_pages/cod_session_pages.pages_default.inc index d17d019b6d9d88747367a9df2c2222cd321f8514..50bdff507a77bbd52226c5cec1d6f530592679d4 100644 --- a/cod_session/modules/cod_session_pages/cod_session_pages.pages_default.inc +++ b/cod_session/modules/cod_session_pages/cod_session_pages.pages_default.inc @@ -15,7 +15,7 @@ function cod_session_pages_default_page_manager_pages() { $page->task = 'page'; $page->admin_title = 'Sessions'; $page->admin_description = ''; - $page->path = 'node/%node/program/sessions'; + $page->path = 'node/%node/sessions/!status/!tid'; $page->access = array( 'plugins' => array( 0 => array( @@ -38,7 +38,7 @@ function cod_session_pages_default_page_manager_pages() { 'logic' => 'and', ); $page->menu = array( - 'type' => 'tab', + 'type' => 'none', 'title' => 'Sessions', 'name' => 'navigation', 'weight' => '0', @@ -56,6 +56,27 @@ function cod_session_pages_default_page_manager_pages() { 'name' => 'entity_id:node', 'settings' => array(), ), + 'status' => array( + 'id' => 1, + 'identifier' => 'Session Status', + 'name' => 'cod_session_status', + 'settings' => array(), + ), + 'tid' => array( + 'id' => 1, + 'identifier' => 'Taxonomy term: Name', + 'name' => 'term', + 'settings' => array( + 'input_form' => 'term', + 'vids' => array( + 1 => 0, + 3 => 0, + 2 => 0, + ), + 'breadcrumb' => 1, + 'transform' => 1, + ), + ), ); $page->conf = array( 'admin_paths' => FALSE, @@ -64,13 +85,50 @@ function cod_session_pages_default_page_manager_pages() { $handler = new stdClass(); $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */ $handler->api_version = 1; + $handler->name = 'page_sessions_http_response'; + $handler->task = 'page'; + $handler->subtask = 'sessions'; + $handler->handler = 'http_response'; + $handler->weight = -30; + $handler->conf = array( + 'title' => 'HTTP response code', + 'contexts' => array(), + 'relationships' => array(), + 'code' => '301', + 'destination' => 'node/%node:nid/sessions/%node:field-event-default-session-view', + 'access' => array( + 'plugins' => array( + 0 => array( + 'name' => 'context_exists', + 'settings' => array( + 'exists' => '0', + ), + 'context' => 'argument_cod_session_status_1', + 'not' => FALSE, + ), + 1 => array( + 'name' => 'context_exists', + 'settings' => array( + 'exists' => '1', + ), + 'context' => 'argument_entity_id:node_1', + 'not' => FALSE, + ), + ), + 'logic' => 'and', + ), + ); + $page->default_handlers[$handler->name] = $handler; + $handler = new stdClass(); + $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */ + $handler->api_version = 1; $handler->name = 'page_sessions_panel_context'; $handler->task = 'page'; $handler->subtask = 'sessions'; $handler->handler = 'panel_context'; - $handler->weight = 0; + $handler->weight = -29; $handler->conf = array( - 'title' => 'Panel', + 'title' => 'Sessions Summary', 'no_blocks' => 0, 'pipeline' => 'standard', 'body_classes_to_remove' => '', @@ -79,9 +137,38 @@ function cod_session_pages_default_page_manager_pages() { 'css' => '', 'contexts' => array(), 'relationships' => array(), + 'access' => array( + 'plugins' => array( + 0 => array( + 'name' => 'context_exists', + 'settings' => array( + 'exists' => '1', + ), + 'context' => 'argument_entity_id:node_1', + 'not' => FALSE, + ), + 1 => array( + 'name' => 'context_exists', + 'settings' => array( + 'exists' => '1', + ), + 'context' => 'argument_cod_session_status_1', + 'not' => FALSE, + ), + 2 => array( + 'name' => 'context_exists', + 'settings' => array( + 'exists' => '0', + ), + 'context' => 'argument_term_1', + 'not' => FALSE, + ), + ), + 'logic' => 'and', + ), ); $display = new panels_display(); - $display->layout = 'flexible'; + $display->layout = 'cygnus'; $display->layout_settings = array( 'items' => array( 'canvas' => array( @@ -153,21 +240,55 @@ function cod_session_pages_default_page_manager_pages() { 'right' => NULL, 'center' => NULL, 'right_sidebar' => NULL, + 'preface' => NULL, + 'content' => NULL, + 'footer' => NULL, ), + 'style' => 'naked', ); $display->cache = array(); - $display->title = 'Sessions'; + $display->title = '%status Sessions'; $display->uuid = '0eeda185-558c-46be-bee1-c6c1962556c5'; $display->content = array(); $display->panels = array(); $pane = new stdClass(); - $pane->pid = 'new-9b693333-9a7b-424a-a727-ea1dd76e5ddb'; - $pane->panel = 'center'; - $pane->type = 'cod_session_sessions_pane'; - $pane->subtype = 'cod_session_sessions_pane'; + $pane->pid = 'new-0dde2356-8b78-475b-adb8-53483333858e'; + $pane->panel = 'content'; + $pane->type = 'views_panes'; + $pane->subtype = 'cod_session_tracks-track_session_summary'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array( + 'arguments' => array( + 'machine_name' => 'session_tracks_%node:nid', + 'null' => '%status', + ), + ); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 0; + $pane->locks = array(); + $pane->uuid = '0dde2356-8b78-475b-adb8-53483333858e'; + $display->content['new-0dde2356-8b78-475b-adb8-53483333858e'] = $pane; + $display->panels['content'][0] = 'new-0dde2356-8b78-475b-adb8-53483333858e'; + $pane = new stdClass(); + $pane->pid = 'new-560ee2b6-99df-4286-bb7b-82537b54f6c4'; + $pane->panel = 'preface'; + $pane->type = 'page_title'; + $pane->subtype = 'page_title'; $pane->shown = TRUE; $pane->access = array(); - $pane->configuration = array(); + $pane->configuration = array( + 'markup' => 'h1', + 'class' => '', + 'id' => '', + 'override_title' => 0, + 'override_title_text' => '%status Sessions', + ); $pane->cache = array(); $pane->style = array( 'settings' => NULL, @@ -176,9 +297,267 @@ function cod_session_pages_default_page_manager_pages() { $pane->extras = array(); $pane->position = 0; $pane->locks = array(); - $pane->uuid = '9b693333-9a7b-424a-a727-ea1dd76e5ddb'; - $display->content['new-9b693333-9a7b-424a-a727-ea1dd76e5ddb'] = $pane; - $display->panels['center'][0] = 'new-9b693333-9a7b-424a-a727-ea1dd76e5ddb'; + $pane->uuid = '560ee2b6-99df-4286-bb7b-82537b54f6c4'; + $display->content['new-560ee2b6-99df-4286-bb7b-82537b54f6c4'] = $pane; + $display->panels['preface'][0] = 'new-560ee2b6-99df-4286-bb7b-82537b54f6c4'; + $pane = new stdClass(); + $pane->pid = 'new-7951585b-3121-4440-a3b9-deea160bc05a'; + $pane->panel = 'preface'; + $pane->type = 'views_panes'; + $pane->subtype = 'cod_session_tracks-track_session_filter'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array( + 'arguments' => array( + 'machine_name' => 'session_tracks_%node:nid', + 'null' => '%node:nid', + 'null_1' => '', + ), + ); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 1; + $pane->locks = array(); + $pane->uuid = '7951585b-3121-4440-a3b9-deea160bc05a'; + $display->content['new-7951585b-3121-4440-a3b9-deea160bc05a'] = $pane; + $display->panels['preface'][1] = 'new-7951585b-3121-4440-a3b9-deea160bc05a'; + $display->hide_title = PANELS_TITLE_FIXED; + $display->title_pane = '0'; + $handler->conf['display'] = $display; + $page->default_handlers[$handler->name] = $handler; + $handler = new stdClass(); + $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */ + $handler->api_version = 1; + $handler->name = 'page_sessions_panel_context_3'; + $handler->task = 'page'; + $handler->subtask = 'sessions'; + $handler->handler = 'panel_context'; + $handler->weight = -28; + $handler->conf = array( + 'title' => 'Sessions by Track', + 'no_blocks' => 0, + 'pipeline' => 'standard', + 'body_classes_to_remove' => '', + 'body_classes_to_add' => '', + 'css_id' => '', + 'css' => '', + 'contexts' => array(), + 'relationships' => array(), + 'access' => array( + 'plugins' => array( + 0 => array( + 'name' => 'context_exists', + 'settings' => array( + 'exists' => '1', + ), + 'context' => 'argument_entity_id:node_1', + 'not' => FALSE, + ), + 1 => array( + 'name' => 'context_exists', + 'settings' => array( + 'exists' => '1', + ), + 'context' => 'argument_cod_session_status_1', + 'not' => FALSE, + ), + 2 => array( + 'name' => 'context_exists', + 'settings' => array( + 'exists' => '1', + ), + 'context' => 'argument_term_1', + 'not' => FALSE, + ), + ), + 'logic' => 'and', + ), + ); + $display = new panels_display(); + $display->layout = 'cygnus'; + $display->layout_settings = array( + 'items' => array( + 'canvas' => array( + 'type' => 'row', + 'contains' => 'column', + 'children' => array( + 0 => 'main', + 1 => 1, + ), + 'parent' => NULL, + ), + 'main' => array( + 'type' => 'column', + 'width' => '66.65375151243254', + 'width_type' => '%', + 'children' => array( + 0 => 'main-row', + ), + 'parent' => 'canvas', + ), + 'main-row' => array( + 'type' => 'row', + 'contains' => 'region', + 'children' => array( + 0 => 'center', + ), + 'parent' => 'main', + ), + 'center' => array( + 'type' => 'region', + 'title' => 'Center', + 'width' => 100, + 'width_type' => '%', + 'parent' => 'main-row', + ), + 1 => array( + 'type' => 'column', + 'width' => '33.34624848756747', + 'width_type' => '%', + 'parent' => 'canvas', + 'children' => array( + 0 => 2, + ), + 'class' => '', + ), + 2 => array( + 'type' => 'row', + 'contains' => 'region', + 'children' => array( + 0 => 'right_sidebar', + ), + 'parent' => '1', + 'class' => '', + ), + 'right_sidebar' => array( + 'type' => 'region', + 'title' => 'Right Sidebar', + 'width' => 100, + 'width_type' => '%', + 'parent' => '2', + 'class' => '', + ), + ), + ); + $display->panel_settings = array( + 'style_settings' => array( + 'default' => NULL, + 'left' => NULL, + 'right' => NULL, + 'center' => NULL, + 'right_sidebar' => NULL, + 'preface' => NULL, + 'content' => NULL, + 'footer' => NULL, + ), + ); + $display->cache = array(); + $display->title = '%status Sessions'; + $display->uuid = '0eeda185-558c-46be-bee1-c6c1962556c5'; + $display->content = array(); + $display->panels = array(); + $pane = new stdClass(); + $pane->pid = 'new-2f61b2a3-d5d7-4fab-ad73-bddda7b20fb5'; + $pane->panel = 'content'; + $pane->type = 'block'; + $pane->subtype = 'views-99c8102ee06c6ba03159e840945d2f86'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array( + 'inherit_path' => 1, + 'override_title' => 1, + 'override_title_text' => '', + ); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 0; + $pane->locks = array(); + $pane->uuid = '2f61b2a3-d5d7-4fab-ad73-bddda7b20fb5'; + $display->content['new-2f61b2a3-d5d7-4fab-ad73-bddda7b20fb5'] = $pane; + $display->panels['content'][0] = 'new-2f61b2a3-d5d7-4fab-ad73-bddda7b20fb5'; + $pane = new stdClass(); + $pane->pid = 'new-26148802-058c-4076-8ebd-050fa51886d2'; + $pane->panel = 'content'; + $pane->type = 'views_panes'; + $pane->subtype = 'cod_session_sessions-panel_sessions_by_track'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array( + 'arguments' => array( + 'gid' => '%node:nid', + 'field_accepted_value' => '%status', + 'tid' => '%tid:tid', + ), + ); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 1; + $pane->locks = array(); + $pane->uuid = '26148802-058c-4076-8ebd-050fa51886d2'; + $display->content['new-26148802-058c-4076-8ebd-050fa51886d2'] = $pane; + $display->panels['content'][1] = 'new-26148802-058c-4076-8ebd-050fa51886d2'; + $pane = new stdClass(); + $pane->pid = 'new-84112ab3-bc13-4d12-92a9-248215cf1829'; + $pane->panel = 'preface'; + $pane->type = 'page_title'; + $pane->subtype = 'page_title'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array( + 'markup' => 'h1', + 'class' => '', + 'id' => '', + 'override_title' => 0, + 'override_title_text' => '', + ); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 0; + $pane->locks = array(); + $pane->uuid = '84112ab3-bc13-4d12-92a9-248215cf1829'; + $display->content['new-84112ab3-bc13-4d12-92a9-248215cf1829'] = $pane; + $display->panels['preface'][0] = 'new-84112ab3-bc13-4d12-92a9-248215cf1829'; + $pane = new stdClass(); + $pane->pid = 'new-7951585b-3121-4440-a3b9-deea160bc05a'; + $pane->panel = 'preface'; + $pane->type = 'views_panes'; + $pane->subtype = 'cod_session_tracks-track_session_filter'; + $pane->shown = TRUE; + $pane->access = array(); + $pane->configuration = array( + 'arguments' => array( + 'machine_name' => 'session_tracks_%node:nid', + 'null' => '%node:nid', + 'null_1' => '%tid:tid', + ), + ); + $pane->cache = array(); + $pane->style = array( + 'settings' => NULL, + ); + $pane->css = array(); + $pane->extras = array(); + $pane->position = 1; + $pane->locks = array(); + $pane->uuid = '7951585b-3121-4440-a3b9-deea160bc05a'; + $display->content['new-7951585b-3121-4440-a3b9-deea160bc05a'] = $pane; + $display->panels['preface'][1] = 'new-7951585b-3121-4440-a3b9-deea160bc05a'; $display->hide_title = PANELS_TITLE_FIXED; $display->title_pane = '0'; $handler->conf['display'] = $display; diff --git a/cod_session/plugins/arguments/cod_session_status.inc b/cod_session/plugins/arguments/cod_session_status.inc new file mode 100644 index 0000000000000000000000000000000000000000..3f910a77727517164576b97e48de878d562fa1a2 --- /dev/null +++ b/cod_session/plugins/arguments/cod_session_status.inc @@ -0,0 +1,55 @@ + t("Session Status"), + // keyword to use for %substitution + 'keyword' => 'cod_session_status', + 'description' => t('Creates a context from a session status argument.'), + 'settings form' => 'cod_session_argument_status_settings_form', + 'context' => 'cod_session_argument_status_context', + 'placeholder form' => array( + '#type' => 'textfield', + '#description' => t('Enter a value for this argument'), + ), + 'path placeholder' => 'cod_session_argument_status_path_placeholder', // This is in pagemanager. +); + +/** + * Discover if this argument gives us the term we crave. + */ +function cod_session_argument_status_context($arg = NULL, $conf = NULL, $empty = FALSE) { + // If unset it wants a generic, unfilled context. + if ($empty) { + return ctools_context_create_empty('cod_session_status'); + } + + if (!$arg) { + return FALSE; + } + $context = ctools_context_create('cod_session_status', $arg); + $context->original_argument = $arg; + return $context; +} + +/** + * Settings form for the argument + */ +function cod_session_argument_status_settings_form(&$form, &$form_state, $conf) { +// return $form; +} + +/** + * Switch the placeholder based upon user settings. + */ +function cod_session_argument_status_path_placeholder($argument) { + return '%pm_arg'; +} diff --git a/cod_session/plugins/content_types/cod_session_sessions_pane.inc b/cod_session/plugins/content_types/cod_session_sessions_pane.inc index ff03f758d5c5105d5c452be90675b75875c6566b..9d13de8411fbd68ba8b182e4f7b23134cf38eb81 100644 --- a/cod_session/plugins/content_types/cod_session_sessions_pane.inc +++ b/cod_session/plugins/content_types/cod_session_sessions_pane.inc @@ -35,7 +35,7 @@ function cod_session_sessions_pane_render($subtype, $conf, $context = NULL) { function cod_session_sessions_quicktabs($event) { // Use '+' so that we can display Proposed/Declined and Accepted/Featured. - $allowed_values = array('unprocessed+declined+backup' => 'Proposed', 'accepted+featured' => 'Accepted', 'cancelled' => 'Cancelled'); + $allowed_values = array('proposed+declined+backup' => 'Proposed', 'accepted+featured' => 'Accepted', 'cancelled' => 'Cancelled'); $content_tabs = array(); $weight = 0; foreach ($allowed_values AS $key => $status) { diff --git a/cod_session/plugins/content_types/cod_session_tracks_pane.inc b/cod_session/plugins/content_types/cod_session_tracks_pane.inc new file mode 100644 index 0000000000000000000000000000000000000000..bf44979a3932c29cb442ab83bc922b85bda27913 --- /dev/null +++ b/cod_session/plugins/content_types/cod_session_tracks_pane.inc @@ -0,0 +1,45 @@ + t('Sessions Track Filter'), + // no one knows if "single" defaults to FALSE... + 'single' => TRUE, + // oh joy, I get my own section of panel panes + 'category' => array(t('Conference Organizing'), -9), + //'edit form' => 'cod_events_pane_content_type_edit_form', + 'render callback' => 'cod_session_tracks_pane_render' +); + +/** +* Run-time rendering of the body of the block (content type) +* See ctools_plugin_examples for more advanced info +*/ +function cod_session_tracks_pane_render($subtype, $conf, $context = NULL) { + // our output is generate by js. Any markup or theme functions + // could go here. + // that private js function is so bad that fixing it will be the + // basis of the next tutorial + $block = new stdClass(); + + if($node = node_load(array_shift($context))) { + $block->content = cod_session_tracks($node); + } else { + $block->content = t('Invalid Event Type'); + } + return $block; +} + +function cod_session_tracks($event) { + // Get the tracks view + $view = views_get_view('cod_session_tracks'); + $view->set_display('panel_pane_2'); + + + $content = ''; + + return $content; +} diff --git a/cod_session/plugins/contexts/cod_session_status.inc b/cod_session/plugins/contexts/cod_session_status.inc new file mode 100644 index 0000000000000000000000000000000000000000..b9140060b565f4e5acd90db69265abfd4466eda7 --- /dev/null +++ b/cod_session/plugins/contexts/cod_session_status.inc @@ -0,0 +1,104 @@ + t("Session Status"), + 'description' => t('Status (Proposed, Accepted, etc.'), + 'context' => 'cod_session_context_create_status', + 'edit form' => 'cod_session_context_status_settings_form', + 'defaults' => '', + 'no ui' => FALSE, + 'keyword' => 'cod_session_status', + 'context name' => 'cod_session_status', + 'convert' => 'cod_session_context_status_convert', + 'placeholder form' => array( + '#type' => 'textfield', + '#description' => t('Enter the status machine name for this context.'), + ), +); + +/** + * It's important to remember that $conf is optional here, because contexts + * are not always created from the UI. + */ +function cod_session_context_create_status($empty, $data = NULL, $conf = FALSE) { + $context = new ctools_context('cod_session_status'); + $context->plugin = 'cod_session_status'; + + // We don't know the session status in the argument, lets try to create one + if ($empty) { + return $context; + } + + if ($conf) { + $status = $data; + } + + if (!empty($data)) { + // Support the array storage from the settings form but also handle direct input from arguments. + $context->data = is_array($data) ? $data['status'] : $data; + $output = check_plain($data); + $context->title = ($conf) ? check_plain($data['identifier']) : drupal_strtoupper(drupal_substr($output, 0, 1)) . drupal_substr($output, 1); + return $context; + } +} + +function cod_session_context_status_settings_form($form, &$form_state) { + $conf = &$form_state['conf']; + + $form['status'] = array( + '#title' => t('Enter the status for the event'), + '#type' => 'textfield', + '#maxlength' => 64, + '#weight' => -10, + ); + + if (!empty($conf['status'])) { + $form['status']['#description'] = t('Currently set to !link', array('!link' => $conf['status'])); + } + + return $form; +} + +/** + * Validate a node. + */ +function cod_session_context_status_settings_form_validate($form, &$form_state) { + // Validate the autocomplete + // We should do something here! + /* + if (!$node || (empty($node->status) && !(user_access('administer nodes')))) { + form_error($form['node'], t('Invalid node selected.')); + } + else { + form_set_value($form['nid'], $node->nid, $form_state); + } + */ +} + +function cod_session_context_status_settings_form_submit($form, &$form_state) { + // This will either be the value set previously or a value set by the + // validator. + $form_state['conf']['status'] = $form_state['values']['status']; +} + +/** + * Convert a context into a string. + */ +function cod_session_context_status_convert($context, $type) { + switch ($type) { + // Convert a vocabulary keyword into the data. + case 'status': + return $context->data['status']; + } +} diff --git a/cod_session/views/cod_session.views.inc b/cod_session/views/cod_session.views.inc new file mode 100644 index 0000000000000000000000000000000000000000..202e0e4dbf87687b2a29988dcfa291c15812e381 --- /dev/null +++ b/cod_session/views/cod_session.views.inc @@ -0,0 +1,42 @@ + array( + 'title' => t('Session Track Link'), + 'help' => t('Filter or unfilter a track on the sessions page'), + 'handler' => 'cod_session_views_handler_field_track_link', + ), + ); + $data['views']['sessions_more_link'] = array( + 'title' => t('Session Track Link'), + 'help' => t('Display a more sessions based on track link.'), + 'area' => array( + 'handler' => 'cod_session_views_handler_field_track_link', + ), + ); +} + +/** + * Implements hook_views_data(). + +function cod_session_views_data() { + $data = array(); + $data['views']['sessions_more_link'] = array( + 'title' => t('Session Track Link'), + 'help' => t('Display a more sessions based on track link.'), + 'area' => array( + 'handler' => 'cod_session_views_handler_area_more_link', + ), + ); + return $data; +}*/ diff --git a/cod_session/cod_session.views_default.inc b/cod_session/views/cod_session.views_default.inc similarity index 79% rename from cod_session/cod_session.views_default.inc rename to cod_session/views/cod_session.views_default.inc index 44b5e44b5df4e1bf43a08a03dbcab3384b5bad95..de32d2c0ff6d156fadfb61d1beb440d616307ebc 100644 --- a/cod_session/cod_session.views_default.inc +++ b/cod_session/views/cod_session.views_default.inc @@ -155,8 +155,6 @@ function cod_session_views_default_views() { $handler->display->display_options['sorts']['title']['id'] = 'title'; $handler->display->display_options['sorts']['title']['table'] = 'node'; $handler->display->display_options['sorts']['title']['field'] = 'title'; - $handler->display->display_options['sorts']['title']['relationship'] = 'field_room_slots_types_allowed_node'; - $handler->display->display_options['sorts']['title']['exposed'] = TRUE; $handler->display->display_options['sorts']['title']['expose']['label'] = 'Title'; /* Contextual filter: OG membership: Group ID */ $handler->display->display_options['arguments']['gid']['id'] = 'gid'; @@ -356,7 +354,7 @@ function cod_session_views_default_views() { $handler->display->display_options['filters']['keys']['expose']['label'] = 'Filter by keywords'; $handler->display->display_options['filters']['keys']['expose']['operator'] = 'keys_op'; $handler->display->display_options['filters']['keys']['expose']['identifier'] = 'keys'; - $handler->display->display_options['path'] = 'node/%/program/sessions.rss'; + $handler->display->display_options['path'] = 'node/%/sessions.rss'; $handler->display->display_options['displays'] = array( 'page_1' => 'page_1', 'default' => 0, @@ -384,10 +382,10 @@ function cod_session_views_default_views() { $handler->display->display_options['defaults']['style_options'] = FALSE; $handler->display->display_options['defaults']['row_plugin'] = FALSE; $handler->display->display_options['defaults']['row_options'] = FALSE; - $handler->display->display_options['path'] = 'node/%/program/sessions.json'; + $handler->display->display_options['path'] = 'node/%/sessions.json'; /* Display: Block: Sessions Details */ - $handler = $view->new_display('block', 'Block: Sessions Details', 'block_1'); + $handler = $view->new_display('block', 'Block: Sessions Details', 'block_session_details'); $handler->display->display_options['defaults']['title'] = FALSE; $handler->display->display_options['title'] = 'Sessions Details'; $handler->display->display_options['defaults']['css_class'] = FALSE; @@ -428,7 +426,7 @@ function cod_session_views_default_views() { $handler->display->display_options['arguments']['nid']['specify_validation'] = TRUE; /* Display: Block: Speakers */ - $handler = $view->new_display('block', 'Block: Speakers', 'block_2'); + $handler = $view->new_display('block', 'Block: Speakers', 'block_session_speakers'); $handler->display->display_options['defaults']['title'] = FALSE; $handler->display->display_options['title'] = 'Speakers'; $handler->display->display_options['defaults']['css_class'] = FALSE; @@ -524,10 +522,9 @@ function cod_session_views_default_views() { $handler->display->display_options['filters']['field_accepted_value']['group'] = 1; $handler->display->display_options['block_description'] = 'Sessions: Speakers'; - /* Display: My Sessions */ - $handler = $view->new_display('page', 'My Sessions', 'page_2'); + /* Display: My Schedule */ + $handler = $view->new_display('panel_pane', 'My Schedule', 'pane_sessions_mine'); $handler->display->display_options['defaults']['title'] = FALSE; - $handler->display->display_options['title'] = 'My Schedule'; $handler->display->display_options['defaults']['access'] = FALSE; $handler->display->display_options['access']['type'] = 'role'; $handler->display->display_options['access']['role'] = array( @@ -596,7 +593,7 @@ function cod_session_views_default_views() { $handler->display->display_options['empty']['area']['empty'] = TRUE; $handler->display->display_options['empty']['area']['content'] = 'No sessions have been flagged. To add sessions to your schedule, go to the session and click \'add to my schedule\'. -If you just flagged sessions, it may take up to 2 minutes for them to appear here.'; + If you just flagged sessions, it may take up to 2 minutes for them to appear here.'; $handler->display->display_options['empty']['area']['format'] = 'full_html'; $handler->display->display_options['defaults']['relationships'] = FALSE; /* Relationship: Flags: session_schedule */ @@ -615,6 +612,11 @@ function cod_session_views_default_views() { $handler->display->display_options['relationships']['og_membership_rel']['table'] = 'node'; $handler->display->display_options['relationships']['og_membership_rel']['field'] = 'og_membership_rel'; $handler->display->display_options['relationships']['og_membership_rel']['required'] = TRUE; + /* Relationship: Entity Reference: Referenced Entity */ + $handler->display->display_options['relationships']['field_timeslot_time_target_id']['id'] = 'field_timeslot_time_target_id'; + $handler->display->display_options['relationships']['field_timeslot_time_target_id']['table'] = 'field_data_field_timeslot_time'; + $handler->display->display_options['relationships']['field_timeslot_time_target_id']['field'] = 'field_timeslot_time_target_id'; + $handler->display->display_options['relationships']['field_timeslot_time_target_id']['relationship'] = 'field_session_timeslot_target_id'; $handler->display->display_options['defaults']['fields'] = FALSE; /* Field: Content: Title */ $handler->display->display_options['fields']['title']['id'] = 'title'; @@ -660,27 +662,25 @@ function cod_session_views_default_views() { ); $handler->display->display_options['fields']['field_timeslot_time']['delta_offset'] = '0'; $handler->display->display_options['defaults']['sorts'] = FALSE; - /* Sort criterion: Field collection item: Time (field_timeslot_time) */ - $handler->display->display_options['sorts']['field_timeslot_time_target_id']['id'] = 'field_timeslot_time_target_id'; - $handler->display->display_options['sorts']['field_timeslot_time_target_id']['table'] = 'field_data_field_timeslot_time'; - $handler->display->display_options['sorts']['field_timeslot_time_target_id']['field'] = 'field_timeslot_time_target_id'; - $handler->display->display_options['sorts']['field_timeslot_time_target_id']['relationship'] = 'field_session_timeslot_target_id'; + /* Sort criterion: Time: Date and time - start date (field_evttime_date) */ + $handler->display->display_options['sorts']['field_evttime_date_value']['id'] = 'field_evttime_date_value'; + $handler->display->display_options['sorts']['field_evttime_date_value']['table'] = 'field_data_field_evttime_date'; + $handler->display->display_options['sorts']['field_evttime_date_value']['field'] = 'field_evttime_date_value'; + $handler->display->display_options['sorts']['field_evttime_date_value']['relationship'] = 'field_timeslot_time_target_id'; $handler->display->display_options['defaults']['arguments'] = FALSE; - /* Contextual filter: OG membership: Group ID */ - $handler->display->display_options['arguments']['gid']['id'] = 'gid'; - $handler->display->display_options['arguments']['gid']['table'] = 'og_membership'; - $handler->display->display_options['arguments']['gid']['field'] = 'gid'; - $handler->display->display_options['arguments']['gid']['relationship'] = 'og_membership_rel'; - $handler->display->display_options['arguments']['gid']['default_action'] = 'default'; - $handler->display->display_options['arguments']['gid']['default_argument_type'] = 'cod_events_default_event'; - $handler->display->display_options['arguments']['gid']['summary']['number_of_records'] = '0'; - $handler->display->display_options['arguments']['gid']['summary']['format'] = 'default_summary'; - $handler->display->display_options['arguments']['gid']['summary_options']['items_per_page'] = '25'; - $handler->display->display_options['arguments']['gid']['specify_validation'] = TRUE; - $handler->display->display_options['arguments']['gid']['validate']['type'] = 'node'; - $handler->display->display_options['arguments']['gid']['validate_options']['types'] = array( - 'event' => 'event', - ); + /* Contextual filter: Field: Conference (og_group_ref) */ + $handler->display->display_options['arguments']['og_group_ref_target_id']['id'] = 'og_group_ref_target_id'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['table'] = 'og_membership'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['field'] = 'og_group_ref_target_id'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['relationship'] = 'og_membership_rel'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['default_action'] = 'empty'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['specify_validation'] = TRUE; + $handler->display->display_options['arguments']['og_group_ref_target_id']['validate']['type'] = 'og'; + $handler->display->display_options['arguments']['og_group_ref_target_id']['validate']['fail'] = 'empty'; $handler->display->display_options['defaults']['filter_groups'] = FALSE; $handler->display->display_options['defaults']['filters'] = FALSE; /* Filter criterion: Content: Published */ @@ -688,15 +688,8 @@ function cod_session_views_default_views() { $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']['group'] = 1; $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; - /* Filter criterion: Content: Type */ - $handler->display->display_options['filters']['type']['id'] = 'type'; - $handler->display->display_options['filters']['type']['table'] = 'node'; - $handler->display->display_options['filters']['type']['field'] = 'type'; - $handler->display->display_options['filters']['type']['value'] = array( - 'session' => 'session', - ); /* Filter criterion: Content: Status (field_accepted) */ $handler->display->display_options['filters']['field_accepted_value']['id'] = 'field_accepted_value'; $handler->display->display_options['filters']['field_accepted_value']['table'] = 'field_data_field_accepted'; @@ -705,15 +698,21 @@ function cod_session_views_default_views() { 'accepted' => 'accepted', 'featured' => 'featured', ); - $handler->display->display_options['path'] = 'node/%/program/mine'; - $handler->display->display_options['menu']['type'] = 'tab'; - $handler->display->display_options['menu']['title'] = 'My Schedule'; - $handler->display->display_options['menu']['weight'] = '1'; - $handler->display->display_options['menu']['context'] = 0; - $handler->display->display_options['menu']['context_only_inline'] = 0; + $handler->display->display_options['filters']['field_accepted_value']['group'] = 1; + $handler->display->display_options['argument_input'] = array( + 'og_group_ref_target_id' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Conference', + ), + ); + $handler->display->display_options['inherit_panels_path'] = '1'; /* Display: Featured Sessions */ - $handler = $view->new_display('panel_pane', 'Featured Sessions', 'panel_pane_1'); + $handler = $view->new_display('panel_pane', 'Featured Sessions', 'panel_sessions_featured'); $handler->display->display_options['defaults']['title'] = FALSE; $handler->display->display_options['title'] = 'Featured Sessions'; $handler->display->display_options['defaults']['style_plugin'] = FALSE; @@ -806,6 +805,306 @@ function cod_session_views_default_views() { 'label' => 'Event ID', ), ); + + /* Display: Sessions by Track Pane */ + $handler = $view->new_display('panel_pane', 'Sessions by Track Pane', 'panel_sessions_by_track'); + $handler->display->display_options['defaults']['title'] = FALSE; + $handler->display->display_options['defaults']['exposed_form'] = FALSE; + $handler->display->display_options['exposed_form']['type'] = 'basic'; + $handler->display->display_options['exposed_form']['options']['autosubmit'] = TRUE; + $handler->display->display_options['defaults']['style_plugin'] = FALSE; + $handler->display->display_options['style_plugin'] = 'default'; + $handler->display->display_options['style_options']['row_class'] = '[name]'; + $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['exposed_block'] = TRUE; + $handler->display->display_options['defaults']['relationships'] = FALSE; + /* Relationship: Content: Author */ + $handler->display->display_options['relationships']['uid']['id'] = 'uid'; + $handler->display->display_options['relationships']['uid']['table'] = 'node'; + $handler->display->display_options['relationships']['uid']['field'] = 'uid'; + /* Relationship: OG membership: OG membership from Node */ + $handler->display->display_options['relationships']['og_membership_rel']['id'] = 'og_membership_rel'; + $handler->display->display_options['relationships']['og_membership_rel']['table'] = 'node'; + $handler->display->display_options['relationships']['og_membership_rel']['field'] = 'og_membership_rel'; + $handler->display->display_options['relationships']['og_membership_rel']['required'] = TRUE; + /* Relationship: Entity Reference: Referenced Entity */ + $handler->display->display_options['relationships']['og_vocabulary_target_id']['id'] = 'og_vocabulary_target_id'; + $handler->display->display_options['relationships']['og_vocabulary_target_id']['table'] = 'field_data_og_vocabulary'; + $handler->display->display_options['relationships']['og_vocabulary_target_id']['field'] = 'og_vocabulary_target_id'; + $handler->display->display_options['relationships']['og_vocabulary_target_id']['required'] = TRUE; + $handler->display->display_options['defaults']['fields'] = FALSE; + /* Field: Taxonomy term: Name */ + $handler->display->display_options['fields']['name']['id'] = 'name'; + $handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['name']['field'] = 'name'; + $handler->display->display_options['fields']['name']['relationship'] = 'og_vocabulary_target_id'; + $handler->display->display_options['fields']['name']['label'] = ''; + $handler->display->display_options['fields']['name']['exclude'] = TRUE; + $handler->display->display_options['fields']['name']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['name']['case'] = 'lower'; + $handler->display->display_options['fields']['name']['convert_spaces'] = TRUE; + /* 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_type'] = 'h3'; + $handler->display->display_options['fields']['title']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['title']['element_default_classes'] = FALSE; + $handler->display->display_options['fields']['title']['hide_alter_empty'] = FALSE; + /* Field: Content: Speaker(s) */ + $handler->display->display_options['fields']['field_speakers']['id'] = 'field_speakers'; + $handler->display->display_options['fields']['field_speakers']['table'] = 'field_data_field_speakers'; + $handler->display->display_options['fields']['field_speakers']['field'] = 'field_speakers'; + $handler->display->display_options['fields']['field_speakers']['label'] = ''; + $handler->display->display_options['fields']['field_speakers']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['field_speakers']['hide_alter_empty'] = FALSE; + $handler->display->display_options['fields']['field_speakers']['settings'] = array( + 'link' => 0, + ); + $handler->display->display_options['fields']['field_speakers']['delta_offset'] = '0'; + /* Field: Content: Body */ + $handler->display->display_options['fields']['body']['id'] = 'body'; + $handler->display->display_options['fields']['body']['table'] = 'field_data_body'; + $handler->display->display_options['fields']['body']['field'] = 'body'; + $handler->display->display_options['fields']['body']['label'] = ''; + $handler->display->display_options['fields']['body']['alter']['max_length'] = '200'; + $handler->display->display_options['fields']['body']['alter']['trim'] = TRUE; + $handler->display->display_options['fields']['body']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['body']['hide_alter_empty'] = FALSE; + $handler->display->display_options['fields']['body']['type'] = 'text_summary_or_trimmed'; + $handler->display->display_options['fields']['body']['settings'] = array( + 'trim_length' => '250', + ); + /* Field: Content: Status */ + $handler->display->display_options['fields']['field_accepted']['id'] = 'field_accepted'; + $handler->display->display_options['fields']['field_accepted']['table'] = 'field_data_field_accepted'; + $handler->display->display_options['fields']['field_accepted']['field'] = 'field_accepted'; + $handler->display->display_options['fields']['field_accepted']['label'] = ''; + $handler->display->display_options['fields']['field_accepted']['exclude'] = TRUE; + $handler->display->display_options['fields']['field_accepted']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['field_accepted']['hide_alter_empty'] = FALSE; + /* Field: Content: Experience level */ + $handler->display->display_options['fields']['field_experience']['id'] = 'field_experience'; + $handler->display->display_options['fields']['field_experience']['table'] = 'field_data_field_experience'; + $handler->display->display_options['fields']['field_experience']['field'] = 'field_experience'; + $handler->display->display_options['fields']['field_experience']['label'] = ''; + $handler->display->display_options['fields']['field_experience']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['field_experience']['hide_alter_empty'] = FALSE; + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Contextual filter: OG membership: Group ID */ + $handler->display->display_options['arguments']['gid']['id'] = 'gid'; + $handler->display->display_options['arguments']['gid']['table'] = 'og_membership'; + $handler->display->display_options['arguments']['gid']['field'] = 'gid'; + $handler->display->display_options['arguments']['gid']['relationship'] = 'og_membership_rel'; + $handler->display->display_options['arguments']['gid']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['gid']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['gid']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['gid']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['gid']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['gid']['specify_validation'] = TRUE; + $handler->display->display_options['arguments']['gid']['validate']['type'] = 'og'; + /* Contextual filter: Content: Status (field_accepted) */ + $handler->display->display_options['arguments']['field_accepted_value']['id'] = 'field_accepted_value'; + $handler->display->display_options['arguments']['field_accepted_value']['table'] = 'field_data_field_accepted'; + $handler->display->display_options['arguments']['field_accepted_value']['field'] = 'field_accepted_value'; + $handler->display->display_options['arguments']['field_accepted_value']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['field_accepted_value']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['field_accepted_value']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['field_accepted_value']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['field_accepted_value']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['field_accepted_value']['limit'] = '0'; + /* Contextual filter: Content: Has taxonomy term ID */ + $handler->display->display_options['arguments']['tid']['id'] = 'tid'; + $handler->display->display_options['arguments']['tid']['table'] = 'taxonomy_index'; + $handler->display->display_options['arguments']['tid']['field'] = 'tid'; + $handler->display->display_options['arguments']['tid']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['tid']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['tid']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['tid']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['tid']['specify_validation'] = TRUE; + $handler->display->display_options['arguments']['tid']['validate']['type'] = 'taxonomy_term'; + $handler->display->display_options['arguments']['tid']['validate']['fail'] = 'empty'; + $handler->display->display_options['defaults']['filter_groups'] = FALSE; + $handler->display->display_options['defaults']['filters'] = FALSE; + /* Filter criterion: Search: Search Terms */ + $handler->display->display_options['filters']['keys']['id'] = 'keys'; + $handler->display->display_options['filters']['keys']['table'] = 'search_index'; + $handler->display->display_options['filters']['keys']['field'] = 'keys'; + $handler->display->display_options['filters']['keys']['group'] = 1; + $handler->display->display_options['filters']['keys']['exposed'] = TRUE; + $handler->display->display_options['filters']['keys']['expose']['operator_id'] = 'keys_op'; + $handler->display->display_options['filters']['keys']['expose']['label'] = 'Search'; + $handler->display->display_options['filters']['keys']['expose']['operator'] = 'keys_op'; + $handler->display->display_options['filters']['keys']['expose']['identifier'] = 'keys'; + $handler->display->display_options['filters']['keys']['expose']['remember_roles'] = array( + 2 => '2', + 1 => 0, + 8 => 0, + 4 => 0, + 3 => 0, + 5 => 0, + 6 => 0, + 7 => 0, + 9 => 0, + 10 => 0, + ); + $handler->display->display_options['filters']['keys']['remove_score'] = TRUE; + /* 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'] = 1; + $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; + /* Filter criterion: Content: Type */ + $handler->display->display_options['filters']['type']['id'] = 'type'; + $handler->display->display_options['filters']['type']['table'] = 'node'; + $handler->display->display_options['filters']['type']['field'] = 'type'; + $handler->display->display_options['filters']['type']['value'] = array( + 'session' => 'session', + ); + $handler->display->display_options['filters']['type']['group'] = 1; + /* Filter criterion: Content: Experience level (field_experience) */ + $handler->display->display_options['filters']['field_experience_value']['id'] = 'field_experience_value'; + $handler->display->display_options['filters']['field_experience_value']['table'] = 'field_data_field_experience'; + $handler->display->display_options['filters']['field_experience_value']['field'] = 'field_experience_value'; + $handler->display->display_options['filters']['field_experience_value']['group'] = 1; + $handler->display->display_options['filters']['field_experience_value']['exposed'] = TRUE; + $handler->display->display_options['filters']['field_experience_value']['expose']['operator_id'] = 'field_experience_value_op'; + $handler->display->display_options['filters']['field_experience_value']['expose']['label'] = 'Experience'; + $handler->display->display_options['filters']['field_experience_value']['expose']['operator'] = 'field_experience_value_op'; + $handler->display->display_options['filters']['field_experience_value']['expose']['identifier'] = 'field_experience_value'; + $handler->display->display_options['argument_input'] = array( + 'gid' => array( + 'type' => 'user', + 'context' => 'entity:node.nid', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Conference', + ), + 'field_accepted_value' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '1', + 'fixed' => '', + 'label' => 'Session Status', + ), + 'tid' => array( + 'type' => 'user', + 'context' => 'terms.names_dashed', + 'context_optional' => 1, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Content: Has taxonomy term ID', + ), + ); + + /* Display: Session Summary */ + $handler = $view->new_display('block', 'Session Summary', 'block_session_summary'); + $handler->display->display_options['defaults']['use_more'] = FALSE; + $handler->display->display_options['use_more'] = TRUE; + $handler->display->display_options['defaults']['use_more_always'] = FALSE; + $handler->display->display_options['defaults']['use_more_always'] = FALSE; + $handler->display->display_options['use_more_always'] = FALSE; + $handler->display->display_options['defaults']['use_more_text'] = FALSE; + $handler->display->display_options['use_more_text'] = 'more sessions'; + $handler->display->display_options['defaults']['pager'] = FALSE; + $handler->display->display_options['pager']['type'] = 'some'; + $handler->display->display_options['pager']['options']['items_per_page'] = '8'; + $handler->display->display_options['pager']['options']['offset'] = '0'; + $handler->display->display_options['defaults']['style_plugin'] = FALSE; + $handler->display->display_options['style_plugin'] = 'default'; + $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']['header'] = FALSE; + $handler->display->display_options['defaults']['footer'] = FALSE; + /* Footer: Global: Session Track Link */ + $handler->display->display_options['footer']['sessions_more_link']['id'] = 'sessions_more_link'; + $handler->display->display_options['footer']['sessions_more_link']['table'] = 'views'; + $handler->display->display_options['footer']['sessions_more_link']['field'] = 'sessions_more_link'; + $handler->display->display_options['footer']['sessions_more_link']['label'] = ''; + $handler->display->display_options['footer']['sessions_more_link']['element_label_colon'] = 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_type'] = 'h3'; + $handler->display->display_options['fields']['title']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['title']['element_default_classes'] = FALSE; + $handler->display->display_options['fields']['title']['hide_alter_empty'] = FALSE; + /* Field: Content: Speaker(s) */ + $handler->display->display_options['fields']['field_speakers']['id'] = 'field_speakers'; + $handler->display->display_options['fields']['field_speakers']['table'] = 'field_data_field_speakers'; + $handler->display->display_options['fields']['field_speakers']['field'] = 'field_speakers'; + $handler->display->display_options['fields']['field_speakers']['label'] = ''; + $handler->display->display_options['fields']['field_speakers']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['field_speakers']['hide_alter_empty'] = FALSE; + $handler->display->display_options['fields']['field_speakers']['settings'] = array( + 'link' => 1, + ); + $handler->display->display_options['fields']['field_speakers']['delta_offset'] = '0'; + $handler->display->display_options['defaults']['sorts'] = FALSE; + /* Sort criterion: Content: Title */ + $handler->display->display_options['sorts']['title']['id'] = 'title'; + $handler->display->display_options['sorts']['title']['table'] = 'node'; + $handler->display->display_options['sorts']['title']['field'] = 'title'; + $handler->display->display_options['sorts']['title']['expose']['label'] = 'Title'; + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Contextual filter: Content: Has taxonomy term ID */ + $handler->display->display_options['arguments']['tid']['id'] = 'tid'; + $handler->display->display_options['arguments']['tid']['table'] = 'taxonomy_index'; + $handler->display->display_options['arguments']['tid']['field'] = 'tid'; + $handler->display->display_options['arguments']['tid']['default_action'] = 'empty'; + $handler->display->display_options['arguments']['tid']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['tid']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['tid']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['tid']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['tid']['specify_validation'] = TRUE; + $handler->display->display_options['arguments']['tid']['validate']['type'] = 'taxonomy_term'; + $handler->display->display_options['arguments']['tid']['validate']['fail'] = 'empty'; + /* Contextual filter: Content: Status (field_accepted) */ + $handler->display->display_options['arguments']['field_accepted_value']['id'] = 'field_accepted_value'; + $handler->display->display_options['arguments']['field_accepted_value']['table'] = 'field_data_field_accepted'; + $handler->display->display_options['arguments']['field_accepted_value']['field'] = 'field_accepted_value'; + $handler->display->display_options['arguments']['field_accepted_value']['default_action'] = 'empty'; + $handler->display->display_options['arguments']['field_accepted_value']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['field_accepted_value']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['field_accepted_value']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['field_accepted_value']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['field_accepted_value']['specify_validation'] = TRUE; + $handler->display->display_options['arguments']['field_accepted_value']['validate']['fail'] = 'empty'; + $handler->display->display_options['arguments']['field_accepted_value']['limit'] = '0'; + $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'] = 1; + $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; + /* Filter criterion: Content: Type */ + $handler->display->display_options['filters']['type']['id'] = 'type'; + $handler->display->display_options['filters']['type']['table'] = 'node'; + $handler->display->display_options['filters']['type']['field'] = 'type'; + $handler->display->display_options['filters']['type']['value'] = array( + 'session' => 'session', + ); + $handler->display->display_options['filters']['type']['group'] = 1; $export['cod_session_sessions'] = $view; $view = new view(); @@ -1804,22 +2103,20 @@ function cod_session_views_default_views() { $handler->display->display_options['fields']['count_1']['label'] = 'Attending'; $handler->display->display_options['fields']['count_1']['element_label_colon'] = FALSE; $handler->display->display_options['fields']['count_1']['separator'] = ''; - if (module_exists('cod_session_ranking')) { - /* Field: Content: Session Rank */ - $handler->display->display_options['fields']['field_session_ranking']['id'] = 'field_session_ranking'; - $handler->display->display_options['fields']['field_session_ranking']['table'] = 'field_data_field_session_ranking'; - $handler->display->display_options['fields']['field_session_ranking']['field'] = 'field_session_ranking'; - $handler->display->display_options['fields']['field_session_ranking']['label'] = 'Moderation Ranking'; - $handler->display->display_options['fields']['field_session_ranking']['click_sort_column'] = 'rating'; - $handler->display->display_options['fields']['field_session_ranking']['settings'] = array( - 'widget' => array( - 'fivestar_widget' => 'default', - ), - 'expose' => 1, - 'style' => 'smart', - 'text' => 'average', - ); - } + /* Field: Content: Session Rank */ + $handler->display->display_options['fields']['field_session_ranking']['id'] = 'field_session_ranking'; + $handler->display->display_options['fields']['field_session_ranking']['table'] = 'field_data_field_session_ranking'; + $handler->display->display_options['fields']['field_session_ranking']['field'] = 'field_session_ranking'; + $handler->display->display_options['fields']['field_session_ranking']['label'] = 'Moderation Ranking'; + $handler->display->display_options['fields']['field_session_ranking']['click_sort_column'] = 'rating'; + $handler->display->display_options['fields']['field_session_ranking']['settings'] = array( + 'widget' => array( + 'fivestar_widget' => 'default', + ), + 'expose' => 1, + 'style' => 'smart', + 'text' => 'average', + ); $handler->display->display_options['defaults']['sorts'] = FALSE; /* Sort criterion: Content: Nid */ $handler->display->display_options['sorts']['nid']['id'] = 'nid'; @@ -1832,14 +2129,12 @@ function cod_session_views_default_views() { $handler->display->display_options['sorts']['title']['field'] = 'title'; $handler->display->display_options['sorts']['title']['relationship'] = 'field_room_slots_types_allowed_node'; $handler->display->display_options['sorts']['title']['expose']['label'] = 'Title'; - if (module_exists('cod_session_ranking')) { - /* Sort criterion: Content: Session Rank (field_session_ranking:rating) */ - $handler->display->display_options['sorts']['field_session_ranking_rating']['id'] = 'field_session_ranking_rating'; - $handler->display->display_options['sorts']['field_session_ranking_rating']['table'] = 'field_data_field_session_ranking'; - $handler->display->display_options['sorts']['field_session_ranking_rating']['field'] = 'field_session_ranking_rating'; - $handler->display->display_options['sorts']['field_session_ranking_rating']['exposed'] = TRUE; - $handler->display->display_options['sorts']['field_session_ranking_rating']['expose']['label'] = 'Session Rank'; - } + /* Sort criterion: Content: Session Rank (field_session_ranking:rating) */ + $handler->display->display_options['sorts']['field_session_ranking_rating']['id'] = 'field_session_ranking_rating'; + $handler->display->display_options['sorts']['field_session_ranking_rating']['table'] = 'field_data_field_session_ranking'; + $handler->display->display_options['sorts']['field_session_ranking_rating']['field'] = 'field_session_ranking_rating'; + $handler->display->display_options['sorts']['field_session_ranking_rating']['exposed'] = TRUE; + $handler->display->display_options['sorts']['field_session_ranking_rating']['expose']['label'] = 'Session Rank'; $handler->display->display_options['defaults']['arguments'] = FALSE; /* Contextual filter: OG membership: Group ID */ $handler->display->display_options['arguments']['gid']['id'] = 'gid'; @@ -1893,7 +2188,7 @@ function cod_session_views_default_views() { $handler->display->display_options['filters']['field_accepted_value_1']['table'] = 'field_data_field_accepted'; $handler->display->display_options['filters']['field_accepted_value_1']['field'] = 'field_accepted_value'; $handler->display->display_options['filters']['field_accepted_value_1']['value'] = array( - 'unprocessed' => 'unprocessed', + 'proposed' => 'proposed', 'accepted' => 'accepted', 'declined' => 'declined', 'featured' => 'featured', @@ -2178,12 +2473,12 @@ function cod_session_views_default_views() { $handler->display->display_options['fields']['field_speakers']['table'] = 'field_data_field_speakers'; $handler->display->display_options['fields']['field_speakers']['field'] = 'field_speakers'; $handler->display->display_options['fields']['field_speakers']['element_label_colon'] = FALSE; - /* Field: Field: First name */ + /* Field: User: First name */ $handler->display->display_options['fields']['field_profile_first']['id'] = 'field_profile_first'; $handler->display->display_options['fields']['field_profile_first']['table'] = 'field_data_field_profile_first'; $handler->display->display_options['fields']['field_profile_first']['field'] = 'field_profile_first'; $handler->display->display_options['fields']['field_profile_first']['relationship'] = 'field_speakers_target_id'; - /* Field: Field: Last name */ + /* Field: User: Last name */ $handler->display->display_options['fields']['field_profile_last']['id'] = 'field_profile_last'; $handler->display->display_options['fields']['field_profile_last']['table'] = 'field_data_field_profile_last'; $handler->display->display_options['fields']['field_profile_last']['field'] = 'field_profile_last'; @@ -2224,28 +2519,28 @@ function cod_session_views_default_views() { ); $handler->display->display_options['filters']['field_accepted_value']['group'] = 1; - /* Display: Page: Unprocessed */ - $handler = $view->new_display('page', 'Page: Unprocessed', 'page_1'); + /* Display: Page: Proposed */ + $handler = $view->new_display('page', 'Page: Proposed', 'page_1'); $handler->display->display_options['defaults']['title'] = FALSE; - $handler->display->display_options['title'] = 'Email speakers of unprocessed sessions'; - $handler->display->display_options['display_description'] = 'Email speakers of unprocessed sessions'; + $handler->display->display_options['title'] = 'Email speakers of proposed sessions'; + $handler->display->display_options['display_description'] = 'Email speakers of proposed sessions'; $handler->display->display_options['defaults']['hide_admin_links'] = FALSE; $handler->display->display_options['defaults']['header'] = FALSE; /* Header: Global: Text area */ $handler->display->display_options['header']['area']['id'] = 'area'; $handler->display->display_options['header']['area']['table'] = 'views'; $handler->display->display_options['header']['area']['field'] = 'area'; - $handler->display->display_options['header']['area']['label'] = 'Unprocessed speakers'; + $handler->display->display_options['header']['area']['label'] = 'Proposed speakers'; $handler->display->display_options['header']['area']['empty'] = TRUE; - $handler->display->display_options['header']['area']['content'] = 'Each speaker will receive one email per unprocessed session submission.'; + $handler->display->display_options['header']['area']['content'] = 'Each speaker will receive one email per proposed session submission.'; $handler->display->display_options['header']['area']['format'] = 'filtered_html'; $handler->display->display_options['defaults']['empty'] = FALSE; /* No results behavior: Global: Text area */ $handler->display->display_options['empty']['area']['id'] = 'area'; $handler->display->display_options['empty']['area']['table'] = 'views'; $handler->display->display_options['empty']['area']['field'] = 'area'; - $handler->display->display_options['empty']['area']['label'] = 'No unprocessed speakers'; - $handler->display->display_options['empty']['area']['content'] = 'There are no unprocessed speakers at the moment. '; + $handler->display->display_options['empty']['area']['label'] = 'No proposed speakers'; + $handler->display->display_options['empty']['area']['content'] = 'There are no proposed speakers at the moment. '; $handler->display->display_options['empty']['area']['format'] = 'filtered_html'; $handler->display->display_options['defaults']['filter_groups'] = FALSE; $handler->display->display_options['defaults']['filters'] = FALSE; @@ -2269,13 +2564,13 @@ function cod_session_views_default_views() { $handler->display->display_options['filters']['field_accepted_value']['table'] = 'field_data_field_accepted'; $handler->display->display_options['filters']['field_accepted_value']['field'] = 'field_accepted_value'; $handler->display->display_options['filters']['field_accepted_value']['value'] = array( - 'unprocessed' => 'unprocessed', + 'proposed' => 'proposed', ); $handler->display->display_options['filters']['field_accepted_value']['group'] = 1; - $handler->display->display_options['path'] = 'admin/conference/%/speakers/unprocessed'; + $handler->display->display_options['path'] = 'admin/conference/%/speakers/proposed'; $handler->display->display_options['menu']['type'] = 'default tab'; - $handler->display->display_options['menu']['title'] = 'Unprocessed'; - $handler->display->display_options['menu']['description'] = 'Email speakers of unprocessed sessions.'; + $handler->display->display_options['menu']['title'] = 'Proposed'; + $handler->display->display_options['menu']['description'] = 'Email speakers of proposed sessions.'; $handler->display->display_options['menu']['weight'] = '-30'; $handler->display->display_options['tab_options']['type'] = 'tab'; $handler->display->display_options['tab_options']['title'] = 'Speakers'; @@ -2943,7 +3238,7 @@ function cod_session_views_default_views() { $handler->display->display_options['arguments']['machine_name']['limit'] = '0'; /* Display: Content pane */ - $handler = $view->new_display('panel_pane', 'Content pane', 'panel_pane_1'); + $handler = $view->new_display('panel_pane', 'Content pane', 'track_session_admin'); $handler->display->display_options['allow']['use_pager'] = 0; $handler->display->display_options['allow']['items_per_page'] = 0; $handler->display->display_options['allow']['offset'] = 0; @@ -2963,6 +3258,309 @@ function cod_session_views_default_views() { 'label' => 'Taxonomy vocabulary: Machine name', ), ); + + /* Display: Session Filter */ + $handler = $view->new_display('panel_pane', 'Session Filter', 'track_session_filter'); + $handler->display->display_options['defaults']['style_plugin'] = FALSE; + $handler->display->display_options['style_plugin'] = 'list'; + $handler->display->display_options['style_options']['row_class'] = '[name_1]'; + $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']['fields'] = FALSE; + /* Field: Taxonomy term: Term ID */ + $handler->display->display_options['fields']['tid']['id'] = 'tid'; + $handler->display->display_options['fields']['tid']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['tid']['field'] = 'tid'; + $handler->display->display_options['fields']['tid']['label'] = ''; + $handler->display->display_options['fields']['tid']['exclude'] = TRUE; + $handler->display->display_options['fields']['tid']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['tid']['separator'] = ''; + /* Field: Taxonomy term: Name */ + $handler->display->display_options['fields']['name_1']['id'] = 'name_1'; + $handler->display->display_options['fields']['name_1']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['name_1']['field'] = 'name'; + $handler->display->display_options['fields']['name_1']['label'] = ''; + $handler->display->display_options['fields']['name_1']['exclude'] = TRUE; + $handler->display->display_options['fields']['name_1']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['name_1']['case'] = 'lower'; + $handler->display->display_options['fields']['name_1']['convert_spaces'] = TRUE; + /* Field: Taxonomy term: Name */ + $handler->display->display_options['fields']['name']['id'] = 'name'; + $handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['name']['field'] = 'name'; + $handler->display->display_options['fields']['name']['label'] = ''; + $handler->display->display_options['fields']['name']['alter']['text'] = '[name]'; + $handler->display->display_options['fields']['name']['alter']['make_link'] = TRUE; + $handler->display->display_options['fields']['name']['alter']['path'] = '2015/sessions/accepted/[tid]'; + $handler->display->display_options['fields']['name']['alter']['path_case'] = 'lower'; + $handler->display->display_options['fields']['name']['alter']['alt'] = '%2'; + $handler->display->display_options['fields']['name']['alter']['link_class'] = '!2'; + $handler->display->display_options['fields']['name']['alter']['word_boundary'] = FALSE; + $handler->display->display_options['fields']['name']['alter']['ellipsis'] = FALSE; + $handler->display->display_options['fields']['name']['element_class'] = '!2'; + $handler->display->display_options['fields']['name']['element_label_colon'] = FALSE; + /* Field: Taxonomy term: Session Track Link */ + $handler->display->display_options['fields']['session_track_link']['id'] = 'session_track_link'; + $handler->display->display_options['fields']['session_track_link']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['session_track_link']['field'] = 'session_track_link'; + $handler->display->display_options['fields']['session_track_link']['label'] = ''; + $handler->display->display_options['fields']['session_track_link']['exclude'] = TRUE; + $handler->display->display_options['fields']['session_track_link']['element_label_colon'] = FALSE; + $handler->display->display_options['defaults']['sorts'] = FALSE; + /* Sort criterion: Taxonomy term: Weight */ + $handler->display->display_options['sorts']['weight']['id'] = 'weight'; + $handler->display->display_options['sorts']['weight']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['sorts']['weight']['field'] = 'weight'; + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Contextual filter: Taxonomy vocabulary: Machine name */ + $handler->display->display_options['arguments']['machine_name']['id'] = 'machine_name'; + $handler->display->display_options['arguments']['machine_name']['table'] = 'taxonomy_vocabulary'; + $handler->display->display_options['arguments']['machine_name']['field'] = 'machine_name'; + $handler->display->display_options['arguments']['machine_name']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['machine_name']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['machine_name']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['machine_name']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['machine_name']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['machine_name']['limit'] = '0'; + /* Contextual filter: Session Status */ + $handler->display->display_options['arguments']['null']['id'] = 'null'; + $handler->display->display_options['arguments']['null']['table'] = 'views'; + $handler->display->display_options['arguments']['null']['field'] = 'null'; + $handler->display->display_options['arguments']['null']['ui_name'] = 'Session Status'; + $handler->display->display_options['arguments']['null']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['null']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['null']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['null']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['null']['summary_options']['items_per_page'] = '25'; + /* Contextual filter: Session Track Name */ + $handler->display->display_options['arguments']['null_1']['id'] = 'null_1'; + $handler->display->display_options['arguments']['null_1']['table'] = 'views'; + $handler->display->display_options['arguments']['null_1']['field'] = 'null'; + $handler->display->display_options['arguments']['null_1']['ui_name'] = 'Session Track Name'; + $handler->display->display_options['arguments']['null_1']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['null_1']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['null_1']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['null_1']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['argument_input'] = array( + 'machine_name' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Taxonomy vocabulary: Machine name', + ), + 'null' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Event NID', + ), + 'null_1' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Track ID', + ), + ); + + /* Display: Session Track Group */ + $handler = $view->new_display('panel_pane', 'Session Track Group', 'track_session_summary'); + $handler->display->display_options['defaults']['style_plugin'] = FALSE; + $handler->display->display_options['style_plugin'] = 'default'; + $handler->display->display_options['style_options']['row_class'] = '[name]'; + $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']['fields'] = FALSE; + /* Field: Taxonomy term: Term ID */ + $handler->display->display_options['fields']['tid']['id'] = 'tid'; + $handler->display->display_options['fields']['tid']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['tid']['field'] = 'tid'; + $handler->display->display_options['fields']['tid']['label'] = ''; + $handler->display->display_options['fields']['tid']['exclude'] = TRUE; + $handler->display->display_options['fields']['tid']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['tid']['separator'] = ''; + /* Field: Taxonomy term: Name */ + $handler->display->display_options['fields']['name']['id'] = 'name'; + $handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['name']['field'] = 'name'; + $handler->display->display_options['fields']['name']['label'] = ''; + $handler->display->display_options['fields']['name']['exclude'] = TRUE; + $handler->display->display_options['fields']['name']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['name']['case'] = 'lower'; + $handler->display->display_options['fields']['name']['convert_spaces'] = TRUE; + /* Field: Taxonomy term: Session Track Link */ + $handler->display->display_options['fields']['session_track_link']['id'] = 'session_track_link'; + $handler->display->display_options['fields']['session_track_link']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['session_track_link']['field'] = 'session_track_link'; + $handler->display->display_options['fields']['session_track_link']['label'] = ''; + $handler->display->display_options['fields']['session_track_link']['element_type'] = 'h2'; + $handler->display->display_options['fields']['session_track_link']['element_label_colon'] = FALSE; + /* Field: Global: View */ + $handler->display->display_options['fields']['view']['id'] = 'view'; + $handler->display->display_options['fields']['view']['table'] = 'views'; + $handler->display->display_options['fields']['view']['field'] = 'view'; + $handler->display->display_options['fields']['view']['label'] = ''; + $handler->display->display_options['fields']['view']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['view']['view'] = 'cod_session_sessions'; + $handler->display->display_options['fields']['view']['display'] = 'block_session_summary'; + $handler->display->display_options['fields']['view']['arguments'] = '[!tid]/!2'; + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Contextual filter: Taxonomy vocabulary: Machine name */ + $handler->display->display_options['arguments']['machine_name']['id'] = 'machine_name'; + $handler->display->display_options['arguments']['machine_name']['table'] = 'taxonomy_vocabulary'; + $handler->display->display_options['arguments']['machine_name']['field'] = 'machine_name'; + $handler->display->display_options['arguments']['machine_name']['default_action'] = 'empty'; + $handler->display->display_options['arguments']['machine_name']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['machine_name']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['machine_name']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['machine_name']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['machine_name']['limit'] = '0'; + /* Contextual filter: Global: Null */ + $handler->display->display_options['arguments']['null']['id'] = 'null'; + $handler->display->display_options['arguments']['null']['table'] = 'views'; + $handler->display->display_options['arguments']['null']['field'] = 'null'; + $handler->display->display_options['arguments']['null']['default_action'] = 'empty'; + $handler->display->display_options['arguments']['null']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['null']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['null']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['null']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['argument_input'] = array( + 'machine_name' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Taxonomy vocabulary: Machine name', + ), + 'null' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Session Status', + ), + ); + + /* Display: Session Schedule Filter */ + $handler = $view->new_display('panel_pane', 'Session Schedule Filter', 'schedule_session_tracks'); + $handler->display->display_options['defaults']['style_plugin'] = FALSE; + $handler->display->display_options['style_plugin'] = 'list'; + $handler->display->display_options['style_options']['row_class'] = '[name_1]'; + $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']['fields'] = FALSE; + /* Field: Taxonomy term: Term ID */ + $handler->display->display_options['fields']['tid']['id'] = 'tid'; + $handler->display->display_options['fields']['tid']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['tid']['field'] = 'tid'; + $handler->display->display_options['fields']['tid']['label'] = ''; + $handler->display->display_options['fields']['tid']['exclude'] = TRUE; + $handler->display->display_options['fields']['tid']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['tid']['separator'] = ''; + /* Field: Taxonomy term: Name */ + $handler->display->display_options['fields']['name_1']['id'] = 'name_1'; + $handler->display->display_options['fields']['name_1']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['name_1']['field'] = 'name'; + $handler->display->display_options['fields']['name_1']['label'] = ''; + $handler->display->display_options['fields']['name_1']['exclude'] = TRUE; + $handler->display->display_options['fields']['name_1']['element_label_colon'] = FALSE; + $handler->display->display_options['fields']['name_1']['case'] = 'lower'; + $handler->display->display_options['fields']['name_1']['convert_spaces'] = TRUE; + /* Field: Taxonomy term: Name */ + $handler->display->display_options['fields']['name']['id'] = 'name'; + $handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['name']['field'] = 'name'; + $handler->display->display_options['fields']['name']['label'] = ''; + $handler->display->display_options['fields']['name']['alter']['alter_text'] = TRUE; + $handler->display->display_options['fields']['name']['alter']['text'] = '[name]'; + $handler->display->display_options['fields']['name']['alter']['path'] = '!3?track_id=[tid]'; + $handler->display->display_options['fields']['name']['alter']['path_case'] = 'lower'; + $handler->display->display_options['fields']['name']['alter']['alt'] = '%2'; + $handler->display->display_options['fields']['name']['alter']['link_class'] = '!2'; + $handler->display->display_options['fields']['name']['alter']['word_boundary'] = FALSE; + $handler->display->display_options['fields']['name']['alter']['ellipsis'] = FALSE; + $handler->display->display_options['fields']['name']['element_class'] = '!2'; + $handler->display->display_options['fields']['name']['element_label_colon'] = FALSE; + /* Field: Taxonomy term: Session Track Link */ + $handler->display->display_options['fields']['session_track_link']['id'] = 'session_track_link'; + $handler->display->display_options['fields']['session_track_link']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['fields']['session_track_link']['field'] = 'session_track_link'; + $handler->display->display_options['fields']['session_track_link']['label'] = ''; + $handler->display->display_options['fields']['session_track_link']['exclude'] = TRUE; + $handler->display->display_options['fields']['session_track_link']['element_label_colon'] = FALSE; + $handler->display->display_options['defaults']['sorts'] = FALSE; + /* Sort criterion: Taxonomy term: Weight */ + $handler->display->display_options['sorts']['weight']['id'] = 'weight'; + $handler->display->display_options['sorts']['weight']['table'] = 'taxonomy_term_data'; + $handler->display->display_options['sorts']['weight']['field'] = 'weight'; + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Contextual filter: Taxonomy vocabulary: Machine name */ + $handler->display->display_options['arguments']['machine_name']['id'] = 'machine_name'; + $handler->display->display_options['arguments']['machine_name']['table'] = 'taxonomy_vocabulary'; + $handler->display->display_options['arguments']['machine_name']['field'] = 'machine_name'; + $handler->display->display_options['arguments']['machine_name']['default_action'] = 'not found'; + $handler->display->display_options['arguments']['machine_name']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['machine_name']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['machine_name']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['machine_name']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['arguments']['machine_name']['limit'] = '0'; + /* Contextual filter: Session Track Name */ + $handler->display->display_options['arguments']['null_1']['id'] = 'null_1'; + $handler->display->display_options['arguments']['null_1']['table'] = 'views'; + $handler->display->display_options['arguments']['null_1']['field'] = 'null'; + $handler->display->display_options['arguments']['null_1']['ui_name'] = 'Session Track Name'; + $handler->display->display_options['arguments']['null_1']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['null_1']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['null_1']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['null_1']['summary_options']['items_per_page'] = '25'; + /* Contextual filter: Day */ + $handler->display->display_options['arguments']['null']['id'] = 'null'; + $handler->display->display_options['arguments']['null']['table'] = 'views'; + $handler->display->display_options['arguments']['null']['field'] = 'null'; + $handler->display->display_options['arguments']['null']['ui_name'] = 'Day'; + $handler->display->display_options['arguments']['null']['default_argument_type'] = 'fixed'; + $handler->display->display_options['arguments']['null']['summary']['number_of_records'] = '0'; + $handler->display->display_options['arguments']['null']['summary']['format'] = 'default_summary'; + $handler->display->display_options['arguments']['null']['summary_options']['items_per_page'] = '25'; + $handler->display->display_options['argument_input'] = array( + 'machine_name' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Taxonomy vocabulary: Machine name', + ), + 'null_1' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Track ID', + ), + 'null' => array( + 'type' => 'user', + 'context' => 'entity:comment.author', + 'context_optional' => 0, + 'panel' => '0', + 'fixed' => '', + 'label' => 'Day', + ), + ); $export['cod_session_tracks'] = $view; $view = new view(); @@ -3031,7 +3629,7 @@ function cod_session_views_default_views() { ); /* Display: Page */ - $handler = $view->new_display('page', 'Page', 'page'); + $handler = $view->new_display('page', 'Page', 'page_sessions_mine'); $handler->display->display_options['path'] = 'user/%/sessions'; $handler->display->display_options['menu']['type'] = 'tab'; $handler->display->display_options['menu']['title'] = 'My Sessions'; diff --git a/cod_session/views/cod_session_views_handler_field_track_link.inc b/cod_session/views/cod_session_views_handler_field_track_link.inc new file mode 100644 index 0000000000000000000000000000000000000000..d4e3b22eacfe63a3678903f62e3b6f7a7a3c7779 --- /dev/null +++ b/cod_session/views/cod_session_views_handler_field_track_link.inc @@ -0,0 +1,68 @@ +ensure_my_table(); + $this->add_additional_fields(); + } + + /* + * This render array is specifically designed to work with cod_sessions_tracks + * View. Eventually it'd be good to not hard code the arguments and get them + * from context. + */ + function render($values) { + if ($values === TRUE) { + return; + } + + // Generate as link. + $this->options['alter']['make_link'] = TRUE; + + // Get the host (event) entity. + $attributes = array(); + $more_prefix = ''; + $more_suffix = ''; + // Get the current taxonomy term, if its set + $path = current_path(); + // Making a global more link requires some changes + if ($this->field == 'sessions_more_link' && $values === FALSE) { + $values = new stdClass(); + $values->taxonomy_term_data_name = $this->view->argument['tid']->validated_title; + } + if (isset($this->view->args[2])) { + $path = substr(current_path(), 0, strrpos(current_path(), '/')); + if ($this->view->args[2] == $values->tid) { + $attributes = array('attributes' => array('class' => array('clicked'))); + $active = TRUE; + } + } + if (!isset($active)) { + $path = $path . '/' . str_replace(' ', '-', $this->case_transform($values->taxonomy_term_data_name, 'lower')); + } + + return l($more_prefix . $values->taxonomy_term_data_name . $more_suffix, $path, $attributes); + } +}