aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/functions_category.inc.php25
-rw-r--r--include/functions_html.inc.php98
-rw-r--r--include/menubar.inc.php2
-rw-r--r--template/yoga/menubar_categories.tpl19
4 files changed, 43 insertions, 101 deletions
diff --git a/include/functions_category.inc.php b/include/functions_category.inc.php
index b2f3f1f4b..8d05a6c2a 100644
--- a/include/functions_category.inc.php
+++ b/include/functions_category.inc.php
@@ -100,8 +100,31 @@ WHERE '.$where.'
$result = pwg_query($query);
$cats = array();
+ $selected_category = isset($page['category']) ? $page['category'] : null;
while ($row = mysql_fetch_assoc($result))
{
+ $child_date_last = @$row['max_date_last']> @$row['date_last'];
+ $row = array_merge($row,
+ array(
+ 'NAME' => trigger_event(
+ 'render_category_name',
+ $row['name'],
+ 'get_categories_menu'
+ ),
+ 'TITLE' => get_display_images_count(
+ $row['nb_images'],
+ $row['count_images'],
+ $row['count_categories'],
+ false,
+ ' / '
+ ),
+ 'URL' => make_index_url(array('category' => $row)),
+ 'LEVEL' => substr_count($row['global_rank'], '.') + 1,
+ 'ICON_TS' => get_icon($row['max_date_last'], $child_date_last),
+ 'SELECTED' => $selected_category['id'] == $row['id'] ? true : false,
+ 'IS_UPPERCAT' => $selected_category['id_uppercat'] == $row['id'] ? true : false,
+ )
+ );
array_push($cats, $row);
if ($row['id']==@$page['category']['id']) //save the number of subcats for later optim
$page['category']['count_categories'] = $row['count_categories'];
@@ -114,7 +137,7 @@ WHERE '.$where.'
update_cats_with_filtered_data($cats);
}
- return get_html_menu_category($cats, @$page['category'] );
+ return $cats;
}
diff --git a/include/functions_html.inc.php b/include/functions_html.inc.php
index 462bfe222..9b045bfcb 100644
--- a/include/functions_html.inc.php
+++ b/include/functions_html.inc.php
@@ -374,104 +374,6 @@ SELECT id, name, permalink
}
/**
- * returns the HTML code for a category item in the menu (for the main page)
- *
- * HTML code generated uses logical list tags ul and each category is an
- * item li. The paramter given is the category informations as an array,
- * used keys are : id, name, nb_images, max_date_last, date_last
- * count_images, count_categories
- *
- * @param array categories
- * @return string
- */
-function get_html_menu_category($categories, $selected_category)
-{
- $ref_level = 0;
- $level = 0;
-
- $menu = trigger_event('get_html_menu_category', '',
- $categories, $selected_category);
- if (strlen($menu))
- {
- return $menu;
- }
-
- foreach ($categories as $category)
- {
- $level = substr_count($category['global_rank'], '.') + 1;
- if ($level > $ref_level)
- {
- $menu.= "\n<ul>";
- }
- else if ($level == $ref_level)
- {
- $menu.= "\n</li>";
- }
- else if ($level < $ref_level)
- {
- // we may have to close more than one level at the same time...
- $menu.= "\n</li>";
- $menu.= str_repeat("\n</ul></li>",($ref_level-$level));
- }
- $ref_level = $level;
-
- $menu.= "\n\n".'<li';
- if ($category['id'] == @$selected_category['id'])
- {
- $menu.= ' class="selected"';
- }
- $menu.= '>';
-
- $url = make_index_url(
- array(
- 'category' => $category
- )
- );
-
- $title = get_display_images_count
- (
- $category['nb_images'],
- $category['count_images'],
- $category['count_categories'],
- false,
- ' / '
- );
-
- $menu.= '<a href="'.$url.'"';
- if ($selected_category!=null
- and $category['id'] == $selected_category['id_uppercat'])
- {
- $menu.= ' rel="up"';
- }
- $menu.= ' title="'.$title.'">';
- $menu.= trigger_event(
- 'render_category_name',
- $category['name'],
- 'get_html_menu_category'
- );
- $menu.= '</a>';
-
- if ( $category['count_images']>0 )
- {// at least one direct or indirect image
- $menu.= "\n".'<span class="';
- // at least one image in this category -> class menuInfoCat
- $menu.= ($category['nb_images'] > 0 ? "menuInfoCat"
- : "menuInfoCatByChild").'"';
- $menu.= ' title=" '.$title.'">';
- // show total number of images
- $menu.= '['.$category['count_images'].']';
- $menu.= '</span>';
- }
- $child_date_last = @$category['max_date_last']> @$category['date_last'];
- $menu.= get_icon($category['max_date_last'], $child_date_last);
- }
-
- $menu.= str_repeat("\n</li></ul>",($level));
-
- return $menu;
-}
-
-/**
* returns HTMLized comment contents retrieved from database
*
* newlines becomes br tags, _word_ becomes underline, /word/ becomes
diff --git a/include/menubar.inc.php b/include/menubar.inc.php
index f0f8d6f93..8156dcf22 100644
--- a/include/menubar.inc.php
+++ b/include/menubar.inc.php
@@ -101,7 +101,7 @@ function initialize_menu()
{
$block->data = array(
'NB_PICTURE' => $user['nb_total_images'],
- 'MENU_CATEGORIES_CONTENT' => get_categories_menu(),
+ 'MENU_CATEGORIES' => get_categories_menu(),
'U_CATEGORIES' => make_index_url(array('section' => 'categories')),
'U_UPLOAD' => get_upload_menu_link()
);
diff --git a/template/yoga/menubar_categories.tpl b/template/yoga/menubar_categories.tpl
index 221a6d709..d650c49b9 100644
--- a/template/yoga/menubar_categories.tpl
+++ b/template/yoga/menubar_categories.tpl
@@ -8,7 +8,24 @@
<a href="{$block->data.U_CATEGORIES}">{'Categories'|@translate}</a>
</dt>
<dd>
- {$block->data.MENU_CATEGORIES_CONTENT}
+{assign var='ref_level' value=0}
+{foreach from=$block->data.MENU_CATEGORIES item=cat}
+ {if $cat.LEVEL > $ref_level}
+ <ul>
+ {else}
+ </li>
+ {'</ul></li>'|@str_repeat:$ref_level-$cat.LEVEL}
+ {/if}
+ <li {if $cat.SELECTED}class="selected"{/if}>
+ <a href="{$cat.URL}" {if $cat.IS_UPPERCAT}rel="up"{/if} title="{$cat.TITLE}">{$cat.NAME}</a>
+ {if $cat.count_images > 0}
+ <span class="{if $cat.nb_images > 0}menuInfoCat{else}menuInfoCatByChild{/if}" title="{$cat.TITLE}">[{$cat.count_images}]</span>
+ {/if}
+ {$cat.ICON_TS}
+ {assign var='ref_level' value=$cat.LEVEL}
+{/foreach}
+{'</li></ul>'|@str_repeat:$ref_level}
+
{if isset($block->data.U_UPLOAD)}
<ul>
<li>