Make rss feeds discoverable via link tags, a=chris
Make rss feeds discoverable via link tags, a=chris
diff --git a/src/controllers/components/SocialComponent.php b/src/controllers/components/SocialComponent.php
index 211faf893..da9f21ce6 100644
--- a/src/controllers/components/SocialComponent.php
+++ b/src/controllers/components/SocialComponent.php
@@ -1794,6 +1794,17 @@ class SocialComponent extends Component implements CrawlConstants
if (empty($thread_start_item) ||
empty($thread_start_item["TITLE"])) {
$data['NO_POSTS_IN_THREAD'] = true;
+ if ($just_thread < 0) {
+ $data['SUBTITLE'] = empty($pages[0][self::TITLE]) ?
+ "" : $pages[0][self::TITLE];
+ $data["GROUP_ID"] = -$just_thread;
+ $group = $group_model->getGroupById(
+ $data["GROUP_ID"], $user_id);
+ if (!empty($group)) {
+ $data["GROUP_NAME"] = $group["GROUP_NAME"];
+ $data['GROUP_STATUS'] = $group['STATUS'];
+ }
+ }
} else {
$title = $thread_start_item["TITLE"];
$data['SUBTITLE'] = trim($title, "\- \t\n\r\0\x0B");
@@ -1853,13 +1864,19 @@ class SocialComponent extends Component implements CrawlConstants
$this->calculateRecentFeedsAndThread($data, $user_id);
$data['TOTAL_ROWS'] = $item_count + $groups_count;
$data['RESULTS_PER_PAGE'] = $results_per_page;
- $token_string = ($user_id != C\PUBLIC_USER_ID )? C\CSRF_TOKEN. "=".
+ $token_string = ($user_id != C\PUBLIC_USER_ID )? C\CSRF_TOKEN . "=".
$this->parent->generateCSRFToken($user_id) : "";
$data['PAGING_QUERY'] = htmlentities(B\feedsUrl($type, $type_id,
true, $controller_name));
$paging_query = $data['PAGING_QUERY'];
+ if (!empty($type)) {
+ $data['RSS_FEED_URL'] = $paging_query . "f=rss";
+ }
if ($view_mode == 'ungrouped') {
- $paging_query .= "&v=ungrouped";
+ $connector = (substr($paging_query, -1) == "?") ? "" :
+ "&";
+ $paging_query .= "{$connector}v=ungrouped";
+ $data['RSS_FEED_URL'] = $paging_query . "&f=rss";
}
$data['SCRIPT'] .= " let nextPage = initNextResultsPage($limit," .
" {$data['TOTAL_ROWS']}, $results_per_page, ".
diff --git a/src/views/elements/GroupfeedElement.php b/src/views/elements/GroupfeedElement.php
index 70905f440..8beb1eaf2 100644
--- a/src/views/elements/GroupfeedElement.php
+++ b/src/views/elements/GroupfeedElement.php
@@ -185,8 +185,10 @@ class GroupfeedElement extends Element implements CrawlConstants
-1 : $data['PAGES'][0]["GROUP_ID"]);
$is_thread = !empty($data['JUST_THREAD']);
$is_group = !empty($data['JUST_GROUP_ID']);
+ $is_user = !empty($data['JUST_USER_ID']);
$is_page_with_comments = ($data['ELEMENT'] == 'wiki');
- $is_all_feed = !$is_thread && !$is_group && !$is_page_with_comments;
+ $is_all_feed = !$is_thread && !$is_group && !$is_page_with_comments &&
+ !$is_user;
if ($is_all_feed && !$is_api && !$is_status) {?>
<h2 class='feed-heading'><?=
tl('groupfeed_element_combined_feed') ?></h2><?php
@@ -200,15 +202,11 @@ class GroupfeedElement extends Element implements CrawlConstants
$this->drawCommentForm($parent_id, $group_id, $data);
}
}
- if (!$is_api && !$is_status && isset($data['NO_POSTS_YET'])) {
+ if (!$is_api && !$is_status && !empty($data['NO_POSTS_YET'])) {
if (isset($data['NO_POSTS_START_THREAD'])) {
//no read case where no posts yet
$this->drawStartThreadForm($data['JUST_GROUP_ID'], $data);
}
- ?>
- <div class="button-group-result red medium-font" ><?=
- tl('groupfeed_element_no_posts_yet') ?></div>
- <?php
if ($is_thread && !$is_page_with_comments) {
$this->drawCommentForm($parent_id, $group_id, $data);
}
@@ -224,7 +222,7 @@ class GroupfeedElement extends Element implements CrawlConstants
if (!$is_api) {?>
<div class="result-batch" data-time='<?=time() ?>' ><?php
}
- if (isset($data['NO_POSTS_IN_THREAD'])) {
+ if (isset($data['NO_POSTS_IN_THREAD']) && $data['JUST_THREAD'] >= 0) {
?>
<div class="button-group-result red medium-font" ><?=
tl('groupfeed_element_thread_no_exist') ?></div>
@@ -445,7 +443,7 @@ class GroupfeedElement extends Element implements CrawlConstants
!$is_page_with_comments && isset($data['GROUP_STATUS']) &&
$data['GROUP_STATUS'] == C\ACTIVE_STATUS) {
$this->drawCommentForm($data['JUST_THREAD'], $data["GROUP_ID"],
- $data);
+ $data);
}
}
}