Wie es der Titel schon sagt, wie erstelle ich ein RSS Feed für meine eigene Komponente?
Vielen Dank
Wie es der Titel schon sagt, wie erstelle ich ein RSS Feed für meine eigene Komponente?
Vielen Dank
LG Rene
aufruf => format=feed&type=rss
parser => JFactory::getXmlParser('rss');
erstellen => JFactory::getDocument()->....
das habe ich schon gesehen...aufruf => format=feed&type=rss
kannst du mir das bitte etwas genauer erklären
Code:parser => JFactory::getXmlParser('rss'); erstellen => JFactory::getDocument()->....
LG Rene
Verstehe ich nicht ganz, was soll ich dir erklären? Mit JFactory::getDocument() kannst du deinen RSS Feed zusammen bauen, indem du die Methoden benutzt, die die Klasse dir liefert. In der Templatedatei einer Komponente ist dir diese Klasse über $this gegeben. print_r($this);
Danke für die schnelle Antwort,
bin da nicht so bewandert auf dem Gebiet und hab mich eventuell nicht ganz klar ausgedrückt.
Folgendes soll passiere.
Ich möchte einen Link in der Template-Datei
Dies sollte durch "format=feed&type=rss " geschehen (Oder?)
Wo füge ich nun
ein und wie genau? Muss ich eine neue Datei erstellen?Code:parser => JFactory::getXmlParser('rss'); erstellen => JFactory::getDocument()->....
Sorry für manch dumme Frage, aber bei mir wird das meistens erst auf den zweiten Blick klar![]()
LG Rene
Um das ganze mal ein bisschen einzugrenzen: Was kannst du denn? OOP? MVC? Schon mal in der libraries den document Ordner angeschaut (insbesonders den "feed")? view.html.php view.feed.php sagen dir was? Templatedateien sagen dir was?
OK, OOP ist klar und ich habe mich auch schon damit beschäftigt, auch mit dem MVC hatte ich schon zu tun. Bin aber kein Profi darin. Den Ordner document -> feed hab ich mir angeschaut hab nur nicht wirklich viel verstanden zumindest nicht wie ich da weiter kommen könnte. Ich hab in einer anderen installierten Komponente in den views Ordner einen unterordner namens feed gefunden. Diese ist ähnlich aufgebaut wie die anderen views, nur ohne default.php im tmpl Ordner. Meine Vermutung liegt nun nah das ich eventuell ebenfalls eine view namens feed erstellen muss?
Grüsse Rene
LG Rene
Ok, mal angenommen du hast einen View "Foo". In diesem View hast du eine view.html.php und eine default.php. Dieser View zeigt dir schöne Sachen an. Nun möchtest du diese schönen Sachen in einem Feed haben. JDocumentFeed ist genau das was du brauchst. Also packst du mal in deinen View eine view.feed.php. Diese wird aufgerufen, wenn in der URL format=feed steht. Dort packst du deine normalen Klassen etc. rein (KomponenteViewFoo). In diesem View lädst du im Prinzip auch alle Daten und gibst diese an die Templatedatei weiter. Joomla! Core Komponenten generieren den Feed nun in dem View selbst, ich würde das dann aber eher in der Templatedatei machen, damit es per Override abänderbar ist. Ansonsten schau einfach, wie es com_content macht und mache es besser![]()
ok... das hilft mir erstmal weiter... beim ersten mal drüber schauen ist mir einiges aus der view.html.php bekannt vorgekommen. werde mich jetzt erstmal ummein kind kümmern und wenn ich hier weiter bin wieder melden. bis dahin erstmal vielen dank
LG Rene
Hallo, da bin ich wieder.
Also ich bin jetzt soweit wie unten dargestellt. Habe aber ein paar Fragen.
1. Ist das so wie ich es gemacht hab OK, wenn nicht was muss ich ändern und
2. das datum kommt aus der DB also im Format 2011-12-02 und ausgegeben wird es Freitag, 2. Dezember 2011 01:00 - Wie bekomme ich die Uhrzeit weg und kann ich das Datumsformat ändern?
DankePHP-Code:<?php
defined('_JEXEC') or die();
jimport( 'joomla.application.component.view' );
class FBFactoryViewBerichte extends JView
{
function display()
{
$db = JFactory::getDBO();
$doc =& JFactory::getDocument();
// Query zusammenbauen
$query = '
SELECT
*
FROM
#__myTable
WHERE
published = 1
ORDER BY
datum DESC
LIMIT
3'
;
// Query speichern
$db->setQuery($query);
// Das Ergebnis als Array ausgeben lassen
$db_item = $db->loadAssocList();
foreach ($db_item as $items)
{
// load individual item creator class
$item = new JFeedItem();
$item->title = $items['title'];
$item->link = JRoute::_('index.php?option=com_fbfactory&view=fbf_berichte&mid='.$items['id'].'&Itemid=80');
$item->description = preg_replace('/<[^>]+>/','',$items['des']);
$item->date = $items['datum'];
$item->category = $items['cat'];
$item->author = $items['author'];;
$doc->addItem( $item );
}
}
}
?>
LG Rene
Lesezeichen