Skip to content

Commit

Permalink
Reduced the number of queries in cat_rows and list_cats.
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.automattic.com/wordpress/trunk@815 1a063a9b-81f0-0310-95a4-ce76da25c4cd
  • Loading branch information
jverber committed Feb 1, 2004
1 parent a644a10 commit 28fcfd8
Showing 1 changed file with 20 additions and 15 deletions.
35 changes: 20 additions & 15 deletions wp-admin/admin-functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,45 @@


// Dandy new recursive multiple category stuff.
function cat_rows($parent = 0, $level = 0) {
function cat_rows($parent = 0, $level = 0, $categories = 0) {
global $wpdb, $tablecategories, $tablepost2cat, $bgcolor;
$categories = $wpdb->get_results("SELECT * FROM $tablecategories WHERE category_parent = $parent ORDER BY cat_name");
if (!$categories) {
$categories = $wpdb->get_results("SELECT * FROM $tablecategories ORDER BY cat_name");
}
if ($categories) {
foreach ($categories as $category) {
$count = $wpdb->get_var("SELECT COUNT(post_id) FROM $tablepost2cat WHERE category_id = $category->cat_ID");
$pad = str_repeat('— ', $level);
if ($category->category_parent == $parent) {
$count = $wpdb->get_var("SELECT COUNT(post_id) FROM $tablepost2cat WHERE category_id = $category->cat_ID");
$pad = str_repeat('— ', $level);

$bgcolor = ('#eee' == $bgcolor) ? 'none' : '#eee';
echo "<tr style='background-color: $bgcolor'><td>$pad $category->cat_name</td>
<td>$category->category_description</td>
<td>$count</td>
<td><a href='categories.php?action=edit&amp;cat_ID=$category->cat_ID' class='edit'>Edit</a></td><td><a href='categories.php?action=Delete&amp;cat_ID=$category->cat_ID' onclick=\"return confirm('You are about to delete the category \'". addslashes($category->cat_name) ."\' and all its posts will go to the default category.\\n \'OK\' to delete, \'Cancel\' to stop.')\" class='delete'>Delete</a></td>
</tr>";
$bgcolor = ('#eee' == $bgcolor) ? 'none' : '#eee';
echo "<tr style='background-color: $bgcolor'><td>$pad $category->cat_name</td>
<td>$category->category_description</td>
<td>$count</td>
<td><a href='categories.php?action=edit&amp;cat_ID=$category->cat_ID' class='edit'>Edit</a></td><td><a href='categories.php?action=Delete&amp;cat_ID=$category->cat_ID' onclick=\"return confirm('You are about to delete the category \'". addslashes($category->cat_name) ."\' and all its posts will go to the default category.\\n \'OK\' to delete, \'Cancel\' to stop.')\" class='delete'>Delete</a></td>
</tr>";
cat_rows($category->cat_ID, $level + 1);
}
}
} else {
return false;
}
}

function wp_dropdown_cats($currentcat, $currentparent = 0, $parent = 0, $level = 0) {
function wp_dropdown_cats($currentcat, $currentparent = 0, $parent = 0, $level = 0, $categories = 0) {
global $wpdb, $tablecategories, $tablepost2cat, $bgcolor;
$categories = $wpdb->get_results("SELECT * FROM $tablecategories WHERE category_parent = $parent ORDER BY cat_name");
if (!$categories) {
$categories = $wpdb->get_results("SELECT * FROM $tablecategories ORDER BY cat_name");
}
if ($categories) {
foreach ($categories as $category) { if ($currentcat != $category->cat_ID) {
foreach ($categories as $category) { if ($currentcat != $category->cat_ID && $parent == $category->category_parent) {
$count = $wpdb->get_var("SELECT COUNT(post_id) FROM $tablepost2cat WHERE category_id = $category->cat_ID");
$pad = str_repeat('&#8211; ', $level);
echo "\n\t<option value='$category->cat_ID'";
if ($currentparent == $category->cat_ID)
echo " selected='selected'";
echo ">$pad$category->cat_name</option>";
if ($currentcat != $category->cat_ID)
wp_dropdown_cats($currentcat, $currentparent, $category->cat_ID, $level + 1);
wp_dropdown_cats($currentcat, $currentparent, $category->cat_ID, $level + 1, $categories);
} }
} else {
return false;
Expand Down

0 comments on commit 28fcfd8

Please sign in to comment.