|  | @@ -8,6 +8,12 @@ function tripal_core_node_toc_form($form, &$form_state, $node) {
 | 
	
		
			
				|  |  |    $form["#tree"] = TRUE;
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    $form["instructions"] = array(
 | 
	
		
			
				|  |  | +    '#type' => 'fieldset',
 | 
	
		
			
				|  |  | +    '#collapsed' => TRUE,
 | 
	
		
			
				|  |  | +    '#collapsible' => TRUE,
 | 
	
		
			
				|  |  | +    '#title' => 'Instructions',
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +  $form["instructions"]["main"] = array(
 | 
	
		
			
				|  |  |      '#markup' => '</p>' . t('Below is a list of the titles of
 | 
	
		
			
				|  |  |        content panes that can appear on this page.  These titles appear in the 
 | 
	
		
			
				|  |  |        the following order in the Table of Contents (TOC). You may rename 
 | 
	
	
		
			
				|  | @@ -25,7 +31,10 @@ function tripal_core_node_toc_form($form, &$form_state, $node) {
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    // Get the content array for this node, then pass it through the 
 | 
	
		
			
				|  |  |    // tripal_core_node_view_alter which generates the TOC.  After that
 | 
	
		
			
				|  |  | -  // we can use the $build array to build the form.
 | 
	
		
			
				|  |  | +  // we can use the $build array to build the form. We have to add
 | 
	
		
			
				|  |  | +  // a 'tripal_toc_mode' to the $node because we need to give the mode
 | 
	
		
			
				|  |  | +  // to the tripal_core_node_view_build_toc function.
 | 
	
		
			
				|  |  | +  $node->tripal_toc_mode = 'manage_node';
 | 
	
		
			
				|  |  |    node_build_content($node);
 | 
	
		
			
				|  |  |    $build = $node->content;
 | 
	
		
			
				|  |  |    $build["#node"] = $node;
 | 
	
	
		
			
				|  | @@ -34,14 +43,20 @@ function tripal_core_node_toc_form($form, &$form_state, $node) {
 | 
	
		
			
				|  |  |    // Iterate through the built items and add form elemetns for each one.
 | 
	
		
			
				|  |  |    foreach(element_children($build) as $key) {
 | 
	
		
			
				|  |  |      $element = $build[$key];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      if (array_key_exists('#tripal_toc_id', $element)) {
 | 
	
		
			
				|  |  |        $toc_id = $element['#tripal_toc_id'];
 | 
	
		
			
				|  |  |        $toc_title = $element['#tripal_toc_title'];
 | 
	
		
			
				|  |  |        $toc_weight = $element['#weight'];
 | 
	
		
			
				|  |  | +      $toc_hide = $element['#hide'];
 | 
	
		
			
				|  |  |        $form['toc_items'][$toc_id]['title'] = array(
 | 
	
		
			
				|  |  |          '#type' => 'textfield',
 | 
	
		
			
				|  |  |          '#default_value' => $toc_title,
 | 
	
		
			
				|  |  |        );
 | 
	
		
			
				|  |  | +      $form['toc_items'][$toc_id]['hide'] = array(
 | 
	
		
			
				|  |  | +        '#type' => 'checkbox',
 | 
	
		
			
				|  |  | +        '#default_value' => $toc_hide,
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  |        $form['toc_items'][$toc_id]['weight'] = array(
 | 
	
		
			
				|  |  |          '#type' => 'textfield',
 | 
	
		
			
				|  |  |          '#default_value' => $toc_weight,
 | 
	
	
		
			
				|  | @@ -59,6 +74,27 @@ function tripal_core_node_toc_form($form, &$form_state, $node) {
 | 
	
		
			
				|  |  |      '#name' => 'toc_submit',
 | 
	
		
			
				|  |  |      '#value' => t('Submit'),
 | 
	
		
			
				|  |  |    );
 | 
	
		
			
				|  |  | +  $form['unset'] = array(
 | 
	
		
			
				|  |  | +    '#type' => 'submit',
 | 
	
		
			
				|  |  | +    '#name' => 'toc_unset',
 | 
	
		
			
				|  |  | +    '#value' => t('Unset Node Customizations'),
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  // Check to see if this node's TOC is specifically being managed.
 | 
	
		
			
				|  |  | +  $sql = "SELECT count(*) FROM {tripal_toc} where nid = :nid";
 | 
	
		
			
				|  |  | +  $managed_items = db_query($sql, array(':nid' => $node->nid))->fetchField();
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  if ($managed_items > 0) {
 | 
	
		
			
				|  |  | +    $form['is_managed'] = array(
 | 
	
		
			
				|  |  | +      '#markup' => '<p><font color="red">' .
 | 
	
		
			
				|  |  | +      t('This page currently has customiations to the TOC.</font> This means
 | 
	
		
			
				|  |  | +        that any customzations for the content type are overriden. Click the
 | 
	
		
			
				|  |  | +        "Unset Node Customizations" button above to remove page-level
 | 
	
		
			
				|  |  | +        customizations and default to the content type settings.') . '</p>',
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  |    return $form;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  /**
 | 
	
	
		
			
				|  | @@ -77,7 +113,7 @@ function theme_tripal_node_toc_items_table($variables) {
 | 
	
		
			
				|  |  |    usort($toc_items, 'theme_tripal_node_sort_toc_items');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // Build the table header.
 | 
	
		
			
				|  |  | -  $headers = array('Content Pane Name', 'Weight');
 | 
	
		
			
				|  |  | +  $headers = array('Content Pane Name', 'Hide', 'Weight');
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    // Format the form elements as rows in the table.
 | 
	
		
			
				|  |  |    $rows = array();
 | 
	
	
		
			
				|  | @@ -85,6 +121,7 @@ function theme_tripal_node_toc_items_table($variables) {
 | 
	
		
			
				|  |  |      $rows[] = array(
 | 
	
		
			
				|  |  |        'data' => array(
 | 
	
		
			
				|  |  |          drupal_render($item['title']),
 | 
	
		
			
				|  |  | +        drupal_render($item['hide']),
 | 
	
		
			
				|  |  |          drupal_render($item['weight']),
 | 
	
		
			
				|  |  |        ),
 | 
	
		
			
				|  |  |        'class' => array('draggable'),
 | 
	
	
		
			
				|  | @@ -142,30 +179,48 @@ function tripal_core_node_toc_form_submit($form, &$form_state) {
 | 
	
		
			
				|  |  |    $toc_items = $form_state['values']['toc_items'];
 | 
	
		
			
				|  |  |    $node      = $form_state['values']['node'];
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  | -  $transaction = db_transaction();
 | 
	
		
			
				|  |  | -  try {
 | 
	
		
			
				|  |  | -    // First delete any settings for this node
 | 
	
		
			
				|  |  | -    db_delete('tripal_toc')
 | 
	
		
			
				|  |  | -      ->condition('nid', $node->nid)
 | 
	
		
			
				|  |  | -      ->execute();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    // Second add in any new settings for this node 
 | 
	
		
			
				|  |  | -    foreach ($toc_items as $toc_id => $item) {
 | 
	
		
			
				|  |  | -      db_insert('tripal_toc')
 | 
	
		
			
				|  |  | -        ->fields(array(
 | 
	
		
			
				|  |  | -          'node_type' => $node->type,
 | 
	
		
			
				|  |  | -          'key' => $toc_id,
 | 
	
		
			
				|  |  | -          'title' => $item['title'],
 | 
	
		
			
				|  |  | -          'weight' => $item['weight'],
 | 
	
		
			
				|  |  | -          'nid' => $node->nid,
 | 
	
		
			
				|  |  | -        ))
 | 
	
		
			
				|  |  | +  if ($form_state['clicked_button']['#name'] == "toc_submit") { 
 | 
	
		
			
				|  |  | +    $transaction = db_transaction();
 | 
	
		
			
				|  |  | +    try {
 | 
	
		
			
				|  |  | +      // First delete any settings for this node
 | 
	
		
			
				|  |  | +      db_delete('tripal_toc')
 | 
	
		
			
				|  |  | +        ->condition('nid', $node->nid)
 | 
	
		
			
				|  |  |          ->execute();
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +      // Second add in any new settings for this node 
 | 
	
		
			
				|  |  | +      foreach ($toc_items as $toc_id => $item) {
 | 
	
		
			
				|  |  | +        db_insert('tripal_toc')
 | 
	
		
			
				|  |  | +          ->fields(array(
 | 
	
		
			
				|  |  | +            'node_type' => $node->type,
 | 
	
		
			
				|  |  | +            'key' => $toc_id,
 | 
	
		
			
				|  |  | +            'title' => $item['title'],
 | 
	
		
			
				|  |  | +            'weight' => $item['weight'],
 | 
	
		
			
				|  |  | +            'nid' => $node->nid,
 | 
	
		
			
				|  |  | +            'hide' => $item['hide'],
 | 
	
		
			
				|  |  | +          ))
 | 
	
		
			
				|  |  | +          ->execute();
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      drupal_set_message("TOC changes successfully applied to this node only.");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    catch (Exception $e) {
 | 
	
		
			
				|  |  | +      $transaction->rollback();
 | 
	
		
			
				|  |  | +      drupal_set_message("Failed to apply TOC changes.", "error");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    drupal_set_message("TOC changes successfully applied to this node only.");
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  catch (Exception $e) {
 | 
	
		
			
				|  |  | -    $transaction->rollback();
 | 
	
		
			
				|  |  | -    drupal_set_message("Failed to apply TOC changes.", "error");
 | 
	
		
			
				|  |  | +  if ($form_state['clicked_button']['#name'] == "toc_unset") {
 | 
	
		
			
				|  |  | +    $transaction = db_transaction();
 | 
	
		
			
				|  |  | +    try {
 | 
	
		
			
				|  |  | +      // First delete any settings for this node
 | 
	
		
			
				|  |  | +      db_delete('tripal_toc')
 | 
	
		
			
				|  |  | +        ->condition('nid', $node->nid)
 | 
	
		
			
				|  |  | +        ->execute();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      drupal_set_message("TOC is no longer customized specifically for this page. Now using the content type settings.");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    catch (Exception $e) {
 | 
	
		
			
				|  |  | +      $transaction->rollback();
 | 
	
		
			
				|  |  | +      drupal_set_message("Failed to apply TOC changes.", "error");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -174,10 +229,11 @@ function tripal_core_node_toc_form_submit($form, &$form_state) {
 | 
	
		
			
				|  |  |   * 
 | 
	
		
			
				|  |  |   * @param $build
 | 
	
		
			
				|  |  |   *   The build array passed to hook_node_view_alter()
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  | -function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  | +function tripal_core_node_view_build_toc(&$build) {
 | 
	
		
			
				|  |  |    global $theme;
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    // if this is not a full node view, we do not want to alter
 | 
	
		
			
				|  |  |    if ($build['#view_mode'] != 'full' OR !array_key_exists('#tripal_generic_node_template', $build)) {
 | 
	
		
			
				|  |  |      return;
 | 
	
	
		
			
				|  | @@ -186,6 +242,18 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |    $node_type = $build["#node"]->type;
 | 
	
		
			
				|  |  |    $nid = $build["#node"]->nid;
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  | +  // The mode alters the format of the build array. There are three types of
 | 
	
		
			
				|  |  | +  // modes: "display", "manage_node", "manage_type".  If "display" is provided
 | 
	
		
			
				|  |  | +  // then the build array is formatted for the display of the content.
 | 
	
		
			
				|  |  | +  // If "manage_node" is provided then the build array will contain all
 | 
	
		
			
				|  |  | +  // content panes regardless if the pane should be hidden. This allows
 | 
	
		
			
				|  |  | +  // the management tool to find all content panes and their settings. If
 | 
	
		
			
				|  |  | +  // "manage_type" is provided then node-specific content panes are
 | 
	
		
			
				|  |  | +  // excluded.  Node-specific content panes are those that appear only on
 | 
	
		
			
				|  |  | +  // specific nodes and therefore should not be used when managing the
 | 
	
		
			
				|  |  | +  // TOC for a content type.
 | 
	
		
			
				|  |  | +  $mode = isset($build["#node"]->tripal_toc_mode) ? $build["#node"]->tripal_toc_mode : "display";
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    $cache = cache_get("theme_registry:$theme", 'cache');
 | 
	
		
			
				|  |  |    $node = $build['#node'];
 | 
	
	
		
			
				|  | @@ -217,49 +285,51 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |        // named 'field_resource_blocks', 'field_resource_titles', and 'field_resource_links'
 | 
	
		
			
				|  |  |        // these fields can be added on the Drupal content types page and were
 | 
	
		
			
				|  |  |        // specifically recoginzed by Tripal v1.1.
 | 
	
		
			
				|  |  | -      if ($key == "field_resource_links") {
 | 
	
		
			
				|  |  | +      if ($mode != "manage_type" and $key == "field_resource_links") {
 | 
	
		
			
				|  |  |          // links should just appear on the sidebar as is and not open up a panel
 | 
	
		
			
				|  |  |          foreach (element_children($build[$key]) as $index) {
 | 
	
		
			
				|  |  |            $element = $build[$key][$index];
 | 
	
		
			
				|  |  |            $weight = 0;
 | 
	
		
			
				|  |  | +          $toc_item_id = "resource-$index";
 | 
	
		
			
				|  |  | +          
 | 
	
		
			
				|  |  |            $parts = explode("|", $element['#markup']);
 | 
	
		
			
				|  |  |            if (count($parts) == 2) {
 | 
	
		
			
				|  |  | -            $toc[$weight][$parts[0]] = "<div class=\"tripal_toc_list_item\">" . l($parts[0], $parts[1], array('attributes' => array('target' => '_blank'))) . "</div>";
 | 
	
		
			
				|  |  | +            $toc[$weight][$parts[0]] = "<div id=\"$toc_item_id\" class=\"tripal_toc_list_item\">" . l($parts[0], $parts[1], array('attributes' => array('target' => '_blank'))) . "</div>";
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |            else {
 | 
	
		
			
				|  |  | -            $toc[$weight][$parts[0]] = "<div class=\"tripal_toc_list_item\">" . $element['#markup'] . "</div>";
 | 
	
		
			
				|  |  | +            $toc[$weight][$parts[0]] = "<div id=\"$toc_item_id\" class=\"tripal_toc_list_item\">" . $element['#markup'] . "</div>";
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |            // remove this link from the build array as we've moved it to appear in the TOC
 | 
	
		
			
				|  |  |            unset($build[$key]);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          continue;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      if ($key == "field_resource_titles") {
 | 
	
		
			
				|  |  | +      if ($mode != "manage_type" and $key == "field_resource_titles") {
 | 
	
		
			
				|  |  |          // ignore these, we will use them in the field_resource_blocks if
 | 
	
		
			
				|  |  |          // statement below
 | 
	
		
			
				|  |  |          continue;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      if ($key == "field_resource_blocks") {
 | 
	
		
			
				|  |  | +      if ($mode != "manage_type" and $key == "field_resource_blocks") {
 | 
	
		
			
				|  |  |          foreach (element_children($build[$key]) as $index) {
 | 
	
		
			
				|  |  | -          
 | 
	
		
			
				|  |  |            // get the details and the title
 | 
	
		
			
				|  |  |            $weight = 0;
 | 
	
		
			
				|  |  | +          $hide = 0;
 | 
	
		
			
				|  |  |            $markup = $build[$key][$index]["#markup"];
 | 
	
		
			
				|  |  |            $toc_item_id = "resource-$index";
 | 
	
		
			
				|  |  | -          
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            // Get any overrides for this key.
 | 
	
		
			
				|  |  |            $overrides = tripal_core_get_toc_overrides($nid, $toc_item_id, $node_type);
 | 
	
		
			
				|  |  | -          
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            // If the element should be hidden then unset this key the build
 | 
	
		
			
				|  |  |            // array continue to the next one
 | 
	
		
			
				|  |  | -          if ($overrides['hide'] == 1) {
 | 
	
		
			
				|  |  | -            unset($build[$key]);
 | 
	
		
			
				|  |  | +          if ($mode == "display" and $overrides['hide'] == 1) {
 | 
	
		
			
				|  |  |              continue;
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            $toc_item_title = $build["field_resource_titles"][$index]["#markup"];
 | 
	
		
			
				|  |  |            $toc_item_title = $overrides['title'] ? $overrides['title'] : $toc_item_title;
 | 
	
		
			
				|  |  |            $weight = $overrides['weight'] ? $overrides['weight'] : $weight;
 | 
	
		
			
				|  |  | +          $hide = $overrides['hide'] ? $overrides['hide'] : $hide;
 | 
	
		
			
				|  |  |            $updated_markup = "
 | 
	
		
			
				|  |  |              <div id=\"$toc_item_id-tripal-data-pane\" class=\"tripal-data-pane\">
 | 
	
		
			
				|  |  |                <div class=\"$toc_item_id-tripal-data-pane-title tripal-data-pane-title\">$toc_item_title</div>
 | 
	
	
		
			
				|  | @@ -272,15 +342,20 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |            $build[$toc_item_id]['#tripal_toc_id'] = $toc_item_id;
 | 
	
		
			
				|  |  |            $build[$toc_item_id]['#tripal_toc_title'] = $toc_item_title;
 | 
	
		
			
				|  |  |            $build[$toc_item_id]['#weight'] = $weight;
 | 
	
		
			
				|  |  | +          $build[$toc_item_id]['#hide'] = $hide;
 | 
	
		
			
				|  |  |            // add the entry to the TOC
 | 
	
		
			
				|  |  | -          $toc_item_link = "<div class=\"tripal_toc_list_item\"><a id=\"$toc_item_id\" class=\"tripal_toc_list_item_link\" href=\"?pane=$toc_item_id\">$toc_item_title</a></div>";
 | 
	
		
			
				|  |  | +          $toc_item_link = "
 | 
	
		
			
				|  |  | +            <div class=\"tripal_toc_list_item\">
 | 
	
		
			
				|  |  | +              <a id=\"$toc_item_id\" class=\"tripal_toc_list_item_link\" href=\"?pane=$toc_item_id\">$toc_item_title</a>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          ";
 | 
	
		
			
				|  |  |            $toc[$weight][$toc_item_title] = $toc_item_link;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // Remove the key from the build array. We have have replaced it
 | 
	
		
			
				|  |  |          unset($build[$key]);
 | 
	
		
			
				|  |  |          unset($build["field_resource_titles"]);
 | 
	
		
			
				|  |  |          continue;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +      } // end if ($mode != "manage_type" and $key == "field_resource_blocks") {
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |        // Skip any keys we may have already handled. This is the case for
 | 
	
		
			
				|  |  |        // the field_resource_blocks where we removed the old CCK fields
 | 
	
	
		
			
				|  | @@ -298,6 +373,7 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |        $toc_item_id    = $key;
 | 
	
		
			
				|  |  |        $toc_item_link  = '';
 | 
	
		
			
				|  |  |        $weight = 0;
 | 
	
		
			
				|  |  | +      $hide = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        // get the title for the table of contents.  Tripal templates should
 | 
	
		
			
				|  |  |        // have a '#tripal_toc_title' element in the build array
 | 
	
	
		
			
				|  | @@ -312,27 +388,28 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |        if (array_key_exists('#weight', $build[$key])) {
 | 
	
		
			
				|  |  |          $weight = $build[$key]['#weight'];
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +      if (array_key_exists('#tripal_toc_id', $build[$key])) {
 | 
	
		
			
				|  |  | +        $toc_item_id = $build[$key]['#tripal_toc_id'];
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        
 | 
	
		
			
				|  |  |        // Get any overrides for this key.
 | 
	
		
			
				|  |  |        $overrides = tripal_core_get_toc_overrides($nid, $toc_item_id, $node_type);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        
 | 
	
		
			
				|  |  |        // If the element should be hidden then unset this key the build
 | 
	
		
			
				|  |  |        // array continue to the next one
 | 
	
		
			
				|  |  | -      if ($overrides['hide'] == 1) {
 | 
	
		
			
				|  |  | +      if ($mode == "display" and $overrides['hide'] == 1) {
 | 
	
		
			
				|  |  |          unset($build[$key]);
 | 
	
		
			
				|  |  |          continue;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      // now override the title if a value is set in the tripal_toc table
 | 
	
		
			
				|  |  | +      // now override the title, weight, hidden values if a value is set in the tripal_toc table
 | 
	
		
			
				|  |  |        $toc_item_title = $overrides['title'] ? $overrides['title'] : $toc_item_title;
 | 
	
		
			
				|  |  |        $weight = $overrides['weight'] ? $overrides['weight'] : $weight;
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | -      if (array_key_exists('#tripal_toc_id', $build[$key])) {
 | 
	
		
			
				|  |  | -        $toc_item_id = $build[$key]['#tripal_toc_id'];
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +      $hide = $overrides['hide'] ? $overrides['hide'] : $hide;
 | 
	
		
			
				|  |  |        $toc_item_link = "<div class=\"tripal_toc_list_item\"><a id=\"$toc_item_id\" class=\"tripal_toc_list_item_link\" href=\"?pane=$toc_item_id\">$toc_item_title</a></div>";
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        //-----------------------
 | 
	
		
			
				|  |  |        // GET THE MARKUP FOR EACH ELEMENT
 | 
	
		
			
				|  |  |        //-----------------------
 | 
	
	
		
			
				|  | @@ -348,18 +425,21 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |        elseif (array_key_exists('#value', $build[$key]) and trim($build[$key]['#value'])) {
 | 
	
		
			
				|  |  |          $markup = $build[$key]['#markup'];
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  |        // if we have no '#markup' field then this element has not yet
 | 
	
		
			
				|  |  |        // been rendered.  Let's render it and substitute that for markup
 | 
	
		
			
				|  |  |        if (!$markup) {
 | 
	
		
			
				|  |  |          $markup = trim(render($build[$key]));
 | 
	
		
			
				|  |  | -        $build[$key] = array(
 | 
	
		
			
				|  |  | -          '#markup' => $markup,
 | 
	
		
			
				|  |  | -          '#tripal_toc_id' => $toc_item_id,
 | 
	
		
			
				|  |  | -          '#tripal_toc_title' => $toc_item_title,
 | 
	
		
			
				|  |  | -          '#weight' => $weight,
 | 
	
		
			
				|  |  | -        );
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // Setup the content array for this element
 | 
	
		
			
				|  |  | +      $build[$key] = array(
 | 
	
		
			
				|  |  | +        '#markup' => $markup,
 | 
	
		
			
				|  |  | +        '#tripal_toc_id' => $toc_item_id,
 | 
	
		
			
				|  |  | +        '#tripal_toc_title' => $toc_item_title,
 | 
	
		
			
				|  |  | +        '#weight' => $weight,
 | 
	
		
			
				|  |  | +        '#hide' => $hide,
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |          // if we still don't have markup then skip this one
 | 
	
		
			
				|  |  |        if (!$markup) {
 | 
	
	
		
			
				|  | @@ -390,7 +470,7 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |        //-----------------------
 | 
	
		
			
				|  |  | -      // SET THE WEIGHTS FOR THE TOC ELEMENTS
 | 
	
		
			
				|  |  | +      // ADD THIS PANE TO THE TOC BY ORDER OF WEIGHT
 | 
	
		
			
				|  |  |        //-----------------------
 | 
	
		
			
				|  |  |        // set the weight of the TOC item and add it to our $toc array
 | 
	
		
			
				|  |  |        // for building of the TOC below
 | 
	
	
		
			
				|  | @@ -398,12 +478,10 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |        if (array_key_exists('#weight', $build[$key])) {
 | 
	
		
			
				|  |  |          $weight = $build[$key]['#weight'];
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      // override the weight if it's set in the tripal_toc table
 | 
	
		
			
				|  |  | -      $weight = $overrides['weight'] ? $overrides['weight'] : $weight;
 | 
	
		
			
				|  |  |        $toc[$weight][$toc_item_title] = $toc_item_link;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        //-----------------------
 | 
	
		
			
				|  |  | -      // CREATE THE DATA BLOCK
 | 
	
		
			
				|  |  | +      // CREATE THE CONTENT PANE MARKUP
 | 
	
		
			
				|  |  |        //-----------------------
 | 
	
		
			
				|  |  |        // add a surrounding <div> box around the content
 | 
	
		
			
				|  |  |        $updated_markup = "
 | 
	
	
		
			
				|  | @@ -416,7 +494,6 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |        ";
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |        $build[$key]['#markup'] = $updated_markup;
 | 
	
		
			
				|  |  | -      $build[$key]['#weight'] = $weight;
 | 
	
		
			
				|  |  |      } // end foreach ($build as $key => $value) {
 | 
	
		
			
				|  |  |    } // end if ($build['#tripal_generic_node_template'] == TRUE) {
 | 
	
		
			
				|  |  |    
 | 
	
	
		
			
				|  | @@ -434,7 +511,6 @@ function tripal_core_node_view_add_toc(&$build) {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    $build['tripal_toc']['#markup'] = "<div id=\"$node->type-tripal-toc-pane\" class=\"tripal-toc-pane\">$toc_html</div>";
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 |