Autor Thema: RSS Feeds  (Gelesen 8317 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
RSS Feeds
« am: Juli 22, 2007, 08:30:17 »
Hallo,

Habe mir gerade ein RSS Feeds gebaut.
(war ganz einfach)

Möchte aber auch noch gerne ein ben. def. Feld (z.B. "NEU") anlegen und wenn da "1" steht, diese Seite in den Feeds anzeigen.
Das Auslesen von NEU kann ich, es geht mir nur darum, ob und wenn "ja" wie ich den Identiefer (z.B. __print::neu__ ) dann in die xml-Datei einbauen kann.
bzw. kann ich mit ssp eine xml-Datei direkt erstellen?
(und dann mit Dateien hinzufügen automatisch übertragen)

Linkback: https://www.shoppilot.net/pf/index.php?topic=908.0
« Letzte Änderung: Juli 22, 2007, 11:40:18 von dobra »
mfG
dobra

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: RSS Feeds
« Antwort #1 am: Juli 23, 2007, 09:11:55 »
Hallo dobra,

Sie könnten die XML-Datei als Infoseite einbinden (als Vorlage ist auch .xml gültig).
Alles weitere (auch SSP) funktioniert dann dort wie bei den anderen HTML-Vorlagen auch.

Falls man dann die dyn. Adresse als Feed-URL verwenden kann sollte alles funktionieren.
Ich weiss jedoch nicht, ob es möglich ist eine dyn. URL anzugeben?
Vielleicht mal kurz ausprobieren.
MfG ahe

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: RSS Feeds
« Antwort #2 am: Juli 24, 2007, 06:36:17 »
Hallo ahe,

Danke - die Einbindung und Verlinkung der xml-Datei als Infoseite funktioniert  :D

Allerdings wird ssp-Code im Feed nicht übersetzt.
Wenn ich den gesamten Block mit ssp (qq | <item> ... </item> |;) einbinde, wird's ignoriert und mit
<item>
<titel> __print::irgendwas__ </titel>
....
wird das "__print::irgendwas__" genauso ausgegeben.

ich muß das eben vorläufig doch manuell pflegen
« Letzte Änderung: Juli 24, 2007, 06:39:10 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: RSS Feeds
« Antwort #3 am: Juli 24, 2007, 09:45:39 »
Schicken Sie mir mal bitte den Link zum Aufruf der Infoseite.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: RSS Feeds
« Antwort #4 am: Juli 24, 2007, 13:57:00 »
DANKE an ahe

Jetzt funktioniert alles so wie es soll !

Falls es jemand nachmachen will:

Wie man das RSS-Feeds baut, steht hier http://www.drweb.de/weblogs/rss_selbst_bauen.shtml

Einbau in ShopPilot:

  • eine Infoseite anlegen (z.B. RSS-Feeds)
  • Vorlage = die erstellte xml-Datei
  • in die Infoseite einen Dummy-Artikel eintragen
  • Bei diesem Artikel die Artikelseiten, die in den Feeds ausgegeben werden sollen als Crossartikel eintragen
  • eine feed.ipl Datei anlegen (oder den Code in stdall.ipl schreiben)
<!--spmacro:module(embed)
sub feed {
my $str = ssp::get_var_article('FELDNAME');
if ($str) {
ssp::embedded("csearch","embedded/feed.txt",$str . ":10000000:::3:0");
}
}
-->
"FELDNAME" durch das Feld in der die Crossartikel eingetragen werden ersetzten
  • eine feed.txt Datei anlegen
    z.B. so
<!--spmacro:loopitem-->
                        <item>
<title>__produkt__</title>
<description>__ergeanz1__ </description>
<link>Identifier der den Pfad zu Ihrer Seite ausgibt</link>
</item>
<!--spmacro:enditem-->
  • den Code in der xml-Datei mit __embed::feed__ ausgeben
  • zum Einbinden den Link zu xml-Datei anpassen
    (das hatte ich vergessen, deshalb wurden die Identifier nicht ersetzt)
    <link rel="alternate" type="application/rss+xml" title="RSS-Feed" href=".../iboshop.cgi?showbynameMyInfoseite,0">

und damit hat man ein "halbautomatisches" RSS-Feed
(halbautomatisch => man muß neue Seiten als Crossartikel eintragen)

NACHTRAG:
Damit die Beschreibung ( <description> ...  </description> ) angezeigt wird, darf der Text keinen HTML-Code (z.B. <br>) enthalten
« Letzte Änderung: Juli 25, 2007, 06:11:15 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: RSS Feeds
« Antwort #5 am: Juli 24, 2007, 14:16:03 »
Noch eine Anmerkung dazu...
Das ganze kann auch wie folgt gelöst werden, sofern ein Artikelfeld existiert, das den Text "NEW" enthält, wenn der Artikel ausgegeben werden soll :)
Hier nehmen wir beispielsweise an, dass dieses Feld "Ergänzung 4" wäre.

Die beiden Punkte fallen weg:
  • in die Infoseite einen Dummy-Artikel eintragen
  • Bei diesem Artikel die Artikelseiten, die in den Feeds ausgegeben werden sollen als Crossartikel eintragen

Dafür sieht der embedded-Code so aus
<!--spmacro:module(embed)
sub feed {
ssp::embedded("search","embedded/feed.txt","NEW:00000001");
}
-->
« Letzte Änderung: Juli 24, 2007, 14:20:57 von ahe »

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: RSS Feeds
« Antwort #6 am: Juli 30, 2008, 20:38:42 »
ab Version Beta 3 kann man die RSS Feeds dank der neuen XCREATED Funktion auch vollautomatisch ablaufen lasen  ;D

Es sind keine benutzerdefinierten Felder oder irgendwelche extra Einträge mehr notwendig.
Einmal eingebaut läuft also alles automatisch
=> wenn ein neuer Artikel angelegt wird, wird er auch in den Feeds angezeigt, ist er älter als x Tage, fällt er automatisch raus.
(die Dauer wird mit my $tage = ...; festgelegt)

Einfach diesen Code verwenden:
<!--spmacro:module(embed)
sub feed {
my $tage = 60;
my $jetzt = time();
my $seit = $jetzt - ($tage*24*60*60);
my $TABLE = ssp::db_get_prefix() . "ITEM ";
   my $read = ssp::readSQLData("SELECT ITEMID FROM $TABLE WHERE (XCREATED > '$seit' && XISLINK=0) ORDER BY XCREATED DESC","ITEMID");
   if ($read >= 0) {
  my $i=0;
while ($read > $i) {
   my $artikel= ssp::get_var_db("ITEMID", $i);
ssp::embedded("csearch","feed.txt","$artikel:10000000:::3:0");
++$i;
}
}
}
-->

und um nichts mehr kümmern müssen.
« Letzte Änderung: Juli 31, 2008, 09:57:49 von dobra »