From 30ab0857a1b5c7e4ddda1647a051b9277e68c2a8 Mon Sep 17 00:00:00 2001
From: thewilkybarkid <chriswilkinson84@gmail.com>
Date: Fri, 6 Sep 2013 10:45:05 +0100
Subject: [PATCH] Add a related links field for basic pages and view to display

---
 cambridge_lite.install | 113 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)

diff --git a/cambridge_lite.install b/cambridge_lite.install
index 9d40fdb..f60aa03 100644
--- a/cambridge_lite.install
+++ b/cambridge_lite.install
@@ -207,6 +207,12 @@ function cambridge_lite_install() {
         'uri_scheme' => 'public',
       ),
     ),
+    'field_related_links' => array(
+      'field_name' => 'field_related_links',
+      'label' => st('Related links'),
+      'cardinality' => -1,
+      'type' => 'link_field',
+    ),
     'field_carousel_image' => array(
       'field_name' => 'field_carousel_image',
       'label' => st('Carousel image'),
@@ -277,6 +283,27 @@ function cambridge_lite_install() {
         ),
       ),
     ),
+    'field_related_links' => array(
+      'entity_type' => 'node',
+      'bundle' => 'page',
+      'field_name' => 'field_related_links',
+      'label' => st('Related links'),
+      'cardinality' => -1,
+      'type' => 'field_related_links',
+      'settings' => array(
+        'title' => 'required',
+      ),
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'type' => 'hidden',
+        ),
+        'teaser' => array(
+          'label' => 'hidden',
+          'type' => 'hidden',
+        ),
+      ),
+    ),
     'field_carousel_image' => array(
       'entity_type' => 'node',
       'bundle' => 'carousel_item',
@@ -656,4 +683,90 @@ function cambridge_lite_install() {
       )
     )
     ->execute();
+
+  // Create a view for the related links field and make it visible in the sidebar.
+
+  $view = new view();
+  $view->name = 'related_links';
+  $view->description = 'Display a list of related links for a node.';
+  $view->tag = 'default';
+  $view->base_table = 'node';
+  $view->human_name = 'Related links';
+  $view->core = 7;
+  $view->api_version = '3.0';
+  $view->disabled = FALSE;
+
+  $handler = $view->new_display('default', 'Master', 'default');
+  $handler->display->display_options['title'] = 'Related links';
+  $handler->display->display_options['use_more_always'] = FALSE;
+  $handler->display->display_options['access']['type'] = 'perm';
+  $handler->display->display_options['cache']['type'] = 'none';
+  $handler->display->display_options['query']['type'] = 'views_query';
+  $handler->display->display_options['exposed_form']['type'] = 'basic';
+  $handler->display->display_options['pager']['type'] = 'none';
+  $handler->display->display_options['style_plugin'] = 'list';
+  $handler->display->display_options['style_options']['default_row_class'] = FALSE;
+  $handler->display->display_options['style_options']['row_class_special'] = FALSE;
+  $handler->display->display_options['style_options']['class'] = 'campl-unstyled-list campl-related-links';
+  $handler->display->display_options['style_options']['wrapper_class'] = '';
+  $handler->display->display_options['row_plugin'] = 'fields';
+  $handler->display->display_options['fields']['field_related_links']['id'] = 'field_related_links';
+  $handler->display->display_options['fields']['field_related_links']['table'] = 'field_data_field_related_links';
+  $handler->display->display_options['fields']['field_related_links']['field'] = 'field_related_links';
+  $handler->display->display_options['fields']['field_related_links']['label'] = '';
+  $handler->display->display_options['fields']['field_related_links']['element_label_colon'] = FALSE;
+  $handler->display->display_options['fields']['field_related_links']['element_default_classes'] = FALSE;
+  $handler->display->display_options['fields']['field_related_links']['click_sort_column'] = 'url';
+  $handler->display->display_options['fields']['field_related_links']['group_rows'] = FALSE;
+  $handler->display->display_options['fields']['field_related_links']['delta_offset'] = '0';
+  $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']['default_action'] = 'default';
+  $handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node';
+  $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';
+  $handler->display->display_options['arguments']['nid']['specify_validation'] = TRUE;
+  $handler->display->display_options['arguments']['nid']['validate']['type'] = 'node';
+  $handler->display->display_options['arguments']['nid']['validate_options']['types'] = array(
+    'page' => 'page',
+  );
+  $handler->display->display_options['arguments']['nid']['validate']['fail'] = 'empty';
+  $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;
+  $handler->display->display_options['filters']['field_related_links_url']['id'] = 'field_related_links_url';
+  $handler->display->display_options['filters']['field_related_links_url']['table'] = 'field_data_field_related_links';
+  $handler->display->display_options['filters']['field_related_links_url']['field'] = 'field_related_links_url';
+  $handler->display->display_options['filters']['field_related_links_url']['operator'] = 'not empty';
+
+  $view->new_display('block', 'Block', 'block');
+
+  $view->update();
+
+  $view->init_display();
+
+  $view->save();
+
+  db_insert('block')
+    ->fields(
+      array(
+        'module' => 'views',
+        'delta' => 'related_links-block',
+        'theme' => 'cambridge_theme',
+        'status' => 1,
+        'weight' => 1,
+        'region' => 'sidebar',
+        'custom' => 0,
+        'visibility' => 0,
+        'pages' => '',
+        'title' => '',
+        'cache' => DRUPAL_NO_CACHE,
+      )
+    )
+    ->execute();
 }
-- 
GitLab