aboutsummaryrefslogtreecommitdiff
path: root/mod/blog
diff options
context:
space:
mode:
Diffstat (limited to 'mod/blog')
-rw-r--r--mod/blog/blog_lib.php21
-rw-r--r--mod/blog/views/default/object/blog.php6
2 files changed, 20 insertions, 7 deletions
diff --git a/mod/blog/blog_lib.php b/mod/blog/blog_lib.php
index 12226ee2e..b6a4d53c2 100644
--- a/mod/blog/blog_lib.php
+++ b/mod/blog/blog_lib.php
@@ -245,21 +245,28 @@ function blog_get_page_content_friends($user_guid) {
/**
* Returns an appropriate excerpt for a blog.
+ * Will return up to 250 chars stopping at the nearest space.
+ * If no spaces are found (like in Japanese) will crop off at the
+ * 250 char mark.
*
* @param string $text
* @param int $words
* @return string
*/
-function blog_make_excerpt($text, $words=60) {
- $text = strip_tags($text);
- preg_match("/([\S]+\s*){0,$words}/", $text, $matches);
+function blog_make_excerpt($text, $chars = 250) {
+ $text = trim(strip_tags($text));
- $trimmed = trim($matches[0]);
- if ($trimmed != $text) {
- return "$trimmed &#8230";
+ // handle cases
+ $excerpt = elgg_substr($text, 0, $chars);
+ $space = elgg_strrpos($excerpt, ' ', 0);
+
+ // don't crop if can't find a space.
+ if ($space === FALSE) {
+ $space = $chars;
}
+ $excerpt = trim(elgg_substr($excerpt, 0, $space));
- return $trimmed;
+ return $excerpt ;
}
/**
diff --git a/mod/blog/views/default/object/blog.php b/mod/blog/views/default/object/blog.php
index d72d6a21d..0c8944f7d 100644
--- a/mod/blog/views/default/object/blog.php
+++ b/mod/blog/views/default/object/blog.php
@@ -21,6 +21,12 @@ $container = get_entity($blog->container_guid);
$linked_title = "<a href=\"{$blog->getURL()}\" title=\"" . htmlentities($blog->title) . "\">{$blog->title}</a>";
$categories = elgg_view('categories/view', $vars);
$excerpt = $blog->excerpt;
+
+// add ellipses to excerpt it not the full post
+if ($excerpt != trim(strip_tags($blog->description))) {
+ $excerpt .= ' &#8230';
+}
+
$body = autop($blog->description);
$owner_icon = elgg_view("profile/icon",array('entity' => $owner, 'size' => 'tiny'));
$tags = elgg_view('output/tags', array('tags' => $blog->tags));