Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 13. November 2010 23:56
- mcsonne
- Gast
[GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Hallo,
schön, dass es jetzt ein deutsches Forum gibt.
Ich habe eine Frage zum Feedmaker. Er gibt mir in der Ausgabe immer alle Einträge ausm dem CGBlog aus. Ich würde das jedoch gerne auf die letzten zehn Beiträge begrenzen. Bekomme das aber nicht hin.
Hier mein Feed-Code:
{* original rss feed template *}
<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
{* note: if you have not configured pretty urls or mod rewrite, the next line may fail when trying to validate the feed *}
<atom:link href="{$feed_url}" rel="self" type="application/rss+xml" />
<title>{$feed.title}</title>
{if isset($feed.link) && !empty($feed.link)}<link>{$feed.link}</link>{/if}
{if isset($feed.description) && !empty($feed.description)}<description>{$feed.description}</description>{/if}
{if isset($feed.copyright) && !empty($feed.copyright)}<copyright>{$feed.copyright}</copyright>{/if}
{if isset($generator)}<generator>{$generator}</generator>{/if}
<managingEditor>{$admin_email} (Alex Hesse)</managingEditor>
{if isset($admin_email)}<webMaster>{$admin_email} (Alex Hesse)</webMaster>{/if}
{* an example of how to create a feed from a call to the news module *}
{* you can use any smarty variable that is available in the news summary template *}
{* you can substitute this logic with output from any module that supports a summary
view, or possibly get artistic and mix output from different modules *}
{CGBlog assign='junk'}
{foreach from=$items item='entry'}
<item>
<title>{$entry->title|cms_html_entity_decode}</title>
<link>{$entry->detail_url}</link>
<description><![CDATA[{$entry->content}]]></description>
<pubDate>{$entry->postdate|rfc_date}</pubDate>
<guid>{$entry->detail_url}</guid>
</item>
{/foreach}
</channel>
</rss>Ich nutze CMSMS 1.8.2
Vielleicht kann mir jemand dabei helfen.
Beitrag geändert von mcsonne (14. November 2010 22:16)
#2 14. November 2010 19:44
- Andynium
- Moderator

- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Hab mal kurz in die Dokumentation bzw. in den Code geschaut ... soweit ich es auf die Schnelle gesehen habe, ist diese Möglichkeit nicht vorgesehen - man müsste also den Code modifizieren.
Ist also die Frage, inwieweit du das kannst bzw. möchtest ...
Offline
#3 14. November 2010 20:23
- piratos
- Gast
Re: [GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Im Template selbst begrenzen
{foreach from=$items item=entry name=zahl}
{if $smarty.foreach.zahl.iteration < 10}
<item>
<title>{$entry->title|cms_html_entity_decode}</title>
<link>{$entry->detail_url}</link>
<description><![CDATA[{$entry->content}]]></description>
<pubDate>{$entry->postdate|rfc_date}</pubDate>
<guid>{$entry->detail_url}</guid>
</item>
{/if}
{/foreach}#4 14. November 2010 22:15
- mcsonne
- Gast
Re: [GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Danke euch zwei für die Antworten. Die Begrenzung direkt im Template hat geklappt. Vielen Dank!
#5 15. November 2010 08:59
- Andynium
- Moderator

- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Hmm, so funktioniert es auch ... hatte eher an die Begrenzung des Inputs für den Feedmaker gedacht.
Denn bei 500 Feed-Einträgen wird die Schleife auch 500 mal durchlaufen, um schlußendlich nur 10 Einträge auszugeben ...
Offline
#6 15. November 2010 13:14
- piratos
- Gast
Re: [GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Sicher ist es unwirtschaftlich , aber tatsächlich ist das Module in der Hinsicht zu billig programmiert.
Ich würde einfach die Sql ändern in action.default.php vom Module
$query = 'SELECT * FROM '.cms_db_prefix().'module_cgfeedmaker WHERE name = ? LIMIT 0,10';#7 15. November 2010 13:41
- Andynium
- Moderator

- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Genau das meinte ich, womit aber wieder das Problem besteht, dass es bei der nächsten Modul-Aktualisierung weg ist ... weswegen ich erst mal vorsichtig nachgefragt habe
.
Offline
#8 16. November 2010 16:26
- mcsonne
- Gast
Re: [GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Inwiefern ist diese Lösung denn besser? Kenne mich nicht so mit der Programmierung aus.
#9 16. November 2010 21:42
- Andynium
- Moderator

- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Ich bin in meinem Beispiel mal von einem aktiv betriebenen Blog ausgegangen, wo im Laufe von 1-3 Jahren so an die 500 Beiträge zusammen kommen
.
Du möchtest jedoch nur die letzten 10 Beiträge im Feed ausgeben und erledigst das mit der ersten Lösung im Template, indem du dessen Ausführung des Templates nach dem 10. Durchlauf abbrichst. Die übergeordnete foreach-Schleife wird jedoch so oft durchlaufen, solange Beiträge vorhanden sind (eben 500 Mal) ... auch, wenn es ansonsten im Template nix zu tun gibt. Das heisst, es wird sinnlos Performance "verheizt" (die Webseite wird langsamer). Und seit Google die Ladegeschwindigkeit einer Webseite in die Seitenbewertung einfließen lässt, sollte jede Chance genutzt werden, die Performance zu verbessern.
Daher der zweite Vorschlag mit der Änderung der Datenbankabfrage, wo du mit dem zweiten Parameter nach LIMIT festlegen kannst, wie viele Einträge geladen werden sollen - nicht mehr und nicht weniger. Wenn du jedoch irgendwann das Modul aktualisierst, wird diese Code-Veränderung überschrieben, die Änderung im Template jedoch nicht.
Offline
#10 16. November 2010 22:03
- mcsonne
- Gast
Re: [GELÖST] CG Feedmaker Beiträge im Feed begrenzen
Dann bedeutet das also weniger Rechenarbeit für die Abfrage. Ok. Du hast vollkommen Recht, das sehr viele Beiträge zu Stande kommen.
Ich habe jetzt die zweite Variante ausprobiert, geändert, und überschrieben. Er gibt mir jetzt jedoch wieder alle Feedeinträge aus...
Seiten: 1