Exemple #1
0
 function get_schema()
 {
     // Format der Angaben:
     //    'XMLPath' => array (Quelltyp, Zielformat, Datenquelle)
     //        Quelltyp:
     //            - XML_DATA_CONTEXT: Inhalt wird als Eigenschaft des Context erwartet
     //              Beispiel:
     //                '/rss/channel/title'
     //                    => array(XML_DATA_CONTEXT,  XML_TYPE_STRING,    'name')
     //
     //            - XML_DATA_STATIC:  Inhalt ist ein statischer Wert
     //              Beispiel:
     //                '/rss/@version'
     //                    => array(XML_DATA_STATIC,  XML_TYPE_STRING,     '2.0'),
     //
     //            - XML_DATA_CALLBK:  Inhalt wird durch Aufruf einer Callback-Methode
     //                                ermittelt, diese muss einen String zurueckliefern
     //              Beispiel:
     //                '/rss/channel/link'
     //                    => array(XML_DATA_CALLBK,   XML_TYPE_STRING,    'get_link'),
     //
     //            - XML_DATA_ONCE:    Inhalt wird einmal ausgegeben. Ist eine Datenquelle
     //                                (= Callbackmethode) angegeben, wird diese aufgerufen
     //                                und fuer untergeordnete Elemente der von dieser
     //                                Methode zurueckgegebene Context gesetzt. Ansonsten
     //                                bleibt es beim aktuellen Context
     //              Beispiele:
     //                '/rss'
     //                    => array(XML_DATA_ONCE,    XML_TYPE_OBJECT,     NULL),
     //                '/rss/channel'
     //                    => array(XML_DATA_ONCE,     XML_TYPE_OBJECT,    'get_channel'),
     //
     //            - XML_DATA_LOOP:    wie XML_DATA_ONCE, es muss eine Callback-Methode
     //                                angegeben werden, die einen array von Context's
     //                                fuer untergeordnete Elemente zurueckgibt
     //              Beispiele:
     //                '/rss/channel/category'
     //                    => array(XML_DATA_LOOP,   XML_TYPE_OBJECT,    'get_categories'),
     //
     //            - XML_DATA_IGNORE:  Knoten wird ignoriert
     //              Beispiele:
     //                '/rss/channel/image/width'
     //                    => array(XML_DATA_IGNORE),
     //
     $schema = parent::get_schema();
     $override = array('/rss/@xmlns:itunes' => array(XML_DATA_STATIC, XML_TYPE_STRING, 'http://www.apple.com/itunes/store/podcaststechspecs.html'), '/rss/channel/itunes:author' => array(XML_DATA_CALLBK, XML_TYPE_STRING, 'get_itunesauthor'));
     return array_merge($schema, $override);
 }
Exemple #2
0
 function get_link(&$context)
 {
     $link = parent::get_link($context);
     return str_replace('https://', 'http://', $link);
 }