Drupal Views Cck Hans Rossel
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,793
On Slideshare
4,793
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
68
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Jyve . Look at 'Acting career' page Layouts: Choose the 'One column' layout to unlock some DS goodies. Fields: a whole bunch of fields offered by Drupal are available by default Fields: add a dynamic field 'All images' Fields: add block field: Powered by Drupal Look at homepage Layout: Teaser goedzetten: 3-col stacked View modes: teaser in sidebar too busy: extra view mode instead of Views fields Views integration: homepage alternating view modes + grouping Other entities: Profile block Comments layout HTML output: vergelijken node en comment
  • Jyve Tonen Extra's module, demo most important ones Field templates: reset als default kiezen en HTML vergelijken Field templates: Image bij article aanpassen in expert mode Regions to block: image in sidebar block Page title: manueel instellen Switching View modes: between full and teaser Views Displays: frontpage view aanzetten en velden tonen

Transcript

  • 1. Drupal CCK & Views v5 Hans Rossel - www.koba.be
  • 2. CCK / Fields
    • Content Construction kit of Fields module
    • 3. Velden bij inhoudstypes
    • 4. Historiek: flexinode->cck->fields
    • 5. In D7: fields module in core
      • Fields op alle fieldable entities: node, user, tax of entities gemaakt door een module: Organic group, Commerce Product
      • 6. Filefield, imagefield, imagecache in core
      • 7. Nodereference en userreference in cck contrib
  • 8. Views
    • Dynamic query builder, lijsten trekken
    • 9. Earl Miles, Sony, Panels
    • 10. http://drupal.org/project/views
    • 11. D5: Views1: enkel nodes (=>nodecontent, nodecomments, ...)
    • 12. D6: Views2: ook users, taxonomie, files, ...
    • 13. D6: Views3: elke databron niet enkel db, ook apache Solr, Flickr, RDF, elke bron met api + OR mogelijkheid bij filters
    • 14. D7: Views3 & fields in core.
  • 15. Drupal installatie
    • Verondersteld gekend
    • 16. Via devel generate kan een volle site opgebouwd worden (opgelet met files)
  • 17. Lamp server op Ubuntu (debian)
    • sudo aptitude install php5 apache2 mysql-server phpmyadmin php5-mysql libapache2-mod-php5 php5-cli (voor drush)
    • 18. root user paswoord instellen voor mysql
    • 19. phpmyadmin: spatiebalk drukken om apache2 te kiezen + ok
    • 20. testen: localhost, localhost/phpmyadmin
    • 21. sudo /etc/init.d/apache2 restart
    • 22. Alternatief: sudo tasksel install lamp-server
    • 23. Meer info: https://help.ubuntu.com/community/ApacheMySQLPHP
  • 24. Mod rewrite installeren 1) sudo a2enmod rewrite 2) sudo pico /etc/apache2/sites-enabled/000-default  3) Change AllowOverride None to AllowOverride All 4) Restart Apache: sudo /etc/init.d/apache2 force-reload
  • 25. Drush: Drupal Shell
    • http://drupal.org/project/drush (ook voor windows)
      • http://vimeo.com/5207683
      • 26. Extra http://drupal.org/taxonomy/term/4654
      • 27. http://www.archive.org/details/DrupalconSf2010Drush
      • 28. http://www.archive.org/details/DrupalconSf2010AdvancedDrush
  • 29. Drush commando voorbeelden
    • Drupal installeren in htdocs of www mapje
      • drush (help uitleg)
      • 30. drush dl drupal (download drupal)
      • 31. drush dl cck views nl ckeditor acquia_marina backup_migrate (in drupal map)
      • 32. drush en cck views (modules aanleggen, omgekeerd: dis)
      • 33. drush cron
    • Drupal updaten met drush
      • drush bam backup of drush sql-dump > example10052010.sql
      • 34. tar -czf drupal.tgz drupal
      • 35. drush variable-set site_offline TRUE
      • 36. drush up : update alle modules + backup code
      • 37. drush updb: run update.php
      • 38. drush variable-set site_offline FALSE
  • 39. HOOFDSTUK 2 Content Ordening
  • 40.  
  • 41. Basis cck fields
    • Voornaamste extra fields
      • http://drupal.org/project/imagefield
      • 42. http://drupal.org/project/filefield
      • 43. http://drupal.org/project/date
      • 44. http://drupal.org/project/email
      • 45. http://drupal.org/project/link
      • 46. http://drupal.org/project/emfield
  • 47. CCK tekst
    • Nieuwsbericht met scheduler
    • 48. Tekstveld ipv body
    • 49. Reactie instellingen
    • 50. Invoerformaat
      • Better formats
      • 51. Wysiwyg filter
    • Widgets: (vergelijk met webform)
    • Nodeformcols of vertical tabs: afwerking invoer
  • 55. CCK USABILITY
  • 56. Node Form Columns Usability vereenvoudiging cck formulieren
    • http://drupal.org/project/nodeformcols
  • 57. Better messages
  • 58. CCK Link
    • Links configureren
    • 59. Weblinks module
    • 60. Linkchecker
      • Automatisch controleren op dode links in textareas en link velden
      • 61. Werkt op cron
      • 62. Geeft overzicht van dode links en mogelijkheid om deze te deactiveren
  • 63. CCK File en Image
  • 72. Insert & Image Resize filter
    • http://drupal.org/project/insert
      • Zorgt voor extra buttons om filefield afbeeldingen in een textarea in te voegen
      • 73. Zorgt voor dropdown met selectie van imagecache presets voor invoegen
      • 74. Voordeel: Veiligheid & gebruiksvriendelijkheid gecombineerd: je hoeft geen <img> toe te laten voor anonieme gebruikers om afbeeldingen in te voegen + blijft eenvoudig om inline te plaatsen
  • 75. Insert
  • 76. Insert & Image Resize filter
    • http://drupal.org/project/image_resize_filter
      • Aan hoekjes trekken om afbeelding te verkleinen en toch een correcte resize opdracht uitvoeren in php
    • Kan goed gecombineerd worden met de insert module om een alternatieve vorm en veilige vorm van invoegen van afbeeldigen te verkrijgen.
  • 77. HOOFDSTUK 2 VIEWS
  • 78. Views handleiding & support
    • Advanced help module installeren
      • Ingebouwde handleiding van Views
      • 79. Views documentatie op admin/advanced_help/views
      • 80. http://views-help.doc.logrus.com : advanced help op site van Earl
      • 81. http://views.doc.logrus.com : views 2 API op site van Earl
    • http://drupal.org/project/issues/views
      • Search inside gebruiken
      • 82. Filteren op all support requests
    • http://drupal.org/handbook/modules/views
      • Gearchiveerd op vraag van Earl Miles
      • 83. http://drupal.org/node/492210#comment-1714204
  • 84. Default views
    • Frontpage view
      • Eenvoudigste: bootst de homepage /node na
      • 85. Teaserlijst van laatste items met vinkje aangeraden op voorpagina aan
      • 86. Is vanaf nu wijzigbaar
      • 87. Niet vergeten bij websitegegevens frontpage te zetten ipv node voor homepage
  • 88. ADMINISTRATIEVE VIEWS EXPORT EN AUTOMATISERING
  • 89. Views Bulk Operations
    • Een bepaalde actie/rule uitvoeren op een selectie gemaakt met views
    • 90. Een email sturen naar een groep mensen
      • Naar een user view
      • 91. Naar de auteur van nodes: [mail] plaatsen bij ontvanger
      • 92. Opgelet: Batch api (of jobqueue) aanzetten bij versturing van grote hoeveelheden
  • 93. Soorten views
    • Node, comment, user, …
    • 94. Formatting views queries p201
      • Queries bekijken
      • 95. prototyping
  • 96. Views Bulk operations
    • Default view aanpassen
      • admin/content/node2 bijsturen
      • 97. Extra exposed filters
    • Acties:
      • Emails versturen (batch/nieuwsbrief)
      • 98. Updaten van taxonomie
  • 99. Actions/Triggers/Rules
    • Actions/Triggers: zit in Drupal core: het vinkje bij Trigger module aanzetten
    • 100. Rules module: Geeft bijkomende verfijning en condities aan de acties
      • Een bericht op scherm plaatsen
      • 101. Een automatische email versturen
      • 102. Een nieuwsbrief nasturen
      • 103. Een veld wijzigen
  • 104. Rules
    • Email sturen bij indienen van vacature
      • Actions: maak de email actie
      • 105. Trigger: new content
      • 106. Condition: Node type=vacature
      • 107. (Condition: Field has value)
      • 108. Action: Send email
  • 109. GEBRUIKERS EN PROFIELEN
  • 110. Gebruikers en profielen Content profile module
      • Naam, voornaam, adres, lidnummer
      • 111. Automatic Nodetitles
    Node view: Beheer profielen
      • N:Naam, N:straat, N:lidnummer, U:mail, U:edit, N:edit, N:updated
      • 112. Exposed:naam, U:Created date of N:Updated date
      • 113. Tabel: default sort
      • 114. Permissies op de view: enkel admins
  • 115. Gebruikers en Profielen (2) User view: Beheer accounts
    • Relationship: content profile
    • 116. Fields: G:Naam,G:mail,G:rollen,G:edit,G:laatste toegang,N:naam,N:voornaam
    • 117. Table view: Naam en voornaam samen in één vakje
    • 118. Filter G:naam <>anonymous, rollen exposed, email exposed, naam exposed
    • 119. Permissies: enkel admins
  • 120. Gebruikers en profielen (3)
    • Mijn inhoud: blokken met inhoud van de gebruiker op de profielpagina
    • 121. Argument:
      • Gebruiker:uid
      • 122. Provide default argument: user id from url
      • 123. Validator:gebruiker only allow numeric uid
  • 124. Gebruikers en profielen
    • Mijn Reacties
      • Relationship: Reactie: Node
      • 125. Fields: reactie:titel
      • 126. Filters
        • (Node)Node:User posted or commented
        • 127. (Node)Gebruiker: Current Ja of
        • 128. Argument (Node): User:uid
  • 129. Reacties beheren
    • Reactie view
      • Comments recent
      • 130. Default view
    • Node view
      • Fields: R:titel, R:berichttekst, R:Auteur, R:indiendatum
      • 131. Filters:Indiendatum>=-30days
  • 132. Headline view
    • Hoofdview: Laatste nieuwsbericht
      • View met ingekorte tekst 1 item laatste nieuwsbericht
    • Subview: Titels andere nieuwsberichten
      • Lijst van titels van andere nieuwsberichten
  • 133. HANDGEPLUKTE en BEINVLOEDE INFORMATIE
  • 134. Drupal core standaard
    • Vinkje: vastgeplakt bovenaan de lijst
    • 135. Vinkje: aangeraden op de voorpagina
    • 136. Via de frontpage view kan hier in beperkte mate promotie van content worden gedaan
    • 137. Via i18n: eventueel “aangeraden op de voorpagina” vertalen naar “in de kijker”
    • 138. Nadeel: we krijgen slechts 1 indicator/lijst en vaak hebben we op een homepage meerdere nodig
  • 139. Nodequeue
    • Voordeel
      • Mogelijkheid om zelf informatie te kiezen
      • 140. Volgorde kan eenvoudig veranderd worden
      • 141. Weergave bepalen via een view
      • 142. Ideaal voor homepage, in de kijker, …
      • 143. Rules: automatisch toevoegen aan nodequeue
    • Nodequeue aanmaken
    • 144. Nodequeue view
      • Disablen indien niet nodig
      • 145. In block weergeven: rechterkolom content
  • 146. Flag
    • Mark as spam, mooie foto, bookmarks, goedgekeurd
    • 147. Admin View
      • Relationship: Flag
      • 148. Field: Flag:flaglink, relationship: goedkeuring
      • 149. Acties/Triggers: op goedkeuring ook publiceren
        • Flag actions
        • 150. Actions/triggers/rules
  • 151. Ratings
    • Voting api
      • Relationship: node voting results: percent, no filtering, average
      • 152. Sorteren op beste punten: (Voting results) Voting API results: Waarde desc
      • 153. Field: (Voting results) Voting API results: Waarde
    • Fivestar
      • Vijf sterretjes voor score
      • 154. User generated content
  • 155. STATISTIEKEN
    • Statistics module aanzetten: 16 weken
    • 156. Sort criteria: Most popular
    • 157. Default view: backlinks
  • 158. EXPOSED FILTERS
  • 159. Exposed filters
    • Filters wijzigen via code
    • 160. Checkboxen gebruiken (views checkboxes module/content taxonomy)
    • 161. Hierarchical select
  • 162. VIEWS ARGUMENTEN
  • 163. User argument
    • “ Mijn inhoud”
      • Gebruiker: uid
      • 164. Provide default argument: uid from url
      • 165. Let op: dus best op /user/nummer doen anders is php code nodig om te bepalen wat de uid is of kan ook kiezen voor logged in user.
  • 166. Node argument
    • Blok met veld dat behoort bij deze pagina
      • Bij inhoudstype: display settings: exclude dit veld
      • 167. Node:nid
      • 168. Provide default argument: nid from url
    • Blok met Meer nieuws
      • Node:nid, provide default argument: nid from url, exclude the argument
      • 169. Zorgen dat pagina zelf niet in de lijst van meer staat => exclude
  • 170. TAXONOMIE & CATEGORISEREN VIA NODEREFERENCE
  • 171. Taxonomie views
    • Via taxonomie module indelen in woordenschatten en termen
    • 2 manieren voor de view
      • Veld All Terms: werkt best, geen filter
      • 174. Veld Term: indien filter nodig of argument
  • 175. Views met taxonomie
    • Voordelen
      • Mogelijkheid om hierarchie weer te geven via Relationship: parent term
      • 176. Auto aanvullen in exposed filters maar nu ook http://drupal.org/project/autocomplete_widgets
    • Nadelen
      • Sorteren volgens taxonomie werkt niet: kan niet sorteren volgens alfabet of numeric, wel volgens taxonomie gewicht maar daar bug, random sort ook bug
      • 177. Soms duplicate results (door koppeling van node en term tabellen)
      • 178. Alternatieven met CCK select kun je perfect sorteren
  • 179. Taxonomie view
    • Oefening
      • Taxonomie selecteren via exposed filter
      • 180. Taxonomie via Argument
  • 181. Gerelateerde content via Taxonomy: term id argument $node = node_load(arg(1)); if ($node) { $terms = taxonomy_node_get_terms_by_vocabulary($node, 1); $continenten = array(416,1,2,3,4,5,6,7,8); foreach ($terms as $tid => $term) { if (in_array($tid, $continenten)) { //$tids[] = '1'; // we dont want to have the continenten everywhere also if just one country selected } else { $tids[] = $tid; } } if (isset($tids) && strlen(trim($tids)) <> 0) { return implode (&quot;+&quot;, $tids); } else {return false;} } return false;
  • 182. Nodereference
    • Steeds meer gebruikt als alternatief voor taxonomie
      • Gerelateerde content
      • 183. Relatie kan beperkt worden via een view
    • Voordeel:
      • CCK
      • 184. Is gekoppeld aan een eigenlijke pagina ipv aan een woord/term
  • 185. Nodereference view Gewone nodereference
      • Ct Pagina heeft nodereference naar gerelateerde pagina
      • 186. View in blok van
        • Field: Nodereference field
        • 187. Argument: Node:nid,Default argument: Nid from url
        • 188. Exclude/hide van Nodereference field in het inhoudstype pagina
    Andere toepassing: Blogroll: links bij bloghoofdpagina in zijkolom Opmerking: kan ook via theming
  • 189. Reverse nodereference
    • Reverse nodereference
      • Ct Nieuws heeft nodereference naar (overzichts)pagina
      • 190. Titel: nieuws bij pagina
      • 191. Filters:N:Nieuws
      • 192. Fields:Titel
      • 193. Relationship:Inhoud:Noderef field, require
      • 194. Argument:Node:Nid, relationship noderef field,provide default nid from url
      • 195. Opm: Vergelijk met taxonomie
      • 196. Vb: artikels bij magazine (inhoudstafel), ...
  • 197. Views Alpha Pager
    • Glossary View
    • 198. http://tedserbinski.com/tags/drupal/creating-alpha-pager-with-views-2-and-drupal-6
  • 199. DATUM VIEWS
  • 200. Events in Drupal
      Date/Calendar
      • De date module voorziet het datumveld
      • 201. Met het datumveld kunnen lijsten worden getrokken in views en sorts, … gedaan
      • 202. De calendar module is nodig als je een kalenderblok of pagina wenst
  • 203. Datum views
    • Toevoegen van extra datum format op admin/settings/date-time/formats: wijzigen short in 14/10
    • 204. Ical: importeren, exporteren Google calendar
    • 205. Legend: verschillende kleuren ct
    • 206. Date range
    • 207. Calendar views
  • 208. Date range
    • Zaken van komende twee weken
      • Tussen vandaag en +14d
    • Items die nog niet vervallen zijn
      • Einddatum > now
    • Werken met publicatie
      • http://drupal.org/project/scheduler
      • 209. Rules
  • 210. Calendar module
    • Weergave als een
      • Kalenderblok
      • 211. Volledige kalender
  • 212. Events
    • Webform: eenvoudig niet gekoppeld
      • http://drupal.org/project/webform
      • 213. Versie 3 heeft gedeeltelijke views integratie
    • Signup module + theme
      • Theme in template.php
  • 214. Andere datum views
    • Publicaties
    • 215. Gebruikers volgens geboortedatum
  • 216. PANELS
  • 217. Panels: doel en historiek
    • Panels = layoutbuilder in Drupal
    • 218. Earl Miles (Views)
    • 219. Sony www.myplay.com
    • 220. Versies 1,2,3
    • 221. Toekomst: Drupal 8 misschien een eenvoudige panels achtige interface voor toevoegen van content in Drupal core
    • 222. Documentatie: http://drupal.org/node/496278
  • 223. Panels: voordelen
    • Point en click Drupal theming zonder html en php, templates opstellen via de interface
    • 224. Slechts 1 soort inhoudsobject: panel waarin blokken, menus, views, velden, ... kunnen weergegeven worden => alles eenvormig op dezelfde manier behandelen
    • 225. Complexe pagina layouts mogelijk zonder voorkennis van html/css
    • 226. Flexibeler layouts: vb zelfde blok in verschillende regios, ...
    • 227. Makkelijker en sneller wijzigingen aanbrengen aan templates
    • 228. Ctools: vastleggen van layouts in exportables en features => exporteerbaar dus hergebruikbaar en opgenomen in svn/git revisiesysteem.
    • 229. Varianten: andere soorten layouts volgens context, vb ingelogde klanten/leden, mobiele website
    • 230. Integreert heel goed met views
  • 231. Panels: nadelen
    • Performance: is heel grote module, wel goede caching opties
    • 232. Kan complex zijn: is systeem op zich met leercurve en heel veel checkboxen
    • 233. Werkt behoorlijk anders dan “the Drupal way” => bloksysteem en regios uitschakelen (vinkje)
    • 234. Alles of niets: als je panels gebruikt het voor alles gebruiken
    • 235. Moeilijker te debuggen
    • 236. Soms trage upgrade bij nieuwe versie van dr http://www.youtube.com/watch?v=qBGKdnUj4Yw upal core , en upgrades tussen v1, 2 en 3 waren niet vanzelfsprekend, maar ondertussen heel veel gebruikt (> 80.000 installs)
    • 237. Overladen html tenzij je eigen custom templates opstelt
  • 238. Submodules en extra
    • Page Manager (bij ctools): page layouts (beetje zoals page.tpl.php)
    • 239. Mini panels: blok layouts
    • 240. Panel nodes: node layouts
    • 241. Views content panes: views in panels
    • Panels Everywhere
  • 242. Layouts
    • Standaardlayouts
    • 243. Bepaalde themes definiëren extra layouts zoals Adaptive Theme (AT) in d6
    • 244. http://drupal.org/project/panels_extra_layouts : extra layouts:
    • 245. Best: eigen html templates voor layout
      • Advanced help module: help/panels/plugins-layout
      • 246. tpl.php, css, inc en png
      • 247. Meer docs: http://drupal.org/node/495654
  • 248. Variants
    • Andere layout voor zelfde pagina bij andere voorwaarden
      • Volgens content type: basic page er anders laten uitzien dan artikels
      • 249. Volgens toegangsrol: admin, ingelogden, leden/klanten zien iets anders
      • 250. Volgens taal
      • 251. Volgens trefwoord, ...
      • 252. Mobile themes dank zij integratie met de http://drupal.org/project/mobile_tools module
  • 253. Contexts
    • Arguments
      • /taxonomy/term/%term
      • 254. /forum/%forum
      • 255. /music/beatles/th
    • Andere contexts
      • Node auteur
      • 256. Node reference
  • 257. DISPLAY SUITE
  • 258. Filosofie achter Display Suite
    • Centraal beheer van layout van website inhoud
    • 259. Template bestanden overbodig maken
    • 260. Focus op gebruiksvriendelijkheid
    • 261. Gebruik van PHP beperken = betere veiligheid
  • 262. Layout beheer met Drupal core
    • Mix van template bestanden en Field UI
    • 263. Nadelen:
      • Template bestanden zijn niet onderhoudbaar
      • 264. Field UI is beperkt:
        • Geen UI om extra velden toe te voegen (vb. titel, auteur)
        • 265. Geen UI om extra View Modes toe te voegen
        • 266. Inconsistent: 'Search result' View Mode
        • 267. Geen gebruik van voorgedefinieerde layouts
  • 268. Layout beheer met DS
    • Bouwt verder op Field UI
      • Nieuwe View Modes aanmaken
      • 269. Voorgedefinieerde layouts aanmaken
      • 270. Eigen velden toevoegen
    • Integratie met Views en Panels
    • 271. Werkt op elke Drupal Entity (Node, gebruiker etc)
    • 272. Consistente HTML output
    • 273. Oefening 1: DS aanzetten en Node en Teaser layout wijzigen
  • 274. DS layouts
    • Standaard: 11 layouts + Panel layouts
    • 275. Eigen layout in theme:
      • ds_layouts folder aanmaken
      • 276. ***.inc en ***.tpl.php bestanden verplicht
      • 277. ***.css optioneel
      • 278. Voorbeeld: ds.api.php lijn 356.
      • 279. Oefening 2: Eigen layout met 3 rijen in theme toevoegen
  • 280. Extras module
  • 286. ZOEKEN advanced
  • 287. Geavanceerd zoeken
    • http://drupal.org/project/apachesolr
    • 288. Views3 + solr
    • 289. Gewone views search combinatie
    • 290. Display suite kan zoekresultaten opmaken
  • 291. Search API
    • Nieuwe module voor D7 die op een heel flexibele manier zoekresultaten kan weergeven
      • Pluggable backends: database, Solr, …
      • 292. Weergave via views (dus afbeeldingen en layout in zoekresultaten eenvoudig)
      • 293. Makkelijk meerdere zoekomgevingen op een site
      • 294. Wordt momenteel heel actief ontwikkeld
  • 295. MEDIA: foto video
  • 296. Fotogallerij
    • Basisidee:
      • Met views kun je lijsten trekken van foto's.
      • 297. De foto's kunnen worden opgemaakt via css of via een grid view of extra style plugin weergegeven
    • CSS
  • 301. Fotogallerij: effecten
    • Van een lijst van foto's maak je een mooie gallerij via één van de http://plugins.jquery.com
    • Gebruik specifieke style plugins
      • http://drupal.org/project/views_cycle
      • 302. http://drupal.org/project/views_rotator
      • 303. http://drupal.org/project/views_slideshow
      • 304. http://drupal.org/project/viewscarousel
      • 305. http://drupal.org/project/views_galleria
  • 306. Uitgebreidere fotogalerij
    • http://www.lullabot.com/articles/photo-galleries-views-attach
      • Mooi uitgewerkte fotogalerij met indeling in albums
      • 307. Werkt met views attach en nodereference modules
      • 308. Beetje complexe setup
    • Alternatieve verpakkingen van de setup
      • Via http://drupal.org/project/features
      • 309. Als module http://drupal.org/project/views_gallery
  • 310. Video Video op de eigen server
    • Filefield: http://www.drupaltherapy.com/filefield
    • 311. Streaming video via RTMP en custom cck veld
    • 312. Emfield: Embedded media field
      • Video Upload module: direct vanuit de site naar Youtube opladen
      • 313. Voor betere kwaliteit gebruik Vimeo of Blip.tv
      • 314. Veel veiliger dan embed en object tags toe te laten in filtered html
  • 315. Embedded media field
    • Embedded media field:
      • http://drupal.org/project/emfield
      • 316. Embedded media en embedded video field aanleggen
      • 317. Inhoudstype maken met 1 emfield, display settings op full size video
    • Video view
      • Overzicht van video's
      • 318. Doorzoekbaar per trefwoord via exposed filter
      • 319. Groeperen per cck veld
  • 320. Views import en export
  • 321. Feeds module
    • www.drupal.org/project/feeds
      • Aggregator van rss feeds maar ook csv, xml, ical, … en kan er nodes of data elementen van maken
      • 322. Opvolger van de feedapi module
      • 323. node/add/feed
    • Youtube feeds: http://www.youtube.com/rssls
    • 324. Feeds
      • http://drupal.org/project/feeds_imagegrabber
    • Cron moet werken!
  • 325. Views export csv of xls http://drupal.org/project/views_data_export Voordeel tov views_bonus: batch api
  • 329. THEMING HULP MODULES
  • 330. Devel module http://drupal.org/project/devel
    • Dpr(): drupal print array
    • 331. Dpm(): drupal print message
  • 332. Theme developer http://drupal.org/project/devel_themer
  • 333. Drupal for firebug http://drupal.org/project/drupalforfirebug
  • 334. Fields EN VIEWS THEMING
  • 335. Intercept & override
    • Basisprincipe: core niet hacken
    • 336. Niet akkoord met de html en css?
      • Css: css door core gedefinieerd overriden in style.css of andere .css bestanden (via .info)‏
      • 337. Html:
        • Template files: in theme map van de module
        • 338. theme overrides: html die wordt gegenereerd door de modules theme_... functies
  • 339. Theme overrides
  • 340. Theme functies overriden
    • Overriden in template.php
      • Phptemplate_...: voor alle themes
      • 341. Mytheme_...: voor mytheme (veiliger)‏
  • 342. Theme functies zoeken Lijst: http://api.drupal.org/api/group/themeable/6 Themable functies vinden theme_ Zoeken api.drupal.org (core) of api.lullabot.com of http://drupalcontrib.org (contibuted) of eigen via http://drupal.org/project/api
      • In een .module file: zoeken naar theme_...
  • 343. Nieuwe tpl.php bestanden
    • Naast comment en box sinds Drupal 6: in mapje van core en andere modules
    • 344. Override = Kopiëren naar theme map + aanpassen
    • 345. Via Theme Developer (Devel)‏
  • 346. Node en User Object Node object <?php print_r($node); ?> <?php var_export($node); ?> <?php var_dump($node); ?> Veiligheid:
    • check_url($front_page);
    • 347. check_plain($node->body);
    • 348. check_markup($node->body);
    User object <?php print_r($user); ?> <?php var_export($user); ?> <?php var_dump($user); ?> Veiligheid
    • check_url($user -> ...);
    • 349. check_plain($user -> name);
  • 350. Node object laden Voor execute php in devel <?php if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); print_r($node); } ?>
  • 351. FIELDS THEMING
  • 352. Theming fields Individuele velden kunnen gethemed worden via field.tpl.php
    • field.tpl.php
    • 353. field--field-type.tpl.php
    • 354. field--field-name.tpl.php
    • 355. field--content-type.tpl.php
    • 356. field--field-name--content-type.tpl.php
  • 357. Theme image styles http://api.drupal.org/api/drupal/modules--image--image.module/function/theme_image_style/7 print theme('image_style', array( 'path' => $field_gallery_image['de'][0]['uri'], 'style_name' => 'gallery_thumbnail'));
  • 358. Theme image styles Probleem/bug: width/height van images: is opgelost in D7.8 http://drupal.org/node/908282 http://drupal.org/node/1129642 Manueel hoogtes specifieren theme('image_style', array('style_name' => 'desthumb', 'path' => $image0path, 'getsize' => TRUE, 'attributes' => array('class' => 'thumb', 'width' => '150', 'height' => '162'))); Tijdelijke workaround: http://api.drupal.org/api/drupal/modules--image--image.module/function/theme_image_style/7#comment-14839
  • 359. VIEWS THEMING
  • 360. Field display settings Vanuit de interface
    • Fields en labels wrappen in h2, class, … zit in Views 3 standaard in de module
    • 361. Indien je meer wenst
      • http://drupal.org/project/semanticviews
      • 362. http://drupal.org/project/semantic_fields
  • 363. Een view beïnvloeden in code 1) Met de template files views-view.tpl.php 2) Met een hook vb hook_views_admin_links_alter 3) Tijdens het embedden van de view $view->hide_admin_links
  • 364. Views templates
    • Basistemplates in de views module folder
    • 365. Theme Information link in de view zelf geeft suggesties voor files specifiek voor deze view
      • node-view-nodequeue_1.tpl.php
      • 366. node-view-front_most_recent_conference.tpl.php
    • Theme developer via Devel module: bekijken suggesties live
    • 367. Er zijn ook theme_ functies beschikbaar voor views, maar handiger via tpl.php
    • 368. Preprocess functies voor wijzigen variabelen
  • 369. Views 2 templates views-exposed-form.tpl.php Layout van de exposed filters form. views-more.tpl.php Theme de lees meer link views-view-fields.tpl.php Standaard simple view template met alle velden als een rij. views-view-grid.tpl.php Een view als grid weergegeven  views-view-list.tpl.php Een view als lijst weergegeven views-view-row-comment.tpl.php Eén comment in een view. views-view-row-node.tpl.php Eén node in een view
  • 370. Views 2 templates views-view-rss.tpl.php Feeds in rss stijl views-view-summary-unformatted.tpl.php Groep van summary lijnen. views-view-summary.tpl.php Lijst van summary lijnen. views-view-table.tpl.php Een tabel view. views-view-unformatted.tpl.php Lijst van rijen. views-view.tpl.php Hoofd view template.
  • 371. Views 2 templates views-view-rss.tpl.php Feeds in rss stijl views-view-summary-unformatted.tpl.php Groep van summary lijnen. views-view-summary.tpl.php Lijst van summary lijnen. views-view-table.tpl.php Een tabel view. views-view-unformatted.tpl.php Lijst van rijen. views-view.tpl.php Hoofd view template.
  • 372. Views 2 templates views-exposed-form.tpl.php Layout van de exposed filters form. views-more.tpl.php Theme de lees meer link views-view-fields.tpl.php Standaard simple view template met alle velden als een rij. views-view-grid.tpl.php Een view als grid weergegeven  views-view-list.tpl.php Een view als lijst weergegeven views-view-row-comment.tpl.php Eén comment in een view. views-view-row-node.tpl.php Eén node in een view
  • 373. THEMING FIELDS
  • 374. Theming fields Individuele velden kunnen gethemed worden. Let op: originele content-field.tpl.php moet in theme map Zie theme map in cck module: content-field.tpl.php
    • content-field-[FIELD_NAME].tpl.php
    • 375. content-field-[CONTENT_TYPE].tpl.php
    • 376. content-field-[FIELD_NAME]-[CONTENT_TYPE].tpl.php
    Opgelet steeds ook een gewone content-field.tpl.php plaatsen!!
  • 377. Views embedden
  • 378. Views embedden met module
    • http://drupal.org/project/viewfield
    • 379. http://drupal.org/project/insert_view
  • 380. Eenvoudig views embedden http://api.lullabot.com/views_embed_view/7 <?php echo views_embed_view('most_recent_post', 'default'); ?> <?php echo views_embed_view('nieuws', 'block_1'); ?> <?php print views_embed_view('calendar', 'calendar_block_1'); ?>
  • 381. Views met js embedden Issue views_slideshow: http://drupal.org/node/325353#comment-2941588 Opgelet: js herladen! In template.php: <?php function themename_preprocess_page(&$vars, $hook) { $vars['embedded_view'] = views_embed_view(‘rooms’, ‘block_1′); $vars['scripts'] = drupal_get_js(); $vars['styles'] = drupal_get_css(); } ?> In page.tpl.php <?php print $embedded_view; ?>
  • 382. Views alternatief embedden via block Gewoon block embedden: <?php $block = module_invoke('block', 'block', 'view', 10); print $block['content']; ?> Views block embedden: <?php $block = module_invoke('views', 'block', 'view', 'FotoCarousel-block_1'); print $block['content']; ?>
  • 383. Views embedden alternatief $view = views_get_view($view_name); $view->set_arguments(array(0 => 'all', 1 => 'typeb')); // if you have args $view->set_items_per_page(0); // Aantal resultaten print $view->execute_display(0, $args); // default view, include $args param if using
  • 384. Geavanceerd embedden via blok <?php $view = views_get_view('Publicaties'); //print '<pre>'; //print_r($view); //print '</pre>'; $view->set_display('block_1'); $view->display_handler->set_option('items_per_page', 2); $view->set_arguments(args...); $title = $view->get_title(); $output = $view->preview(); print '<h2>' . $title . '</h2>'; print $output; ?>
  • 385. Via een module function MIJNMODULE_form_views_exposed_form_alter(&$form, $form_state) { if ($form['#id'] == 'views-exposed-form-all-events-page-1') { $form['date_filter']['min']['#date_format'] = 'd-m-Y'; $form['date_filter']['max']['#date_format'] = 'd-m-Y'; } }
  • 386. Opvragen current view <?php $view = views_get_current_view(); print_r($view); $current_view_name = $view->name; $current_view_display = $view->current_display; ?>
  • 387. Homepage theming
    • (via wysiwyg of eigen content type)
    • 388. Standaard Drupal met blokken en extra regions
    • 389. Met is_front() variabele
    • 390. Als page-front.tpl.php: views embedden
    • 391. Via http://drupal.org/project/panels
    • 392. Via www.drupal.org/project/ds
  • 393. Totaal aantal resultaten <?php $from = ($view->pager['current_page'] * $view->pager['items_per_page']) + 1; $to = $from + count($view->result) - 1; $total = $view->total_rows; if ($total <= $to) { // no need to show where we are if everything fits on the first page print '<b style=&quot;resultaten&quot;>'; if ($total <> '') { echo $total . &quot; resultaten gevonden.&quot;; } print '</b>'; print '<br />'; } else { print '<b style=&quot;resultaten&quot;>'; echo &quot;Gevonden: &quot; . $from . &quot; - &quot; . $to . &quot; van in totaal &quot; . $total . &quot; resultaten.&quot;; } ?> In views-view--Naamvanjeview.tpl.php
  • 394. GOOGLE MAPS
  • 395. Google maps views
    • Google maps: Latitude + Longitude
    • 396. Geocoding (http://en.wikipedia.org/wiki/Geocoding)
      • http://www.geonames.org
  • 399. Eenvoudigste view
    • Google maps static maps api
      • http://code.google.com/apis/maps/index.html
      • 400. http://code.google.com/apis/maps/documentation/staticmaps/
    • Views: Rewrite the output of this field
      • <img border=&quot;0&quot; src=&quot;http://maps.google.com/maps/api/staticmap?center=[geo_code_1],[geo_code_2]&zoom=13&size=570x285&maptype=roadmap&markers=color:blue|label:F|[geo_code_1],[geo_code_2]&sensor=false&quot; />
  • 401. Google maps modules
    • Modules
      • Gmap/Location: grootste logge oudste module: geen javascript geocoding
      • 402. Open layers: http://drupal.org/project/openlayers
      • 403. Nodemap: klein en eenvoudig, geen D7
      • 404. Gmaps module: nieuwer, geen D7
  • 405. Gmap module
    • http://drupal.org/project/gmap
    • 406. http://drupal.org/project/location
    • 407. Oudste en meest gebruikte module
    • 408. Bij inhoudstype location settings definieren
    • 409. Latitude en longitude velden toevoegen in view
  • 410. Openlayers
    • Integreert met diverse maplagen: Openstreetmap, Google maps
  • 411. Nodemap
    • http://drupal.org/project/nodemap
    • 412. Eenvoudige interface
    • 413. Ondersteuning Yahoo en Google
    • 414. Slechts 1 marker op de kaart
  • 415. Gmaps module
    • View
      • Type: gmaps map, preset style earth
      • 416. Row style: Map fields marker
      • 417. Fields
        • Content anp locatie
        • 418. Marker option: locatie point
        • 419. Marker option: icon options
  • 420. NIEUWSBRIEVEN & e-mail integratie
  • 421. Mail interactie
    • Simplenews
    • 422. Subscriptions of Notify of Watcher
    • 423. Actions & Workflow/Rules & Views Bulk operations
    • 424. Messenger & Notifications framework
    • 425. Webform
    • 426. Mailhandler
  • 427. Nieuwsbrieven
    • 3 voornaamste mogelijkheden
      • Simplenews: eenvoudig en goedkoop, geen bounce handling, beperkte statistieken, problemen met server gemarkeerd als spamserver
      • 428. Campaignmonitor of Mailchimp integratie: full bounce handling, statistieken, whitelisting, betalend maar Mailchimp tot 1000 abonnees gratis!
      • 429. Civimail (onderdeel van Civicrm): mailings, bounce handling, goed systeem
  • 430. Nieuwsbrief theming
    • http://www.campaignmonitor.com/css/
    • 431. http://drupal.org/node/268404
    • 432. Probleem: css moet inline voor webclients (gmail, yahoo, hotmail)
      • Views templates maken voor onderdelen
      • Automatisch: Emogrifier (htmlmail), Mime Mail CSS Compressor (mimemail)
      • 433. Display suite
  • 434. Nieuwsbrief theme Via Themekey module: als ct nieuwsbrief of view nieuwsbrief => Nieuwsbrief theme gebruiken
    • Nieuwsbrief theme
      • Geen html5 en andere moderne zaken, terug naar de nineties!
      • 435. Sterk vereenvoudigde html.tpl.php: geen css en js printen
      • 436. Sterk vereenvoudigde page.tpl.php: enkel tabel
  • 437. Nieuwsbrief theme
    • Views: <?php print views_embed_view('nieuwsbrief_items','default'); ?>
    • 438. Reference field: <?php print render($content['field_nb_architectuurnieuws']); ?>
    • 439. Veld: <?php print check_url($node->field_nb_subfoto1_linkt['und'][0]['url']); ?>
  • 440. Aanpak 2: via views
    • Nodequeue: Toevoegen aan nieuwsbrief
    • 441. View: Nieuwsbrief op /nieuwsbrief
    • 442. Nieuwsbrief = page - - nieuwsbrief.tpl.php
      • Views_embed_view('eersteview');
      • 443. views_embed_view('tweedeview');
    • Nadeel: geen inleiding, archief via Mailchimp
  • 444. Aanpak: Eigen inhoudstype
    • CT Nieuwsbrief
      • Met velden voor foto's, tekst, links
      • 445. Reference fields voor lijsten
  • 446. Simplenews theming
    • simplenews-newsletter-body--1126.tpl.php
    • 447. simplenews-newsletter-footer--1126.tpl.php
  • 448. FEATURES
  • 449. Configuration management
    • Drupal werkt aan het probleem dat veel configuratie in de database zit en dit beter in code zou zitten.
    • 450. http://london2011.drupal.org/conference/sessions/content-staging-and-deployments-drupal-7
    • 451. http://buytaert.net/configuration-management-in-drupal-8
    • 452. http://groups.drupal.org/node/134569
  • 453. Features
    • http://drupal.org/project/features
    • 454. Twee toepassingen
      • Combineren van inhoudstypes, views, … tot een feature = via de interface gemaakte module die je op andere installaties kan gebruiken
      • 455. Zoveel mogelijk van de Drupal settings overbrengen naar code zodat ze kunnen opgenomen worden in een versiecontrolesysteem (git, svn, ...)
  • 456. Strongarm
    • http://drupal.org/project/strongarm
    • 457. Slaat de Drupal variabelen op in code zodat ze kunnen in een versiecontrolesysteem opgenomen worden
  • 458. EXTRA CCK
  • 459. Fieldgroups
    • Indelen in groepen
    • 460. Met tabs: via cck fieldgroup tabs, vergelijk deze tabs met quicktabs
  • 461. Content Copy
    • Exporteren en importeren van cck inhoudstypes
  • 462. UITBREIDINGSTOEPASSINGEN
  • 463. Import export
    • Table wizard & Migrate
    • 464. Feeds (of feedapi)
    • 465. Node import
    • 466. User import
    • 467. Views exporteren via bonus pack (zie eerder)
  • 468. Default views
    • Voorbeelden
    • Mogelijkheid om default views te definieren in een module
      • http://views-help.doc.logrus.com/help/views/api-default-views
  • 471. Default views module
    • Voordeel: svn/git + doorgeven
    • 472. Wat zit in export bekijken
    • 473. T functie toevoegen
    • 474. Eenvoudige module
  • 475. PERMISSIES
  • 476. Content Permissions
    • Gebruik Masquerade voor testen
  • 481. Views permissies
    • Permissies instellen
    • 482. Merk op
      • Je kunt verschillende views maken met dezelfde url, maar verschillende permissies. Op die manier krijgen rollen op een bepaalde url een andere view te zien.
  • 483. Organische groepen
    • Basisviews
      • Beinvloeden, specifieke argumenten
    • Organisatie organische groepen
      • Permissies
      • 484. Notifications en messaging framework
  • 485. UITBREIDING EN MEER INFO
  • 486. Interessante cck velden en views plugins
    • Extra velden en plugins
    • 487. Views: http://drupal.org/project/modules?filters=tid:89&solrsort=sis_project_release_usage%20desc
    • 488. CCK : http://drupal.org/project/modules?filters=tid:57&solrsort=sis_project_release_usage%20desc