SlideShare a Scribd company logo
1 of 170
Download to read offline
Drupal CMS – Brussel 24/2/2014
hans.rossel@koba.be – Twitter @haro - www.koba.be
Wat is Drupal
CMF

(W)CMS

Content Management Framework

Content Management Systeem

http://api.drupal.org

www.drupal.org

hooks, callbacks & overrides

www.drupal.com
www.drupal.be
Situering: CMS concurrenten


Gesloten: Tridion, Sharepoint, Documentum, Stellent



Open source


Java: Alfresco, Liferay, OpenCMS



Python: Plone (Zope webserver, ZODB)



Php:



Joomla (Mambo)





Wordpress
Typo3

Asp: Dotnetnuke, Umbraco
Bron: Cmswire Open Source CMS Market Share Report (2011)
Referenties Media/Entertainment
●

●

●

●

●

VRT, VTM, VT4, Vitaya, RTBF
Sony BMG Music, Universal Music Group, Warner Bros, 20th
Century Fox, Michael Jackson, Eric Clapton and Robbie
Williams, Grammy awards, Emmy awards
The Examiner, The Economist, Le Figaro, Edipresse, Infoworld,
Aj Jazeera
Studio Brussel, Radio Netherlands Worldwide, Australian
Broadcast Company, BBC, CNN, Reuters
Virgin, Slate, Monthy Python and Lucas Arts
NGO, Gov & edu
●

●

●

●

Human Rights watch, Amnesty
World Food Programme, World Bank, United Nations, Europese Unie, World
Economic Forum
Witte Huis, Vlaanderen, New York state senate, US Department of
Commerce, Belgische Premier, Belgische Monarchie, FOD Financiën, the
French government, the Dutch government, the Australian Prime Minister
and the British Government, London en Athene.
Universiteit Gent, Duke University, Strayer University, Portland University,
MIT, Stanford University and Harvard

●

UitinVlaanderen, FARO, Louvre, Tate, Vlaamse Kunstcollectie

●

