From b581ba81b7f92ce7ce1b9ade1d004f200a828e4e Mon Sep 17 00:00:00 2001 From: plegall Date: Sat, 17 Dec 2011 22:52:19 +0000 Subject: merge r12760 from branch 2.3 to trunk bug 2502 fixed: better handling of non-latin tags and multilanguage tags on tags.php with mode letter. We can't rely on url_name because it always start with "_" when the tag looks like "[lang...". Instead we compute a str2url on the name, but once it has been rendered by Extended Description. To avoid useless computations, I have added a cache on the tag_alpha_compare function. Tested on a 175 tags set, speed is good. git-svn-id: http://piwigo.org/svn/trunk@12761 68402e56-0260-453c-a942-63ccdbb3a9ee --- tags.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'tags.php') diff --git a/tags.php b/tags.php index 9167ddd83..ec7643263 100644 --- a/tags.php +++ b/tags.php @@ -99,7 +99,7 @@ if ($page['display_mode'] == 'letters') { foreach ($tags as $tag) { - $tag_letter = strtoupper(substr($tag['url_name'], 0, 1)); + $tag_letter = strtoupper(mb_substr(str2url($tag['name']), 0, 1, 'utf-8')); if ($current_tag_idx==0) { $current_letter = $tag_letter; @@ -171,7 +171,10 @@ $tags = array_slice($tags, 0, $conf['full_tag_cloud_items_number']); $tags = add_level_to_tags($tags); // we want tags diplayed in alphabetic order -usort($tags, 'tag_alpha_compare'); +if ('letters' != $page['display_mode']) +{ + usort($tags, 'tag_alpha_compare'); +} // display sorted tags foreach ($tags as $tag) -- cgit v1.2.3