Skip to content

Commit fda0c8b

Browse files
authored
Merge pull request #154 from FriendsOfREDAXO/copilot/fix-143
Complete RSS feed documentation with comprehensive examples and usage guide
2 parents b7c7666 + 3e2c298 commit fda0c8b

File tree

2 files changed

+117
-6
lines changed

2 files changed

+117
-6
lines changed

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Mit diesem Addon können News-Beiträge anhand von YForm und YOrm im Backend ver
1010
* Vollständig mit **YForm** umgesetzt: Alle Features und Anpassungsmöglichkeiten von YForm verfügbar
1111
* Einfach: Die Ausgabe erfolgt über [`rex_sql`](https://redaxo.org/doku/master/datenbank-queries) oder objektorientiert über [YOrm](https://github.com/yakamara/redaxo_yform/blob/master/docs/04_yorm.md)
1212
* Flexibel: **Zugriff** über die [YForm Rest-API](https://github.com/yakamara/redaxo_yform/blob/master/docs/05_rest.md)
13+
* **RSS-Feed** integriert: Vollautomatischer RSS 2.0-Feed mit Kategorie- und Sprachfilterung über `index.php?rex-api-call=neues_rss`
1314
* Sinnvoll: Nur ausgewählte **Rollen**/Redakteure haben Zugriff
1415
* Bereit für Multidomain-Newsverwaltung mit YRewrite
1516
* Bereit für **mehrsprachige** Websites: Reiter für Sprachen auf Wunsch anzeigen oder ausblenden
@@ -27,6 +28,24 @@ Im REDAXO-Installer das Addon `neues` herunterladen und installieren. Anschließ
2728

2829
![image](https://user-images.githubusercontent.com/3855487/209792457-b6f824dc-7fd8-4295-a7c7-2eab046d19c7.png)
2930

31+
## RSS-Feed
32+
33+
Das Addon bietet einen integrierten RSS 2.0-Feed für News-Einträge:
34+
35+
**Basis-Feed:** `index.php?rex-api-call=neues_rss`
36+
37+
**Mit Filtern:**
38+
- Nach Kategorie: `index.php?rex-api-call=neues_rss&category_id=3`
39+
- Nach Sprache: `index.php?rex-api-call=neues_rss&lang_id=2`
40+
- Kombiniert: `index.php?rex-api-call=neues_rss&category_id=3&lang_id=2`
41+
42+
**Schöne URLs** können über `.htaccess` eingerichtet werden:
43+
```apache
44+
RewriteRule ^feed/?$ index.php?rex-api-call=neues_rss [L]
45+
```
46+
47+
Detaillierte Dokumentation siehe [docs/07_rss.md](docs/07_rss.md).
48+
3049
## Lizenz
3150

3251
MIT Lizenz, siehe [LICENSE.md](https://github.com/alexplusde/neues/blob/master/LICENSE)

docs/07_rss.md

Lines changed: 98 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,105 @@
11
# RSS-Feed
22

3-
> Hinweis: Der RSS-Feed befindet sich noch in Arbeit, es gibt noch kein Datum für die Fertigstellung. Beteilige dich an der Entwicklung, wenn du möchtest.
3+
Das `Neues`-Addon bietet einen vollständig funktionsfähigen RSS-Feed für News-Einträge über die API-Klasse `FriendsOfRedaxo\Neues\Api\Rss`. Der Feed wird über die URL `index.php?rex-api-call=neues_rss` aufgerufen und liefert einen RSS 2.0-kompatiblen XML-Feed.
44

5-
Die `rex_api_neues_rss`-Klasse ist Teil des `Neues`-Addons und ermöglicht die Generierung eines RSS-Feeds für News-Einträge. Der Feed wird über die URL `index.php?rex-api-call=neues_rss` aufgerufen. Die Ausgabe wird durch verschiedene URL-Parameter beeinflusst:
5+
## Grundlegende Verwendung
66

7-
- `domain_id`: Dieser Parameter ermöglicht es, den Feed auf eine bestimmte Domain zu beschränken. Zum Beispiel wird `index.php?rex-api-call=neues_rss&domain_id=1` verwendet, um den Feed für die Domain mit der ID 1 zu generieren.
7+
**Standard RSS-Feed (alle Online-Einträge):**
8+
```
9+
index.php?rex-api-call=neues_rss
10+
```
811

9-
- `lang_id`: Mit diesem Parameter wird der Feed auf eine bestimmte Sprache beschränkt. Zum Beispiel wird `index.php?rex-api-call=neues_rss&lang_id=2` verwendet, um den Feed in der Sprache mit der ID 2 zu generieren.
12+
## Filteroptionen
1013

11-
- `category_id`: Dieser Parameter ermöglicht es, den Feed auf eine bestimmte Kategorie zu beschränken. Zum Beispiel wird `index.php?rex-api-call=neues_rss&category_id=3` verwendet, um den Feed für die Kategorie mit der ID 3 zu generieren.
14+
Der RSS-Feed unterstützt verschiedene URL-Parameter zum Filtern der Einträge:
1215

13-
Die Parameter `domain_id`, `lang_id` und `category_id` sind optional und der Feed kann auch ohne diese Parameter generiert werden. Wenn sie nicht angegeben werden, werden alle Domains, Sprachen und Kategorien in den Feed einbezogen.
16+
### Nach Kategorie filtern
17+
18+
**RSS-Feed für eine bestimmte Kategorie:**
19+
```
20+
index.php?rex-api-call=neues_rss&category_id=3
21+
```
22+
23+
Zeigt nur Einträge aus der Kategorie mit ID 3. Der Feed-Titel und Dateiname werden automatisch an die Kategorie angepasst.
24+
25+
### Nach Sprache filtern
26+
27+
**RSS-Feed mit Spracheinstellung:**
28+
```
29+
index.php?rex-api-call=neues_rss&lang_id=2
30+
```
31+
32+
Setzt die Sprache des RSS-Feeds auf die Sprache mit ID 2. Derzeit beeinflusst dies die `<language>`-Angabe im RSS-Channel.
33+
34+
### Nach Domain filtern
35+
36+
**RSS-Feed mit Domain-Parameter:**
37+
```
38+
index.php?rex-api-call=neues_rss&domain_id=1
39+
```
40+
41+
Parameter für zukünftige Domain-Filterung (noch nicht vollständig implementiert).
42+
43+
### Kombinierte Filter
44+
45+
**RSS-Feed mit mehreren Filtern:**
46+
```
47+
index.php?rex-api-call=neues_rss&category_id=3&lang_id=2&domain_id=1
48+
```
49+
50+
## Schöne URLs mit .htaccess
51+
52+
Für benutzerfreundliche URLs wie `/feed` oder `/rss` kann eine `.htaccess`-Regel verwendet werden:
53+
54+
```apache
55+
# RSS-Feed auf /feed umleiten
56+
RewriteRule ^feed/?$ index.php?rex-api-call=neues_rss [L]
57+
58+
# RSS-Feed mit Kategorie auf /feed/kategorie-name umleiten
59+
RewriteRule ^feed/([^/]+)/?$ index.php?rex-api-call=neues_rss&category_id=$1 [L]
60+
61+
# Alternativer RSS-Endpunkt
62+
RewriteRule ^rss/?$ index.php?rex-api-call=neues_rss [L]
63+
RewriteRule ^rss\.xml$ index.php?rex-api-call=neues_rss [L]
64+
```
65+
66+
## Beispiel-URLs
67+
68+
```
69+
# Basis-Feed
70+
https://example.com/feed
71+
72+
# Feed für Kategorie 1
73+
https://example.com/index.php?rex-api-call=neues_rss&category_id=1
74+
75+
# Feed mit deutscher Sprache
76+
https://example.com/index.php?rex-api-call=neues_rss&lang_id=1
77+
78+
# Feed für Kategorie 3 mit englischer Sprache
79+
https://example.com/index.php?rex-api-call=neues_rss&category_id=3&lang_id=2
80+
```
81+
82+
## RSS-Feed-Format
83+
84+
Der generierte RSS-Feed enthält:
85+
86+
- **Channel-Informationen**: Titel (Servername), Beschreibung, Link zur Website
87+
- **Spracheinstellung**: Automatisch aus `lang_id` wenn angegeben
88+
- **Einträge**: Titel, Beschreibung (ohne HTML-Tags), Link, Publikationsdatum, GUID
89+
90+
## Programmatische Verwendung
91+
92+
```php
93+
use FriendsOfRedaxo\Neues\Entry;
94+
use FriendsOfRedaxo\Neues\Api\Rss;
95+
96+
// Alle Online-Einträge
97+
$entries = Entry::findOnline();
98+
$rss = Rss::createRssFeed($entries, 0, 1, 'Mein RSS-Feed');
99+
100+
// Einträge einer bestimmten Kategorie
101+
$entries = Entry::findOnline(3);
102+
$rss = Rss::createRssFeed($entries, 0, 1, 'News aus Kategorie 3');
103+
```
104+
105+
Die Parameter `domain_id`, `lang_id` und `category_id` sind alle optional. Ohne Parameter werden alle Online-Einträge in den Feed einbezogen.

0 commit comments

Comments
 (0)