diff sites/all/modules/quicktabs/plugins/QuickNodeContent.inc @ 2:b74b41bb73f0

-- Google analytics module
author danieleb <danielebarchiesi@me.com>
date Thu, 22 Aug 2013 17:22:54 +0100
parents
children a75ead649730
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sites/all/modules/quicktabs/plugins/QuickNodeContent.inc	Thu Aug 22 17:22:54 2013 +0100
@@ -0,0 +1,72 @@
+<?php
+
+/**
+ * Class for tab content of type "node" - this is for rendering a node as tab
+ * content.
+ */
+class QuickNodeContent extends QuickContent {
+  
+  public static function getType() {
+    return 'node';
+  }
+
+  public function optionsForm($delta, $qt) {
+    $tab = $this->settings;
+    $form = array();
+    $form['node']['nid'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Node'),
+      '#description' => t('The node ID of the node.'),
+      '#maxlength' => 10,
+      '#size' => 20,
+      '#default_value' => isset($tab['nid']) ? $tab['nid'] : '',
+    );
+    $form['node']['teaser'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Teaser view'),
+      '#default_value' => isset($tab['teaser']) ? $tab['teaser'] : 0,
+    );
+    $form['node']['hide_title'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Hide the title of this node'),
+      '#default_value' => isset($tab['hide_title']) ? $tab['hide_title'] : 1,
+    );
+    return $form;
+  }
+
+  public function render($hide_empty = FALSE, $args = array()) {
+    if ($this->rendered_content) {
+      return $this->rendered_content;
+    }
+    $item = $this->settings;
+    if (!empty($args)) {
+      // The args have been passed in from an ajax request.
+      // The first element of the args array is the qt_name, which we don't need
+      // for this content type.
+      array_shift($args);
+      list($item['nid'], $item['teaser'], $item['hide_title']) = $args;
+    }
+    $output = array();
+    if (isset($item['nid'])) {
+      $node = node_load($item['nid']);
+      if (!empty($node)) {
+        if (node_access('view', $node)) {
+          $buildmode = $item['teaser'] ? 'teaser' : 'full';
+          $nstruct = node_view($node, $buildmode);
+          if ($item['hide_title']) {
+            $nstruct['#node']->title = NULL;
+          }
+          $output = $nstruct;
+        }
+        elseif (!$hide_empty) {
+          $output = array('#markup' => theme('quicktabs_tab_access_denied', array('tab' => $item)));
+        }
+      }
+    }
+    return $output;
+  }
+  
+  public function getAjaxKeys() {
+    return array('nid', 'teaser', 'hide_title');
+  }
+}
\ No newline at end of file