diff options
Diffstat (limited to '')
-rw-r--r-- | include/functions_category.inc.php | 25 | ||||
-rw-r--r-- | include/functions_html.inc.php | 98 | ||||
-rw-r--r-- | include/menubar.inc.php | 2 | ||||
-rw-r--r-- | template/yoga/menubar_categories.tpl | 19 |
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> |