aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mod/blog/blog_lib.php13
1 files changed, 11 insertions, 2 deletions
diff --git a/mod/blog/blog_lib.php b/mod/blog/blog_lib.php
index e8daeeed9..66d93ddce 100644
--- a/mod/blog/blog_lib.php
+++ b/mod/blog/blog_lib.php
@@ -169,10 +169,19 @@ function blog_get_page_content_archive($owner_guid, $lower, $upper) {
* Returns an appropriate excerpt for a blog.
*
* @param string $text
+ * @param int $words
* @return string
*/
-function blog_make_excerpt($text) {
- return substr(strip_tags($text), 0, 300);
+function blog_make_excerpt($text, $words=60) {
+ $text = strip_tags($text);
+ preg_match("/([\S]+\s*){0,$words}/", $text, $matches);
+
+ $trimmed = trim($matches[0]);
+ if ($trimmed != $text) {
+ return "$trimmed &#8230";
+ }
+
+ return $trimmed;
}
/**