+ Antworten
Ergebnis 1 bis 10 von 10

Thema: Rss Feed für eigene Komponente erstellen

  1. #1
    Neu an Board
    Registriert seit
    08.03.2011
    Ort
    Reichenbach
    Beiträge
    74
    Bedankte sich
    3
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Beitrag Rss Feed für eigene Komponente erstellen

    Wie es der Titel schon sagt, wie erstelle ich ein RSS Feed für meine eigene Komponente?

    Vielen Dank
    LG Rene

  2. #2
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    aufruf => format=feed&type=rss

    parser => JFactory::getXmlParser('rss');

    erstellen => JFactory::getDocument()->....

  3. #3
    Neu an Board
    Registriert seit
    08.03.2011
    Ort
    Reichenbach
    Beiträge
    74
    Bedankte sich
    3
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    aufruf => format=feed&type=rss
    das habe ich schon gesehen...

    kannst du mir das bitte etwas genauer erklären

    Code:
    parser => JFactory::getXmlParser('rss');
    
    erstellen => JFactory::getDocument()->....
    LG Rene

  4. #4
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    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);

  5. #5
    Neu an Board
    Registriert seit
    08.03.2011
    Ort
    Reichenbach
    Beiträge
    74
    Bedankte sich
    3
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    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

    Code:
    parser => JFactory::getXmlParser('rss');
    
    erstellen => JFactory::getDocument()->....
    ein und wie genau? Muss ich eine neue Datei erstellen?

    Sorry für manch dumme Frage, aber bei mir wird das meistens erst auf den zweiten Blick klar
    LG Rene

  6. #6
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    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?

  7. #7
    Neu an Board
    Registriert seit
    08.03.2011
    Ort
    Reichenbach
    Beiträge
    74
    Bedankte sich
    3
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    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

  8. #8
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    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

  9. #9
    Neu an Board
    Registriert seit
    08.03.2011
    Ort
    Reichenbach
    Beiträge
    74
    Bedankte sich
    3
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    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

  10. #10
    Neu an Board
    Registriert seit
    08.03.2011
    Ort
    Reichenbach
    Beiträge
    74
    Bedankte sich
    3
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    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?


    PHP-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 );
            }
        }    
    }
    ?>
    Danke
    LG Rene

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein