You are here

function theme_faq_category_questions_top_answers in Frequently Asked Questions 5.2

Create the layout of the answers if set to show the questions on top, all sorted by categories.

Parameters

$nodes: Array of node objects to display.

$node_count: Number of nodes for this term, and possibly also the sub-terms.

$display_header: Boolean value controlling category header layout.

$category_display: The layout of categories which should be used.

$term: The category / term to display FAQs for.

$class: CSS class which the HTML div will be using. A special class name is required in order to hide and questions / answers.

$term_image: HTML output containing any taxonomy images attached to the taxonomy term.

Return value

A variable holding the HTML formatted page.

1 theme call to theme_faq_category_questions_top_answers()
_display_faq_by_category in ./faq.module
Display FAQ questions and answers filtered by category.

File

includes/faq.questions_top.inc, line 192
FAQ page callbacks for the "questions top" layouts.

Code

function theme_faq_category_questions_top_answers($nodes, $node_count, $display_header, $category_display, $term, $class, $term_image) {

  // Fetch configuration.
  $teaser = variable_get('faq_use_teaser', FALSE);
  $links = variable_get('faq_show_node_links', FALSE);
  $faq_count = variable_get('faq_count', FALSE);
  $hide_child_terms = variable_get('faq_hide_child_terms', FALSE);
  $show_term_page_children = variable_get('faq_show_term_page_children', FALSE);
  $answer_category_name = variable_get('faq_answer_category_name', FALSE);

  // Initialise some variables.
  $output = '';
  $this_page = $_GET['q'];
  $get_child_terms = 0;
  if (arg(0) == 'faq' && is_numeric(arg(1))) {
    $get_child_terms = arg(1);
  }
  $default_sorting = variable_get('faq_default_sorting', 'DESC');
  $default_weight = 0;
  if ($default_sorting != 'DESC') {
    $default_weight = 1000000;
  }

  // Configure "back to top" link.
  $back_to_top = faq_init_back_to_top($this_page);

  // Configure answer header.
  $answers_header = theme('faq_answer_category_header', $term, $term_image);

  // Retrieve questions and answers for this term.
  $questions = array();
  if (count($nodes) > 0) {
    foreach ($nodes as $node) {
      $anchor = $term->tid . "n" . $node->nid;
      $answers .= theme('faq_format_question', $node, NULL, $anchor);
      $answers .= faq_view_answer($node, $back_to_top, $teaser, $links);
    }
  }

  // Questions from sub-categories should be listed with parent category's
  // questions.
  $group_questions_top = variable_get('faq_group_questions_top', FALSE);
  if (!$group_questions_top && $category_display != "hide_qa") {
    $answers_depth = 0;
    $indent = '<div class="faq-category-indent">' . "\n";

    // Indent answers as appropriate.
    if ($answer_category_name) {
      while ($answers_depth < $term->depth) {
        $output .= $indent;
        $answers_depth++;
      }
    }
    $output .= '<div class="faq-category-group">' . "\n";

    // Output category name with answers.
    if ($answer_category_name) {
      if (taxonomy_term_count_nodes($term->tid, 'faq')) {
        if (!empty($child_term_output_answers)) {
          $child_term_output_answers .= $answers;
          $answers = $child_term_output_answers;
        }
        $output .= $answers_header . "<div>\n" . $answers . "\n</div>\n";
      }
    }
    else {
      if (!empty($child_term_output_answers)) {
        $output .= $child_term_output_answers;
      }
      $output .= "<div>\n" . $answers . "\n</div>\n";
    }
    $output .= "</div>\n";

    // Decrease answer section indent as appropriate.
    if ($answer_category_name) {
      while ($answers_depth > 0) {
        $output .= "</div>\n";
        $answers_depth--;
      }
    }
  }
  return $output;
}