From bfd49157afbdcb8ecc8e204ff7ab2b246d08be57 Mon Sep 17 00:00:00 2001 From: ben Date: Mon, 23 Feb 2009 16:56:33 +0000 Subject: RSS for group topics, including fixes for annotation getURL() override git-svn-id: https://code.elgg.org/elgg/trunk@2898 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/annotations.php | 4 ++-- mod/groups/start.php | 13 +++++++++++++ mod/groups/topicposts.php | 4 ++++ mod/groups/views/default/forum/topicposts.php | 1 + mod/groups/views/rss/forum/topicposts.php | 3 +++ mod/groups/views/rss/forum/viewposts.php | 12 +++++++++++- views/rss/object/default.php | 5 +++-- 7 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 mod/groups/views/rss/forum/topicposts.php diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index 7e530eab9..8ad918180 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -105,7 +105,7 @@ * * @return string */ - public function getURL() { return get_annotation_url($this->guid); } + public function getURL() { return get_annotation_url($this->id); } // SYSTEM LOG INTERFACE //////////////////////////////////////////////////////////// @@ -859,7 +859,7 @@ if ($extender = get_annotation($id)) { return get_extender_url($extender); - } + } return false; } diff --git a/mod/groups/start.php b/mod/groups/start.php index 1b3cc2e1e..62e786f6f 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -487,6 +487,19 @@ } + /** + * Overrides topic post getURL() value. + * + */ + function group_topicpost_url($annotation) { + if ($parent = get_entity($annotation->entity_guid)) { + global $CONFIG; + return $CONFIG->wwwroot . 'mod/groups/topicposts.php?topic='.$parent->guid.'&group_guid='.$parent->container_guid.'#' . $annotation->id; + } + } + + register_extender_url_handler('group_topicpost_url','annotation', 'group_topic_post'); + // Register a handler for create groups register_elgg_event_handler('create', 'group', 'groups_create_event_listener'); diff --git a/mod/groups/topicposts.php b/mod/groups/topicposts.php index 7a2efaa70..ea8a82bac 100644 --- a/mod/groups/topicposts.php +++ b/mod/groups/topicposts.php @@ -13,6 +13,10 @@ // Load Elgg engine require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); + // We now have RSS on topics + global $autofeed; + $autofeed = true; + //get_input('group_guid'); set_page_owner(get_input('group_guid')); if (!(page_owner_entity() instanceof ElggGroup)) forward(); diff --git a/mod/groups/views/default/forum/topicposts.php b/mod/groups/views/default/forum/topicposts.php index 5b259d13f..e9ddaa40e 100644 --- a/mod/groups/views/default/forum/topicposts.php +++ b/mod/groups/views/default/forum/topicposts.php @@ -20,6 +20,7 @@
+ owner_guid)) { diff --git a/mod/groups/views/rss/forum/topicposts.php b/mod/groups/views/rss/forum/topicposts.php new file mode 100644 index 000000000..0165eb215 --- /dev/null +++ b/mod/groups/views/rss/forum/topicposts.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mod/groups/views/rss/forum/viewposts.php b/mod/groups/views/rss/forum/viewposts.php index 157be91da..b537ffc83 100644 --- a/mod/groups/views/rss/forum/viewposts.php +++ b/mod/groups/views/rss/forum/viewposts.php @@ -10,7 +10,17 @@ * @link http://elgg.com/ */ - echo elgg_view_entity($vars['entity']); + //display follow up comments + $count = $vars['entity']->countAnnotations('group_topic_post'); + $offset = (int) get_input('offset',0); + + foreach($vars['entity']->getAnnotations('group_topic_post', 50, $offset, "asc") as $post) { + $post->title = ''; + $post->description = $post->value; + echo elgg_view('object/default', array('entity' => $post)); + // echo elgg_view("forum/topicposts",array('entity' => $post)); + + } ?> \ No newline at end of file diff --git a/views/rss/object/default.php b/views/rss/object/default.php index 9174ff1b5..5e50971c9 100644 --- a/views/rss/object/default.php +++ b/views/rss/object/default.php @@ -13,8 +13,9 @@ $title = $vars['entity']->title; if (empty($title)) { - $title = substr($vars['entity']->description,0,32); - if (strlen($vars['entity']->description) > 32) + $subtitle = strip_tags($vars['entity']->description); + $title = substr($subtitle,0,32); + if (strlen($subtitle) > 32) $title .= " ..."; } -- cgit v1.2.3