From 44344bdcd723a81e6ea105bb29333bbae31d2030 Mon Sep 17 00:00:00 2001 From: emc3 Date: Thu, 20 May 2004 14:07:55 +0000 Subject: [PATCH] Fixed list_cats support for hide_empty and optioncount. Also fixed indentation in that function. git-svn-id: http://svn.automattic.com/wordpress/trunk@1328 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/template-functions-category.php | 248 ++++++++++---------- 1 file changed, 125 insertions(+), 123 deletions(-) diff --git a/wp-includes/template-functions-category.php b/wp-includes/template-functions-category.php index 42302a1f3..285c6ffab 100644 --- a/wp-includes/template-functions-category.php +++ b/wp-includes/template-functions-category.php @@ -265,12 +265,12 @@ function wp_list_cats($args = '') { } function list_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc', $file = '', $list = true, $optiondates = 0, $optioncount = 0, $hide_empty = 1, $use_desc_for_title = 1, $children=FALSE, $child_of=0, $categories=0, $recurse=0, $feed = '', $feed_image = '', $exclude = '') { - global $tablecategories, $tableposts, $tablepost2cat, $wpdb, $category_posts; - global $querystring_start, $querystring_equal, $querystring_separator; - // Optiondates now works - if ('' == $file) { - $file = get_settings('home') . '/' . get_settings('blogfilename'); - } + global $tablecategories, $tableposts, $tablepost2cat, $wpdb, $category_posts; + global $querystring_start, $querystring_equal, $querystring_separator; + // Optiondates now works + if ('' == $file) { + $file = get_settings('home') . '/' . get_settings('blogfilename'); + } $exclusions = ''; if (!empty($exclude)) { @@ -282,135 +282,137 @@ function list_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_orde } } - if (intval($categories)==0){ - $sort_column = 'cat_'.$sort_column; + if (intval($categories)==0){ + $sort_column = 'cat_'.$sort_column; - $query = " - SELECT cat_ID, cat_name, category_nicename, category_description, category_parent - FROM $tablecategories - WHERE cat_ID > 0 $exclusions - ORDER BY $sort_column $sort_order"; + $query = " + SELECT cat_ID, cat_name, category_nicename, category_description, category_parent + FROM $tablecategories + WHERE cat_ID > 0 $exclusions + ORDER BY $sort_column $sort_order"; - $categories = $wpdb->get_results($query); - } - if (intval($hide_empty) == 1 && !isset($category_posts)) { - $cat_counts = $wpdb->get_results(" SELECT cat_ID, - COUNT($tablepost2cat.post_id) AS cat_count - FROM $tablecategories - INNER JOIN $tablepost2cat ON (cat_ID = category_id) - INNER JOIN $tableposts ON (ID = post_id) - WHERE post_status = 'publish' $exclusions - GROUP BY category_id"); - foreach ($cat_counts as $cat_count) { - $category_posts["$cat_count->cat_ID"] = $cat_count->cat_count; - } - } - - if (intval($optiondates) == 1) { - $cat_dates = $wpdb->get_results(" SELECT cat_ID, - DAYOFMONTH(MAX(post_date)) AS lastday, MONTH(MAX(post_date)) AS lastmonth - FROM $tablecategories - LEFT JOIN $tablepost2cat ON (cat_ID = category_id) - LEFT JOIN $tableposts ON (ID = post_id) - WHERE post_status = 'publish' $exclusions - GROUP BY category_id"); - foreach ($cat_dates as $cat_date) { - $category_lastday["$cat_date->cat_ID"] = $cat_date->lastday; - $category_lastmonth["$cat_date->cat_ID"] = $cat_date->lastmonth; - } - } - - if (intval($optionall) == 1 && !$child_of && $categories) { - $all = apply_filters('list_cats', $all); - $link = "'.$all.""; - if ($list) { - echo "\n\t
  • $link
  • "; - } else { - echo "\t$link
    \n"; - } - } - - $num_found=0; - $thelist = ""; - - foreach ($categories as $category) { - if ((intval($hide_empty) == 0 || isset($category_posts["$category->cat_ID"])) && (!$children || $category->category_parent == $child_of)) { - $num_found++; - $link = 'category_description)) { - $link .= 'title="'. sprintf(__("View all posts filed under %s"), htmlspecialchars($category->cat_name)) . '"'; - } else { - $link .= 'title="' . htmlspecialchars($category->category_description) . '"'; - } - $link .= '>'; - $link .= stripslashes($category->cat_name).''; + $categories = $wpdb->get_results($query); + } + if (!count($category_posts)) { + $cat_counts = $wpdb->get_results(" SELECT cat_ID, + COUNT($tablepost2cat.post_id) AS cat_count + FROM $tablecategories + INNER JOIN $tablepost2cat ON (cat_ID = category_id) + INNER JOIN $tableposts ON (ID = post_id) + WHERE post_status = 'publish' $exclusions + GROUP BY category_id"); + foreach ($cat_counts as $cat_count) { + if (1 != intval($hide_empty) || $cat_count > 0) { + $category_posts["$cat_count->cat_ID"] = $cat_count->cat_count; + } + } + } + + if (intval($optiondates) == 1) { + $cat_dates = $wpdb->get_results(" SELECT cat_ID, + DAYOFMONTH(MAX(post_date)) AS lastday, MONTH(MAX(post_date)) AS lastmonth + FROM $tablecategories + LEFT JOIN $tablepost2cat ON (cat_ID = category_id) + LEFT JOIN $tableposts ON (ID = post_id) + WHERE post_status = 'publish' $exclusions + GROUP BY category_id"); + foreach ($cat_dates as $cat_date) { + $category_lastday["$cat_date->cat_ID"] = $cat_date->lastday; + $category_lastmonth["$cat_date->cat_ID"] = $cat_date->lastmonth; + } + } + + if (intval($optionall) == 1 && !$child_of && $categories) { + $all = apply_filters('list_cats', $all); + $link = "'.$all.""; + if ($list) { + echo "\n\t
  • $link
  • "; + } else { + echo "\t$link
    \n"; + } + } + + $num_found=0; + $thelist = ""; + + foreach ($categories as $category) { + if ((intval($hide_empty) == 0 || isset($category_posts["$category->cat_ID"])) && (!$children || $category->category_parent == $child_of)) { + $num_found++; + $link = 'category_description)) { + $link .= 'title="'. sprintf(__("View all posts filed under %s"), htmlspecialchars($category->cat_name)) . '"'; + } else { + $link .= 'title="' . htmlspecialchars($category->category_description) . '"'; + } + $link .= '>'; + $link .= stripslashes($category->cat_name).''; - if ( (! empty($feed_image)) || (! empty($feed)) ) { - - $link .= ' '; + if ( (! empty($feed_image)) || (! empty($feed)) ) { + + $link .= ' '; - if (empty($feed_image)) { - $link .= '('; - } + if (empty($feed_image)) { + $link .= '('; + } - $link .= 'cat_ID, $category->category_nicename) . '"'; - if ( !empty($feed) ) { - $title = ' title="' . stripslashes($feed) . '"'; - $alt = ' alt="' . stripslashes($feed) . '"'; - $name = stripslashes($feed); - $link .= $title; - } + if ( !empty($feed) ) { + $title = ' title="' . stripslashes($feed) . '"'; + $alt = ' alt="' . stripslashes($feed) . '"'; + $name = stripslashes($feed); + $link .= $title; + } - $link .= '>'; + $link .= '>'; - if (! empty($feed_image)) { - $link .= "'; - } else { - $link .= $name; - } - - $link .= ''; + if (! empty($feed_image)) { + $link .= "'; + } else { + $link .= $name; + } + + $link .= ''; - if (empty($feed_image)) { - $link .= ')'; - } - } + if (empty($feed_image)) { + $link .= ')'; + } + } - if (intval($optioncount) == 1) { - $link .= ' ('.intval($category_posts["$category->cat_ID"]).')'; - } - if (intval($optiondates) == 1) { - $link .= ' '.$category_lastday["$category->cat_ID"].'/'.$category_lastmonth["$category->cat_ID"]; - } - if ($list) { - $thelist .= "\t
  • $link\n"; - } else { - $thelist .= "\t$link
    \n"; - } - if ($children) $thelist .= list_cats($optionall, $all, $sort_column, $sort_order, $file, $list, $optiondates, $optioncount, $hide_empty, $use_desc_for_title, $children, $category->cat_ID, $categories, 1, $feed, $feed_image, $exclude); - if ($list) $thelist .= "
  • \n"; - } - } - if (!$num_found && !$child_of){ - if ($list) { - $before = '
  • '; - $after = '
  • '; - } - echo $before . __("No categories") . $after . "\n"; - return; - } - if ($list && $child_of && $num_found && $recurse) { - $pre = "\t\t\n"; - } else { + if (intval($optioncount) == 1) { + $link .= ' ('.intval($category_posts["$category->cat_ID"]).')'; + } + if (intval($optiondates) == 1) { + $link .= ' '.$category_lastday["$category->cat_ID"].'/'.$category_lastmonth["$category->cat_ID"]; + } + if ($list) { + $thelist .= "\t
  • $link\n"; + } else { + $thelist .= "\t$link
    \n"; + } + if ($children) $thelist .= list_cats($optionall, $all, $sort_column, $sort_order, $file, $list, $optiondates, $optioncount, $hide_empty, $use_desc_for_title, $children, $category->cat_ID, $categories, 1, $feed, $feed_image, $exclude); + if ($list) $thelist .= "
  • \n"; + } + } + if (!$num_found && !$child_of){ + if ($list) { + $before = '
  • '; + $after = '
  • '; + } + echo $before . __("No categories") . $after . "\n"; + return; + } + if ($list && $child_of && $num_found && $recurse) { + $pre = "\t\t\n"; + } else { $pre = $post = ''; } - $thelist = $pre . $thelist . $post; - if ($recurse) { - return $thelist; - } - echo apply_filters('list_cats', $thelist); + $thelist = $pre . $thelist . $post; + if ($recurse) { + return $thelist; + } + echo apply_filters('list_cats', $thelist); } function in_category($category) { // Check if the current post is in the given category