Feeds

Leseenheid

Moeilijkheidsgraad

4

Dit thema behandelt enkel interessante toepassingen om inhoud en inhoudstypes over te zetten van één bestaan of site naar een ander. We verkennen Feeds, Node Export en Features. Ze zijn zeer populair (soms 1,5 miljoen gebruikers). Je zult zien waarom dit is. Drupal op zijn best.

Feeds

klik hier voor de startbestanden. Een Feed is een opsomming van teasers die op een site beschikbaar worden gesteld in een een bepaald formaat. RSS en XML RSS kunnen aldus gelezen worden omdat er een logische opbouw aanwezig is in deze formaten. Als je abonneert op een Feed en je hebt een Feed lezer dan krijg je een bericht telkens er een nieuw Feed item bijkomt of wijzigt. Het is daarom vooral interessant voor onderwerpen die tijdsgebonden zijn zoals nieuws en blogs. Je herkent een Feed aan het gekende oranje logootje.

Op deze pagina  zie je rechts een blokje dat zijn gerief rechtreeks van Drupal.org haalt. (https://www.drupal.org/news) Je doet dit met de Aggregator module. De inhoud werd met de Feeds module van Drupal geïmporteerd. Dit is dus andere koek. De items zijn dus omgevormd tot nodes in onze eigen Drupal. Vanaf nu kan je dus alles doen wat je met nodes kunt doen. Views maken, sorteren, filteren,..

De werkwijze is tamelijk simpel omdat deze Feeds module eigen inhoudstypes Feeds en Feed-items heeft aangemaakt. Ook de Feeds importer staat klaar.

In een tweede voorbeeld halen we ons gerief van een Disney achtige site: http://feeds.feedburner.com/parkeology Deze site peilt naar de 50 populairste figuren aller tijden in de Disney parken.

Voor het overzicht klik hier. Merk op dat de nodes werden aangemaakt en dat de inhoud nu bij klikken op de teaser, full aanwezig is.

Sommige Feeds zijn in het XML formaat gemaakt. Hier is er zo één: http://www.cinenews.be/nl/cinema/filmagenda/nieuwe-films-deze-week/ als je onderaan op de feed de koppeling kopieert en bvb opent in bvb Notepad ++ dan kan je de XML en zijn structuur zien.

Merk op dat er een link tag staat. In ons inhoudstype hebben we dit (nog) niet en daarom maken we dit aan. Bij de import wordt dit dan ook meegenomen.

Bij klikken op de lees verder... Je ziet dat de link mooi meegekomen is. Ik heb wel ook een link veld gebruikt. Deze zet de tekst om in een link... wat had je gedacht?

 

De Feeds module wordt tegenwoordig echter meer gebruikt voor de import van gegevens via een CSV bestand. Als je weet dat een Excel file naar een CSV kan omgezet worden, dan weet je welke mogelijkheden dit opent. Ik maak een simpel inhoudstype aan met onderstaande velden. Het gaat over boeken en hun schrijvers.

Uit een lijst met honderd boeken (beste aller tijden...) haal ik er hier een vijftal via een Feeds import in mijn Drupal. Als het met 5 lukt, dan gaat het voor allen... Ik heb ooit 14000 nodes zo geïmporteerd....

Er is ook een taxonomie importer. dit doet dus hetzelfde als met nodes. Je hebt daar een andere importer voor nodig omdat nodes en taxonomie andere tabellen zijn. Ik voeg aan mijn 'boeken' een taxonomieveld toe, maar importeer eerst de items in een woordenlijst.

Zelfs subcategoriën zijn mogelijk.

Vervolgens... de import in de nodes van de termen. Ook afbeeldingen kan je importeren. Maak dat de afbeeldingen reeds geüpload zijn en verwijs er naar in de csv file. Bingo. Merk ook op dat ik ook een tekstveld heb geïmporteerd en dit in Full HTML mogelijk is. Velden met meervoudige inhoud kan je via de 'explode' functie van Tamper inmporteren. Bekijk eens alle mogelijkheden van Tamper...

Verder... een moeilijke... Voor veldverzamelingen (field collection) heb je een extra importer nodig. Veldverzamelingen zijn inderdaad wat complexer. Ze vormen een entiteit op zich. Je moet niet alleen verwijzen naar de node waatoe ze behoren, maar ook nog naar het sleutelveld van de veldverzameling. Een voorbeeldje:

Tenslotte... Webshops hebben een aparte tabel met de producten. Producten zijn geen nodes!. Je voelt het reeds aankomen... een aparte commerce feed is er nodig. Eens je dit weet, kan je een volledige stocklijst van je groothandel importeren... We maken hier ook gebruik van Tamper om de getallen om te zetten naar euro's. (komma wordt verwijderd)