NASA (http://themis.asu.edu/)

●

Linux Foundation, JAVA.net en Internet Systems Consortium
Enterprises using Drupal
●

●

Telenet, ING, Garmnin, Ebay, Symantec, Nokia, AHOLD,
Randstad, Sony Ericsson, Paypal, Twitter, Mattel, Nvidia,
Rackspace, AT&T, FUJI film, General Motors, Intel,
Fujifilm, Fedex, IBM, Cap Gemini, Accenture, Procter &
Gamble en Google (mlab), IKEA
Zenito (svmb/admb)

Meer referenties: http://www.buytaert.net/tag/drupal-sites
Voordelen Drupal
•

Open Source GPLv2: broncode vrij downloadbaar en aanpasbaar

•

Geen licentiekosten.

•

Geen Vendor Lock-In. Veel bedrijven. Geen “eenmans” Open Source CMS

•

Grote community & sterke groei: veel support, testen, activiteit

•

Up-to-date, mee met nieuwe ontwikkelingen

•

Php = meest gebruikte webprogrammeertaal

•

•

Uitvoerig getest: 3.2 miljoen keer/jaar gedownload, grote sites gebruiken
het
10000 Modules = Veel kostefficiënte uitbreidingen
http://drupal.org/project/Modules
Troeven Drupal
Kwaliteit code & modulaire uitbreidbaarheid

●

–

●

Social media aspecten
–

●

“Online community” aspecten al vanaf het prille begin ingebouwd: taxonomie, user rollen,
comments.Volwassen functionaliteiten

Volledig Open Source GPLv2 (geen “dual licence”)
–

●

Heel flexibel framework (CMF) met goede stabiele architectuur en code heel geschikt voor maatwerk.
Uitgebreide en uitvoerig gedocumenteerde API (api.drupal.org)

Alle modules vrij downloadbaar (vgl. Joomla), community edition is full option (vgl. Alfresco,
SugarCRM). Activiteit en info gecentraliseerd op www.drupal.org (vgl Joomla)

Enterprise ready
–

–
●

Steeds meer grote referenties => uitvoerig getest, gedocumenteerde integratiemogelijkheden,
performance, scaling, caching.
Commerciële ondersteuning van het project Acquia, Drupal Association

Community & ecosysteem
–

–
●

Grote en open community gebaseerd op Open Source principes van samenwerken (vgl Joomla:
http://buytaert.net/joomla-vs-drupal-business-models-and-commercial-ecosystem).
Veel ontwikkelaars, veel support.

Made in Belgium
Integratie Drupal
●

DMS: Document management
–
–

●

Beperkte reeks modules voor doorzoeken van pdf, word, excel
Integratie met Alfresco via CMIS.

CRM: Contact Relationship Management
–

●

Knowledge Management Portal (Intranet)
–

●

Drupal Modules: PM, Casetracker, Project

Webshop
–

●

Open Atrium Distributie (Wereldbank Intranet) en LDAP integratie modules

Project Management
–

●

Integratie met CiviCRM, SugarCRM, …

Ubercart/Drupal Commerce module of integratie met Magento

Webservices
–

SOAP, Rest, XMLRPC, Services module.
Geschiedenis


1999 Dries Buytaert



Recente versies focus


4.7: Form API, admin interface



5: Mature & Stable, CCK, Views



6: Multilingual support, theming layer



7: Usability (image), Unit testing, php5.2.6, Semantic web,
fields API



8: Webservices (Symfony 2, OO php), Configuration
management, mobile, html5, design, multilingual, blocks,
editor experience. Zie http://groups.drupal.org/drupal-initiatives
Omvang Drupal project


> 20000 Modules (= plugins, extensies)



> 2 miljoen pagina's en > 1 miljoen users op drupal.org





Drupal core wordt momenteel gebruikt op minstens 1 miljoen actieve
websites (http://drupal.org/project/usage), “3.2% van het internet”
Twee delen
–

–




Core: >1800 ontwikkelaars (D8), 250 duizend lijnen code (
http://infogr.am/Drupal-Code-Base?src=web).
Contributed: >10000 ontwikkelaars

80talen, duizenden gratis Themes (en betalend Themeforest,
Templatemonster, ...)
2 jaarlijkse Drupalcons (Amsterdam 2014), Europese confs (Front End
United, Developer Days, Business Days, Government Days), wereldwijd
local Drupalcamps (50-500 deelnemers), DUG (Drupal User groups).
Omvang Drupal project


> 20000 Modules (= plugins, extensies)



> 2 miljoen pagina's en > 1 miljoen users op drupal.org





Drupal core wordt momenteel gebruikt op minstens 1 miljoen actieve
websites (http://drupal.org/project/usage), “3.2% van het internet”
Twee delen
–

–




Core: >1800 ontwikkelaars (D8), 250 duizend lijnen code (
http://infogr.am/Drupal-Code-Base?src=web).
Contributed: >10000 ontwikkelaars

80talen, duizenden gratis Themes (en betalend Themeforest,
Templatemonster, ...)
2 jaarlijkse Drupalcons (Austin/Amsterdam 2014), Europese confs (Front
End United, Developer Days, Business Days, Government Days),
wereldwijd local Drupalcamps (50-500 deelnemers), DUG (Drupal User
groups).
Leercurve developers
Drupal leercurve
Community
●

Internationaal
–
–

http://planet.drupal.org: Blogs

–

http://groups.drupal.org: Werkgroepen

–

IRC: Freenode (Chatzilla)

–
●

www.drupal.org

http://drupal.stackexchange.com/

België
–

Www.drupal.be

–

Www.drupal.be/support: Bedrijven
Systeemvereisten
Standaard

Alternatieven







Apache
> MySQL 5.1
> Php 5.2.6 (+pdo)
Php RAM > 64MB
min



Lighttpd, Nginx





IIS mits aanpassingen voor php



PostgreSQL



MSSQL, Oracle via php PDO.
Basisfunctionaliteiten


Zoekfunctie



RSS



Meertaligheid



Statistieken



Login-systeem met rollen



Reactiesysteem



SEO vriendelijke urls



Taxonomie
Basiselementen


Users



Entities Nodes



Blokken



Menu



Taxonomy



Fields



Views
HOOFDSTUK 2

INSTALLATIE DRUPAL CORE
Origineel of voorverpakt







Origineel drupal.org, of via git
Via Windows installer:
http://acquia.com/downloads/windows-installer
Via controlepaneel: Installatron, Fantastico
Drupal gardens (Acquia Drupal)
Distributies (http://drupal.org/project/distributions en http://www.acquia.com/downloads)
–

Open Atrium

–

Open Publish

–

Pressflow

–

Nodestream

–

Commerce Kickstart

–

Open Public

–

Drupal Commons
Systeemvereisten
Standaard LAMP

Alternatieven



Linux Hosting



Lighttpd



Apache server



IIS mits aanpassingen



MySQL 5.1



PostgreSQL



Php 5.3



Sinds D7: nieuwe abstraction
layer die andere databases
(MSSQL, Oracle) ondersteunt via
php PDO.
Lokaal op op hosting







Origineel drupal.org, of via git
Via Windows installer:
http://acquia.com/downloads/windows-installer
Via controlepaneel: Installatron, Fantastico
Drupal gardens (Acquia Drupal)
Distributies (http://drupal.org/project/distributions en http://www.acquia.com/downloads)
–

Open Atrium

–

Open Publish

–

Pressflow

–

Nodestream

–

Commerce Kickstart

–

Open Public

–

Drupal Commons
Wampserver









Skype uitschakelen
Start all services
Apache rewrite module aan
Localhost testen: http://localhost
Drupal downloaden in C:wampwww
Unpack (7-zip) en hernoemen map naar drupal
http://localhost/drupal
Installatiescherm: database gegevens?
Database maken
http://localhost/phpmyadmin/

Home > databases > create new database

Users > create new user

All privileges

Installatie op cpanel hosting




Drupal 7 uploaden met
http://filezilla-project.org/download.php?type=client
Een database aanmaken bij databases (niet in phpmyadmin)

Eerst database maken






Dan user maken
Dan user toevoegen aan database, all privileges

Drupal installatie

Databasenaam en username worden vaak geprefixt met
accountname bij hosting: dus accountname_username en
accountname_databasename gebruiken


Permissies files en settings instellen
Installatie
# Copy the ./sites/default/default.settings.php file
to ./sites/default/settings.php.

# Change file permissions so that it is writable
by the web server.

php.ini


Foutreportage & security






register_globals = Off
allow_url_fopen = On

Upload en timout limieten


memory_limit = 128M



upload_max_filesize = 150M



post_max_size = 150M



max_input_time = 300



max_execution_time = 300
Bestandsstructuur
Mappen en inhoud

Core niet hacken!






Sites map instellen:
modules/templates
Files instellen
HOOFDSTUK 3

EEN EENVOUDIGE SITE
MET ENKEL
DRUPAL CORE
EEN WYSYWYG
EEN PREFAB THEME
Navigatiestructuur


Home



Nieuws



Wat doen we?



Over ons



Contact: contact module/webform
Performance verhogen
●

Instellingen > Prestaties
–

●

Alle vinkjes aanleggen

Modules > Overlay
–

Afvinken en opslaan onderaan
Inhoud toevoegen
●

Inhoud toevoegen
–
–

●

Article: titel, foto, tekst, trefwoorden, comments
Basic page: titel, tekst

Verticale tabs
–

Publicatieopties

–

Revisies

–

Menu
Menu
●

Structuur > Menu's
–
–

●

Menu-items toevoegen in het overzicht
Gewone “node” pagina's hebben onderaan ook de
mogelijkheid om een menuitem toe te kennen.

Pagina's zonder menu
–

Vb: nieuwsitems die in het nieuwsoverzicht
voorkomen, kalenderitems, fotoalbums, ...

–

Vind je in het overzicht van inhoud
Homepage instelling
●

Instellingen > Websitegegevens

●

Ofwel
–

Node = overzicht van laatste 10 berichten
aangeraden op homepage

–

Vaste pagina vb node/5
Blokken
●

●

Structuur > Blokken
Dienen voor randinformatie die op meerdere
pagina's moet voorkomen

●

De meeste modules voorzien enkele blokken

●

Blok toevoegen

●

●

Blokgebieden demonstreren (Bartik): regio's
positie in je theme
Zichtbaarheidsinstellingen
Taxonomy
●

Structuur > Taxonomie

●

Trefwoorden toevoegen
–

Vaste lijst

–

Free tagging (autoaanvullen)
Basisinstellingen installatie


Site instellingen




Bestandssysteem



Datum en tijd



Foutrapportage



Site onderhoud





Bestands upload

Websitegegevens

Inhoudelijk beheer




Teaserlengte, taxonomie, ...

Gebruikers


Rollen admin en redactie aanmaken + rechten instellen



Gebruikers toevoegen aan een rol
WYSYWYG


mogelijkheden
– Www.drupal.org/project/ckeditor Of www.drupal.org/project/wysiwyg
– Bueditor of Markdown (geen wysiwyg, betere html)



De editor






www.drupal.org/project/wysiwyg
Externe editor downloaden: Ckeditor, Tinymce

Afbeeldingen in de editor


www.drupal.org/project/imce



www.drupal.org/project/imce_wysiwyg
WYSYWYG installatie & werking


Stappen (ook algemeen voor installeren module)


Issues bekijken: critical bugs ea bugs + versie kiezen



Opladen van de module



readme.txt lezen en online handboek



Eventuele core patches installeren



Dependend modules aanvinken op admin/build/modules



Aanvinken op admin/build/modules



Toegangsrechten controleren



Module settings instellen



Kijken als er te activeren blokken zijn bijgekomen
Search
Zoekfunctie en instellingen

Cron laten lopen om index op te vullen

(ingebouwde) CRON


Noodzaak cron

Wissen log bestanden






Voordelen

Simpel te activeren
Nadelen

Niet regelmatig: start na tijd én nadat user inlogt




Andere automatische taken

Niet geschikt voor backups/versturen nieuwsbrieven

Alternatief: crontab op server: aan te raden

http://drupal.org/cron
HOOFDSTUK

THEMES (basis)
Bartik en Seven
Standard frontend en backend theme Drupal 7

Bartik kan uitgebreid worden via een subtheme

Prefab themes
•

Op Drupal.org
•

•

https://drupal.org/project/project_theme

Elders (betalend)
•

http://www.designrazzi.com/2014/drupal-7-themes/

•

http://themeforest.net/category/cms-themes/drupal

•

http://www.templatemonster.com/drupal-themes.php

•

http://www.themesnap.com/category/premium-drupal-themes
MODULES

WAAR
KEUZE
INSTALLATIE
Een module kiezen


Overzicht:


Via rechtsboven “download and extend” op drupal.org



https://drupal.org/project/project_module



Full/sandbox en versie instellen



Related projects



Populariteit






http://drupal.org/project/usage: populariteit
http://www.acquia.com/products-services/acquia-drupal En Drupal
Gardens: geselecteerd & ondersteund door Acquia
Ratings: http://drupalmodules.com
Status van een module


Versie 6 of 7



Status:




Pre-alpha, Alpha, beta, rc (release candidate)





Official release
Dev versies

Opgelet met updates van 7.x-1.x naar 7.x-2.x
Factoren kwaliteit module


Tijd: maturiteit & actief onderhouden?




Laatste update/commit





Eerste versie

Tijd tussen de updates

Futureproof?




Drupal 8 versie

Ontwikkelaar(s)


Aantal



Hoelang betrokken bij Drupal



Andere modules waarvoor verantwoordelijk



User profile bekijken / track code
Factoren (vervolg)


Issue queue




Aantal bugs & opgeloste bugs



Aantal patches (betrokkenheid externe developers)





Aantal meldingen (populariteit module)

Statistieken

Omvang module


Een klein probleem vraagt een kleine module



Geen module als je met enkele lijntjes code kunt oplossen



Gevaar voor modulitis: performance site zakt bij elke module die je toevoegt

Module usage statistics

Concurrerende modules:




zie blokken related content
Issue queue


Vragen over één module steeds hier stellen, niet op forum



Statussen, category & priority



Advanced search



Drupal core issues: http://drupal.org/project/issues/drupal



Ingeven van een issue




Zoeken naar duplicates
Heel duidelijke omschrijving (reproduceerbaar probleem): versies, browser, andere
zaken geinstalleerd, stappen hoe je kunt reproduceren op “fresh install”,
screenshots, code, views export, cck export



Verwijzing naar node via filter



Geen titel wijzigen



Subscribe? Hopelijk betere oplossing toekomst. Zie ook my issues.
FIELDS EN VIEWS
CCK/Fields


Historiek en evolutie




Doel






Nodes → Flexinode (d5) → cck contributed (d6)→ fields in core (d7)

Eigen content types met eigen velden definiëren
Vanaf Drupal 7: fieldable entity:
node/user/vocabulary/shopproduct/mediafile/werkgroep

Download


http://drupal.org/project/cck (enkel nodig voor migratie d6->d7)



Extra fields: honderden fields op drupal.org
Views
http://drupal.org/project/views
•

Dynamic query builder, lijsten trekken in ruime zin: lijst kan
ook google map zijn of fotogalerij

•

D5: Views1: enkel nodes

•

D6: Views2: ook users, taxonomie, files, ...

•

D6: Views3: elke databron niet enkel db, ook apache Solr,
Flickr, RDF, elke bron met api (vb Cultuurnet) + OR
mogelijkheid bij filters

•

D7: Fields in core, Views3

•

D8: Views in core en gedeeltelijk Views Bulk Operations
(admin bewerkingen)
Basis fields


In core
–
–

Filefield

–

Textfield

–

Listfield

–


Imagefield

Taxonomy reference field

Extra
–

Emailfield

–

Url field (link)

–

Datefield

–

Entity reference field

–

Video embed/Youtube field
File en Image
•
•
•
•
•
•
•

Filefield
Imagefield
Image Styles
Transliteration
Filefield paths
Filefield sources
Plupload
Fotogalerij
●

Inhoudstype fotogalerij

●

Titel, Inleiding, foto's (multiple)

●

Plupload voor bulk upload
–
–

https://drupal.org/project/filefield_sources_plupload

–
●

https://drupal.org/project/plupload
http://www.plupload.com library

Weergave
–

Gallery formatter

–

Colorbox

–

Flexslider
Filefield sources
●

Alternatieve bestandsupload mogelijkheden
–

Remote url

–

IMCE filebrowser

–

Bulkupload via Plupload
Gallery formatter
●

https://drupal.org/project/galleryformatter

●

Fotogallerij weergave via jquery
Filefield paths
●

●

Geeft de mogelijkheid om via tokens zowel de
mappen als de paden specifieke namen te
geven.
Voordelen
–

Heel gestructureerde bestandsorganisatie

–

Geen “random” filenamen meer van gebruikers

–

Cleanup van foute karakters via Pathauto of
Transliteration
Colorbox
●

●

Www.drupal.org/project/colorbox
Colorbox is een externe plugin die moet in de sites/all/libraries
geïnstalleerd worden

●

Geeft een jquery image popup in lightbox

●

Voordeel: goed gebruik van ruimte op pagina

●

Nadeel: accessibility:
http://www.anysurfer.be/nl/blog/detail/lightbox-veel-gebruikt-zeld
en-voor-iedereen-bruikbaar
Image Styles


Voordelen

Kan via voorgedefinieerde presets images scalen, resizen en
croppen


Je kunt verschillende varianten van dezelfde foto automatisch
laten genereren
Default views
●

Frontpage view
–

Eenvoudigste: bootst de homepage /node na

–

Teaserlijst van laatste items met vinkje aangeraden
op voorpagina aan

–

Is vanaf nu wijzigbaar

–

Niet vergeten bij websitegegevens frontpage te
zetten ipv node voor homepage
Nieuwsoverzicht
●
●

Teaserview van nieuwsberichten
Bloklijst van laatste nieuws bij nieuwsitem,
excluden van actuele item via argument.
HANDGEPLUKTE en BEINVLOEDE
INFORMATIE
Drupal core standaard
●

Vinkje: vastgeplakt bovenaan de lijst

●

Vinkje: aangeraden op de voorpagina

●

●

●

Via de frontpage view kan hier in beperkte mate promotie
van content worden gedaan
Via i18n: eventueel “aangeraden op de voorpagina”
vertalen naar “in de kijker”
Nadeel: we krijgen slechts 1 indicator/lijst en vaak hebben
we op een homepage meerdere nodig
Nodequeue
•

Voordeel
– Mogelijkheid om zelf informatie te kiezen
– Volgorde kan eenvoudig veranderd worden
– Weergave bepalen via een view
– Ideaal voor homepage, in de kijker, …
– Rules: automatisch toevoegen aan nodequeue

•
•

Nodequeue aanmaken
Nodequeue view
–

Disablen indien niet nodig

–

In block weergeven: rechterkolom content
Flag
•
•

Mark as spam, mooie foto, bookmarks,
goedgekeurd
Admin View
–

Relationship: Flag

–

Field: Flag:flaglink, relationship: goedkeuring

–

Acties/Triggers: op goedkeuring ook
publiceren
•
•

Flag actions
Actions/triggers/rules
Ratings
•

Voting api
–

–

Sorteren op beste punten: (Voting results) Voting API
results: Waarde desc

–

•

Relationship: node voting results: percent, no filtering,
average

Field: (Voting results) Voting API results: Waarde

Fivestar
– Vijf sterretjes voor score
– User generated content
STATISTIEKEN
●

Statistics module aanzetten: 16 weken

●

Sort criteria: Most popular

●

Default view: backlinks
EXPOSED FILTERS
Exposed filters
• Filters wijzigen via code
• Checkboxen gebruiken (views checkboxes
module/content taxonomy)
• Hierarchical select
VIEWS ARGUMENTEN
User argument
•

“Mijn inhoud”
– Gebruiker: uid
– Provide default argument: uid from url
– 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.
Node argument
●

Blok met Meer nieuws
–

Node:nid, provide default argument: nid from url, exclude the argument

–

Zorgen dat pagina zelf niet in de lijst van meer staat => exclude
Views embedden
●

Verschillende opties
–
–

●

Viewfield of View reference
Entity Views Attach (https://drupal.org/project/eva )

Een view weergeven
–

https://drupal.org/project/insert_view
Views Bulk Operations
●

●

Een bepaalde actie/rule uitvoeren op een
selectie gemaakt met views
Voorbeelden
–

Overzicht inhoud of gebruikers beheren op maat aanpassen

–

Trefwoorden aanpassen in bulk

–

Email versturen naar een groep mensen (opgelet geen
uitschrijflink)

–

Corrigeren van indeling na aanpassing sitestructuur

–

Goedkeuringsrij verwerken
Views bulk operations
●

Voordeel
–

●

Zeer krachtige tool die toelaat via de interface
makkelijk een hele reeks items aan te passen
ineens

Nadeel
–

Zeer krachtige tool, neem steeds een backup voor
je ze gebruikt.
Views Bulk Operations
http://blog.jquery.com/2011/12/08/what-is-happening-to-the-jquery-plugins-site/
Actions/Triggers/Rules
●

●

Actions/Triggers: zit in Drupal core: het vinkje
bij Trigger module aanzetten
Rules module: Geeft bijkomende verfijning en
condities aan de acties
–

Een bericht op scherm plaatsen

–

Een automatische email versturen

–

Een nieuwsbrief nasturen

–

Een veld wijzigen
Conditional fields
●

●

Bepaalde velden of fieldgroups maar tonen als
een ander veld een bepaalde waarde heeft
Voordeel:
–

Invulformulier korter maken

–

Enkel de velden tonen die moeten ingevuld worden
Field Permissions
●

●

●

https://drupal.org/project/field_permissions
Velden kiezen waarbij per rol de zichtbaarheid en het
bewerken/deleten ervan kan beperkt worden.
Voorbeelden
–

Premium content: inleiding zichtbaar voor iedereen,
volledige tekst enkel voor zij die betaald hebben

–

Klanten of ledenprofiel: bepaalde velden niet publiek
tonen, bepaalde velden enkel aanpasbaar door admins
Inline entity form
●

●

Embedden van een node form binnen een
andere wrapper node form
Voorbeelden
–

Productnode form bevat product entity

–

Documentnode of Afbeeldingsnode embedden

–

Gereferencete entities direct aanmaken
Rules
●

Email sturen bij indienen van vacature
–

Actions: maak de email actie

–

Trigger: new content

–

Condition: Node type=vacature

–

(Condition: Field has value)

–

Action: Send email
Entity Reference
●
●

Een rechtstreekse koppeling tussen twee entities
Gelijkaardige modules
– References (bij upgrade vanaf d6)
–

●

Relation (bidirectioneel, complex)

Steeds meer gebruikt als alternatief voor taxonomie
– Gerelateerde content
–
–

●

Relatie kan beperkt worden via een view
Taxonomy geeft geen volwaardige pagina

Voorbeelden
– Artikels bij magazine (inhoudstafel)
–

Landenpagina en nieuws over dit land

–

Architecten en hun projecten
Entity reference view
Gewone entity reference
–

Ct Pagina heeft nodereference naar
gerelateerde pagina

–

View in blok van
•
•
•

Field: Nodereference field
Argument: Node:nid,Default argument: Nid from
url
Exclude/hide van Nodereference field in het
inhoudstype pagina

Andere toepassing: Blogroll: links bij bloghoofdpagina in zijkolom
Opmerking: kan ook via theming
Reverse entity reference
•

Reverse reference
–

Ct Nieuws heeft nodereference naar (overzichts)pagina

–

Titel: nieuws bij pagina

–

Filters:N:Nieuws

–

Fields:Titel

–

Relationship:Inhoud:entity reference field, require

–

Argument:Node:Nid, relationship entity reference field, provide
default nid from url
Views slideshow
●

●

Slideshow van images afkomstig van
verschillende nodes
Vaak gebruikt voor homepage carousel in
combinatie met nodequeue voor de selectie
van de content
–

http://shouldiuseacarousel.com/

–

Diverse weergaveplugins
Date views
●

www.drupal.org/project/date:
–
–

●

Datum veld toevoegen
Inhoudstype afwerken voor evenement

View
–

●

Filter opties: Selecteer events > now

www.drupal.org/project/calendar
–

Display of calendar block

–

Nieuwe view vanaf template
Views import en export
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

–

Opvolger van de feedapi module

–

node/add/feed

●

Youtube feeds: http://www.youtube.com/rssls

●

Feeds
–

●

http://drupal.org/project/feeds_imagegrabber

Cron moet werken!
Views export csv of xls
http://drupal.org/project/views_data_export
●
Feed display toevoegen
●
Style op csv zetten
●
Pad geven
●
Xls module
Voordeel tov views_bonus: batch api
DISPLAY SUITE
Filosofie achter Display
Suite
• Centraal beheer van layout van website inhoud
• Template bestanden overbodig maken
• Focus op gebruiksvriendelijkheid
• Drupal field UI uitbreiden
• Gebruik van PHP beperken = betere veiligheid
• Meer info: http://realize.be
Layout beheer met Drupal
core
• Mix van template bestanden en Field UI
• Nadelen:
•Template bestanden zijn niet onderhoudbaar
•Field UI is beperkt:
•Geen UI om extra velden toe te voegen (vb. titel,
auteur)
•Geen UI om extra View Modes toe te voegen
•Geen gebruik van voorgedefinieerde layouts
Layout beheer met DS
• Bouwt verder op Field UI
•Nieuwe View Modes aanmaken
•Voorgedefinieerde layouts aanmaken
•Eigen velden toevoegen
• Integratie met Views en Panels
• Werkt op elke Drupal Entity (Node, gebruiker etc)
• Consistente HTML output
• Oefening 1: DS aanzetten en Node en Teaser layout
wijzigen
Dynamic field
Weergave beheren
Select content
Overzicht fields
Weergave beheren
Bloklijst instellen
Field group
Field collection
Panels in ds
Display suite extra's: field
templates
Display fields
Andere toepassingen
• Zoekresultaten
• Views slide show met meerdere content
types
• Oefening 4: slideshow opzetten: custom
View mode en voor alle content types
instellen.
Alternating view mode
Nodequeue
Alternating view modes
Entity reference: rendered
Views content panes
View add display content
pane
Add dynamic field
Page manager
Add pages
Performance
PANELS
Panels: doel en historiek
●

Panels = layoutbuilder in Drupal

●

Earl Miles (Views)

●

Sony www.myplay.com

●

Versies 1,2,3

●

●

Toekomst: Drupal 8 misschien een eenvoudige
panels achtige interface voor toevoegen van
content in Drupal core
Documentatie: http://drupal.org/node/496278
Panels: voordelen
●

●

Point en click Drupal theming zonder html en php, templates opstellen via de
interface
Slechts 1 soort inhoudsobject: panel waarin blokken, menus, views,
velden, ... kunnen weergegeven worden => alles eenvormig op dezelfde
manier behandelen

●

Complexe pagina layouts mogelijk zonder voorkennis van html/css

●

Flexibeler layouts: vb zelfde blok in verschillende regios, ...

●

Makkelijker en sneller wijzigingen aanbrengen aan templates

●

●

●

Ctools: vastleggen van layouts in exportables en features => exporteerbaar
dus hergebruikbaar en opgenomen in svn/git revisiesysteem.
Varianten: andere soorten layouts volgens context, vb ingelogde
klanten/leden, mobiele website
Integreert heel goed met views
Panels: nadelen
●

Performance: is heel grote module, wel goede caching opties

●

Kan complex zijn: is systeem op zich met leercurve en heel veel checkboxen

●

Werkt behoorlijk anders dan “the Drupal way” => bloksysteem en regios
uitschakelen (vinkje)

●

Alles of niets: als je panels gebruikt het voor alles gebruiken

●

Moeilijker te debuggen

●

●

Soms trage upgrade bij nieuwe versie van dr
http://www.youtube.com/watch?v=qBGKdnUj4Ywupal core , en upgrades
tussen v1, 2 en 3 waren niet vanzelfsprekend, maar ondertussen heel veel
gebruikt (> 80.000 installs)
Overladen html tenzij je eigen custom templates opstelt
Submodules en extra
●

Page Manager (bij ctools): page layouts (beetje
zoals page.tpl.php)

●

Mini panels: blok layouts

●

Panel nodes: node layouts

●

Views content panes: views in panels

●

Panels Everywhere
Layouts
●
●

●

●

Standaardlayouts
Bepaalde themes definiëren extra layouts zoals
Adaptive Theme (AT) in d6
http://drupal.org/project/panels_extra_layouts:
extra layouts:
Best: eigen html templates voor layout
–

Advanced help module: help/panels/plugins-layout

–

tpl.php, css, inc en png

–

Meer docs: http://drupal.org/node/495654
Variants
●

Andere layout voor zelfde pagina bij andere
voorwaarden
–

Volgens content type: basic page er anders laten uitzien dan
artikels

–

Volgens toegangsrol: admin, ingelogden, leden/klanten zien iets
anders

–

Volgens taal

–

Volgens trefwoord, ...

–

Mobile themes dank zij integratie met de
http://drupal.org/project/mobile_tools module
Contexts
●

Arguments
–
–

/forum/%forum

–
●

/taxonomy/term/%term
/music/beatles/th

Andere contexts
–

Node auteur

–

Node reference
MEERTALIGE WEBSITES
Multilingual Drupal
●

Veraalbare delen
–
–

●

i18n: internationalisation: content
L10n: localisation: interface

Multilingual settings
–
–

●

Drupal core: basis functionaliteiten
Drupal contrib: i18n module: vertalen van menu's,
blocks, taxonomy, …

Handbook: http://drupal.org/node/324602
Drupal interface vertaling
●

Localization server
–

https://localize.drupal.org/translate/languages/fr

–

https://localize.drupal.org/translate/languages/nl

–

Po bestand

–

Join en download onafgewerkte vertalingen (suggesties) van bepaalde
modules

●

Plaatsen voor de installatie in /profiles/translations

●

Drupal kan direct in de juiste taal geïnstalleerd worden

●

Je eigen localization server: https://drupal.org/project/l10n_server
, vb voor distributies of vast installatieprofiel
Localization update module
https://drupal.org/project/l10n_update
●

●

Controleert op nieuwe vertalingen van core en
module in de translation server en installeert ze
Alternatief om Drupal interface in andere taal te
krijgen
–

Installeer Drupal in het Engels

–

Activeer de locale module en l10n_update module

–

Configuration > Languages > add language

–

Configuration > Translate interface > update
Vertaling van strings
●

Configuration > Translate interface
–

Hoofdlettergevoelig!

–

Zoeken naar vertaalbare strings in modules, themes, drupal core

–

vertaalbaar=verpakt in t('engelsebrontekst'); function

●

http://drupal.org/project/l10n_client: makkelijker interface voor vlotte vertaling

●

Site enkel in het Engels
–

Geen locale dus geen meertalig systeem

–

Toch soms gewenst om strings te vertalen

–

Kan door “eigen” Engelse taal te maken of via
https://drupal.org/project/stringoverrides
Content translation
●

●

Niet enkel de interface maar ook de eigenlijke
content in een andere taal
Modules
–

Core: content translation

–

Contrib: i18n en https://drupal.org/project/i18nviews
●
●
●
●

Vertaling blokken
Vertaling trefwoorden
(Vertaling menu)
Vertaling views
Vertaling van strings
●

Configuration > Translate interface
–

Hoofdlettergevoelig!

–

Zoeken naar vertaalbare strings in modules, themes, drupal core

–

vertaalbaar=verpakt in t('engelsebrontekst'); function

●

http://drupal.org/project/l10n_client: makkelijker interface voor vlotte vertaling

●

Site enkel in het Engels
–

Geen locale dus geen meertalig systeem

–

Toch soms gewenst om strings te vertalen

–

Kan door “eigen” Engelse taal te maken of via
https://drupal.org/project/stringoverrides
Toevoegen talen
●

Best bij eerste installatie
–

●

Unpack language files in root: translation maps with .po files
are created

/admin/settings/language
–

Toevoegen nieuwe taal

–

Update translations via l10n_update

–

Configuration » Regional and language:
●
●

–

path prefix with language fallback, elke taal, ook Engels een prefix geven
Default taal kiezen en niet meer wijzigen

Configuration » Regional and language » Languages: alles
aanvinken
Meertalige menu's
●

Maak best 1 menu per taal

●

Weergave menu
–

Via blok

–

Blok taal instellen
Entity translation
https://drupal.org/project/entity_translation
●

Vertaling van fieldable entities: producten in
webshop, organic groups, users, nodes.

●

Vertaling van entities en van velden apart

●

Gebruiken bij complexere vertaalsituaties
STRUCTUURMODULES
Menu block
https://drupal.org/project/menu_block
●

Delen van een menu weergeven in een blok

●

Menu opsplitsen of dupliceren

●

Gescheiden hoofd en submenu maken
Custom breadcrumbs
●

Broodkruimels aanpassen volgens:
–

Nodetype

–

Pad

–

Views

–

Trefwoorden
Context
●

Alternatief voor blokkenstructuur
–

Vertrekkende vanaf pagina en dan de bijhorende
blokken

–

Zonder code complexere zichtbaarheidsinstellingen
vb combinatie van taal, trefwoord, inhoudstype

–

Betere structuur als er veel blokken zijn

–

Exporteerbaar
WEBFORM
Webform
• Mogelijkheid om diverse formulieren aan
te maken: bestellingen,
contactformulier, inschrijving, wedstrijd,
registratie
• Diverse velden
• Verzenden van emails, export xls
• Gelijkaardig: entity form
SPAM
Spam voorkomen
●

Core:
–
–

●

Voorbeeldweergave
IP blokkeren

Traditioneel: captcha
–

●

Mollom, captcha, recaptcha

Combinatie zonder gewone gebruiker lastig vallen
–

Hidden captcha: botcha/spamicide

–

Httpbl: Project honeypot

–

Trucs: honeypot, ...
BACKUPS, ONDERHOUD & UPGRADES
Databasestructuur


Via phpmyadmin


Cache



Nodes



Terms



Users
Nuttige acties
Paswoord en email wijzigen van user 1

Een slechte module uitschakelen

Een blok met foute php code uitschakelen

Cache tabellen leegmaken

Access log leegmaken

Optimize tables

BACKUP DATABASE
BACKUP FILES
Vooral de map sites is van belang, met de map
files in het bijzonder

Ftp 2000 files max

Backup modules & info



Handbook: http://drupal.org/node/22281
http://drupal.org/project/backup_migrate

Beste en actiefste backup module op dit ogenblik






Scheduled backup
Excluden van grote tabellen: search, cache, sessions

http://www.ozerov.de/bigdump.php: grote databases
Upgraden: puntupgrade


Stap 1: Backup sites & database



Stap 2: Inloggen als user 1 + Offline mode



Stap 3: Alle bestanden verwijderen, behalve sites.



Stap 4: Nieuwe bestanden in de plaats zetten



Stap 5: Patches herinstalleren



Stap 6: update.php laten lopen



Stap 7: patches herinstalleren



Stap 8: controle installatie en logs
Upgrade d6->d7
●

Veel werk want alle modules en themes veranderen

●

Evalueren als een upgrade al nodig is

●

●

Drupal ondersteunt 2 versies dus meest stabiele upgrade op
einde van d6 periode (nu dus)
Upgrade status module: evalueren als alle modules
beschikbaar

●

Eerst niet meer nodige functionaliteiten weghalen

●

Alternatieven
–

Feeds & Views data export

–

Migrate module: in Drupal 8
Diff & Patch



www.drupal.org/patch
Cygwin

Linux omgeving in Windows




Nut bij Drupal: diff, patch en cvs





http://www.cygwin.com
Screencast: http://www.lullabot.com/node/280/play

Patching

Screencast:


http://e4.video.blip.tv/1540000325302/Add1sun-RollingPatchesInDr
upal517.mov
Automatische updates
●

http://groups.drupal.org/aegir-hosting-system
–
–

●

Hosting systeem voor meerdere Drupal sites
Bevat Drush en Dashboard

http://drupal.org/project/plugin_manager
–
–

●

Zit bij Drupal 7 in core
Nadeel: geen restore/revert optie

Drush
–

Drush up

–

Drush site-upgrade
DRUSH
Drush: Drupal Shell
●

Drupal bedienen vanaf de command line

●

Voordelen
–

Sneller uitvoeren van installaties en updates

–

Samenvoegen van commands in installatie en
updatescripts, vb meerdere sites tegelijk updaten, distributie
installeren via drush make

–

Fixen van problemen (drush rr, drush cc all, drush cron)

–

Intensieve scripts, exports en migraties laten lopen vanaf de
command line (betere performance en php cli kan andere
limieten hebben)
Drush commando voorbeelden
●

Drupal installeren in htdocs of www mapje
–
–

drush dl drupal (download drupal)

–

drush dl cck views nl ckeditor acquia_marina backup_migrate (in drupal map)

–

drush en cck views (modules aanleggen, omgekeerd: dis)

–

drush cron

–
●

drush (help uitleg)

Drush ws (status)

Drupal updaten met drush
–

drush bb of drush sql-dump > example10052010.sql

–

tar -czf drupal.tgz drupal

–

drush variable-set site_offline TRUE

–

drush up: update alle modules + backup code

–

drush variable-set site_offline FALSE
Drush commando voorbeelden
●

Link voor eenmalige login bekomen
–
–

●

Drush uli (user 1)
drush uli 5 (user 5)

Cache leegmaken
–

drush cc all
NIEUWSBRIEVEN & e-mail integratie
Mail interactie
Simplenews

Subscriptions of Notify of Watcher

Actions & Workflow/Rules & Views Bulk
operations

Messenger & Notifications framework

Webform

Mailhandler

Nieuwsbrieven
●

3 voornaamste mogelijkheden
–

Simplenews: eenvoudig en goedkoop, geen
bounce handling, beperkte statistieken

–

Campaignmonitor of Mailchimp integratie: full
bounce handling, statistieken, whitelisting, betalend

–

Civimail (onderdeel van Civicrm)
Simplenews
●

www.drupal.org/project/simplenews

●

Voor versturen van html mail:
– http://drupal.org/project/htmlmail (Emogrifier helpt)
– http://drupal.org/project/rel_to_abs: absolute paden in links en
afbeeldingen in body
– Mimemail niet meer gebruiken: bevat bugs en is niet meer
onderhouden

●

Extra modules: analytics, on register,...

●

Let op: geen poormanscron gebruiken (dubbele verzending! + niet
betrouwbare tijdstippen)
Nieuwsbrief theming
● http://www.campaignmonitor.com/css/
● http://drupal.org/node/268404
Contemplate
● http://drupal.org/project/contemplate
● In

database of sites/all/contemplates

● Voordelen:
● Geldt

voor alle themes (ander niveau dan theme

layer)
● Voor

search, rss feeds en nieuwsbrieven
Body & footer
● simplenews-newsletter-body--1126.tpl.php
● simplenews-newsletter-footer--1126.tpl.php
● Velden

printen

●

<?php print $node->field_nieuwsbrief_link1[0]['view']; ?>

●

$foto = theme('imagecache','square100x100',$node->field_nieuwsbrief_foto1[0]['filepath']);
print '<div class="field-field-foto">' . $foto . '</div>';

●

<?php print $node->field_nieuwsbrief_intro[0]['view']; ?>
DRUPAL SUPPORT
Drupal community support


Op drupal.org


http://drupal.org/handbook: handboeken



http://drupal.org/forum: forum



http://drupal.org/project/issues: issues



http://groups.drupal.org: werkgroepen



http://www.drupal.org/planet: blogs



Op http://drupal.be en http://drupalfr.be



IRC





http://drupal.org/irc : Freenode
https://addons.mozilla.org/en-US/firefox/addon/16: Chatzilla

Mailinglijsten/newsletter
–
–



http://drupal.org/mailing-lists: Mailman lijsten: security, support, theming
http://www.theweeklydrop.com: wekelijkse nieuwsbrief met selectie van nieuws

Twitter
– #drupal



Extern
–

http://www.reddit.com/r/drupal/ : discussies en ama

–

http://drupal.stackexchange.com/: Drupal answers
Audio & Video
Podcasts
●

http://drupaleasy.com/podcast

●

http://www.lullabot.com/blog/podcasts:: lullabot podcasts

●

https://www.acquia.com/resources/podcasts: Acquia

●

https://modulesunraveled.com/podcast

Video
●

Vimeo/Youtube: drupal

●

http://mustardseedmedia.com/podcast

●

http://drupalize.me (betalend)

●

http://buildamodule.com/ (betalend)

●

Www.archive.org
Conferenties
●

http://www.drupical.com

●

DUG: Drupal User Group

●

Drupal Camp: Gent, Leuven, La Roche?, Drupaljam,
Badcamp, Drupal camping

●

Drupal Developer Days: Szeged

●

Frontend United

●

Drupal Government days

●

Drupal cxo (Business)

●

Drupalcon: Amsterdam, Austin, www.Drupalcon.org
Hans Rossel
@haro
hans@koba.be
www.koba.be

More Related Content

What's hot

Drupaljam2015 logstash
Drupaljam2015 logstashDrupaljam2015 logstash
Drupaljam2015 logstashWebscale
 
Website Usability deel 3: vervolg WordPress
Website Usability deel 3: vervolg WordPressWebsite Usability deel 3: vervolg WordPress
Website Usability deel 3: vervolg WordPressPeter Luit
 
Introductie Drupal development
Introductie Drupal developmentIntroductie Drupal development
Introductie Drupal developmentBart Hanssens
 
Drupal koba-nov2013
Drupal koba-nov2013Drupal koba-nov2013
Drupal koba-nov2013Hans Rossel
 
Online Usability training Hogeschool Utrecht - CCJ
Online Usability training Hogeschool Utrecht - CCJOnline Usability training Hogeschool Utrecht - CCJ
Online Usability training Hogeschool Utrecht - CCJPeter Luit
 
Drupal 7 Theming
Drupal 7 ThemingDrupal 7 Theming
Drupal 7 ThemingHans Rossel
 

What's hot (6)

Drupaljam2015 logstash
Drupaljam2015 logstashDrupaljam2015 logstash
Drupaljam2015 logstash
 
Website Usability deel 3: vervolg WordPress
Website Usability deel 3: vervolg WordPressWebsite Usability deel 3: vervolg WordPress
Website Usability deel 3: vervolg WordPress
 
Introductie Drupal development
Introductie Drupal developmentIntroductie Drupal development
Introductie Drupal development
 
Drupal koba-nov2013
Drupal koba-nov2013Drupal koba-nov2013
Drupal koba-nov2013
 
Online Usability training Hogeschool Utrecht - CCJ
Online Usability training Hogeschool Utrecht - CCJOnline Usability training Hogeschool Utrecht - CCJ
Online Usability training Hogeschool Utrecht - CCJ
 
Drupal 7 Theming
Drupal 7 ThemingDrupal 7 Theming
Drupal 7 Theming
 

Similar to Drupal opleiding

Drupal intro 2010
Drupal intro 2010Drupal intro 2010
Drupal intro 2010Hans Rossel
 
General Drupal presentation in Dutch
General Drupal  presentation in DutchGeneral Drupal  presentation in Dutch
General Drupal presentation in DutchRoel Meester
 
Drupal workshop 10-03-2011
Drupal workshop 10-03-2011Drupal workshop 10-03-2011
Drupal workshop 10-03-2011Hoppinger
 
Wat is drupal? - Drupal seminar 20 mei 2010, Colours
Wat is drupal? - Drupal seminar 20 mei 2010, ColoursWat is drupal? - Drupal seminar 20 mei 2010, Colours
Wat is drupal? - Drupal seminar 20 mei 2010, ColoursColours B.V.
 
Lucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLuciuswebsystems
 
Drupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
Drupal + Open Atrium bij de Vlaamse ErfgoedbibliotheekDrupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
Drupal + Open Atrium bij de Vlaamse ErfgoedbibliotheekDavid Coppoolse
 
Open eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernmentOpen eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernmentBart Gysens
 
Oplijsting mogelijkheden open source
Oplijsting mogelijkheden open sourceOplijsting mogelijkheden open source
Oplijsting mogelijkheden open sourceguesta83c7d
 
oplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_sourceoplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_sourceguesta83c7d
 
Inuits en RUG - MediaSalsa - Video Vendor Event 19 juni 2012 - Long
Inuits en RUG - MediaSalsa - Video Vendor Event 19 juni 2012 - LongInuits en RUG - MediaSalsa - Video Vendor Event 19 juni 2012 - Long
Inuits en RUG - MediaSalsa - Video Vendor Event 19 juni 2012 - LongSURFconext
 
MediaSalsa - Inuits and RUG - Video Vendor Event - 19 juni 2012
MediaSalsa - Inuits and RUG - Video Vendor Event - 19 juni 2012MediaSalsa - Inuits and RUG - Video Vendor Event - 19 juni 2012
MediaSalsa - Inuits and RUG - Video Vendor Event - 19 juni 2012MediaMosa
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development CursusLuciuswebsystems
 
Presentatie ILIAS Seminar on Open Source
Presentatie ILIAS Seminar on Open SourcePresentatie ILIAS Seminar on Open Source
Presentatie ILIAS Seminar on Open SourceKouwepolder ICT
 

Similar to Drupal opleiding (20)

Drupal intro 2010
Drupal intro 2010Drupal intro 2010
Drupal intro 2010
 
General Drupal presentation in Dutch
General Drupal  presentation in DutchGeneral Drupal  presentation in Dutch
General Drupal presentation in Dutch
 
Drupal workshop 10-03-2011
Drupal workshop 10-03-2011Drupal workshop 10-03-2011
Drupal workshop 10-03-2011
 
Drupalgardens
DrupalgardensDrupalgardens
Drupalgardens
 
Wat is drupal? - Drupal seminar 20 mei 2010, Colours
Wat is drupal? - Drupal seminar 20 mei 2010, ColoursWat is drupal? - Drupal seminar 20 mei 2010, Colours
Wat is drupal? - Drupal seminar 20 mei 2010, Colours
 
Drupal distros
Drupal distrosDrupal distros
Drupal distros
 
Lucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLucius Websystems Drupal Startersdag
Lucius Websystems Drupal Startersdag
 
Ict Bijscholing
Ict BijscholingIct Bijscholing
Ict Bijscholing
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Software anno 2009
Software anno 2009Software anno 2009
Software anno 2009
 
Drupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
Drupal + Open Atrium bij de Vlaamse ErfgoedbibliotheekDrupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
Drupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
 
Open eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernmentOpen eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernment
 
Open eGo 20090910
Open eGo 20090910Open eGo 20090910
Open eGo 20090910
 
Oplijsting mogelijkheden open source
Oplijsting mogelijkheden open sourceOplijsting mogelijkheden open source
Oplijsting mogelijkheden open source
 
oplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_sourceoplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_source
 
Inuits en RUG - MediaSalsa - Video Vendor Event 19 juni 2012 - Long
Inuits en RUG - MediaSalsa - Video Vendor Event 19 juni 2012 - LongInuits en RUG - MediaSalsa - Video Vendor Event 19 juni 2012 - Long
Inuits en RUG - MediaSalsa - Video Vendor Event 19 juni 2012 - Long
 
MediaSalsa - Inuits and RUG - Video Vendor Event - 19 juni 2012
MediaSalsa - Inuits and RUG - Video Vendor Event - 19 juni 2012MediaSalsa - Inuits and RUG - Video Vendor Event - 19 juni 2012
MediaSalsa - Inuits and RUG - Video Vendor Event - 19 juni 2012
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development Cursus
 
Presentatie ILIAS Seminar on Open Source
Presentatie ILIAS Seminar on Open SourcePresentatie ILIAS Seminar on Open Source
Presentatie ILIAS Seminar on Open Source
 
DRK: Drupal: een open platform
DRK: Drupal: een open platformDRK: Drupal: een open platform
DRK: Drupal: een open platform
 

Drupal opleiding

  • 1. Drupal CMS – Brussel 24/2/2014 hans.rossel@koba.be – Twitter @haro - www.koba.be
  • 2. Wat is Drupal CMF (W)CMS Content Management Framework Content Management Systeem http://api.drupal.org www.drupal.org hooks, callbacks & overrides www.drupal.com www.drupal.be
  • 3. Situering: CMS concurrenten  Gesloten: Tridion, Sharepoint, Documentum, Stellent  Open source  Java: Alfresco, Liferay, OpenCMS  Python: Plone (Zope webserver, ZODB)  Php:   Joomla (Mambo)   Wordpress Typo3 Asp: Dotnetnuke, Umbraco
  • 4. Bron: Cmswire Open Source CMS Market Share Report (2011)
  • 5. Referenties Media/Entertainment ● ● ● ● ● VRT, VTM, VT4, Vitaya, RTBF Sony BMG Music, Universal Music Group, Warner Bros, 20th Century Fox, Michael Jackson, Eric Clapton and Robbie Williams, Grammy awards, Emmy awards The Examiner, The Economist, Le Figaro, Edipresse, Infoworld, Aj Jazeera Studio Brussel, Radio Netherlands Worldwide, Australian Broadcast Company, BBC, CNN, Reuters Virgin, Slate, Monthy Python and Lucas Arts
  • 6. NGO, Gov & edu ● ● ● ● Human Rights watch, Amnesty World Food Programme, World Bank, United Nations, Europese Unie, World Economic Forum Witte Huis, Vlaanderen, New York state senate, US Department of Commerce, Belgische Premier, Belgische Monarchie, FOD Financiën, the French government, the Dutch government, the Australian Prime Minister and the British Government, London en Athene. Universiteit Gent, Duke University, Strayer University, Portland University, MIT, Stanford University and Harvard ● UitinVlaanderen, FARO, Louvre, Tate, Vlaamse Kunstcollectie ● NASA (http://themis.asu.edu/) ● Linux Foundation, JAVA.net en Internet Systems Consortium
  • 7. Enterprises using Drupal ● ● Telenet, ING, Garmnin, Ebay, Symantec, Nokia, AHOLD, Randstad, Sony Ericsson, Paypal, Twitter, Mattel, Nvidia, Rackspace, AT&T, FUJI film, General Motors, Intel, Fujifilm, Fedex, IBM, Cap Gemini, Accenture, Procter & Gamble en Google (mlab), IKEA Zenito (svmb/admb) Meer referenties: http://www.buytaert.net/tag/drupal-sites
  • 8. Voordelen Drupal • Open Source GPLv2: broncode vrij downloadbaar en aanpasbaar • Geen licentiekosten. • Geen Vendor Lock-In. Veel bedrijven. Geen “eenmans” Open Source CMS • Grote community & sterke groei: veel support, testen, activiteit • Up-to-date, mee met nieuwe ontwikkelingen • Php = meest gebruikte webprogrammeertaal • • Uitvoerig getest: 3.2 miljoen keer/jaar gedownload, grote sites gebruiken het 10000 Modules = Veel kostefficiënte uitbreidingen http://drupal.org/project/Modules
  • 9. Troeven Drupal Kwaliteit code & modulaire uitbreidbaarheid ● – ● Social media aspecten – ● “Online community” aspecten al vanaf het prille begin ingebouwd: taxonomie, user rollen, comments.Volwassen functionaliteiten Volledig Open Source GPLv2 (geen “dual licence”) – ● Heel flexibel framework (CMF) met goede stabiele architectuur en code heel geschikt voor maatwerk. Uitgebreide en uitvoerig gedocumenteerde API (api.drupal.org) Alle modules vrij downloadbaar (vgl. Joomla), community edition is full option (vgl. Alfresco, SugarCRM). Activiteit en info gecentraliseerd op www.drupal.org (vgl Joomla) Enterprise ready – – ● Steeds meer grote referenties => uitvoerig getest, gedocumenteerde integratiemogelijkheden, performance, scaling, caching. Commerciële ondersteuning van het project Acquia, Drupal Association Community & ecosysteem – – ● Grote en open community gebaseerd op Open Source principes van samenwerken (vgl Joomla: http://buytaert.net/joomla-vs-drupal-business-models-and-commercial-ecosystem). Veel ontwikkelaars, veel support. Made in Belgium
  • 10. Integratie Drupal ● DMS: Document management – – ● Beperkte reeks modules voor doorzoeken van pdf, word, excel Integratie met Alfresco via CMIS. CRM: Contact Relationship Management – ● Knowledge Management Portal (Intranet) – ● Drupal Modules: PM, Casetracker, Project Webshop – ● Open Atrium Distributie (Wereldbank Intranet) en LDAP integratie modules Project Management – ● Integratie met CiviCRM, SugarCRM, … Ubercart/Drupal Commerce module of integratie met Magento Webservices – SOAP, Rest, XMLRPC, Services module.
  • 11. Geschiedenis  1999 Dries Buytaert  Recente versies focus  4.7: Form API, admin interface  5: Mature & Stable, CCK, Views  6: Multilingual support, theming layer  7: Usability (image), Unit testing, php5.2.6, Semantic web, fields API  8: Webservices (Symfony 2, OO php), Configuration management, mobile, html5, design, multilingual, blocks, editor experience. Zie http://groups.drupal.org/drupal-initiatives
  • 12. Omvang Drupal project  > 20000 Modules (= plugins, extensies)  > 2 miljoen pagina's en > 1 miljoen users op drupal.org   Drupal core wordt momenteel gebruikt op minstens 1 miljoen actieve websites (http://drupal.org/project/usage), “3.2% van het internet” Twee delen – –   Core: >1800 ontwikkelaars (D8), 250 duizend lijnen code ( http://infogr.am/Drupal-Code-Base?src=web). Contributed: >10000 ontwikkelaars 80talen, duizenden gratis Themes (en betalend Themeforest, Templatemonster, ...) 2 jaarlijkse Drupalcons (Amsterdam 2014), Europese confs (Front End United, Developer Days, Business Days, Government Days), wereldwijd local Drupalcamps (50-500 deelnemers), DUG (Drupal User groups).
  • 13. Omvang Drupal project  > 20000 Modules (= plugins, extensies)  > 2 miljoen pagina's en > 1 miljoen users op drupal.org   Drupal core wordt momenteel gebruikt op minstens 1 miljoen actieve websites (http://drupal.org/project/usage), “3.2% van het internet” Twee delen – –   Core: >1800 ontwikkelaars (D8), 250 duizend lijnen code ( http://infogr.am/Drupal-Code-Base?src=web). Contributed: >10000 ontwikkelaars 80talen, duizenden gratis Themes (en betalend Themeforest, Templatemonster, ...) 2 jaarlijkse Drupalcons (Austin/Amsterdam 2014), Europese confs (Front End United, Developer Days, Business Days, Government Days), wereldwijd local Drupalcamps (50-500 deelnemers), DUG (Drupal User groups).
  • 16. Community ● Internationaal – – http://planet.drupal.org: Blogs – http://groups.drupal.org: Werkgroepen – IRC: Freenode (Chatzilla) – ● www.drupal.org http://drupal.stackexchange.com/ België – Www.drupal.be – Www.drupal.be/support: Bedrijven
  • 17. Systeemvereisten Standaard Alternatieven    Apache > MySQL 5.1 > Php 5.2.6 (+pdo) Php RAM > 64MB min  Lighttpd, Nginx   IIS mits aanpassingen voor php  PostgreSQL  MSSQL, Oracle via php PDO.
  • 21. Origineel of voorverpakt      Origineel drupal.org, of via git Via Windows installer: http://acquia.com/downloads/windows-installer Via controlepaneel: Installatron, Fantastico Drupal gardens (Acquia Drupal) Distributies (http://drupal.org/project/distributions en http://www.acquia.com/downloads) – Open Atrium – Open Publish – Pressflow – Nodestream – Commerce Kickstart – Open Public – Drupal Commons
  • 22. Systeemvereisten Standaard LAMP Alternatieven  Linux Hosting  Lighttpd  Apache server  IIS mits aanpassingen  MySQL 5.1  PostgreSQL  Php 5.3  Sinds D7: nieuwe abstraction layer die andere databases (MSSQL, Oracle) ondersteunt via php PDO.
  • 23. Lokaal op op hosting      Origineel drupal.org, of via git Via Windows installer: http://acquia.com/downloads/windows-installer Via controlepaneel: Installatron, Fantastico Drupal gardens (Acquia Drupal) Distributies (http://drupal.org/project/distributions en http://www.acquia.com/downloads) – Open Atrium – Open Publish – Pressflow – Nodestream – Commerce Kickstart – Open Public – Drupal Commons
  • 24. Wampserver         Skype uitschakelen Start all services Apache rewrite module aan Localhost testen: http://localhost Drupal downloaden in C:wampwww Unpack (7-zip) en hernoemen map naar drupal http://localhost/drupal Installatiescherm: database gegevens?
  • 25. Database maken http://localhost/phpmyadmin/  Home > databases > create new database  Users > create new user  All privileges 
  • 26. Installatie op cpanel hosting   Drupal 7 uploaden met http://filezilla-project.org/download.php?type=client Een database aanmaken bij databases (niet in phpmyadmin)  Eerst database maken    Dan user maken Dan user toevoegen aan database, all privileges Drupal installatie  Databasenaam en username worden vaak geprefixt met accountname bij hosting: dus accountname_username en accountname_databasename gebruiken  Permissies files en settings instellen
  • 27. Installatie # Copy the ./sites/default/default.settings.php file to ./sites/default/settings.php.  # Change file permissions so that it is writable by the web server. 
  • 28. php.ini  Foutreportage & security    register_globals = Off allow_url_fopen = On Upload en timout limieten  memory_limit = 128M  upload_max_filesize = 150M  post_max_size = 150M  max_input_time = 300  max_execution_time = 300
  • 29. Bestandsstructuur Mappen en inhoud  Core niet hacken!    Sites map instellen: modules/templates Files instellen
  • 30. HOOFDSTUK 3 EEN EENVOUDIGE SITE MET ENKEL DRUPAL CORE EEN WYSYWYG EEN PREFAB THEME
  • 31. Navigatiestructuur  Home  Nieuws  Wat doen we?  Over ons  Contact: contact module/webform
  • 32. Performance verhogen ● Instellingen > Prestaties – ● Alle vinkjes aanleggen Modules > Overlay – Afvinken en opslaan onderaan
  • 33. Inhoud toevoegen ● Inhoud toevoegen – – ● Article: titel, foto, tekst, trefwoorden, comments Basic page: titel, tekst Verticale tabs – Publicatieopties – Revisies – Menu
  • 34. Menu ● Structuur > Menu's – – ● Menu-items toevoegen in het overzicht Gewone “node” pagina's hebben onderaan ook de mogelijkheid om een menuitem toe te kennen. Pagina's zonder menu – Vb: nieuwsitems die in het nieuwsoverzicht voorkomen, kalenderitems, fotoalbums, ... – Vind je in het overzicht van inhoud
  • 35. Homepage instelling ● Instellingen > Websitegegevens ● Ofwel – Node = overzicht van laatste 10 berichten aangeraden op homepage – Vaste pagina vb node/5
  • 36. Blokken ● ● Structuur > Blokken Dienen voor randinformatie die op meerdere pagina's moet voorkomen ● De meeste modules voorzien enkele blokken ● Blok toevoegen ● ● Blokgebieden demonstreren (Bartik): regio's positie in je theme Zichtbaarheidsinstellingen
  • 37. Taxonomy ● Structuur > Taxonomie ● Trefwoorden toevoegen – Vaste lijst – Free tagging (autoaanvullen)
  • 38. Basisinstellingen installatie  Site instellingen   Bestandssysteem  Datum en tijd  Foutrapportage  Site onderhoud   Bestands upload Websitegegevens Inhoudelijk beheer   Teaserlengte, taxonomie, ... Gebruikers  Rollen admin en redactie aanmaken + rechten instellen  Gebruikers toevoegen aan een rol
  • 39. WYSYWYG  mogelijkheden – Www.drupal.org/project/ckeditor Of www.drupal.org/project/wysiwyg – Bueditor of Markdown (geen wysiwyg, betere html)  De editor    www.drupal.org/project/wysiwyg Externe editor downloaden: Ckeditor, Tinymce Afbeeldingen in de editor  www.drupal.org/project/imce  www.drupal.org/project/imce_wysiwyg
  • 40. WYSYWYG installatie & werking  Stappen (ook algemeen voor installeren module)  Issues bekijken: critical bugs ea bugs + versie kiezen  Opladen van de module  readme.txt lezen en online handboek  Eventuele core patches installeren  Dependend modules aanvinken op admin/build/modules  Aanvinken op admin/build/modules  Toegangsrechten controleren  Module settings instellen  Kijken als er te activeren blokken zijn bijgekomen
  • 41. Search Zoekfunctie en instellingen  Cron laten lopen om index op te vullen 
  • 42. (ingebouwde) CRON  Noodzaak cron  Wissen log bestanden    Voordelen  Simpel te activeren Nadelen  Niet regelmatig: start na tijd én nadat user inlogt   Andere automatische taken Niet geschikt voor backups/versturen nieuwsbrieven Alternatief: crontab op server: aan te raden  http://drupal.org/cron
  • 44. Bartik en Seven Standard frontend en backend theme Drupal 7  Bartik kan uitgebreid worden via een subtheme 
  • 45. Prefab themes • Op Drupal.org • • https://drupal.org/project/project_theme Elders (betalend) • http://www.designrazzi.com/2014/drupal-7-themes/ • http://themeforest.net/category/cms-themes/drupal • http://www.templatemonster.com/drupal-themes.php • http://www.themesnap.com/category/premium-drupal-themes
  • 47. Een module kiezen  Overzicht:  Via rechtsboven “download and extend” op drupal.org  https://drupal.org/project/project_module  Full/sandbox en versie instellen  Related projects  Populariteit    http://drupal.org/project/usage: populariteit http://www.acquia.com/products-services/acquia-drupal En Drupal Gardens: geselecteerd & ondersteund door Acquia Ratings: http://drupalmodules.com
  • 48. Status van een module  Versie 6 of 7  Status:   Pre-alpha, Alpha, beta, rc (release candidate)   Official release Dev versies Opgelet met updates van 7.x-1.x naar 7.x-2.x
  • 49. Factoren kwaliteit module  Tijd: maturiteit & actief onderhouden?   Laatste update/commit   Eerste versie Tijd tussen de updates Futureproof?   Drupal 8 versie Ontwikkelaar(s)  Aantal  Hoelang betrokken bij Drupal  Andere modules waarvoor verantwoordelijk  User profile bekijken / track code
  • 50. Factoren (vervolg)  Issue queue   Aantal bugs & opgeloste bugs  Aantal patches (betrokkenheid externe developers)   Aantal meldingen (populariteit module) Statistieken Omvang module  Een klein probleem vraagt een kleine module  Geen module als je met enkele lijntjes code kunt oplossen  Gevaar voor modulitis: performance site zakt bij elke module die je toevoegt Module usage statistics  Concurrerende modules:   zie blokken related content
  • 51. Issue queue  Vragen over één module steeds hier stellen, niet op forum  Statussen, category & priority  Advanced search  Drupal core issues: http://drupal.org/project/issues/drupal  Ingeven van een issue   Zoeken naar duplicates Heel duidelijke omschrijving (reproduceerbaar probleem): versies, browser, andere zaken geinstalleerd, stappen hoe je kunt reproduceren op “fresh install”, screenshots, code, views export, cck export  Verwijzing naar node via filter  Geen titel wijzigen  Subscribe? Hopelijk betere oplossing toekomst. Zie ook my issues.
  • 53. CCK/Fields  Historiek en evolutie   Doel    Nodes → Flexinode (d5) → cck contributed (d6)→ fields in core (d7) Eigen content types met eigen velden definiëren Vanaf Drupal 7: fieldable entity: node/user/vocabulary/shopproduct/mediafile/werkgroep Download  http://drupal.org/project/cck (enkel nodig voor migratie d6->d7)  Extra fields: honderden fields op drupal.org
  • 54. Views http://drupal.org/project/views • Dynamic query builder, lijsten trekken in ruime zin: lijst kan ook google map zijn of fotogalerij • D5: Views1: enkel nodes • D6: Views2: ook users, taxonomie, files, ... • D6: Views3: elke databron niet enkel db, ook apache Solr, Flickr, RDF, elke bron met api (vb Cultuurnet) + OR mogelijkheid bij filters • D7: Fields in core, Views3 • D8: Views in core en gedeeltelijk Views Bulk Operations (admin bewerkingen)
  • 55. Basis fields  In core – – Filefield – Textfield – Listfield –  Imagefield Taxonomy reference field Extra – Emailfield – Url field (link) – Datefield – Entity reference field – Video embed/Youtube field
  • 56. File en Image • • • • • • • Filefield Imagefield Image Styles Transliteration Filefield paths Filefield sources Plupload
  • 57. Fotogalerij ● Inhoudstype fotogalerij ● Titel, Inleiding, foto's (multiple) ● Plupload voor bulk upload – – https://drupal.org/project/filefield_sources_plupload – ● https://drupal.org/project/plupload http://www.plupload.com library Weergave – Gallery formatter – Colorbox – Flexslider
  • 58. Filefield sources ● Alternatieve bestandsupload mogelijkheden – Remote url – IMCE filebrowser – Bulkupload via Plupload
  • 60. Filefield paths ● ● Geeft de mogelijkheid om via tokens zowel de mappen als de paden specifieke namen te geven. Voordelen – Heel gestructureerde bestandsorganisatie – Geen “random” filenamen meer van gebruikers – Cleanup van foute karakters via Pathauto of Transliteration
  • 61. Colorbox ● ● Www.drupal.org/project/colorbox Colorbox is een externe plugin die moet in de sites/all/libraries geïnstalleerd worden ● Geeft een jquery image popup in lightbox ● Voordeel: goed gebruik van ruimte op pagina ● Nadeel: accessibility: http://www.anysurfer.be/nl/blog/detail/lightbox-veel-gebruikt-zeld en-voor-iedereen-bruikbaar
  • 62. Image Styles  Voordelen  Kan via voorgedefinieerde presets images scalen, resizen en croppen  Je kunt verschillende varianten van dezelfde foto automatisch laten genereren
  • 63. Default views ● Frontpage view – Eenvoudigste: bootst de homepage /node na – Teaserlijst van laatste items met vinkje aangeraden op voorpagina aan – Is vanaf nu wijzigbaar – Niet vergeten bij websitegegevens frontpage te zetten ipv node voor homepage
  • 64. Nieuwsoverzicht ● ● Teaserview van nieuwsberichten Bloklijst van laatste nieuws bij nieuwsitem, excluden van actuele item via argument.
  • 66. Drupal core standaard ● Vinkje: vastgeplakt bovenaan de lijst ● Vinkje: aangeraden op de voorpagina ● ● ● Via de frontpage view kan hier in beperkte mate promotie van content worden gedaan Via i18n: eventueel “aangeraden op de voorpagina” vertalen naar “in de kijker” Nadeel: we krijgen slechts 1 indicator/lijst en vaak hebben we op een homepage meerdere nodig
  • 67. Nodequeue • Voordeel – Mogelijkheid om zelf informatie te kiezen – Volgorde kan eenvoudig veranderd worden – Weergave bepalen via een view – Ideaal voor homepage, in de kijker, … – Rules: automatisch toevoegen aan nodequeue • • Nodequeue aanmaken Nodequeue view – Disablen indien niet nodig – In block weergeven: rechterkolom content
  • 68. Flag • • Mark as spam, mooie foto, bookmarks, goedgekeurd Admin View – Relationship: Flag – Field: Flag:flaglink, relationship: goedkeuring – Acties/Triggers: op goedkeuring ook publiceren • • Flag actions Actions/triggers/rules
  • 69. Ratings • Voting api – – Sorteren op beste punten: (Voting results) Voting API results: Waarde desc – • Relationship: node voting results: percent, no filtering, average Field: (Voting results) Voting API results: Waarde Fivestar – Vijf sterretjes voor score – User generated content
  • 70. STATISTIEKEN ● Statistics module aanzetten: 16 weken ● Sort criteria: Most popular ● Default view: backlinks
  • 72. Exposed filters • Filters wijzigen via code • Checkboxen gebruiken (views checkboxes module/content taxonomy) • Hierarchical select
  • 74. User argument • “Mijn inhoud” – Gebruiker: uid – Provide default argument: uid from url – 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.
  • 75. Node argument ● Blok met Meer nieuws – Node:nid, provide default argument: nid from url, exclude the argument – Zorgen dat pagina zelf niet in de lijst van meer staat => exclude
  • 76. Views embedden ● Verschillende opties – – ● Viewfield of View reference Entity Views Attach (https://drupal.org/project/eva ) Een view weergeven – https://drupal.org/project/insert_view
  • 77. Views Bulk Operations ● ● Een bepaalde actie/rule uitvoeren op een selectie gemaakt met views Voorbeelden – Overzicht inhoud of gebruikers beheren op maat aanpassen – Trefwoorden aanpassen in bulk – Email versturen naar een groep mensen (opgelet geen uitschrijflink) – Corrigeren van indeling na aanpassing sitestructuur – Goedkeuringsrij verwerken
  • 78. Views bulk operations ● Voordeel – ● Zeer krachtige tool die toelaat via de interface makkelijk een hele reeks items aan te passen ineens Nadeel – Zeer krachtige tool, neem steeds een backup voor je ze gebruikt.
  • 80. Actions/Triggers/Rules ● ● Actions/Triggers: zit in Drupal core: het vinkje bij Trigger module aanzetten Rules module: Geeft bijkomende verfijning en condities aan de acties – Een bericht op scherm plaatsen – Een automatische email versturen – Een nieuwsbrief nasturen – Een veld wijzigen
  • 81. Conditional fields ● ● Bepaalde velden of fieldgroups maar tonen als een ander veld een bepaalde waarde heeft Voordeel: – Invulformulier korter maken – Enkel de velden tonen die moeten ingevuld worden
  • 82. Field Permissions ● ● ● https://drupal.org/project/field_permissions Velden kiezen waarbij per rol de zichtbaarheid en het bewerken/deleten ervan kan beperkt worden. Voorbeelden – Premium content: inleiding zichtbaar voor iedereen, volledige tekst enkel voor zij die betaald hebben – Klanten of ledenprofiel: bepaalde velden niet publiek tonen, bepaalde velden enkel aanpasbaar door admins
  • 83. Inline entity form ● ● Embedden van een node form binnen een andere wrapper node form Voorbeelden – Productnode form bevat product entity – Documentnode of Afbeeldingsnode embedden – Gereferencete entities direct aanmaken
  • 84. Rules ● Email sturen bij indienen van vacature – Actions: maak de email actie – Trigger: new content – Condition: Node type=vacature – (Condition: Field has value) – Action: Send email
  • 85. Entity Reference ● ● Een rechtstreekse koppeling tussen twee entities Gelijkaardige modules – References (bij upgrade vanaf d6) – ● Relation (bidirectioneel, complex) Steeds meer gebruikt als alternatief voor taxonomie – Gerelateerde content – – ● Relatie kan beperkt worden via een view Taxonomy geeft geen volwaardige pagina Voorbeelden – Artikels bij magazine (inhoudstafel) – Landenpagina en nieuws over dit land – Architecten en hun projecten
  • 86. Entity reference view Gewone entity reference – Ct Pagina heeft nodereference naar gerelateerde pagina – View in blok van • • • Field: Nodereference field Argument: Node:nid,Default argument: Nid from url Exclude/hide van Nodereference field in het inhoudstype pagina Andere toepassing: Blogroll: links bij bloghoofdpagina in zijkolom Opmerking: kan ook via theming
  • 87. Reverse entity reference • Reverse reference – Ct Nieuws heeft nodereference naar (overzichts)pagina – Titel: nieuws bij pagina – Filters:N:Nieuws – Fields:Titel – Relationship:Inhoud:entity reference field, require – Argument:Node:Nid, relationship entity reference field, provide default nid from url
  • 88. Views slideshow ● ● Slideshow van images afkomstig van verschillende nodes Vaak gebruikt voor homepage carousel in combinatie met nodequeue voor de selectie van de content – http://shouldiuseacarousel.com/ – Diverse weergaveplugins
  • 89. Date views ● www.drupal.org/project/date: – – ● Datum veld toevoegen Inhoudstype afwerken voor evenement View – ● Filter opties: Selecteer events > now www.drupal.org/project/calendar – Display of calendar block – Nieuwe view vanaf template
  • 90. Views import en export
  • 91. 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 – Opvolger van de feedapi module – node/add/feed ● Youtube feeds: http://www.youtube.com/rssls ● Feeds – ● http://drupal.org/project/feeds_imagegrabber Cron moet werken!
  • 92. Views export csv of xls http://drupal.org/project/views_data_export ● Feed display toevoegen ● Style op csv zetten ● Pad geven ● Xls module Voordeel tov views_bonus: batch api
  • 94. Filosofie achter Display Suite • Centraal beheer van layout van website inhoud • Template bestanden overbodig maken • Focus op gebruiksvriendelijkheid • Drupal field UI uitbreiden • Gebruik van PHP beperken = betere veiligheid • Meer info: http://realize.be
  • 95. Layout beheer met Drupal core • Mix van template bestanden en Field UI • Nadelen: •Template bestanden zijn niet onderhoudbaar •Field UI is beperkt: •Geen UI om extra velden toe te voegen (vb. titel, auteur) •Geen UI om extra View Modes toe te voegen •Geen gebruik van voorgedefinieerde layouts
  • 96. Layout beheer met DS • Bouwt verder op Field UI •Nieuwe View Modes aanmaken •Voorgedefinieerde layouts aanmaken •Eigen velden toevoegen • Integratie met Views en Panels • Werkt op elke Drupal Entity (Node, gebruiker etc) • Consistente HTML output • Oefening 1: DS aanzetten en Node en Teaser layout wijzigen
  • 106. Display suite extra's: field templates
  • 108. Andere toepassingen • Zoekresultaten • Views slide show met meerdere content types • Oefening 4: slideshow opzetten: custom View mode en voor alle content types instellen.
  • 114. View add display content pane
  • 119. PANELS
  • 120. Panels: doel en historiek ● Panels = layoutbuilder in Drupal ● Earl Miles (Views) ● Sony www.myplay.com ● Versies 1,2,3 ● ● Toekomst: Drupal 8 misschien een eenvoudige panels achtige interface voor toevoegen van content in Drupal core Documentatie: http://drupal.org/node/496278
  • 121. Panels: voordelen ● ● Point en click Drupal theming zonder html en php, templates opstellen via de interface Slechts 1 soort inhoudsobject: panel waarin blokken, menus, views, velden, ... kunnen weergegeven worden => alles eenvormig op dezelfde manier behandelen ● Complexe pagina layouts mogelijk zonder voorkennis van html/css ● Flexibeler layouts: vb zelfde blok in verschillende regios, ... ● Makkelijker en sneller wijzigingen aanbrengen aan templates ● ● ● Ctools: vastleggen van layouts in exportables en features => exporteerbaar dus hergebruikbaar en opgenomen in svn/git revisiesysteem. Varianten: andere soorten layouts volgens context, vb ingelogde klanten/leden, mobiele website Integreert heel goed met views
  • 122. Panels: nadelen ● Performance: is heel grote module, wel goede caching opties ● Kan complex zijn: is systeem op zich met leercurve en heel veel checkboxen ● Werkt behoorlijk anders dan “the Drupal way” => bloksysteem en regios uitschakelen (vinkje) ● Alles of niets: als je panels gebruikt het voor alles gebruiken ● Moeilijker te debuggen ● ● Soms trage upgrade bij nieuwe versie van dr http://www.youtube.com/watch?v=qBGKdnUj4Ywupal core , en upgrades tussen v1, 2 en 3 waren niet vanzelfsprekend, maar ondertussen heel veel gebruikt (> 80.000 installs) Overladen html tenzij je eigen custom templates opstelt
  • 123. Submodules en extra ● Page Manager (bij ctools): page layouts (beetje zoals page.tpl.php) ● Mini panels: blok layouts ● Panel nodes: node layouts ● Views content panes: views in panels ● Panels Everywhere
  • 124. Layouts ● ● ● ● Standaardlayouts Bepaalde themes definiëren extra layouts zoals Adaptive Theme (AT) in d6 http://drupal.org/project/panels_extra_layouts: extra layouts: Best: eigen html templates voor layout – Advanced help module: help/panels/plugins-layout – tpl.php, css, inc en png – Meer docs: http://drupal.org/node/495654
  • 125. Variants ● Andere layout voor zelfde pagina bij andere voorwaarden – Volgens content type: basic page er anders laten uitzien dan artikels – Volgens toegangsrol: admin, ingelogden, leden/klanten zien iets anders – Volgens taal – Volgens trefwoord, ... – Mobile themes dank zij integratie met de http://drupal.org/project/mobile_tools module
  • 128. Multilingual Drupal ● Veraalbare delen – – ● i18n: internationalisation: content L10n: localisation: interface Multilingual settings – – ● Drupal core: basis functionaliteiten Drupal contrib: i18n module: vertalen van menu's, blocks, taxonomy, … Handbook: http://drupal.org/node/324602
  • 129. Drupal interface vertaling ● Localization server – https://localize.drupal.org/translate/languages/fr – https://localize.drupal.org/translate/languages/nl – Po bestand – Join en download onafgewerkte vertalingen (suggesties) van bepaalde modules ● Plaatsen voor de installatie in /profiles/translations ● Drupal kan direct in de juiste taal geïnstalleerd worden ● Je eigen localization server: https://drupal.org/project/l10n_server , vb voor distributies of vast installatieprofiel
  • 130. Localization update module https://drupal.org/project/l10n_update ● ● Controleert op nieuwe vertalingen van core en module in de translation server en installeert ze Alternatief om Drupal interface in andere taal te krijgen – Installeer Drupal in het Engels – Activeer de locale module en l10n_update module – Configuration > Languages > add language – Configuration > Translate interface > update
  • 131. Vertaling van strings ● Configuration > Translate interface – Hoofdlettergevoelig! – Zoeken naar vertaalbare strings in modules, themes, drupal core – vertaalbaar=verpakt in t('engelsebrontekst'); function ● http://drupal.org/project/l10n_client: makkelijker interface voor vlotte vertaling ● Site enkel in het Engels – Geen locale dus geen meertalig systeem – Toch soms gewenst om strings te vertalen – Kan door “eigen” Engelse taal te maken of via https://drupal.org/project/stringoverrides
  • 132. Content translation ● ● Niet enkel de interface maar ook de eigenlijke content in een andere taal Modules – Core: content translation – Contrib: i18n en https://drupal.org/project/i18nviews ● ● ● ● Vertaling blokken Vertaling trefwoorden (Vertaling menu) Vertaling views
  • 133. Vertaling van strings ● Configuration > Translate interface – Hoofdlettergevoelig! – Zoeken naar vertaalbare strings in modules, themes, drupal core – vertaalbaar=verpakt in t('engelsebrontekst'); function ● http://drupal.org/project/l10n_client: makkelijker interface voor vlotte vertaling ● Site enkel in het Engels – Geen locale dus geen meertalig systeem – Toch soms gewenst om strings te vertalen – Kan door “eigen” Engelse taal te maken of via https://drupal.org/project/stringoverrides
  • 134. Toevoegen talen ● Best bij eerste installatie – ● Unpack language files in root: translation maps with .po files are created /admin/settings/language – Toevoegen nieuwe taal – Update translations via l10n_update – Configuration » Regional and language: ● ● – path prefix with language fallback, elke taal, ook Engels een prefix geven Default taal kiezen en niet meer wijzigen Configuration » Regional and language » Languages: alles aanvinken
  • 135. Meertalige menu's ● Maak best 1 menu per taal ● Weergave menu – Via blok – Blok taal instellen
  • 136. Entity translation https://drupal.org/project/entity_translation ● Vertaling van fieldable entities: producten in webshop, organic groups, users, nodes. ● Vertaling van entities en van velden apart ● Gebruiken bij complexere vertaalsituaties
  • 138. Menu block https://drupal.org/project/menu_block ● Delen van een menu weergeven in een blok ● Menu opsplitsen of dupliceren ● Gescheiden hoofd en submenu maken
  • 139. Custom breadcrumbs ● Broodkruimels aanpassen volgens: – Nodetype – Pad – Views – Trefwoorden
  • 140. Context ● Alternatief voor blokkenstructuur – Vertrekkende vanaf pagina en dan de bijhorende blokken – Zonder code complexere zichtbaarheidsinstellingen vb combinatie van taal, trefwoord, inhoudstype – Betere structuur als er veel blokken zijn – Exporteerbaar
  • 142. Webform • Mogelijkheid om diverse formulieren aan te maken: bestellingen, contactformulier, inschrijving, wedstrijd, registratie • Diverse velden • Verzenden van emails, export xls • Gelijkaardig: entity form
  • 143. SPAM
  • 144. Spam voorkomen ● Core: – – ● Voorbeeldweergave IP blokkeren Traditioneel: captcha – ● Mollom, captcha, recaptcha Combinatie zonder gewone gebruiker lastig vallen – Hidden captcha: botcha/spamicide – Httpbl: Project honeypot – Trucs: honeypot, ...
  • 145. BACKUPS, ONDERHOUD & UPGRADES
  • 147. Nuttige acties Paswoord en email wijzigen van user 1  Een slechte module uitschakelen  Een blok met foute php code uitschakelen  Cache tabellen leegmaken  Access log leegmaken  Optimize tables 
  • 149. BACKUP FILES Vooral de map sites is van belang, met de map files in het bijzonder  Ftp 2000 files max 
  • 150. Backup modules & info   Handbook: http://drupal.org/node/22281 http://drupal.org/project/backup_migrate  Beste en actiefste backup module op dit ogenblik    Scheduled backup Excluden van grote tabellen: search, cache, sessions http://www.ozerov.de/bigdump.php: grote databases
  • 151. Upgraden: puntupgrade  Stap 1: Backup sites & database  Stap 2: Inloggen als user 1 + Offline mode  Stap 3: Alle bestanden verwijderen, behalve sites.  Stap 4: Nieuwe bestanden in de plaats zetten  Stap 5: Patches herinstalleren  Stap 6: update.php laten lopen  Stap 7: patches herinstalleren  Stap 8: controle installatie en logs
  • 152. Upgrade d6->d7 ● Veel werk want alle modules en themes veranderen ● Evalueren als een upgrade al nodig is ● ● Drupal ondersteunt 2 versies dus meest stabiele upgrade op einde van d6 periode (nu dus) Upgrade status module: evalueren als alle modules beschikbaar ● Eerst niet meer nodige functionaliteiten weghalen ● Alternatieven – Feeds & Views data export – Migrate module: in Drupal 8
  • 153. Diff & Patch   www.drupal.org/patch Cygwin  Linux omgeving in Windows   Nut bij Drupal: diff, patch en cvs   http://www.cygwin.com Screencast: http://www.lullabot.com/node/280/play Patching  Screencast:  http://e4.video.blip.tv/1540000325302/Add1sun-RollingPatchesInDr upal517.mov
  • 154. Automatische updates ● http://groups.drupal.org/aegir-hosting-system – – ● Hosting systeem voor meerdere Drupal sites Bevat Drush en Dashboard http://drupal.org/project/plugin_manager – – ● Zit bij Drupal 7 in core Nadeel: geen restore/revert optie Drush – Drush up – Drush site-upgrade
  • 155. DRUSH
  • 156. Drush: Drupal Shell ● Drupal bedienen vanaf de command line ● Voordelen – Sneller uitvoeren van installaties en updates – Samenvoegen van commands in installatie en updatescripts, vb meerdere sites tegelijk updaten, distributie installeren via drush make – Fixen van problemen (drush rr, drush cc all, drush cron) – Intensieve scripts, exports en migraties laten lopen vanaf de command line (betere performance en php cli kan andere limieten hebben)
  • 157. Drush commando voorbeelden ● Drupal installeren in htdocs of www mapje – – drush dl drupal (download drupal) – drush dl cck views nl ckeditor acquia_marina backup_migrate (in drupal map) – drush en cck views (modules aanleggen, omgekeerd: dis) – drush cron – ● drush (help uitleg) Drush ws (status) Drupal updaten met drush – drush bb of drush sql-dump > example10052010.sql – tar -czf drupal.tgz drupal – drush variable-set site_offline TRUE – drush up: update alle modules + backup code – drush variable-set site_offline FALSE
  • 158. Drush commando voorbeelden ● Link voor eenmalige login bekomen – – ● Drush uli (user 1) drush uli 5 (user 5) Cache leegmaken – drush cc all
  • 159. NIEUWSBRIEVEN & e-mail integratie
  • 160. Mail interactie Simplenews  Subscriptions of Notify of Watcher  Actions & Workflow/Rules & Views Bulk operations  Messenger & Notifications framework  Webform  Mailhandler 
  • 161. Nieuwsbrieven ● 3 voornaamste mogelijkheden – Simplenews: eenvoudig en goedkoop, geen bounce handling, beperkte statistieken – Campaignmonitor of Mailchimp integratie: full bounce handling, statistieken, whitelisting, betalend – Civimail (onderdeel van Civicrm)
  • 162. Simplenews ● www.drupal.org/project/simplenews ● Voor versturen van html mail: – http://drupal.org/project/htmlmail (Emogrifier helpt) – http://drupal.org/project/rel_to_abs: absolute paden in links en afbeeldingen in body – Mimemail niet meer gebruiken: bevat bugs en is niet meer onderhouden ● Extra modules: analytics, on register,... ● Let op: geen poormanscron gebruiken (dubbele verzending! + niet betrouwbare tijdstippen)
  • 164. Contemplate ● http://drupal.org/project/contemplate ● In database of sites/all/contemplates ● Voordelen: ● Geldt voor alle themes (ander niveau dan theme layer) ● Voor search, rss feeds en nieuwsbrieven
  • 165. Body & footer ● simplenews-newsletter-body--1126.tpl.php ● simplenews-newsletter-footer--1126.tpl.php ● Velden printen ● <?php print $node->field_nieuwsbrief_link1[0]['view']; ?> ● $foto = theme('imagecache','square100x100',$node->field_nieuwsbrief_foto1[0]['filepath']); print '<div class="field-field-foto">' . $foto . '</div>'; ● <?php print $node->field_nieuwsbrief_intro[0]['view']; ?>
  • 167. Drupal community support  Op drupal.org  http://drupal.org/handbook: handboeken  http://drupal.org/forum: forum  http://drupal.org/project/issues: issues  http://groups.drupal.org: werkgroepen  http://www.drupal.org/planet: blogs  Op http://drupal.be en http://drupalfr.be  IRC    http://drupal.org/irc : Freenode https://addons.mozilla.org/en-US/firefox/addon/16: Chatzilla Mailinglijsten/newsletter – –  http://drupal.org/mailing-lists: Mailman lijsten: security, support, theming http://www.theweeklydrop.com: wekelijkse nieuwsbrief met selectie van nieuws Twitter – #drupal  Extern – http://www.reddit.com/r/drupal/ : discussies en ama – http://drupal.stackexchange.com/: Drupal answers
  • 168. Audio & Video Podcasts ● http://drupaleasy.com/podcast ● http://www.lullabot.com/blog/podcasts:: lullabot podcasts ● https://www.acquia.com/resources/podcasts: Acquia ● https://modulesunraveled.com/podcast Video ● Vimeo/Youtube: drupal ● http://mustardseedmedia.com/podcast ● http://drupalize.me (betalend) ● http://buildamodule.com/ (betalend) ● Www.archive.org
  • 169. Conferenties ● http://www.drupical.com ● DUG: Drupal User Group ● Drupal Camp: Gent, Leuven, La Roche?, Drupaljam, Badcamp, Drupal camping ● Drupal Developer Days: Szeged ● Frontend United ● Drupal Government days ● Drupal cxo (Business) ● Drupalcon: Amsterdam, Austin, www.Drupalcon.org

Editor's Notes

  1. Jyve . Look at &apos;Acting career&apos; page Layouts: Choose the &apos;One column&apos; layout to unlock some DS goodies. Fields: a whole bunch of fields offered by Drupal are available by default Fields: add a dynamic field &apos;All images&apos; 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
  2. Jyve So you have flexible View modes, custom fields, Views integration, the option to mix all entities together, and that makes working with DS so much fun. Let&apos;s look at some use cases: see slide.