summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-05-02 10:20:56 +0400
committerAndrew Dolgov <[email protected]>2013-05-02 10:20:56 +0400
commit54b7590c7f4c071b86724ef0e77981c23874d40b (patch)
tree68b58b7fc4af83cf089e7ca77b1b80b8ff460b64 /include
parentf8a25082b39cc6ee2b0d82a42e46d4609b32ce6a (diff)
format_article_tags: improve performance
Diffstat (limited to 'include')
-rw-r--r--include/functions.php45
1 files changed, 10 insertions, 35 deletions
diff --git a/include/functions.php b/include/functions.php
index 0b8f5b0d5..15a875746 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -3391,47 +3391,22 @@
}
function format_tags_string($tags, $id) {
+ if (!is_array($tags) || count($tags) == 0) {
+ return __("no tags");
+ } else {
+ $maxtags = min(5, count($tags));
- $tags_str = "";
- $tags_nolinks_str = "";
-
- $num_tags = 0;
-
- $tag_limit = 6;
-
- $formatted_tags = array();
-
- foreach ($tags as $tag) {
- $num_tags++;
- $tag_escaped = str_replace("'", "\\'", $tag);
-
- if (mb_strlen($tag) > 30) {
- $tag = truncate_string($tag, 30);
- }
-
- $tag_str = "<a href=\"javascript:viewfeed('$tag_escaped')\">$tag</a>";
-
- array_push($formatted_tags, $tag_str);
-
- $tmp_tags_str = implode(", ", $formatted_tags);
-
- if ($num_tags == $tag_limit || mb_strlen($tmp_tags_str) > 150) {
- break;
+ for ($i = 0; $i < $maxtags; $i++) {
+ $tags_str .= "<a href=\"#\" onclick=\"viewfeed('".$tags[$i]."'\")>" . $tags[$i] . "</a>, ";
}
- }
- $tags_str = implode(", ", $formatted_tags);
+ $tags_str = mb_substr($tags_str, 0, mb_strlen($tags_str)-2);
- if ($num_tags < count($tags)) {
- $tags_str .= ", &hellip;";
- }
+ if (count($tags) > $maxtags)
+ $tags_str .= ", &hellip;";
- if ($num_tags == 0) {
- $tags_str = __("no tags");
+ return $tags_str;
}
-
- return $tags_str;
-
}
function format_article_labels($labels, $id) {