Fix article links and include full content in PHP feeds

Two bugs found by testing real links from the feed:
- Link format was wrong (?news=<internal-id>), landing on the general
  listing instead of the article. Traced the real network call the site
  makes when opening an item and found the actual pattern:
  /actualites/<slug>?u=<UID> (agenda: /agenda/<slug>?u=<UID>), where the
  JS router reads the `u` query param to fetch @results?UID=...&fullobjects=1.
- Description only used the short teaser (description_fr) even though the
  API response already includes the full rich-text body (text_fr.data) and
  attachments (items[].file.download) in the same call — no extra request
  needed, just wasn't being used.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
para
2026-09-25 23:45:55 +02:00
co-authored by Claude Sonnet 5
parent 113616995f
commit 7da5a7a3e6
3 changed files with 63 additions and 10 deletions
+6 -5
View File
@@ -30,13 +30,14 @@ function build_news_feed(): string
$items = [];
foreach (fetch_all_news() as $item) {
$id = $item['id'] ?? '';
$summary = strip_html($item['description_fr'] ?? $item['description'] ?? null);
$title = $item['title_fr'] ?? $item['title'] ?? '(sans titre)';
$uid = $item['UID'] ?? $id;
$items[] = [
'title' => $item['title_fr'] ?? $item['title'] ?? '(sans titre)',
'link' => SITE . '/actualites?news=' . rawurlencode($id),
'guid' => $item['UID'] ?? $id,
'title' => $title,
'link' => SITE . '/actualites/' . slugify($title) . '?u=' . rawurlencode($uid),
'guid' => $uid,
'pubDate' => $item['effective'] ?? $item['created'] ?? null,
'description' => $summary,
'description' => full_body_html($item),
];
}
return build_rss(