SlideShare ist ein Scribd-Unternehmen logo
1 von 128
www.slideshare.net/davidhosse




Cevora opleiding Drupal 7.x
 David Hosse
   david.hosse@ehb.be
   @davidhosse




                 www.cevora.be | www.ehb.be | www.drupal.org    Februari 2012
Cevora

              Opnemen van aanwezigheden + uitdelen van lesmateriaal (syllabus, bijlagen, …)
              Informatiefiche in syllabus
              Introductiefilm:
              http://www.cevora.be/nl/bedrijven/ons-beter-leren-kennen/wie-zijn-wij/
              Op het einde van de opleiding ontvangt iedere deelnemer een getuigschrift (80%
              aanwezigheid vereist!)
              GSM = op stil of volledig uitgeschakeld.
              Indien dringend telefoontje  ga in stilte naar buiten.
              Opleidingsdagen:
              13/02/2012, 20/02/2012, 27/02/2012 telkens van 9u tot 16u30.
              Pauzemomenten:
                      Voormiddag: +/- 10u45-11u.
                      Middag: 12u30 – 13u.
                      Namiddag: +/- 14u45-15u.
              Plaats naamkaartje

Cevora opleiding Drupal 7.x - David Hosse          2                                     Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking met Drupal 7.x
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       3       Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking met Drupal 7.x
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       4       Februari 2012
Inleiding


          1. Content Management Systems
          2. Drupal




Cevora opleiding Drupal 7.x - David Hosse       5       Februari 2012
Inleiding


          1.     Content Management Systems (1)
                  Drupal, Wordpress, Joomla, …
                  Definitie (Wikipedia):
                   “Een software toepassing, meestal een web-applicatie, die het mogelijk
                   maakt dat mensen eenvoudig, zonder al te veel technische kennis,
                   documenten en gegevens op internet kunnen publiceren.”
                  CMS = opvolger statische websites (HTML, CSS, Javascript)
                   Aanpassen van statische websites vergt kennis van HTML, CSS en
                   Javascript.
                    CMS genereert zelf de nodige HTML-, CSS- en Javascript-code via een
                     gebruiksvriendelijke interface om inhoud aan te passen.


Cevora opleiding Drupal 7.x - David Hosse          6                                        Februari 2012
Inleiding


          1.     Content Management Systems (2)
                  Drupal gaat nog stapje verder:
                   = Content Management Framework
                  CMS geeft inhoud in bepaalde vorm weer:
                    vb. blogging. Met een specifieke blog CMS kan je
                    geen kalender/agenda systeem opzetten.
                  CMF is flexibeler en kan gebruikt worden om CMS’en op te
                  bouwen.
                    vb. opzetten van blogging systeem en dit
                    uitbreiden met kalender/agenda functionaliteit.
                  CMS eenvoudiger in gebruik dan CMF


Cevora opleiding Drupal 7.x - David Hosse       7                            Februari 2012
Inleiding


          1.     Content Management Systems (3)
                  Verschil CMS en CMF aan de hand van soorten gebruikers:
                       Content lezers:
                       Surfers die kennis hebben van links.
                       Content schrijvers:
                       Gebruikers die kennis moeten hebben om het CMS te gebruiken om
                       nieuwe content toe te voegen en bestaande content te wijzigen of te
                       verwijderen.
                       Site beheerders:
                       Moeten kennis hebben om:
                         andere gebruikers toegang te geven tot de website.
                         dagdagelijkse problemen op te lossen.
                         backups te nemen en data te restoren.
                         voorgedefinieerde functionaliteit toe te voegen (cfr. Drupal modules)

Cevora opleiding Drupal 7.x - David Hosse               8                                         Februari 2012
Inleiding


          1.     Content Management Systems (4)
                  Verschil CMS en CMF aan de hand van soorten gebruikers:
                    Site ontwikkelaars:
                    Programmeerervaring voor deze gebruikers is noodzakelijk!
                    Goede kennis van HTML, CSS, Javascript.
                    Kennis om met een CMF een CMS op te zetten en eventueel
                    functionaliteit toe te voegen.
               Deze opleiding concentreert zich vooral op
               gebruikerstypes 2 en 3, nl. “Content schrijvers” en “Site
               beheerders”.

Cevora opleiding Drupal 7.x - David Hosse       9                            Februari 2012
Inleiding


          2.     Drupal (1)
                  Ontwikkeld door Dries Buytaert (° 19 november 1978 te Wilrijk –
                  Stichter/eigenaar Acquia), versie 1.0 uitgebracht op 15 januari 2001.
                  Oorspronkelijk een news site voor beperkt aantal personen
                  (Universitaire Instelling Antwerpen).
                  Typfout door Dries bij het controleren van de domeinnaam dorp.org 
                  drop.org (versie van website in 2000).
                  Software van deze website werd open source en ter beschikking gesteld
                  van anderen.
                  De naam werd vertaald naar het Engelse woord voor “Druppel” 
                  Drupal (www.drupal.org).
                  Drupal is gebaseerd op PHP en MySQL (= populaire combinatie voor
                  webontwikkeling).


Cevora opleiding Drupal 7.x - David Hosse        10                                 Februari 2012
Inleiding


          2.     Drupal (2)
                  Drupal vooral populair omwille van:
                    modulaire opbouw
                    ontwikkelaars van modules kunnen via hooksysteem ingrijpen in de
                    verwerking van een pagina.
                    1000den modules beschikbaar voor allerhande doeleinden.
                  Huidige versies:
                    Drupal 6.x: 6.24
                    Drupal 7.x: 7.12
                  Versie in ontwikkeling: Drupal 8
                  In deze opleiding: Drupal 7.x met verwijzingen naar Drupal 6.x
                  (veel websites gebruiken deze versie nog).

Cevora opleiding Drupal 7.x - David Hosse        11                                 Februari 2012
Inleiding


          2. Drupal (3)
                  Enkele bekende websites gemaakt met Drupal:
                   www.telenet.be
                   www.ubuntu.com
                   www.nasa.gov
                   www.whitehouse.gov
                   www.erasmushogeschool.be
                   Nog meer voorbeelden te bekijken via
                    www.drupalshowcase.com

Cevora opleiding Drupal 7.x - David Hosse       12              Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking met Drupal 7.x
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       13      Februari 2012
Installatie


          1.     Inleiding
          2.     Installatie en configuratie van XAMPP
          3.     Installatie en configuratie van WampServer
          4.     Installatie van Drupal 6.x
          5.     Installatie van Drupal 7.x




Cevora opleiding Drupal 7.x - David Hosse        14           Februari 2012
Installatie


          1.     Inleiding
               Drupal heeft 2 andere applicaties nodig:
                   een webserver (met PHP ondersteuning): Apache (Linux &
                     Windows) of IIS (Windows).
                   een databank: MySQL (bekendste en meest gebruikt),
                     PostgreSQL, Oracle, MS SQL Server, MariaDB of SQLLite (Drupal
                     6.x enkel MySQL en PostgreSQL).
               Online: webhost (domeinnaam + webruimte met PHP en databank
               ondersteuning) of eigen serverinfrastructuur.
               Lokaal: XAMPP(Lite) (gebruikt in deze cursus) of WampServer
               (éénvoudiger qua installatie, configuratie en gebruik) te installeren.
               Minstens PHP 4.3.5 (Drupal 6.x), liefst één van de meest recente versies
               van PHP  PHP 5.2.x of hoger (Drupal 6.x en minimaal voor Drupal 7.x).

Cevora opleiding Drupal 7.x - David Hosse        15                                 Februari 2012
Installatie


          2. Installatie en configuratie van XAMPP
            Zie cursus hoofdstuk 2.2 p. 8 t.e.m. 12
            Ter info:
                  X = Platformonafhankelijk:
                           kan zowel onder Windows, Linux als Mac OS X
                           geïnstalleerd en gebruikt worden
                  A = Apache
                  M = MySQL
                  P = PHP
                  P = Perl
Cevora opleiding Drupal 7.x - David Hosse        16                 Februari 2012
Installatie


          3. Installatie en configuratie van WampServer
            Zie bijlage
            “Installatie en configuratie van WampServer”
            Ter info:
                  W = Windows
                  A = Apache
                  M = MySQL
                  P = PHP

Cevora opleiding Drupal 7.x - David Hosse        17        Februari 2012
Installatie


          4.     Installatie van Drupal 6.x
               Zie cursus hoofdstuk 2.3 p. 13 t.e.m. 16 bovenaan.
               Download Drupal 6.x via www.drupal.org
               Opmerkingen:
               Het definiëren van een alias om je Drupal-website bereikbaar te
               maken, heeft enkel betrekking wanneer XAMPP(Lite) gebruikt wordt.
               Bij WampServer dien je enkel een subfolder aan te maken binnen de
               “www”-folder van de WampServer-installatie.
               Vb. C:wampwww<naam van subfolder> (Windows explorer)
                       http://localhost/<naam van subfolder> (Browser)


Cevora opleiding Drupal 7.x - David Hosse        18                           Februari 2012
Installatie


          5.     Installatie van Drupal 7.x
               Zie cursus hoofdstuk 2.4 p. 16 t.e.m. 19.
               Download Drupal 7.x via www.drupal.org
               Opmerkingen (idem als bij Drupal 6.x):
               Het definiëren van een alias om je Drupal-website bereikbaar te
               maken, heeft enkel betrekking wanneer XAMPP(Lite) gebruikt wordt.
               Bij WampServer dien je enkel een subfolder aan te maken binnen de
               “www”-folder van de WampServer-installatie.
               Vb. C:wampwww<naam van subfolder> (Windows explorer)
                       http://localhost/<naam van subfolder> (Browser)


Cevora opleiding Drupal 7.x - David Hosse        19                           Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking met Drupal 7.x
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       20      Februari 2012
Een eerste kennismaking
                             met Drupal 7.x


          1.     De structuur van een pagina
          2.     Een basic page
          3.     Een gebruiker maken
          4.     Roles en gebruikersrechten
          5.     Module: Forum
          6.     Blocks
          7.     Menu’s

Cevora opleiding Drupal 7.x - David Hosse   21    Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          1.    De structuur van een pagina (1)
               Na installatie, bij bezoek aan website:
               Automatisch ingelogd als administrator (User 1 – zie later).
               Deze gebruiker krijgt standaard het management menu te
                zien (in Drupal 6.x nog te installeren via de module admin
                menu).
               Onder het management menu staat het short cut menu.
                       Standaard 2 menu-items aanwezig: “Add content” en “Find
                       content”
                       Via “Edit shortcuts” (in cursus staat “Edit content” = te
                       verbeteren) kunnen er shorcuts toegevoegd of gewijzigd
                       worden.

Cevora opleiding Drupal 7.x - David Hosse       22                                 Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          1.    De structuur van een pagina (2)
               Na installatie, bij bezoek aan website:
               Onder het short cut menu staat het user menu (My Account,
                Logout).
               Het main menu bevat standaard 1 item: “Home”. Wordt
                meestal gebruikt om te navigeren door de grote onderdelen
                van de website.
               Laatste menu: het navigation menu:
                       Bevat het item “Add content”.
               Als bezoeker (wanneer je niet ingelogd bent) zie je enkel het
                main menu en het navigation menu.

Cevora opleiding Drupal 7.x - David Hosse       23                         Februari 2012
Een eerste kennismaking
                             met Drupal 7.x


          2. Een basic page (1)
            Na installatie van Drupal 7.x zijn er 2 soorten content
            beschikbaar:
              Article:
                       Geschikt voor het posten van nieuwsartikelen, -berichten.
                       Standaard is de instelling om commentaar te plaatsen door
                       gebruikers, die hiervoor permissies hebben, geactiveerd.
                       Standaard op de front page weergegeven.
                       In Drupal 6.x heette dit een Story.
Cevora opleiding Drupal 7.x - David Hosse      24                            Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          2. Een basic page (2)
              Basic page:
                       Geschikt voor statische content zoals bv. een “About us”-
                       pagina.
                       Geen tags voorzien.
                       Standaard niet weergegeven op de front page.
                       Standaard is het ook niet toegelaten commentaar te geven op
                       een basic page.
                       Aanmaken van een Basic page kan via “Add content” in het
                       short cut menu. De velden “Title” en “Body” moeten ingevuld
                       worden.

Cevora opleiding Drupal 7.x - David Hosse       25                             Februari 2012
Een eerste kennismaking
                             met Drupal 7.x


          2. Een basic page (3)
              Basic page:
                       Bij “Menu settings” kan een menu item worden
                       aangemaakt zodat de pagina achteraf vlot bereikbaar is.
                        Het menu-item kan als hoofdmenu in het Main Menu of als een
                         submenu in een bestaand hoofdmenu toegevoegd worden.
                        Via “Weight” kan het gewicht van een menu-item aangegeven
                         worden: hoe lager het gewicht, hoe hoger in het menu.




Cevora opleiding Drupal 7.x - David Hosse        26                              Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          2. Een basic page (4)
              Basic page:
                       Verder kunnen via de tabs aan de linkerzijde nog volgende
                       opties in gesteld worden:
                        Revision information: we kunnen verschillende versies van een
                        basic page bijhouden. Dit noemt men revisies. (Dit principe geldt ook
                        voor alle andere content (=nodes) in Drupal).
                        URL path settings: we kunnen een alias definiëren voor de url
                        waarmee de pagina bereikbaar zal zijn. De nieuwe node krijgt
                        standaard /node/<nodenummer> als url. Indien het de allereerste
                        node betreft is dit /node/1. Via een alias kunnen wie hier bv. /over-ons
                        van maken.
                        Comment settings: commentaar toegelaten of niet.


Cevora opleiding Drupal 7.x - David Hosse             27                                     Februari 2012
Een eerste kennismaking
                             met Drupal 7.x


          2. Een basic page (5)
              Basic page:
                        Authoring information: auteursinformatie, geeft aan
                        wie de node gemaakte heeft en wanneer die is
                        toegevoegd of gewijzigd.
                         Publishing options: de node gepubliceerd of niet?
                        Weergegeven op de front page of niet? Sticky of niet?
                        Indien Sticky dan blijft de node altijd bovenaan de lijst
                        staan.


Cevora opleiding Drupal 7.x - David Hosse        28                                 Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          3. Een gebruiker maken
            Zie cursus hoofdstuk 3.3 p. 22 – 24 bovenaan.
            Na installatie van Drupal 7.x, slechts 1 gebruiker:
            Administrator = user 1 = beheerder van de website die over
            alle rechten beschikt.
            Ook nog: Anonymous = user 0
                           = bezoeker
                           = gebruiker die niet ingelogd is
                           = anonieme gebruiker, zeer beperkt in
                             rechten
Cevora opleiding Drupal 7.x - David Hosse   29                      Februari 2012
Een eerste kennismaking
                             met Drupal 7.x


          4. Roles en gebruikersrechten
            Zie cursus hoofdstuk 3.4 p. 24 t.e.m. 25 bovenaan
            Roles = gebruikersgroepen




Cevora opleiding Drupal 7.x - David Hosse   30                  Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          5. Modules: Forum (1)
            De grote kracht van Drupal:
              Modulaire uitbreidbaarheid.
              Drupal heeft standaard een aantal (systeem)modules.
              Niet allemaal geactiveerd bij installatie.
              Bijkomende modules te downloaden via
               www.drupal.org/project/modules.
              Eerste kennismaking: reeds beschikbare of bijkomende,
               ingebouwde (systeem)module(s) activeren voor gebruik.
                       Via onderdeel “Modules” in het management menu.

Cevora opleiding Drupal 7.x - David Hosse     31                         Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          5. Modules: Forum (2)
                       In de modulelijst zie je per module ook welke andere modules
                       nodig zijn voor de betreffende module (required) en voor welke
                       andere modules de betreffende module nodig is (required by).
                       In Drupal 7.x kan je ook automatisch modules installeren,
                       mogelijks wordt hier naar een ftp-account gevraagd.
              Drupal 7.x heeft standaard een aantal (systeem)modules die
              altijd actief zijn na installatie, deze maken deel uit van de Drupal -
              Core:
             Field: nieuw in Drupal 7.x – API (Application Programmer Interface)
          om extra informatie toe te voegen aan nodes , gebruikers, ...
            Field SQL Storage: ook nieuw in Drupal 7.x – Field informatie opslaan
            in een SQL databank.

Cevora opleiding Drupal 7.x - David Hosse         32                                Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          5. Modules: Forum (3)
            Nodes: contentbeheer - Bijna alle content in Drupal is een
            node. Een node kan alle vormen (content types) aannemen:
            bv. een basic page, een article, een evenement, een
            forum(bericht), enz …
            Filter: filter voor gebruikersinvoer bv. Full HTML, Filtered
            HTML of Plain text.
            System: algemene site configuratie voor beheerders.
            Text: tekstvelden definiëren.
            User: gebruikersbeheer en loginsysteem.

Cevora opleiding Drupal 7.x - David Hosse   33                          Februari 2012
Een eerste kennismaking
                             met Drupal 7.x


          5. Modules: Forum (4)
               Werken met velden is nieuw in Drupal 7.x. In Drupal 6.x
               moest hiervoor bijkomend de CCK (Content Construction
               Kit) module geïnstalleerd worden.
               Voor de verdere kennismaking in dit deel van de cursus:
               forum module activeren: zie cursus hoofdstuk 3.5 p. 25
               t.e.m. 28 bovenaan.



Cevora opleiding Drupal 7.x - David Hosse   34                       Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          6. Blocks (1)
            Modules definiëren soms ook blocks.
            Blocks zijn aparte panelen die op een Drupal pagina gezet
            kunnen worden binnen een specifieke region.
              vb. forum module heeft 2 blocks:
                           “Active forum topics” en “New forum topics”
              Een Drupal pagina is verdeeld in verschillende regions of
              gebieden waarin blokken kunnen geplaatst worden.
              Na de installatie staat de inhoud standaard in de region
              “Content”.
Cevora opleiding Drupal 7.x - David Hosse           35                    Februari 2012
Een eerste kennismaking
                             met Drupal 7.x


          6. Blocks (2)
            De region “First sidebar” (linkerkant van de website)
            bevat standaard de blokken “Search Form”,
            “Navigation” en “User Login”.
            De administrator kan zelf ook blokken toevoegen,
            deze bestaan op zichzelf los van de modules en
            kunnen eender welke content hebben.
            Zie cursus hoofdstuk 3.6 p. 28 t.e.m. 30 bovenaan.

Cevora opleiding Drupal 7.x - David Hosse   36                  Februari 2012
Een eerste kennismaking
                             met Drupal 7.x


          6. Blocks (3)
            Via het configure menu van elke block kunnen we een
            titel die de standaard titel (bepaald door de
            implentatie in de module) overschrijft ingeven. Om
            geen titel voor een bepaald block weer te geven vul
            je <none> in dit veld in.




Cevora opleiding Drupal 7.x - David Hosse   37               Februari 2012
Een eerste kennismaking
                             met Drupal 7.x

          7.     Menu’s
               Naast blocks installeert de forum module ook enkele menu-items.
               Standaard terug te vinden in het navigation menu.
               Gemakkelijk bepaalde functionaliteit of onderdelen van de website
               oproepen.
               Via het onderdeel “Structure” – “Menus” kunnen we menu’s
               beheren, standaard aanwezig:
                ”Main menu”, “Management menu”, “Navigation menu”, “User menu”.
               Voor elk menu: settings wijzigen, de lijst met items opvragen en
               deze wijzigen - zelfs items onzichtbaar maken (≠ verwijderen).
               Nieuwe menu’s kunnen toegevoegd worden.
               Zie cursus hoofdstuk 3.7 p. 30 t.e.m. 31.

Cevora opleiding Drupal 7.x - David Hosse      38                                 Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       39      Februari 2012
Architectuur


          1.     Overzicht
          2.     Entities en velden
          3.     Nodes
          4.     Taxonomy
          5.     Modules
          6.     Theming



Cevora opleiding Drupal 7.x - David Hosse        40        Februari 2012
Architectuur
          1. Overzicht (1)
                                            xHTML + CSS + JavaScript

                                    Drupal theme system
                                    Drupal add-on modules (views, …)
                  Drupal            Drupal core modules (block, filter, node, system, user)
                                    Drupal core subsystems


                                    PHP                                Databank
                                                                 (MySQL, PostgreSQL, …)

                                            Web server (Apache, IIS, …)

                               Operating System (Windows, Linux, Mac OS, …)
Cevora opleiding Drupal 7.x - David Hosse                41                                   Februari 2012
Architectuur


          1.    Overzicht (2)
               PHP:
               Populairste programmeertaal voor webapplicaties.
               PHP-versie bepaalt mee de mogelijkheden in Drupal.
               Web server:
               Nodig om PHP-applicaties aan te spreken via HTTP.
               Apache (meest gebruikt) of Internet Information Server
                (clean urls best met IIS 7.0 of hoger).
                       Clean urls of schone url’s:
                        Vb.:
                        http://localhost/drupal?q=contact http://localhost/drupal/contact

Cevora opleiding Drupal 7.x - David Hosse            42                                  Februari 2012
Architectuur


          1.    Overzicht (3)
               Databank:
               De content of informatie beheerd met Drupal wordt hierin
                bewaard.
               Drupal 6.x: enkel MySQL of Postgresql.
               Vanaf Drupal 7.x: ook MariaDB, SQLLite, Oracle en MS SQL
                Server.
               xHTML + CSS + JavaScript = Output van Drupal
               CSS of Cascading Style Sheets  opmaak.
               JavaScript  dynamisch maken van websites.
                vb: het uitklappen van menu’s.

Cevora opleiding Drupal 7.x - David Hosse        43                        Februari 2012
Architectuur


          1.    Overzicht (4)
               Drupal:
                Modulair opgebouwd.
                Bestaat uit verschillende onderdelen.
                De basis = de Core subsystems = de “kernel” , verantwoordelijk voor:
                       Sessiebeheer van gebruikers
                       Authenticatie
                       Autorisatie of security filtering
                       Rendering van templates
                De Core modules maken gebruik van de Core subsystems
                       Deze staan in de modulelijst:
                         http://localhost/drupal/admin/build/modules
                       Zijn verplicht en altijd actief, kunnen niet worden uitgeschakeld.

Cevora opleiding Drupal 7.x - David Hosse                  44                               Februari 2012
Architectuur


          1. Overzicht (5)
              De 7 Core modules:
                       Field: nieuw in Drupal 7.x – API (Application Programmer
                       Interface) om extra informatie toe te voegen aan nodes ,
                       gebruikers, ...
                       Field SQL Storage: ook nieuw in Drupal 7.x – Field
                       informatie opslaan in een SQL databank.
                       Filter: filter voor gebruikersinvoer bv. Full HTML, Filtered
                       HTML of Plain text. Ongewenste content zoals gevaarlijke
                       JavaScript- of PHP-code wordt weggefilterd.

Cevora opleiding Drupal 7.x - David Hosse        45                              Februari 2012
Architectuur


          1.     Overzicht (6)
                    Nodes: Bijna alle content in Drupal is een node. Een node
                    kan alle vormen (content types) aannemen: bv. een basic
                    page, een article, enz …
                    Elke node heeft een uniek nummer en is bereikbaar via de
                    url node/<nodenummer>
                    (http://localhost/drupal/node/<nodenummer>). Een node
                    is een speciaal soort entity (vanaf Drupal 7.x is alle basis
                    content = entity).
                    System: algemene siteconfiguratie voor beheerders.
                    Text: tekstvelden definiëren.
                    User: gebruikersbeheer en loginsysteem.

Cevora opleiding Drupal 7.x - David Hosse        46                           Februari 2012
Architectuur


          1. Overzicht (7)
                   7 Core modules ≠ interessante website.
                    Modules zelf schrijven.
                    Optionele modules (≠ 7 Core modules en standaard niet
                       geactiveerd) in Drupal-installatie activeren voor gebruik.
                         Zie lijst met optionele modules in cursus hoofdstuk
                         4.1 p.33 t.e.m. p.35 bovenaan.
                    Extra modules (van derden) installeren.



Cevora opleiding Drupal 7.x - David Hosse        47                           Februari 2012
Architectuur


          1. Overzicht (8)
                   Theme-system:
                      “Theming” = de beschrijving van het proces waarmee
                      inhoud wordt getoond volgens een bepaalde opmaak.
                      De opmaak bepaalt:
                       bepaalde structuur die een pagina krijgt.
                       welke regions er aanwezig zijn.
                       welke kleuren er worden gebruikt.


Cevora opleiding Drupal 7.x - David Hosse        48                    Februari 2012
Architectuur


          2.     Entities en velden (1)
               Een entity = nieuw begrip in Drupal 7.x.
               Een goede definitie is mogelijk te geven, een werkbare definitie zou
               kunnen zijn:
                      “De dingen die we in Drupal willen gebruiken.”
               Alle content in Drupal 7.x = entities.
               Users, commentaar, nodes, …
               Elke entity heeft een uniek id of nummer.
               Optioneel kunnen entities velden bevatten.
               Velden zijn eigenschappen die aan een entity kunnen toegekend worden.
               Hieraan kunnen ook widgets gekoppeld zijn vb. een kalender waarmee je
               een datum kan aanduiden voor een datumveld.


Cevora opleiding Drupal 7.x - David Hosse        49                               Februari 2012
Architectuur


          2. Entities en velden (2)
            Entities zijn een manier om alle content in Drupal op
            een gemeenschappelijke manier te behandelen.
              Vóór Drupal 7.x had je aan de ene kant nodes en aan de
              andere kant alle andere content (user, commentaar, …).




Cevora opleiding Drupal 7.x - David Hosse        50                 Februari 2012
Architectuur


          3.     Nodes (1)
               Meeste content in Drupal wordt weergegeven onder de vorm van
               een node. 2 grote uitzonderingen: commentaar en user-informatie.
               Elke node bevat de volgende onderdelen:
                Een node id: uniek nummer.
                Een version id: wanneer revisions voor nodes actief zijn kunnen we
                 verschillende versies per node bijhouden. Bij elke wijziging van de node
                 wordt een nieuwe versie aangemaakt. Iedere versie krijgt een uniek
                 nummer of version id. Dit laat toe om terug te keren naar een vorige
                 versie.
                Type: een node type (of content type) laat toe om nodes te definiëren
                 die meer informatie kunnen bevatten dan de standaard nodes (zie later:
                 CCK-module ). In de core modules zijn 2 node of content types
                 gedefinieerd: page en story.

Cevora opleiding Drupal 7.x - David Hosse         51                                  Februari 2012
Architectuur


          3.     Nodes (2)
                Taal: de taal waarin de node is gemaakt.
                Titel: de titel van de node.
                UserID: de id van de gebruiker die eigenaar is van de node. Standaard is
                 dit de gebruiker die de node aangemaakt heeft, is echter aanpasbaar.
                Status: geeft aan of een node al dan niet gepubliceerd is. Het is mogelijk
                 om gewone gebruikers een draft van een node te laten opslaan, welke
                 door de administrator goedgekeurd kan worden en vervolgens
                 gepubliceerd wordt.
                Created & changed: tijdstip waarop de node gecreëerd werd en het
                 laatst gewijzigd is.
                Comment: geeft aan of commentaar toegelaten is. Voor page content is
                 dit niet het geval, voor story content standaard wel (is beheerbaar via
                 het beheer van content types).

Cevora opleiding Drupal 7.x - David Hosse          52                                   Februari 2012
Architectuur


          3.     Nodes (3)
                Promote: geeft aan of de node op de startpagina van de Drupal
                 installatie moet getoond worden. Voor een page is dit weer niet het
                 geval, voor een story wel (ook weer beheerbaar). Let wel de startpagina
                 betreft hier de standaard startpagina van Drupal, niet een node dat als
                 startpagina ingesteld is door de administrator.
                Sticky: geeft aan of de node bovenaan de lijst met nodes weergegeven
                 moet worden.
                 Vb. je kan een story met een belangrijk onderwerp dat voor langere
                 periode beschikbaar moet blijven als sticky instellen waardoor deze
                 steeds bovenaan de lijst blijft staan terwijl de gewone nodes onderin
                 mekaar blijven opvolgen volgens een bepaalde sorteer optie.
                Vanaf Drupal 7.x is de body optioneel



Cevora opleiding Drupal 7.x - David Hosse        53                                  Februari 2012
Architectuur


          4.     Taxonomy (1)
               Taxonomie = het maken en definiëren van categorieën en het
               onderbrengen van informatie in deze categorieën.
               Het definiëren van categorieën gebeurt aan de hand van het
               maken van sleutelwoorden of keywords.
               Bij het aanmaken van content kan een gebruiker deze content in
               een bepaalde categorie onderbrengen.
               Content kan daarnaast ook per categorie opgevraagd worden.
               Forum module (zie hoofdstuk 3) maakt gebruik van het
               taxonomie principe. Het forum wordt aan de hand van keywords
               (categorieën) opgebouwd en posts kunnen in één of meerdere
               categorieën gepubliceerd worden.

Cevora opleiding Drupal 7.x - David Hosse        54                       Februari 2012
Architectuur


          4.     Taxonomy (2)
               Alle berichten met hetzelfde keyword behoren tot hetzelfde forum.
               Het oproepen van een bepaald forum = opvragen van alle berichten
               met hetzelfde keyword.
               Een aantal begrippen:
                Term: een keyword dat we kunnen toekennen aan een node.
                Synoniem: een ander woord voor een bepaalde term.
                Vocabulary: een verzameling van termen of keywords.
                    Vb. een lijst met landen.
                       Een vocabulary kan aan één of meerdere content types gekoppeld
                       worden.
                       Een vocabulary kan verplicht gemaakt worden. De gebruiker is dan
                       verplicht een term aan te duiden bij het aanmaken van een nieuwe node.

Cevora opleiding Drupal 7.x - David Hosse            55                                    Februari 2012
Architectuur


          4. Taxonomy (3)
                       Een vocabulary kan ook ”controlled” zijn:
                        De reeks termen is van vooraf bepaald, de gebruiker moet kiezen
                         uit een bepaalde lijst.
                        Drupal laat ook “tagging” toe waarbij de gebruiker zelf termen
                         kan definiëren.
                       Vocabularies kunnen een hiërarchie vormen. Men kan bij het
                       ingeven van een term een parent term aanduiden.
                        vb. voor een vocabulary van landen kan een parent term
                        continent zijn. Voor elke term kan je ook een “related” term
                        (≠ synoniemen) aanduiden.


Cevora opleiding Drupal 7.x - David Hosse          56                                 Februari 2012
Architectuur


          4. Taxonomy (4)
                       Aan elke vocabulary kan ook een gewicht toegekend
                       worden = een getal tussen -10 en +10. Dit principe komt ook
                       op andere plaatsen voor. Hoe lager het gewicht, hoe hoger
                       in de lijst.
                       Verschillende types van taxonomoieën:
                        1. Flat: staan op hetzelfde niveau, er is geen hiërarchie volgens
                           het parent – child principe.
                        2. Hiërarchical: termen kunnen 1 parent hebben.
                        3. Multiple hiërarchical: termen kunnen meerdere parents
                           hebben.

Cevora opleiding Drupal 7.x - David Hosse          57                                  Februari 2012
Architectuur


          4. Taxonomy (5)
            Flat



                                            C    C++   Cobol



Cevora opleiding Drupal 7.x - David Hosse        58            Februari 2012
Architectuur


          4. Taxonomy (5)
            Hiërarchical
                                                         Object
                   Procedureel
                                                      georiënteerd


                   C                   Cobol          C++      Java
Cevora opleiding Drupal 7.x - David Hosse        59                  Februari 2012
Architectuur


          4. Taxonomy (6)
            Multiple hiërarchical
                                                         Object
                     Procedureel
                                                      georiënteerd


           C                   Cobol            PHP        C++   Java
Cevora opleiding Drupal 7.x - David Hosse        60                  Februari 2012
Architectuur


          5. Modules (1)
            Voegen extra functionaliteit toe aan Drupal.
            Worden ontwikkeld in PHP.
            Worden aan het Drupal framework gekoppeld.
            Downloaden of zelf ontwikkelen.
            In beide gevallen: minstens een folder met een .info en een
            .module bestand.
            Het .info bestand bevat informatie over de module: naam,
            beschrijving, versienummer, afhankelijkheid, package,
            core, …

Cevora opleiding Drupal 7.x - David Hosse        61                 Februari 2012
Architectuur


          5. Modules (2)
              vb. van de inhoud van het .info bestand van de forum module,
               gebruikt om in Management menu-Modules de module te
               tonen:
                   name = Forum
                   description = Provides discussion forums.
                   dependencies[] = taxonomy
                   dependencies[] = comment
                   package = Core
                   version = Version
                   core = 7.x
                   files [] = forum.test
                   configure = admin/structure/forum
                   stylesheets[all][] = forum.css

Cevora opleiding Drupal 7.x - David Hosse              62               Februari 2012
Architectuur


          5. Modules (3)
            In de modulelijst zal de forum module onder het package
            “Core” weergegeven worden.
            De forum module is afhankelijk van de modules taxonomy
            en comment.
            De forum module is ontwikkeld voor Drupal 7.x = core 7.x
            Het .module bestand bevat de PHP code van de module.
            Deze code bestaat uit “hook”-implementaties en
            hulpfuncties.
Cevora opleiding Drupal 7.x - David Hosse        63               Februari 2012
Architectuur


          4. Modules (4)
            De module koppelt zich aan de hand van deze “hook”-
            implementaties aan Drupal:
            Bij iedere request van een gebruiker voert Drupal een
            aantal taken uit:
              Opbouw van het menu
                       Hiervoor roept Drupal de modulenaam_menu( ) functie van
                       iedere module op (indien deze bestaat).
                        een module ontwikkelaar kan op deze manier eigen menu-
                           items definiëren.
                        deze functie noemt men de hook (hook_menu).

Cevora opleiding Drupal 7.x - David Hosse        64                          Februari 2012
Architectuur


          5.     Modules (5)
               Vb. van de “hook”-functie hook_menu:
               /**
               * Implements hook_menu().
               */
               function forum_menu() {
               $items['forum'] = array(
               'title' => 'Forums',
               'page callback' => 'forum_page',
               'access arguments' => array('access content'),
               'file' => 'forum.pages.inc',
               );
               ...
               return $items;
               }


Cevora opleiding Drupal 7.x - David Hosse                 65    Februari 2012
Architectuur


          5. Modules (6)
            Voor sommige modules ook .install bestand.
              de code die hierin staat wordt uitgevoerd bij het
              activeren van de module.
              wordt doorgaans gebruikt om extra tabellen en data in
              de database te installeren.
              er kan ook een uninstall functie voorzien zijn welke
              uitgevoerd wordt bij het desactiveren of desinstalleren
              van de module.
Cevora opleiding Drupal 7.x - David Hosse        66                 Februari 2012
Architectuur


          6. Theming (1)
            = het proces waarbij data omgezet wordt naar HTML, CSS
            en JavaScript. Dit aan de hand van een “theme” of thema.
            Een thema = technisch gezien een reeks van template
            bestanden, tekeningen, afbeeldingen en CSS-bestanden.
            Thema bepaalt de indeling van de regions en de look-and-
            feel van de pagina.
            Standaard bevat Drupal een aantal Core-thema’s.
            Bijkomende thema’s kunnen gedownload worden vb. via
            www.drupal.org/project/themes.
            Zelf thema’s ontwikkelen eveneens mogelijk.
Cevora opleiding Drupal 7.x - David Hosse        67               Februari 2012
Architectuur


          6.     Theming (2)
               Een theme kan een pagina volledig opbouwen via PHP-code.
               In Drupal 7.x is er geen theme meer aanwezig die op deze manier is opgebouwd.
               In Drupal 6.x bestond het Chameleon theme. Vb. van stukje code:
                   function chameleon_page($content, $show_blocks = TRUE, $show_messages =
                   TRUE) {
                   $language = $GLOBALS['language']->language;
                   $direction = $GLOBALS['language']->direction ? 'rtl' : 'ltr';
                   if (theme_get_setting('toggle_favicon')) {
                   drupal_set_html_head('<link rel="shortcut icon" href="'.
                   check_url(theme_get_setting('favicon')) .'" type="image/x-icon" />');
                   }
                   $title = drupal_get_title();
                   // Get blocks before so that they can alter the header (JavaScript,



Cevora opleiding Drupal 7.x - David Hosse             68                                     Februari 2012
Architectuur


          6.     Theming (3)
                   $blocks_left = theme_blocks('left');
                   $blocks_right = theme_blocks('right');
                   $output = "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
                   Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">n";
                   $output .= "<html xmlns="http://www.w3.org/1999/xhtml"
                   lang="$language" xml:lang="$language" dir="$direction">n";
                   $output .= "<head>n";
                   $output .= drupal_get_html_head();
                   $output .= " <title>". ($title ? strip_tags($title) ." | ".
                   variable_get("site_name", "Drupal") : variable_get("site_name",
                   "Drupal") ." | ". variable_get("site_slogan", "")) ."</title>n";
                   $output .= drupal_get_css();
                   $output .= drupal_get_js();
                   $output .= "</head>";
                   $output .= "<body>n";
                   $output .= " <div id="header">";
                   ...
                   return $output;
                   }


Cevora opleiding Drupal 7.x - David Hosse                           69                       Februari 2012
Architectuur


          6.    Theming (4)
               Theme dat pagina volledig opbouwt via PHP is zeer effectief.
               Opmaak zeer moeilijk aan te passen indien geen kennis van PHP.
               Meeste themes maken gebruik van templates en template
               engines.
               Template engine vertaalt een template bestand naar PHP/HTML-
               code.
               Standaard template engine in Drupal: PHPTemplate engine.
                Terug te vinden in
                   drupal/themes/engines/phptemplate


Cevora opleiding Drupal 7.x - David Hosse        70                           Februari 2012
Architectuur


          6.    Theming (5)
               De hoofdtemplate van PHPTemplate is:
               in Drupal 7.x: html.tpl.php
               in Drupal 6.x: page.tpl.php
               In Drupal 7.x bestaat page.tpl.php ook maar omvat enkel het body
               gedeelte van de pagina, waarin volgende onderdelen beschreven
               worden:
               header
               footer
               linker en rechter sidebar
               content
               Voor blocks en nodes zijn er aparte templates.

Cevora opleiding Drupal 7.x - David Hosse        71                           Februari 2012
Architectuur


          6.     Theming (6)
              De template html.tpl.php is terug te vinden onder modules/system en ziet er als volgt
              uit:
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
          "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language-
          >language; ?>" version="XHTML+RDFa 1.0" dir="<?php print $language->dir; ?
          >"<?php print $rdf_namespaces; ?>>
          <head profile="<?php print $grddl_profile; ?>">
          <?php print $head; ?>
          <title><?php print $head_title; ?></title>
          <?php print $styles; ?>
          <?php print $scripts; ?>
          </head>


Cevora opleiding Drupal 7.x - David Hosse             72                                        Februari 2012
Architectuur


          6. Theming (7)
          <body class="<?php print $classes; ?>" <?php print $attributes;?>>
          <div id="skip-link">
          <a href="#main-content" class="element-invisible element-
          focusable"><?
          php print t('Skip to main content'); ?></a>
          </div>
          <?php print $page_top; ?>
          <?php print $page; ?>
          <?php print $page_bottom; ?>
          </body>
          </html>
Cevora opleiding Drupal 7.x - David Hosse        73                            Februari 2012
Architectuur
           6. Theming (8)




                                                            node.tpl.php




block.tpl.php



                                                            page.tpl.php
 Cevora opleiding Drupal 7.x - David Hosse        74          Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       75      Februari 2012
Gebruikersbeheer


          1. User module
          2. Roles en permissions
          3. User profiles




Cevora opleiding Drupal 7.x - David Hosse   76     Februari 2012
Gebruikersbeheer


          1.     User module (1)
               Bij installatie van Drupal wordt 1 gebruiker aangemaakt  user 1 =
               administrator = beheerder met alle rechten.
               Net zoals bij nodes heeft elke user een uniek user id en krijg je deze
               op gelijkaardige wijze in de URL te zien  vb. user/1.
               Elke gebruiker een unieke gebruikersnaam en uniek paswoord!
               Bij creatie ook nog een e-mailadres ingeven. Onder meer voor het
               contacteren van de gebruiker indien nodig.
               Volgende informatie kan ook interessant zijn:
               signature: de signature van de gebruiker bij bv. posts.
               status: geeft aan of de gebruiker actief of geblokkeerd is.
               picture: pad naar de picture van de gebruiker.


Cevora opleiding Drupal 7.x - David Hosse         77                               Februari 2012
Gebruikersbeheer


          1.    User module (2)
               Aantal gebruikersinstellingen via Management menu-Settings
               Account settings (admin/config/people/accounts):
               User registration settings:
               hoe worden nieuwe gebruikers aangemaakt?
                        Door de administrator: interessant als men alleen “bekenden” een
                        account willen geven.
                        Door de bezoekers die zich registreren en waarna ze automatisch
                        geactiveerd worden.
                       Aan te raden: require e-mail verification om te voorkomen dat via
                       een programma, spam of virus zomaar gebruikeraccounts kunnen
                       worden aangemaakt. De gebruiker zal pas geactiveerd worden na
                       succesvole verificatie van zijn of haar e-mailadres.


Cevora opleiding Drupal 7.x - David Hosse          78                                   Februari 2012
Gebruikersbeheer


          1.     User module (3)
                        Door de bezoekers die zich registreren en waarna de administrator deze
                        registratie moet goedkeuren.
               Personalization:
               Hier kunnen we bepalen of een gebruiker een signature kan definiëren of
               een gebruikersfoto kan uploaden.
               E-mail settings:
               Hiermee kan men bepalen wanneer e-mails naar een gebruiker worden
               gestuurd:
                      Eerste 3 mails hebben te maken met de registratie van een nieuwe
                       gebruiker.
                      De Password recovery email wordt verstuurd wanneer de gebruiker
                      aangeeft dat hij of zij zijn of haar paswoord vergeten is.


Cevora opleiding Drupal 7.x - David Hosse            79                                     Februari 2012
Gebruikersbeheer


          1.     User module (4)
                       De 3 laatste mails worden verstuurd wanneer de status van
                       een gebruiker wijzigt: geactiveerd, geblokkeerd of verwijderd.
                       In de e-mails kan men gebruik maken van variabelen, vb.:
                            [user:name],
                            A request to reset the password for your account has been made at
                            [site:name].
                            You may now log in by clicking this link or copying and pasting it to your
                            browser:
                            [user:one-time-login-url]
                            This link can only be used once to log in and will lead you to a page
                            where you can set your password. It expires after one day and nothing will
                            happen if it's not used.
                            -- [site:name] team


Cevora opleiding Drupal 7.x - David Hosse                  80                                            Februari 2012
Gebruikersbeheer


          2.    Roles and permissions (1)
               De toegang van Drupal-onderdelen wordt beheerd via rollen.
               Rol = type gebruiker = actor = (gebruikers)groep.
                In sommige systemen spreekt men van “hoed” = “een bepaalde
                 hoed dragen”.
               1 gebruiker kan lid zijn van meerdere rollen.
               Standaard 2 rollen:
               “anonymous user” en “authenticated user”.
               Elke gebruiker behoort tot één van beide rollen.
               Niet aangemeld = anoniem.
               Aangemeld = authenticated users.


Cevora opleiding Drupal 7.x - David Hosse     81                            Februari 2012
Gebruikersbeheer


          2.     Roles and permissions (2)
               Wanneer men tot meerdere rollen behoort, worden de
               permissies van alle rollen opgeteld.
               niet mogelijk om rechten af te nemen via deny rechten.
               belangrijk om aan de “authenticated users” rol enkel de
               rechten toe te kennen die voor alle gebruikers gelden.
               wil je bepaalde “authenticated users” toch nog andere
               rechten toekennen, maak dan een nieuwe rol aan voor deze
               gebruikers.
               Vanaf Drupal 7.x bestaat er nog een bijkomende role:
               “administrators”. Bij installatie van nieuwe modules krijgt deze
               role steeds alle rechten van die module.

Cevora opleiding Drupal 7.x - David Hosse     82                              Februari 2012
Gebruikersbeheer


          2. Roles and permissions (3)
            Indien we een andere rol als beheerdersrol willen
            instellen, kunnen we dit doen via Management menu-
            Settings  Account settings
            (admin/config/people/accounts).
            Permissies kunnen we instellen via Management
            menu-People  Tab “Permissions”.
              belangrijkste beheerpermissies staan bij de system
              module.

Cevora opleiding Drupal 7.x - David Hosse   83                      Februari 2012
Gebruikersbeheer


          3. User profiles
            In drupal 6.x was er een aparte module om extra
            informatievelden voor op het gebruikersprofiel te
            voorzien.
            Vanaf Drupal 7.x zijn users net zoals nodes “fieldable”
            entities (zie volgend hoofdstuk 6: Werken met velden).
              geen extra module meer nodig om extra informatie te
              definiëren.
              Zie toepassing in cursus hoofdstuk 5.3 pagina 45 t.e.m. 47.

Cevora opleiding Drupal 7.x - David Hosse   84                         Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       85      Februari 2012
Werken met velden


          1. Inleiding
          2. Content types
          3. Andere entities




Cevora opleiding Drupal 7.x - David Hosse   86    Februari 2012
Werken met velden


          1.     Inleiding (1)
               Extra velden definiëren voor gebruikersinformatie.
               Extra velden maken voor nodes.
               Mogelijkheid om extra velden te maken bestond ook al in Drupal 6.x
               via een extra te installeren module:
               Content Construction Kit of CCK.
               In Drupal 7.x maakt deze functionaliteit deel uit van de Drupal Core
               via de Field API en de Field SQL Storage modules.
               In Drupal 6.x konden we CCK niet standaard gebruiken om extra
               velden voor users te voorzien. Hiervoor moesten we nog een extra
               module “Profile” installeren.
               CCK-module kan enkel gebruikt worden voor nodes en users zijn geen
               nodes in Drupal.

Cevora opleiding Drupal 7.x - David Hosse          87                                Februari 2012
Werken met velden


          1.     Inleiding (2)
               In Drupal 7.x zijn nodes, taxonomies, comments, users, …
               allemaal entities.
               Alle entities zijn “fieldable”: geen onderscheid meer in de
               verschillende content types voor het aanmaken/ toevoegen van
               extra velden.
               Fields of velden kunnen herbruikt worden.
               Verschillende veldtypes (tekstveld, numeriek veld, …) die elk
               bepaalde eigenschappen kunnen hebben:
               Vb: een tekstveld kan een maximale lengte van 4 karakters hebben.
               Fields kunnen we aan eenders welke entity toevoegen  Field
               instance.

Cevora opleiding Drupal 7.x - David Hosse    88                                Februari 2012
Werken met velden


          1.    Inleiding (3)
               Een field instance kan ook bepaalde eigenschappen hebben.
               De eigenschappen van een field instance gelden enkel voor de
               combinatie van een field en een entity.
               Vb. voor een tekstveld:
                       het label
                       verplicht veld of niet
                       help tekst
                       breedte van het veld
                       filter van toepassing of niet
                       default waarde

Cevora opleiding Drupal 7.x - David Hosse              89                     Februari 2012
Werken met velden


          2. Content types
            Vbn.: article, basic page, event, forum post/entry,
            blog post/entry, …
            We kunnen ook zelf content types definiëren.
              zie toepassing voor het aanmaken van het content type
              “Cevora cursus” in de cursus hoofdstuk 6.2 pagina 48
              t.e.m. 53 bovenaan.



Cevora opleiding Drupal 7.x - David Hosse   90                    Februari 2012
Werken met velden


          3. Andere entities
            Zoals reeds aangehaald is in Drupal 7.x nieuw dat we
            velden kunnen toevoegen aan niet-nodes.
            Zie toevoegen van een geboortedatum veld aan een
            user in hoofdstuk 5 Gebruikersbeheer.
            Zie toepassing voor het toevoegen van een bestand
            aan een gebruikersprofiel in cursus hoofdstuk 6.3
            pagina 53 t.e.m. 56.

Cevora opleiding Drupal 7.x - David Hosse   91                 Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       92      Februari 2012
Extra modules


          1. Vooraf: opgelet
          2. Views 3
          3. CKEditor en IMCE modules installeren en
             configureren
          4. Pathauto module
          5. Panels 3
          6. Installeren van updates en patches


Cevora opleiding Drupal 7.x - David Hosse    93        Februari 2012
Extra modules


          1.     Vooraf: opgelet
               Veel Drupal 7.x modules verkeren nog in Beta of Alpha stadium.
               Deze zijn niet aan te raden voor productiewebsites.
               Installeren en activeren van modules via Management menu-
               Modules (admin/modules).
               Installeren van een nieuwe module:
                Installeren via een url.
                Uploaden van .zip of .tar.gz bestand.
                Deze 2 opties vragen mogelijks een ftp-account naar de Drupal-
                 installatie om modules automatisch te installeren via ftp (niet van
                 toepassing in deze opleiding).

Cevora opleiding Drupal 7.x - David Hosse      94                                Februari 2012
Extra modules


          2. Views 3 (1)
            Inleiding
            De Views module behoort niet tot de Drupal Core. Apart te
            installeren - http://drupal.org/project/views.
            Deze hangt af van de Chaos tools suite module die ook
            apart gedownload en geïnstalleerd moet worden.
              http://drupal.org/project/ctools
              2 onderdelen van de Views module moeten geactiveerd
              worden: “Views” en “Views UI” (voor het aanmaken van
              views via de webinterface van Drupal.
Cevora opleiding Drupal 7.x - David Hosse    95                      Februari 2012
Extra modules


          2. Views 3 (2)
            Inleiding
            De views module wordt gebruikt om gegevens te tonen. In
            een view definiëren we:
              welke velden van een node we in een lijst willen zien.
              welke nodes we willen zien (filtering).
              in welke volgorde we de nodes willen zien (sortering).
              hoe we de lijst willen zien (bijvoorbeeld een list met bullets).
              De eerste 3 elementen worden achterliggend omgezet
              naar een SQL statement.
Cevora opleiding Drupal 7.x - David Hosse    96                               Februari 2012
Extra modules


          2.     Views 3 (3)
               Inleiding
               SQL is de taal die we kunnen gebruiken om een databank te
               ondervragen.
               Kennis van SQL is niet nodig om met views te werken. Het helpt
               wel om de werking van de views beter te begrijpen.
               Mogelijkheden van een view zeer uitgebreid 
               configuratiescherm lijkt daarom zeer moeilijk.
               1ste belangrijk concept: de default instellingen.
               Een view kan verschillende displays hebben. Deze bepalen hoe
               een view naar de gebruiker toe getoond wordt.


Cevora opleiding Drupal 7.x - David Hosse    97                            Februari 2012
Extra modules


          2.     Views 3 (4)
               Inleiding
               De default instellingen bepalen het algemene gedeelte van alle
               displays.
               Per display kunnen we nog bepaalde instellingen overschrijven
               zodat ze afwijken van de default instellingen.
               Vanuit een display kunnen we ook de default instellingen
               wijzigen, maar dan wijzigen wel alle andere displays mee.
               Belangrijk onderscheid maken:
                In de default instellingen aangeven wat er moet worden
                 getoond.
                In de display zelf bepalen hoe het moet worden getoond.

Cevora opleiding Drupal 7.x - David Hosse    98                             Februari 2012
Extra modules

          2.     Views 3 (5)
               Inleiding
               Standaard 4 soorten displays:
               Page: maakt een pagina met een eigen URL die eventueel gekoppeld kan
               worden aan een menu.
               Block: maakt een block die getoond kan worden via de beheerpagina van
               de blocks.
               Attachment: een display die boven of onder een andere display kan
               worden getoond.
               Feed: een aanpasbaar RSS feed waarop gebruikers kunnen inschrijven.
               Kunnen een eigen URL hebben en toegevoegd worden aan page en/of
               block display.
               Bijkomende displays kunnen worden toegevoegd.
               Bekijk ook eens de module “insert view”. Deze laat toe om views via
               hun naam en parameters weer te geven in nodes.
Cevora opleiding Drupal 7.x - David Hosse      99                                 Februari 2012
Extra modules

          2. Views 3 (6)
            Page displays
            Zie toepassing in cursus hoofdstuk 7.2.2 pagina 58
            t.e.m. 62 bovenaan.
            Vergeet eerst niet het content type “Product” aan te
            maken!
            Een block display
            Zie toepassing in cursus hoofdstuk 7.2.3 pagina 62.

Cevora opleiding Drupal 7.x - David Hosse    100               Februari 2012
Extra modules

          3.     CKEditor en IMCE modules installeren en configureren (1)
               Inleiding
               Mogelijkheden voor gebruik van HTML in Drupal zijn standaard
               zeer beperkt.
               Oplossing  installatie van een WYSIWYG- (What You See Is
               What You Get) of HTML-editor.
                In deze cursus de CKEditor module.
               Mogelijkheden om met bestanden te werken ook zeer beperkt.
               Oplossing  installatie van de IMCE module
               Breidt de beperkte uploadfunctionaliteit van Drupal sterk uit.
               Elke gebruiker kan beschikken over een homedirectory voor het
               uploaden van bestanden.
               Een beperking op de bestandsgrootte kan ingesteld worden.
Cevora opleiding Drupal 7.x - David Hosse    101                             Februari 2012
Extra modules

          3.     CKEditor en IMCE modules installeren en configureren (2)
               Inleiding
               Bij het werken met WYSIWYG-editors moet je ook goed opletten
               met de filters van Drupal. Sommige code die de editor zelf
               genereerd kan gefliterd worden zodat het reslutaat van je
               opmaak binnen de editor beïnvloedt wordt.
               De filters kan je natuurlijk configureren of bijkomende
               toevoegen met de juiste instellingen.




Cevora opleiding Drupal 7.x - David Hosse    102                        Februari 2012
Extra modules

          3.     CKEditor en IMCE modules installeren en configureren (3)
               CKEditor
               Installatie is iets moeilijker dan het installeren van een gewone
               module.
               De module bevat niet de eigenlijke editor. Deze moet je nadien
               via www.ckeditor.net downloaden, de inhoud van de directory
               /ckeditor uitpakken en toevoegen in de juiste folder van de
               module, nl. de subdirectory /ckeditor.
               Na het activeren van de CKEditor en de IMCE module moeten
               nog enkele configuratie instellingen gebeuren.
               Zie cursus hoofdstuk 7.3.2 pagina 63 t.e.m. 65 bovenaan.
Cevora opleiding Drupal 7.x - David Hosse     103                             Februari 2012
Extra modules

          3.    CKEditor en IMCE modules installeren en configureren (4)
               CKEditor
               Bekijk ook eens de WYSIWYG-module voor Drupal als alternatief op de
               CKEditor module. Deze module biedt de mogelijkheden meerdere
               editors te installeren via 1 interface en verschillende editors op één
               Drupal installatie in te stellen voor verschillende doeleinden.
                Let op! Hier worden de editors niet in subfolders van de WYSIWYG-module
                 geplaatst maar in de folder /sites/all/libraries (wordt ook gebruikt om andere
                 plugins vereist door andere modules in onder te brengen) die je zelf dient aan
                 te maken. Meer info is ook terug te vinden op de modulepagina:
                 http://drupal.org/project/wysiwyg.
                Let op! De WYSIWYG-module heeft een bijkomende module nodig om met de
                 IMCE te kunnen samenwerken: http://drupal.org/project/imce_wysiwyg.
Cevora opleiding Drupal 7.x - David Hosse           104                                    Februari 2012
Extra modules

          3.     CKEditor en IMCE modules installeren en configureren (5)
               IMCE
               De CKEditor laat toe om afbeeldingen of andere bestanden toe te voegen .
               Bestanden komen standaard terecht in /sites/default/files.
               IMCE breidt de standaard bestandsbehandeling binnen Drupal uit en laat
               toe om te bladeren door bestanden, bestanden up te loaden en grenzen
               voor bestandsgroottes in te stellen via een gebruiksvriendelijke interface.
               Zie configureren van IMCE in cursus hoofdstuk 7.3.3 pagina 65 t.e.m. 66
               bovenaan. Zorg natuurlijk wel dat je de IMCE module eerst geactiveerd
               hebt!
               Een tip: Installeer ook de IMCE Mkdir module
               http://drupal.org/project/imce_mkdir.
               Deze breidt IMCE uit zodat je ook (sub)folders kan aanmaken en beheren.
Cevora opleiding Drupal 7.x - David Hosse          105                                   Februari 2012
Extra modules

          4.     Pathauto module (1)
               We hebben reeds gezien dat we de klassieke URL’s
               (index.php?q=node/1) via Clean Url’s kunnen “vertalen” naar
               gebruiksvriendelijke URL’s (/node/1).
               De core module Path laat toe voor bepaalde content dergelijke URL’s in
               te stellen.
               Voor elke node kunnen we een path alias instellen zodat /node/1 bv.
               vervangen wordt door /about-us.
               De lijst met aliassen kan je terugvinden in Configuration-URL aliases.
                   weinig beheerbaar en moeilijk om consistentie te bewaren als
                   iedere gebruiker per node een alias moet toevoegen.


Cevora opleiding Drupal 7.x - David Hosse      106                                Februari 2012
Extra modules

          4.     Pathauto module (2)
               De Pathauto module, die afhankelijk is van de Token module, breidt
               deze core module uit om automatische aliassen te creëren.
               Pathauto maakt gebruik van tokens via de Token module.
               Token = bepaalde waarde.
               Vb.: [month] zou kunnen staan voor de maandcomponent van de
               creatiedatum van een node.
               Modules kunnen tokens definiëren en registreren bij de Token
               module.
               Binnen de Pathauto module kunnen we de tokens gebruiken om
               URL aliassen automatisch te definiëren.

Cevora opleiding Drupal 7.x - David Hosse     107                              Februari 2012
Extra modules

          4.     Pathauto module (3)
               Vb: Stel dat we blog posts hebben op onze website. Voor het content type
               blog zouden we kunnen definiëren dat blogs moeten worden bewaard
               onder volgende URL:
               blog/[node:created:custom:Y]/[node:created:custom:m]/[node:created:custom:d]/[node:title]
               Een blog post geschreven op 10 januari 2011 met als titel “Content
               management systems” zal onder de volgende URL toegankelijk zijn:
               blog/2011/01/10/content-management-systems
               De configuratie van Pathauto gebeurt via de tab Configuration-URL.
               Zie de configuratie van Pathauto in cursus hoofdstuk 7.3.4 pagina 66
               t.e.m. 67 bovenaan.


Cevora opleiding Drupal 7.x - David Hosse                 108                                              Februari 2012
Extra modules

          5.     Panels 3 (1)
               Inleiding
               Panels en Views zijn door dezelfde ontwikkelaars ontwikkeld.
               Het wordt ook wel eens de gedopeerde versie van Blocks
               genoemd.
               Via Blocks kunnen bepaalde content in Drupal tonen, Panels
               bouwt daarop verder.
               Ze laten toe om eigen pagina’s te koppelen aan een Drupal URL
               (/node/%/edit) en de layout en de inhoud van die pagina’s te
               bepalen.
               Op een panel kunnen we bv. views zetten.
Cevora opleiding Drupal 7.x - David Hosse    109                          Februari 2012
Extra modules

          5.     Panels 3 (2)
               Installatie
               Voor de installatie van Panels moeten we 2 modules
               downloaden:
               Panels - http://drupal.org/project/panels.
               Ctools - http://drupal.org/project/ctools.
                          (al geactiveerd voor de Views)
               Zie de installatieprocedure en configuratie voor panels in cursus
               hoofdstuk 7.5.2 pagina 68 t.e.m. 70 bovenaan.
               Voorbeeld van het gebruik van Panels
               Zie toepassing in cursus hoofdstuk 7.5.3 pagina 70 t.e.m. 74
               bovenaan.
Cevora opleiding Drupal 7.x - David Hosse        110                               Februari 2012
Extra modules

          6.     Installeren van upgrades en patches (1)
               Hoewel ontwikkelaars van Drupal modules de grootste zorg dragen
               om foutloos te werken, is het niet uitgesloten dat er fouten kunnen
               voorkomen.
               Meestal gaat het hier om kleine fouten die opgelost worden bij het
               uitgeven van een nieuwe module versie.
               Deze update/upgrade kan men over de bestaande versie van de
               betreffende module kopiëren in de module folder.
               Drupal controleert aan de hand van een cron job automatisch of er
               nieuwe versies beschikbaar zijn voor enerzijds de Drupal core en anderzijds
               de beschikbare modules.
               Automatisch updaten van modules en de drupal core is binnen drupal
               mogelijk al dan niet met het instellen van een ftp-account.
               Sommige aanpassingen zijn onmiddellijk nodig en worden onder de
               vorm van een patch ter beschikking gesteld.
Cevora opleiding Drupal 7.x - David Hosse         111                                  Februari 2012
Extra modules

          6.     Installeren van upgrades en patches (2)
               De installatie van een patch is iets ingewikkelder dan de
               installatie van een update/upgrade.
               Een patch wordt uitgebracht onder de vorm van een patch
               bestand.
               Binnen een software ontwikkelingsomgeving kan men de patch
               toepassen op de bestaande bestanden, los van zo’n omgeving
               moet men de aanpassing manueel toepassen.
               Maak altijd eerst een backup van het bestand dat je aanpast!
               Zie voorbeeld van een patch bestand in cursus hoofdstuk 7.6
               pagina 74 t.e.m. 75.
Cevora opleiding Drupal 7.x - David Hosse      112                             Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       113     Februari 2012
Themes


          1.     Inleiding
          2.     Eenvoudige theming
          3.     Een subtheme maken
          4.     Template bestanden
          5.     Starter theme: Zen




Cevora opleiding Drupal 7.x - David Hosse     114    Februari 2012
Themes


          1.     Inleiding (1)
               Themes worden gebruikt voor de opmaak van pagina’s 
               technisch = “Presentation Layer”.
               Via een theme kan men:
               page layouts definiëren.
               bepalen welke grafische elementen er getoond worden.
               eigenschappen van fonts en graphics bepalen.
               output van modules overschrijven.
               Voorkennis die nodig is om met themes te werken hangt af wat
               men precies wenst te doen.
               Om het logo te veranderen is weinig voorkennis nodig omdat dit
               via de instellingen van een actief thema aangepast kan worden.
Cevora opleiding Drupal 7.x - David Hosse     115                         Februari 2012
Themes


          1.     Inleiding (2)
               Voor andere aanpassingen is voorkennis nodig van xHTML, CSS,
               JavaScript, jQuery, PHP en eventueel ook grafische programma’s
               als Photoshop, Illustrator, Fireworks ...
               Drupal 7 wordt standaard geïnstalleerd met het Bartik theme,
               andere beschikbare themes zijn Garland en Stark.
               Voor administration pagina’s is het Seven theme standaard
               actief.
               De Drupal themes zijn terug te vonden in de /themes root folder
               van de Drupal installatie.
               Eigen themes of themes ontwikkeld door andere ontwikkelaars
               worden in sites/all/themes opgenomen.

Cevora opleiding Drupal 7.x - David Hosse     116                          Februari 2012
Themes


          2.     Eenvoudige theming (1)
               Via het administratiemenu van Drupal kunnen bepaalde
               instellingen van themes aangepast worden.
               Er zijn instellingen die standaard zijn voor alle themes.
               Daarnaast zijn er instellingen die theme specifiek zijn.
               Specifieke instellingen overschrijven de globale instellingen.
               Globale instellingen kunnen gewijzigd worden via Appearance-
               Settings tab Global settings.
               We kunnen bepalen wat er getoond wordt op een pagina (logo,
               site naam, slogan, mission statement, search box, shortcut icon,
               primary links, secondary links).

Cevora opleiding Drupal 7.x - David Hosse     117                             Februari 2012
Themes


          2.     Eenvoudige theming (2)
               Wanneer het gebruik van user pictures geactiveerd is kunnen we
               ook bepalen of user pictures van de user verschijnen in posts en/of
               commentaar = de Features.µ
               Wanneer logo en/of shortcut icon (= favicon) zijn aangevinkt,
               kunnen de URL’s meegegeven worden die verwijzen naar de
               respectievelijke bestanden.
               Site naam, slogan en mission statement kunnen ingevuld worden
               bij Configuration-Site information. Hier wordt enkel bepaald of ze
               getoond worden of niet.
               Per theme kunnen de globale instellingen worden overschreven.
               Sommige themes laten ook toe om kleuren aan te passen,
               hiervoor moet de Color module (Drupal core) geactiveerd zijn.
Cevora opleiding Drupal 7.x - David Hosse     118                              Februari 2012
Themes


          3. Een subtheme maken
            Zie toepassing in cursus hoofdstuk 8.3 pagina 77
            t.e.m. 80 bovenaan.




Cevora opleiding Drupal 7.x - David Hosse     119              Februari 2012
Themes


          4. Template bestanden
            = vervolg op een subtheme maken.
            Zie cursus hoofdstuk 8.4 pagina 80 t.e.m. 82
            bovenaan.




Cevora opleiding Drupal 7.x - David Hosse     120          Februari 2012
Themes


          5. Start theme: Zen
            Zen = starterkit voor de ontwikkeling van een eigen
            theme.
            Nadeel aan het kopiëren van een bestaand thema is
            niet goed weten wat men moet veranderen.
            In een starter theme is de nodige documentatie en
            zijn de nodige basisbestanden voorzien.
            Zie toepassing in cursus hoofdstuk 8.5 pagina 82
            t.e.m. 84.
Cevora opleiding Drupal 7.x - David Hosse     121                 Februari 2012
Overzicht


              Inleiding
              Installatie
              Een eerste kennismaking
              Architectuur
              Gebruikersbeheer
              Werken met velden
              Extra modules
              Themes
              Dagelijks beheer

Cevora opleiding Drupal 7.x - David Hosse       122     Februari 2012
Dagelijks beheer


          1.     Backup and restore
          2.     Logging
          3.     Cron jobs
          4.     Optimalisatie van Drupal




Cevora opleiding Drupal 7.x - David Hosse   123       Februari 2012
Dagelijks beheer


          1.    Backup and restore
               Backup van databank
               Via phpmyadmin
               Via backup-migrate module.
                        http://drupal.org/project/backup_migrate
                        Zie toepassing in cursus hoofdstuk 9.1 pagina 85 t.e.m. 87.
               Aan te raden is om op regelmatige basis (dagelijks of frequenter
               voor belangrijkste bestanden) backups te nemen van de Drupal
               installatie bestanden, zowel de core als de extra modules
               (sites/all/modules), themes (sites/all/themes), ...
               Vergeet zeker ook niet de sites/default/files folder regelmatig te
               backuppen!

Cevora opleiding Drupal 7.x - David Hosse           124                               Februari 2012
Dagelijks beheer


          2. Logging
            Standaard worden in Drupal fouten weggeschreven naar
            logbestanden en naar het scherm naar de gebruiker toe in
            de vorm van een foutmelding.
              in productie best enkel naar logbestanden.
              dit kan je instellen via Configuration-Error Reporting.
              Onder Configuration-Site Information kan je ook instellen
              welke pagina’s er moeten weergegeven worden voor
              “Access Denied”- en “Not Found”-fouten.
              hiervoor maak je best voor elk een extra node aan.
              bij de URL’s vul je vervolgens het path van de node in.

Cevora opleiding Drupal 7.x - David Hosse   125                          Februari 2012
Dagelijks beheer


          3.    Cron jobs (1)
               Allerlei modules in Drupal hebben taken die regelmatig moeten
               worden uitgevoerd.
               Vb. verwijderen van oude log data, controleren of er updates zijn
               voor Drupal of voor modules, web pagina’s cachen (enkel voor
               anonieme gebruikers), indexeren van de site (voor degelijke
               zoekoptimalisatie) …
               Al deze taken worden uitgevoerd via zogenaamde cron jobs.
               In Linux  crontab job, in Windows  Sheduled tasks.
               Uitvoeren van cron job = het oproepen van cron.php in Drupal
               installatie. Kan ook vanaf een andere computer uitgevoerd
               worden.

Cevora opleiding Drupal 7.x - David Hosse     126                                  Februari 2012
Dagelijks beheer


          3. Cron jobs (2)
            Vanaf Drupal 7.x maakt de “Poor Man’s Cron”-module
            deel uit van de core.
              voegt aan elke pagina een stukje javascript code toe.
              aan de hand van deze code en een Ajax call wordt er
              gecontroleerd of cron onlangs heeft gelopen.
              Indien dit niet zo is dan wordt de cron pagina uitgevoerd.
              Via Configuration-Cron kan men instellen hoe frequent
              cron moet worden uitgevoerd.

Cevora opleiding Drupal 7.x - David Hosse   127                        Februari 2012
Dagelijks beheer


          4. Optimalisatie van Drupal
            Zie informatie in cursus hoofdstuk 9.4 pagina 89
            t.e.m. 91.




Cevora opleiding Drupal 7.x - David Hosse   128                Februari 2012

Weitere ähnliche Inhalte

Ähnlich wie Cevora opleiding drupal 7.x slides februari 2012

Eduvision - Webinar drupal: gratis online cursus Drupal
Eduvision - Webinar drupal: gratis online cursus DrupalEduvision - Webinar drupal: gratis online cursus Drupal
Eduvision - Webinar drupal: gratis online cursus DrupalEduvision Opleidingen
 
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
 
General Drupal presentation in Dutch
General Drupal  presentation in DutchGeneral Drupal  presentation in Dutch
General Drupal presentation in DutchRoel Meester
 
Hybrid Cloud training on Amazon Azure VMware
Hybrid Cloud training on Amazon Azure VMwareHybrid Cloud training on Amazon Azure VMware
Hybrid Cloud training on Amazon Azure VMwareWeolcan
 
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.
 
Open eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernmentOpen eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernmentBart Gysens
 
Drupal7 Development
Drupal7 DevelopmentDrupal7 Development
Drupal7 DevelopmentHans Rossel
 
Introductie Drupal development
Introductie Drupal developmentIntroductie Drupal development
Introductie Drupal developmentBart Hanssens
 
Drupal Cursus Hans Rossel
Drupal Cursus Hans RosselDrupal Cursus Hans Rossel
Drupal Cursus Hans RosselHans Rossel
 
Drupal opleiding
Drupal opleidingDrupal opleiding
Drupal opleidingHans Rossel
 
Kiezen van een open source content management systeem drie uitgangspunten e...
Kiezen van een open source content management systeem   drie uitgangspunten e...Kiezen van een open source content management systeem   drie uitgangspunten e...
Kiezen van een open source content management systeem drie uitgangspunten e...Geert Wissink
 
RealHosting Seminar 2012 : Arjan burger CMS systemen
RealHosting Seminar 2012 : Arjan burger   CMS systemenRealHosting Seminar 2012 : Arjan burger   CMS systemen
RealHosting Seminar 2012 : Arjan burger CMS systemenRealHosting
 
Lucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLuciuswebsystems
 

Ähnlich wie Cevora opleiding drupal 7.x slides februari 2012 (20)

Eduvision - Webinar drupal: gratis online cursus Drupal
Eduvision - Webinar drupal: gratis online cursus DrupalEduvision - Webinar drupal: gratis online cursus Drupal
Eduvision - Webinar drupal: gratis online cursus Drupal
 
Drupal 7 Architectuur
Drupal 7 ArchitectuurDrupal 7 Architectuur
Drupal 7 Architectuur
 
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
 
Cm swebinar292010
Cm swebinar292010Cm swebinar292010
Cm swebinar292010
 
Drupalgardens
DrupalgardensDrupalgardens
Drupalgardens
 
General Drupal presentation in Dutch
General Drupal  presentation in DutchGeneral Drupal  presentation in Dutch
General Drupal presentation in Dutch
 
Hybrid Cloud training on Amazon Azure VMware
Hybrid Cloud training on Amazon Azure VMwareHybrid Cloud training on Amazon Azure VMware
Hybrid Cloud training on Amazon Azure VMware
 
Weolcan Hybrid Cloud Training
Weolcan Hybrid Cloud TrainingWeolcan Hybrid Cloud Training
Weolcan Hybrid Cloud Training
 
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
 
Drupal7 Theming
Drupal7 ThemingDrupal7 Theming
Drupal7 Theming
 
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
 
Drupal7 Development
Drupal7 DevelopmentDrupal7 Development
Drupal7 Development
 
Moodle voor docenten - handouts
Moodle voor docenten - handoutsMoodle voor docenten - handouts
Moodle voor docenten - handouts
 
Introductie Drupal development
Introductie Drupal developmentIntroductie Drupal development
Introductie Drupal development
 
Drupal Cursus Hans Rossel
Drupal Cursus Hans RosselDrupal Cursus Hans Rossel
Drupal Cursus Hans Rossel
 
Drupal opleiding
Drupal opleidingDrupal opleiding
Drupal opleiding
 
Kiezen van een open source content management systeem drie uitgangspunten e...
Kiezen van een open source content management systeem   drie uitgangspunten e...Kiezen van een open source content management systeem   drie uitgangspunten e...
Kiezen van een open source content management systeem drie uitgangspunten e...
 
RealHosting Seminar 2012 : Arjan burger CMS systemen
RealHosting Seminar 2012 : Arjan burger   CMS systemenRealHosting Seminar 2012 : Arjan burger   CMS systemen
RealHosting Seminar 2012 : Arjan burger CMS systemen
 
Lucius Websystems Drupal Startersdag
Lucius Websystems Drupal StartersdagLucius Websystems Drupal Startersdag
Lucius Websystems Drupal Startersdag
 

Cevora opleiding drupal 7.x slides februari 2012

  • 1. www.slideshare.net/davidhosse Cevora opleiding Drupal 7.x David Hosse david.hosse@ehb.be @davidhosse www.cevora.be | www.ehb.be | www.drupal.org Februari 2012
  • 2. Cevora Opnemen van aanwezigheden + uitdelen van lesmateriaal (syllabus, bijlagen, …) Informatiefiche in syllabus Introductiefilm: http://www.cevora.be/nl/bedrijven/ons-beter-leren-kennen/wie-zijn-wij/ Op het einde van de opleiding ontvangt iedere deelnemer een getuigschrift (80% aanwezigheid vereist!) GSM = op stil of volledig uitgeschakeld. Indien dringend telefoontje  ga in stilte naar buiten. Opleidingsdagen: 13/02/2012, 20/02/2012, 27/02/2012 telkens van 9u tot 16u30. Pauzemomenten: Voormiddag: +/- 10u45-11u. Middag: 12u30 – 13u. Namiddag: +/- 14u45-15u. Plaats naamkaartje Cevora opleiding Drupal 7.x - David Hosse 2 Februari 2012
  • 3. Overzicht Inleiding Installatie Een eerste kennismaking met Drupal 7.x Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 3 Februari 2012
  • 4. Overzicht Inleiding Installatie Een eerste kennismaking met Drupal 7.x Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 4 Februari 2012
  • 5. Inleiding 1. Content Management Systems 2. Drupal Cevora opleiding Drupal 7.x - David Hosse 5 Februari 2012
  • 6. Inleiding 1. Content Management Systems (1) Drupal, Wordpress, Joomla, … Definitie (Wikipedia): “Een software toepassing, meestal een web-applicatie, die het mogelijk maakt dat mensen eenvoudig, zonder al te veel technische kennis, documenten en gegevens op internet kunnen publiceren.” CMS = opvolger statische websites (HTML, CSS, Javascript) Aanpassen van statische websites vergt kennis van HTML, CSS en Javascript.  CMS genereert zelf de nodige HTML-, CSS- en Javascript-code via een gebruiksvriendelijke interface om inhoud aan te passen. Cevora opleiding Drupal 7.x - David Hosse 6 Februari 2012
  • 7. Inleiding 1. Content Management Systems (2) Drupal gaat nog stapje verder: = Content Management Framework CMS geeft inhoud in bepaalde vorm weer: vb. blogging. Met een specifieke blog CMS kan je geen kalender/agenda systeem opzetten. CMF is flexibeler en kan gebruikt worden om CMS’en op te bouwen. vb. opzetten van blogging systeem en dit uitbreiden met kalender/agenda functionaliteit. CMS eenvoudiger in gebruik dan CMF Cevora opleiding Drupal 7.x - David Hosse 7 Februari 2012
  • 8. Inleiding 1. Content Management Systems (3) Verschil CMS en CMF aan de hand van soorten gebruikers: Content lezers: Surfers die kennis hebben van links. Content schrijvers: Gebruikers die kennis moeten hebben om het CMS te gebruiken om nieuwe content toe te voegen en bestaande content te wijzigen of te verwijderen. Site beheerders: Moeten kennis hebben om:  andere gebruikers toegang te geven tot de website.  dagdagelijkse problemen op te lossen.  backups te nemen en data te restoren.  voorgedefinieerde functionaliteit toe te voegen (cfr. Drupal modules) Cevora opleiding Drupal 7.x - David Hosse 8 Februari 2012
  • 9. Inleiding 1. Content Management Systems (4) Verschil CMS en CMF aan de hand van soorten gebruikers: Site ontwikkelaars:  Programmeerervaring voor deze gebruikers is noodzakelijk!  Goede kennis van HTML, CSS, Javascript.  Kennis om met een CMF een CMS op te zetten en eventueel functionaliteit toe te voegen. Deze opleiding concentreert zich vooral op gebruikerstypes 2 en 3, nl. “Content schrijvers” en “Site beheerders”. Cevora opleiding Drupal 7.x - David Hosse 9 Februari 2012
  • 10. Inleiding 2. Drupal (1) Ontwikkeld door Dries Buytaert (° 19 november 1978 te Wilrijk – Stichter/eigenaar Acquia), versie 1.0 uitgebracht op 15 januari 2001. Oorspronkelijk een news site voor beperkt aantal personen (Universitaire Instelling Antwerpen). Typfout door Dries bij het controleren van de domeinnaam dorp.org  drop.org (versie van website in 2000). Software van deze website werd open source en ter beschikking gesteld van anderen. De naam werd vertaald naar het Engelse woord voor “Druppel”  Drupal (www.drupal.org). Drupal is gebaseerd op PHP en MySQL (= populaire combinatie voor webontwikkeling). Cevora opleiding Drupal 7.x - David Hosse 10 Februari 2012
  • 11. Inleiding 2. Drupal (2) Drupal vooral populair omwille van:  modulaire opbouw  ontwikkelaars van modules kunnen via hooksysteem ingrijpen in de verwerking van een pagina.  1000den modules beschikbaar voor allerhande doeleinden. Huidige versies:  Drupal 6.x: 6.24  Drupal 7.x: 7.12 Versie in ontwikkeling: Drupal 8 In deze opleiding: Drupal 7.x met verwijzingen naar Drupal 6.x (veel websites gebruiken deze versie nog). Cevora opleiding Drupal 7.x - David Hosse 11 Februari 2012
  • 12. Inleiding 2. Drupal (3) Enkele bekende websites gemaakt met Drupal: www.telenet.be www.ubuntu.com www.nasa.gov www.whitehouse.gov www.erasmushogeschool.be Nog meer voorbeelden te bekijken via www.drupalshowcase.com Cevora opleiding Drupal 7.x - David Hosse 12 Februari 2012
  • 13. Overzicht Inleiding Installatie Een eerste kennismaking met Drupal 7.x Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 13 Februari 2012
  • 14. Installatie 1. Inleiding 2. Installatie en configuratie van XAMPP 3. Installatie en configuratie van WampServer 4. Installatie van Drupal 6.x 5. Installatie van Drupal 7.x Cevora opleiding Drupal 7.x - David Hosse 14 Februari 2012
  • 15. Installatie 1. Inleiding Drupal heeft 2 andere applicaties nodig:  een webserver (met PHP ondersteuning): Apache (Linux & Windows) of IIS (Windows).  een databank: MySQL (bekendste en meest gebruikt), PostgreSQL, Oracle, MS SQL Server, MariaDB of SQLLite (Drupal 6.x enkel MySQL en PostgreSQL). Online: webhost (domeinnaam + webruimte met PHP en databank ondersteuning) of eigen serverinfrastructuur. Lokaal: XAMPP(Lite) (gebruikt in deze cursus) of WampServer (éénvoudiger qua installatie, configuratie en gebruik) te installeren. Minstens PHP 4.3.5 (Drupal 6.x), liefst één van de meest recente versies van PHP  PHP 5.2.x of hoger (Drupal 6.x en minimaal voor Drupal 7.x). Cevora opleiding Drupal 7.x - David Hosse 15 Februari 2012
  • 16. Installatie 2. Installatie en configuratie van XAMPP Zie cursus hoofdstuk 2.2 p. 8 t.e.m. 12 Ter info: X = Platformonafhankelijk: kan zowel onder Windows, Linux als Mac OS X geïnstalleerd en gebruikt worden A = Apache M = MySQL P = PHP P = Perl Cevora opleiding Drupal 7.x - David Hosse 16 Februari 2012
  • 17. Installatie 3. Installatie en configuratie van WampServer Zie bijlage “Installatie en configuratie van WampServer” Ter info: W = Windows A = Apache M = MySQL P = PHP Cevora opleiding Drupal 7.x - David Hosse 17 Februari 2012
  • 18. Installatie 4. Installatie van Drupal 6.x Zie cursus hoofdstuk 2.3 p. 13 t.e.m. 16 bovenaan. Download Drupal 6.x via www.drupal.org Opmerkingen: Het definiëren van een alias om je Drupal-website bereikbaar te maken, heeft enkel betrekking wanneer XAMPP(Lite) gebruikt wordt. Bij WampServer dien je enkel een subfolder aan te maken binnen de “www”-folder van de WampServer-installatie. Vb. C:wampwww<naam van subfolder> (Windows explorer)  http://localhost/<naam van subfolder> (Browser) Cevora opleiding Drupal 7.x - David Hosse 18 Februari 2012
  • 19. Installatie 5. Installatie van Drupal 7.x Zie cursus hoofdstuk 2.4 p. 16 t.e.m. 19. Download Drupal 7.x via www.drupal.org Opmerkingen (idem als bij Drupal 6.x): Het definiëren van een alias om je Drupal-website bereikbaar te maken, heeft enkel betrekking wanneer XAMPP(Lite) gebruikt wordt. Bij WampServer dien je enkel een subfolder aan te maken binnen de “www”-folder van de WampServer-installatie. Vb. C:wampwww<naam van subfolder> (Windows explorer)  http://localhost/<naam van subfolder> (Browser) Cevora opleiding Drupal 7.x - David Hosse 19 Februari 2012
  • 20. Overzicht Inleiding Installatie Een eerste kennismaking met Drupal 7.x Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 20 Februari 2012
  • 21. Een eerste kennismaking met Drupal 7.x 1. De structuur van een pagina 2. Een basic page 3. Een gebruiker maken 4. Roles en gebruikersrechten 5. Module: Forum 6. Blocks 7. Menu’s Cevora opleiding Drupal 7.x - David Hosse 21 Februari 2012
  • 22. Een eerste kennismaking met Drupal 7.x 1. De structuur van een pagina (1) Na installatie, bij bezoek aan website: Automatisch ingelogd als administrator (User 1 – zie later). Deze gebruiker krijgt standaard het management menu te zien (in Drupal 6.x nog te installeren via de module admin menu). Onder het management menu staat het short cut menu. Standaard 2 menu-items aanwezig: “Add content” en “Find content” Via “Edit shortcuts” (in cursus staat “Edit content” = te verbeteren) kunnen er shorcuts toegevoegd of gewijzigd worden. Cevora opleiding Drupal 7.x - David Hosse 22 Februari 2012
  • 23. Een eerste kennismaking met Drupal 7.x 1. De structuur van een pagina (2) Na installatie, bij bezoek aan website: Onder het short cut menu staat het user menu (My Account, Logout). Het main menu bevat standaard 1 item: “Home”. Wordt meestal gebruikt om te navigeren door de grote onderdelen van de website. Laatste menu: het navigation menu: Bevat het item “Add content”. Als bezoeker (wanneer je niet ingelogd bent) zie je enkel het main menu en het navigation menu. Cevora opleiding Drupal 7.x - David Hosse 23 Februari 2012
  • 24. Een eerste kennismaking met Drupal 7.x 2. Een basic page (1) Na installatie van Drupal 7.x zijn er 2 soorten content beschikbaar: Article: Geschikt voor het posten van nieuwsartikelen, -berichten. Standaard is de instelling om commentaar te plaatsen door gebruikers, die hiervoor permissies hebben, geactiveerd. Standaard op de front page weergegeven. In Drupal 6.x heette dit een Story. Cevora opleiding Drupal 7.x - David Hosse 24 Februari 2012
  • 25. Een eerste kennismaking met Drupal 7.x 2. Een basic page (2) Basic page: Geschikt voor statische content zoals bv. een “About us”- pagina. Geen tags voorzien. Standaard niet weergegeven op de front page. Standaard is het ook niet toegelaten commentaar te geven op een basic page. Aanmaken van een Basic page kan via “Add content” in het short cut menu. De velden “Title” en “Body” moeten ingevuld worden. Cevora opleiding Drupal 7.x - David Hosse 25 Februari 2012
  • 26. Een eerste kennismaking met Drupal 7.x 2. Een basic page (3) Basic page: Bij “Menu settings” kan een menu item worden aangemaakt zodat de pagina achteraf vlot bereikbaar is. Het menu-item kan als hoofdmenu in het Main Menu of als een submenu in een bestaand hoofdmenu toegevoegd worden. Via “Weight” kan het gewicht van een menu-item aangegeven worden: hoe lager het gewicht, hoe hoger in het menu. Cevora opleiding Drupal 7.x - David Hosse 26 Februari 2012
  • 27. Een eerste kennismaking met Drupal 7.x 2. Een basic page (4) Basic page: Verder kunnen via de tabs aan de linkerzijde nog volgende opties in gesteld worden: Revision information: we kunnen verschillende versies van een basic page bijhouden. Dit noemt men revisies. (Dit principe geldt ook voor alle andere content (=nodes) in Drupal). URL path settings: we kunnen een alias definiëren voor de url waarmee de pagina bereikbaar zal zijn. De nieuwe node krijgt standaard /node/<nodenummer> als url. Indien het de allereerste node betreft is dit /node/1. Via een alias kunnen wie hier bv. /over-ons van maken. Comment settings: commentaar toegelaten of niet. Cevora opleiding Drupal 7.x - David Hosse 27 Februari 2012
  • 28. Een eerste kennismaking met Drupal 7.x 2. Een basic page (5) Basic page: Authoring information: auteursinformatie, geeft aan wie de node gemaakte heeft en wanneer die is toegevoegd of gewijzigd.  Publishing options: de node gepubliceerd of niet? Weergegeven op de front page of niet? Sticky of niet? Indien Sticky dan blijft de node altijd bovenaan de lijst staan. Cevora opleiding Drupal 7.x - David Hosse 28 Februari 2012
  • 29. Een eerste kennismaking met Drupal 7.x 3. Een gebruiker maken Zie cursus hoofdstuk 3.3 p. 22 – 24 bovenaan. Na installatie van Drupal 7.x, slechts 1 gebruiker: Administrator = user 1 = beheerder van de website die over alle rechten beschikt. Ook nog: Anonymous = user 0 = bezoeker = gebruiker die niet ingelogd is = anonieme gebruiker, zeer beperkt in rechten Cevora opleiding Drupal 7.x - David Hosse 29 Februari 2012
  • 30. Een eerste kennismaking met Drupal 7.x 4. Roles en gebruikersrechten Zie cursus hoofdstuk 3.4 p. 24 t.e.m. 25 bovenaan Roles = gebruikersgroepen Cevora opleiding Drupal 7.x - David Hosse 30 Februari 2012
  • 31. Een eerste kennismaking met Drupal 7.x 5. Modules: Forum (1) De grote kracht van Drupal: Modulaire uitbreidbaarheid. Drupal heeft standaard een aantal (systeem)modules. Niet allemaal geactiveerd bij installatie. Bijkomende modules te downloaden via www.drupal.org/project/modules. Eerste kennismaking: reeds beschikbare of bijkomende, ingebouwde (systeem)module(s) activeren voor gebruik. Via onderdeel “Modules” in het management menu. Cevora opleiding Drupal 7.x - David Hosse 31 Februari 2012
  • 32. Een eerste kennismaking met Drupal 7.x 5. Modules: Forum (2) In de modulelijst zie je per module ook welke andere modules nodig zijn voor de betreffende module (required) en voor welke andere modules de betreffende module nodig is (required by). In Drupal 7.x kan je ook automatisch modules installeren, mogelijks wordt hier naar een ftp-account gevraagd. Drupal 7.x heeft standaard een aantal (systeem)modules die altijd actief zijn na installatie, deze maken deel uit van de Drupal - Core: Field: nieuw in Drupal 7.x – API (Application Programmer Interface) om extra informatie toe te voegen aan nodes , gebruikers, ... Field SQL Storage: ook nieuw in Drupal 7.x – Field informatie opslaan in een SQL databank. Cevora opleiding Drupal 7.x - David Hosse 32 Februari 2012
  • 33. Een eerste kennismaking met Drupal 7.x 5. Modules: Forum (3) Nodes: contentbeheer - Bijna alle content in Drupal is een node. Een node kan alle vormen (content types) aannemen: bv. een basic page, een article, een evenement, een forum(bericht), enz … Filter: filter voor gebruikersinvoer bv. Full HTML, Filtered HTML of Plain text. System: algemene site configuratie voor beheerders. Text: tekstvelden definiëren. User: gebruikersbeheer en loginsysteem. Cevora opleiding Drupal 7.x - David Hosse 33 Februari 2012
  • 34. Een eerste kennismaking met Drupal 7.x 5. Modules: Forum (4) Werken met velden is nieuw in Drupal 7.x. In Drupal 6.x moest hiervoor bijkomend de CCK (Content Construction Kit) module geïnstalleerd worden. Voor de verdere kennismaking in dit deel van de cursus: forum module activeren: zie cursus hoofdstuk 3.5 p. 25 t.e.m. 28 bovenaan. Cevora opleiding Drupal 7.x - David Hosse 34 Februari 2012
  • 35. Een eerste kennismaking met Drupal 7.x 6. Blocks (1) Modules definiëren soms ook blocks. Blocks zijn aparte panelen die op een Drupal pagina gezet kunnen worden binnen een specifieke region. vb. forum module heeft 2 blocks: “Active forum topics” en “New forum topics” Een Drupal pagina is verdeeld in verschillende regions of gebieden waarin blokken kunnen geplaatst worden. Na de installatie staat de inhoud standaard in de region “Content”. Cevora opleiding Drupal 7.x - David Hosse 35 Februari 2012
  • 36. Een eerste kennismaking met Drupal 7.x 6. Blocks (2) De region “First sidebar” (linkerkant van de website) bevat standaard de blokken “Search Form”, “Navigation” en “User Login”. De administrator kan zelf ook blokken toevoegen, deze bestaan op zichzelf los van de modules en kunnen eender welke content hebben. Zie cursus hoofdstuk 3.6 p. 28 t.e.m. 30 bovenaan. Cevora opleiding Drupal 7.x - David Hosse 36 Februari 2012
  • 37. Een eerste kennismaking met Drupal 7.x 6. Blocks (3) Via het configure menu van elke block kunnen we een titel die de standaard titel (bepaald door de implentatie in de module) overschrijft ingeven. Om geen titel voor een bepaald block weer te geven vul je <none> in dit veld in. Cevora opleiding Drupal 7.x - David Hosse 37 Februari 2012
  • 38. Een eerste kennismaking met Drupal 7.x 7. Menu’s Naast blocks installeert de forum module ook enkele menu-items. Standaard terug te vinden in het navigation menu. Gemakkelijk bepaalde functionaliteit of onderdelen van de website oproepen. Via het onderdeel “Structure” – “Menus” kunnen we menu’s beheren, standaard aanwezig:  ”Main menu”, “Management menu”, “Navigation menu”, “User menu”. Voor elk menu: settings wijzigen, de lijst met items opvragen en deze wijzigen - zelfs items onzichtbaar maken (≠ verwijderen). Nieuwe menu’s kunnen toegevoegd worden. Zie cursus hoofdstuk 3.7 p. 30 t.e.m. 31. Cevora opleiding Drupal 7.x - David Hosse 38 Februari 2012
  • 39. Overzicht Inleiding Installatie Een eerste kennismaking Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 39 Februari 2012
  • 40. Architectuur 1. Overzicht 2. Entities en velden 3. Nodes 4. Taxonomy 5. Modules 6. Theming Cevora opleiding Drupal 7.x - David Hosse 40 Februari 2012
  • 41. Architectuur 1. Overzicht (1) xHTML + CSS + JavaScript Drupal theme system Drupal add-on modules (views, …) Drupal Drupal core modules (block, filter, node, system, user) Drupal core subsystems PHP Databank (MySQL, PostgreSQL, …) Web server (Apache, IIS, …) Operating System (Windows, Linux, Mac OS, …) Cevora opleiding Drupal 7.x - David Hosse 41 Februari 2012
  • 42. Architectuur 1. Overzicht (2) PHP: Populairste programmeertaal voor webapplicaties. PHP-versie bepaalt mee de mogelijkheden in Drupal. Web server: Nodig om PHP-applicaties aan te spreken via HTTP. Apache (meest gebruikt) of Internet Information Server (clean urls best met IIS 7.0 of hoger). Clean urls of schone url’s: Vb.: http://localhost/drupal?q=contact http://localhost/drupal/contact Cevora opleiding Drupal 7.x - David Hosse 42 Februari 2012
  • 43. Architectuur 1. Overzicht (3) Databank: De content of informatie beheerd met Drupal wordt hierin bewaard. Drupal 6.x: enkel MySQL of Postgresql. Vanaf Drupal 7.x: ook MariaDB, SQLLite, Oracle en MS SQL Server. xHTML + CSS + JavaScript = Output van Drupal CSS of Cascading Style Sheets  opmaak. JavaScript  dynamisch maken van websites. vb: het uitklappen van menu’s. Cevora opleiding Drupal 7.x - David Hosse 43 Februari 2012
  • 44. Architectuur 1. Overzicht (4) Drupal:  Modulair opgebouwd.  Bestaat uit verschillende onderdelen.  De basis = de Core subsystems = de “kernel” , verantwoordelijk voor: Sessiebeheer van gebruikers Authenticatie Autorisatie of security filtering Rendering van templates  De Core modules maken gebruik van de Core subsystems Deze staan in de modulelijst:  http://localhost/drupal/admin/build/modules Zijn verplicht en altijd actief, kunnen niet worden uitgeschakeld. Cevora opleiding Drupal 7.x - David Hosse 44 Februari 2012
  • 45. Architectuur 1. Overzicht (5) De 7 Core modules: Field: nieuw in Drupal 7.x – API (Application Programmer Interface) om extra informatie toe te voegen aan nodes , gebruikers, ... Field SQL Storage: ook nieuw in Drupal 7.x – Field informatie opslaan in een SQL databank. Filter: filter voor gebruikersinvoer bv. Full HTML, Filtered HTML of Plain text. Ongewenste content zoals gevaarlijke JavaScript- of PHP-code wordt weggefilterd. Cevora opleiding Drupal 7.x - David Hosse 45 Februari 2012
  • 46. Architectuur 1. Overzicht (6) Nodes: Bijna alle content in Drupal is een node. Een node kan alle vormen (content types) aannemen: bv. een basic page, een article, enz … Elke node heeft een uniek nummer en is bereikbaar via de url node/<nodenummer> (http://localhost/drupal/node/<nodenummer>). Een node is een speciaal soort entity (vanaf Drupal 7.x is alle basis content = entity). System: algemene siteconfiguratie voor beheerders. Text: tekstvelden definiëren. User: gebruikersbeheer en loginsysteem. Cevora opleiding Drupal 7.x - David Hosse 46 Februari 2012
  • 47. Architectuur 1. Overzicht (7) 7 Core modules ≠ interessante website. Modules zelf schrijven. Optionele modules (≠ 7 Core modules en standaard niet geactiveerd) in Drupal-installatie activeren voor gebruik. Zie lijst met optionele modules in cursus hoofdstuk 4.1 p.33 t.e.m. p.35 bovenaan. Extra modules (van derden) installeren. Cevora opleiding Drupal 7.x - David Hosse 47 Februari 2012
  • 48. Architectuur 1. Overzicht (8) Theme-system: “Theming” = de beschrijving van het proces waarmee inhoud wordt getoond volgens een bepaalde opmaak. De opmaak bepaalt: bepaalde structuur die een pagina krijgt. welke regions er aanwezig zijn. welke kleuren er worden gebruikt. Cevora opleiding Drupal 7.x - David Hosse 48 Februari 2012
  • 49. Architectuur 2. Entities en velden (1) Een entity = nieuw begrip in Drupal 7.x. Een goede definitie is mogelijk te geven, een werkbare definitie zou kunnen zijn: “De dingen die we in Drupal willen gebruiken.” Alle content in Drupal 7.x = entities. Users, commentaar, nodes, … Elke entity heeft een uniek id of nummer. Optioneel kunnen entities velden bevatten. Velden zijn eigenschappen die aan een entity kunnen toegekend worden. Hieraan kunnen ook widgets gekoppeld zijn vb. een kalender waarmee je een datum kan aanduiden voor een datumveld. Cevora opleiding Drupal 7.x - David Hosse 49 Februari 2012
  • 50. Architectuur 2. Entities en velden (2) Entities zijn een manier om alle content in Drupal op een gemeenschappelijke manier te behandelen. Vóór Drupal 7.x had je aan de ene kant nodes en aan de andere kant alle andere content (user, commentaar, …). Cevora opleiding Drupal 7.x - David Hosse 50 Februari 2012
  • 51. Architectuur 3. Nodes (1) Meeste content in Drupal wordt weergegeven onder de vorm van een node. 2 grote uitzonderingen: commentaar en user-informatie. Elke node bevat de volgende onderdelen:  Een node id: uniek nummer.  Een version id: wanneer revisions voor nodes actief zijn kunnen we verschillende versies per node bijhouden. Bij elke wijziging van de node wordt een nieuwe versie aangemaakt. Iedere versie krijgt een uniek nummer of version id. Dit laat toe om terug te keren naar een vorige versie.  Type: een node type (of content type) laat toe om nodes te definiëren die meer informatie kunnen bevatten dan de standaard nodes (zie later: CCK-module ). In de core modules zijn 2 node of content types gedefinieerd: page en story. Cevora opleiding Drupal 7.x - David Hosse 51 Februari 2012
  • 52. Architectuur 3. Nodes (2)  Taal: de taal waarin de node is gemaakt.  Titel: de titel van de node.  UserID: de id van de gebruiker die eigenaar is van de node. Standaard is dit de gebruiker die de node aangemaakt heeft, is echter aanpasbaar.  Status: geeft aan of een node al dan niet gepubliceerd is. Het is mogelijk om gewone gebruikers een draft van een node te laten opslaan, welke door de administrator goedgekeurd kan worden en vervolgens gepubliceerd wordt.  Created & changed: tijdstip waarop de node gecreëerd werd en het laatst gewijzigd is.  Comment: geeft aan of commentaar toegelaten is. Voor page content is dit niet het geval, voor story content standaard wel (is beheerbaar via het beheer van content types). Cevora opleiding Drupal 7.x - David Hosse 52 Februari 2012
  • 53. Architectuur 3. Nodes (3)  Promote: geeft aan of de node op de startpagina van de Drupal installatie moet getoond worden. Voor een page is dit weer niet het geval, voor een story wel (ook weer beheerbaar). Let wel de startpagina betreft hier de standaard startpagina van Drupal, niet een node dat als startpagina ingesteld is door de administrator.  Sticky: geeft aan of de node bovenaan de lijst met nodes weergegeven moet worden. Vb. je kan een story met een belangrijk onderwerp dat voor langere periode beschikbaar moet blijven als sticky instellen waardoor deze steeds bovenaan de lijst blijft staan terwijl de gewone nodes onderin mekaar blijven opvolgen volgens een bepaalde sorteer optie.  Vanaf Drupal 7.x is de body optioneel Cevora opleiding Drupal 7.x - David Hosse 53 Februari 2012
  • 54. Architectuur 4. Taxonomy (1) Taxonomie = het maken en definiëren van categorieën en het onderbrengen van informatie in deze categorieën. Het definiëren van categorieën gebeurt aan de hand van het maken van sleutelwoorden of keywords. Bij het aanmaken van content kan een gebruiker deze content in een bepaalde categorie onderbrengen. Content kan daarnaast ook per categorie opgevraagd worden. Forum module (zie hoofdstuk 3) maakt gebruik van het taxonomie principe. Het forum wordt aan de hand van keywords (categorieën) opgebouwd en posts kunnen in één of meerdere categorieën gepubliceerd worden. Cevora opleiding Drupal 7.x - David Hosse 54 Februari 2012
  • 55. Architectuur 4. Taxonomy (2) Alle berichten met hetzelfde keyword behoren tot hetzelfde forum. Het oproepen van een bepaald forum = opvragen van alle berichten met hetzelfde keyword. Een aantal begrippen:  Term: een keyword dat we kunnen toekennen aan een node.  Synoniem: een ander woord voor een bepaalde term.  Vocabulary: een verzameling van termen of keywords. Vb. een lijst met landen. Een vocabulary kan aan één of meerdere content types gekoppeld worden. Een vocabulary kan verplicht gemaakt worden. De gebruiker is dan verplicht een term aan te duiden bij het aanmaken van een nieuwe node. Cevora opleiding Drupal 7.x - David Hosse 55 Februari 2012
  • 56. Architectuur 4. Taxonomy (3) Een vocabulary kan ook ”controlled” zijn: De reeks termen is van vooraf bepaald, de gebruiker moet kiezen uit een bepaalde lijst. Drupal laat ook “tagging” toe waarbij de gebruiker zelf termen kan definiëren. Vocabularies kunnen een hiërarchie vormen. Men kan bij het ingeven van een term een parent term aanduiden. vb. voor een vocabulary van landen kan een parent term continent zijn. Voor elke term kan je ook een “related” term (≠ synoniemen) aanduiden. Cevora opleiding Drupal 7.x - David Hosse 56 Februari 2012
  • 57. Architectuur 4. Taxonomy (4) Aan elke vocabulary kan ook een gewicht toegekend worden = een getal tussen -10 en +10. Dit principe komt ook op andere plaatsen voor. Hoe lager het gewicht, hoe hoger in de lijst. Verschillende types van taxonomoieën: 1. Flat: staan op hetzelfde niveau, er is geen hiërarchie volgens het parent – child principe. 2. Hiërarchical: termen kunnen 1 parent hebben. 3. Multiple hiërarchical: termen kunnen meerdere parents hebben. Cevora opleiding Drupal 7.x - David Hosse 57 Februari 2012
  • 58. Architectuur 4. Taxonomy (5) Flat C C++ Cobol Cevora opleiding Drupal 7.x - David Hosse 58 Februari 2012
  • 59. Architectuur 4. Taxonomy (5) Hiërarchical Object Procedureel georiënteerd C Cobol C++ Java Cevora opleiding Drupal 7.x - David Hosse 59 Februari 2012
  • 60. Architectuur 4. Taxonomy (6) Multiple hiërarchical Object Procedureel georiënteerd C Cobol PHP C++ Java Cevora opleiding Drupal 7.x - David Hosse 60 Februari 2012
  • 61. Architectuur 5. Modules (1) Voegen extra functionaliteit toe aan Drupal. Worden ontwikkeld in PHP. Worden aan het Drupal framework gekoppeld. Downloaden of zelf ontwikkelen. In beide gevallen: minstens een folder met een .info en een .module bestand. Het .info bestand bevat informatie over de module: naam, beschrijving, versienummer, afhankelijkheid, package, core, … Cevora opleiding Drupal 7.x - David Hosse 61 Februari 2012
  • 62. Architectuur 5. Modules (2) vb. van de inhoud van het .info bestand van de forum module, gebruikt om in Management menu-Modules de module te tonen: name = Forum description = Provides discussion forums. dependencies[] = taxonomy dependencies[] = comment package = Core version = Version core = 7.x files [] = forum.test configure = admin/structure/forum stylesheets[all][] = forum.css Cevora opleiding Drupal 7.x - David Hosse 62 Februari 2012
  • 63. Architectuur 5. Modules (3) In de modulelijst zal de forum module onder het package “Core” weergegeven worden. De forum module is afhankelijk van de modules taxonomy en comment. De forum module is ontwikkeld voor Drupal 7.x = core 7.x Het .module bestand bevat de PHP code van de module. Deze code bestaat uit “hook”-implementaties en hulpfuncties. Cevora opleiding Drupal 7.x - David Hosse 63 Februari 2012
  • 64. Architectuur 4. Modules (4) De module koppelt zich aan de hand van deze “hook”- implementaties aan Drupal: Bij iedere request van een gebruiker voert Drupal een aantal taken uit: Opbouw van het menu Hiervoor roept Drupal de modulenaam_menu( ) functie van iedere module op (indien deze bestaat). een module ontwikkelaar kan op deze manier eigen menu- items definiëren. deze functie noemt men de hook (hook_menu). Cevora opleiding Drupal 7.x - David Hosse 64 Februari 2012
  • 65. Architectuur 5. Modules (5) Vb. van de “hook”-functie hook_menu: /** * Implements hook_menu(). */ function forum_menu() { $items['forum'] = array( 'title' => 'Forums', 'page callback' => 'forum_page', 'access arguments' => array('access content'), 'file' => 'forum.pages.inc', ); ... return $items; } Cevora opleiding Drupal 7.x - David Hosse 65 Februari 2012
  • 66. Architectuur 5. Modules (6) Voor sommige modules ook .install bestand. de code die hierin staat wordt uitgevoerd bij het activeren van de module. wordt doorgaans gebruikt om extra tabellen en data in de database te installeren. er kan ook een uninstall functie voorzien zijn welke uitgevoerd wordt bij het desactiveren of desinstalleren van de module. Cevora opleiding Drupal 7.x - David Hosse 66 Februari 2012
  • 67. Architectuur 6. Theming (1) = het proces waarbij data omgezet wordt naar HTML, CSS en JavaScript. Dit aan de hand van een “theme” of thema. Een thema = technisch gezien een reeks van template bestanden, tekeningen, afbeeldingen en CSS-bestanden. Thema bepaalt de indeling van de regions en de look-and- feel van de pagina. Standaard bevat Drupal een aantal Core-thema’s. Bijkomende thema’s kunnen gedownload worden vb. via www.drupal.org/project/themes. Zelf thema’s ontwikkelen eveneens mogelijk. Cevora opleiding Drupal 7.x - David Hosse 67 Februari 2012
  • 68. Architectuur 6. Theming (2) Een theme kan een pagina volledig opbouwen via PHP-code. In Drupal 7.x is er geen theme meer aanwezig die op deze manier is opgebouwd. In Drupal 6.x bestond het Chameleon theme. Vb. van stukje code: function chameleon_page($content, $show_blocks = TRUE, $show_messages = TRUE) { $language = $GLOBALS['language']->language; $direction = $GLOBALS['language']->direction ? 'rtl' : 'ltr'; if (theme_get_setting('toggle_favicon')) { drupal_set_html_head('<link rel="shortcut icon" href="'. check_url(theme_get_setting('favicon')) .'" type="image/x-icon" />'); } $title = drupal_get_title(); // Get blocks before so that they can alter the header (JavaScript, Cevora opleiding Drupal 7.x - David Hosse 68 Februari 2012
  • 69. Architectuur 6. Theming (3) $blocks_left = theme_blocks('left'); $blocks_right = theme_blocks('right'); $output = "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">n"; $output .= "<html xmlns="http://www.w3.org/1999/xhtml" lang="$language" xml:lang="$language" dir="$direction">n"; $output .= "<head>n"; $output .= drupal_get_html_head(); $output .= " <title>". ($title ? strip_tags($title) ." | ". variable_get("site_name", "Drupal") : variable_get("site_name", "Drupal") ." | ". variable_get("site_slogan", "")) ."</title>n"; $output .= drupal_get_css(); $output .= drupal_get_js(); $output .= "</head>"; $output .= "<body>n"; $output .= " <div id="header">"; ... return $output; } Cevora opleiding Drupal 7.x - David Hosse 69 Februari 2012
  • 70. Architectuur 6. Theming (4) Theme dat pagina volledig opbouwt via PHP is zeer effectief. Opmaak zeer moeilijk aan te passen indien geen kennis van PHP. Meeste themes maken gebruik van templates en template engines. Template engine vertaalt een template bestand naar PHP/HTML- code. Standaard template engine in Drupal: PHPTemplate engine.  Terug te vinden in drupal/themes/engines/phptemplate Cevora opleiding Drupal 7.x - David Hosse 70 Februari 2012
  • 71. Architectuur 6. Theming (5) De hoofdtemplate van PHPTemplate is: in Drupal 7.x: html.tpl.php in Drupal 6.x: page.tpl.php In Drupal 7.x bestaat page.tpl.php ook maar omvat enkel het body gedeelte van de pagina, waarin volgende onderdelen beschreven worden: header footer linker en rechter sidebar content Voor blocks en nodes zijn er aparte templates. Cevora opleiding Drupal 7.x - David Hosse 71 Februari 2012
  • 72. Architectuur 6. Theming (6) De template html.tpl.php is terug te vinden onder modules/system en ziet er als volgt uit: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language- >language; ?>" version="XHTML+RDFa 1.0" dir="<?php print $language->dir; ? >"<?php print $rdf_namespaces; ?>> <head profile="<?php print $grddl_profile; ?>"> <?php print $head; ?> <title><?php print $head_title; ?></title> <?php print $styles; ?> <?php print $scripts; ?> </head> Cevora opleiding Drupal 7.x - David Hosse 72 Februari 2012
  • 73. Architectuur 6. Theming (7) <body class="<?php print $classes; ?>" <?php print $attributes;?>> <div id="skip-link"> <a href="#main-content" class="element-invisible element- focusable"><? php print t('Skip to main content'); ?></a> </div> <?php print $page_top; ?> <?php print $page; ?> <?php print $page_bottom; ?> </body> </html> Cevora opleiding Drupal 7.x - David Hosse 73 Februari 2012
  • 74. Architectuur 6. Theming (8) node.tpl.php block.tpl.php page.tpl.php Cevora opleiding Drupal 7.x - David Hosse 74 Februari 2012
  • 75. Overzicht Inleiding Installatie Een eerste kennismaking Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 75 Februari 2012
  • 76. Gebruikersbeheer 1. User module 2. Roles en permissions 3. User profiles Cevora opleiding Drupal 7.x - David Hosse 76 Februari 2012
  • 77. Gebruikersbeheer 1. User module (1) Bij installatie van Drupal wordt 1 gebruiker aangemaakt  user 1 = administrator = beheerder met alle rechten. Net zoals bij nodes heeft elke user een uniek user id en krijg je deze op gelijkaardige wijze in de URL te zien  vb. user/1. Elke gebruiker een unieke gebruikersnaam en uniek paswoord! Bij creatie ook nog een e-mailadres ingeven. Onder meer voor het contacteren van de gebruiker indien nodig. Volgende informatie kan ook interessant zijn: signature: de signature van de gebruiker bij bv. posts. status: geeft aan of de gebruiker actief of geblokkeerd is. picture: pad naar de picture van de gebruiker. Cevora opleiding Drupal 7.x - David Hosse 77 Februari 2012
  • 78. Gebruikersbeheer 1. User module (2) Aantal gebruikersinstellingen via Management menu-Settings Account settings (admin/config/people/accounts): User registration settings: hoe worden nieuwe gebruikers aangemaakt? Door de administrator: interessant als men alleen “bekenden” een account willen geven. Door de bezoekers die zich registreren en waarna ze automatisch geactiveerd worden. Aan te raden: require e-mail verification om te voorkomen dat via een programma, spam of virus zomaar gebruikeraccounts kunnen worden aangemaakt. De gebruiker zal pas geactiveerd worden na succesvole verificatie van zijn of haar e-mailadres. Cevora opleiding Drupal 7.x - David Hosse 78 Februari 2012
  • 79. Gebruikersbeheer 1. User module (3) Door de bezoekers die zich registreren en waarna de administrator deze registratie moet goedkeuren. Personalization: Hier kunnen we bepalen of een gebruiker een signature kan definiëren of een gebruikersfoto kan uploaden. E-mail settings: Hiermee kan men bepalen wanneer e-mails naar een gebruiker worden gestuurd: Eerste 3 mails hebben te maken met de registratie van een nieuwe gebruiker. De Password recovery email wordt verstuurd wanneer de gebruiker aangeeft dat hij of zij zijn of haar paswoord vergeten is. Cevora opleiding Drupal 7.x - David Hosse 79 Februari 2012
  • 80. Gebruikersbeheer 1. User module (4) De 3 laatste mails worden verstuurd wanneer de status van een gebruiker wijzigt: geactiveerd, geblokkeerd of verwijderd. In de e-mails kan men gebruik maken van variabelen, vb.: [user:name], A request to reset the password for your account has been made at [site:name]. You may now log in by clicking this link or copying and pasting it to your browser: [user:one-time-login-url] This link can only be used once to log in and will lead you to a page where you can set your password. It expires after one day and nothing will happen if it's not used. -- [site:name] team Cevora opleiding Drupal 7.x - David Hosse 80 Februari 2012
  • 81. Gebruikersbeheer 2. Roles and permissions (1) De toegang van Drupal-onderdelen wordt beheerd via rollen. Rol = type gebruiker = actor = (gebruikers)groep.  In sommige systemen spreekt men van “hoed” = “een bepaalde hoed dragen”. 1 gebruiker kan lid zijn van meerdere rollen. Standaard 2 rollen: “anonymous user” en “authenticated user”. Elke gebruiker behoort tot één van beide rollen. Niet aangemeld = anoniem. Aangemeld = authenticated users. Cevora opleiding Drupal 7.x - David Hosse 81 Februari 2012
  • 82. Gebruikersbeheer 2. Roles and permissions (2) Wanneer men tot meerdere rollen behoort, worden de permissies van alle rollen opgeteld. niet mogelijk om rechten af te nemen via deny rechten. belangrijk om aan de “authenticated users” rol enkel de rechten toe te kennen die voor alle gebruikers gelden. wil je bepaalde “authenticated users” toch nog andere rechten toekennen, maak dan een nieuwe rol aan voor deze gebruikers. Vanaf Drupal 7.x bestaat er nog een bijkomende role: “administrators”. Bij installatie van nieuwe modules krijgt deze role steeds alle rechten van die module. Cevora opleiding Drupal 7.x - David Hosse 82 Februari 2012
  • 83. Gebruikersbeheer 2. Roles and permissions (3) Indien we een andere rol als beheerdersrol willen instellen, kunnen we dit doen via Management menu- Settings  Account settings (admin/config/people/accounts). Permissies kunnen we instellen via Management menu-People  Tab “Permissions”. belangrijkste beheerpermissies staan bij de system module. Cevora opleiding Drupal 7.x - David Hosse 83 Februari 2012
  • 84. Gebruikersbeheer 3. User profiles In drupal 6.x was er een aparte module om extra informatievelden voor op het gebruikersprofiel te voorzien. Vanaf Drupal 7.x zijn users net zoals nodes “fieldable” entities (zie volgend hoofdstuk 6: Werken met velden). geen extra module meer nodig om extra informatie te definiëren. Zie toepassing in cursus hoofdstuk 5.3 pagina 45 t.e.m. 47. Cevora opleiding Drupal 7.x - David Hosse 84 Februari 2012
  • 85. Overzicht Inleiding Installatie Een eerste kennismaking Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 85 Februari 2012
  • 86. Werken met velden 1. Inleiding 2. Content types 3. Andere entities Cevora opleiding Drupal 7.x - David Hosse 86 Februari 2012
  • 87. Werken met velden 1. Inleiding (1) Extra velden definiëren voor gebruikersinformatie. Extra velden maken voor nodes. Mogelijkheid om extra velden te maken bestond ook al in Drupal 6.x via een extra te installeren module: Content Construction Kit of CCK. In Drupal 7.x maakt deze functionaliteit deel uit van de Drupal Core via de Field API en de Field SQL Storage modules. In Drupal 6.x konden we CCK niet standaard gebruiken om extra velden voor users te voorzien. Hiervoor moesten we nog een extra module “Profile” installeren. CCK-module kan enkel gebruikt worden voor nodes en users zijn geen nodes in Drupal. Cevora opleiding Drupal 7.x - David Hosse 87 Februari 2012
  • 88. Werken met velden 1. Inleiding (2) In Drupal 7.x zijn nodes, taxonomies, comments, users, … allemaal entities. Alle entities zijn “fieldable”: geen onderscheid meer in de verschillende content types voor het aanmaken/ toevoegen van extra velden. Fields of velden kunnen herbruikt worden. Verschillende veldtypes (tekstveld, numeriek veld, …) die elk bepaalde eigenschappen kunnen hebben: Vb: een tekstveld kan een maximale lengte van 4 karakters hebben. Fields kunnen we aan eenders welke entity toevoegen  Field instance. Cevora opleiding Drupal 7.x - David Hosse 88 Februari 2012
  • 89. Werken met velden 1. Inleiding (3) Een field instance kan ook bepaalde eigenschappen hebben. De eigenschappen van een field instance gelden enkel voor de combinatie van een field en een entity. Vb. voor een tekstveld: het label verplicht veld of niet help tekst breedte van het veld filter van toepassing of niet default waarde Cevora opleiding Drupal 7.x - David Hosse 89 Februari 2012
  • 90. Werken met velden 2. Content types Vbn.: article, basic page, event, forum post/entry, blog post/entry, … We kunnen ook zelf content types definiëren. zie toepassing voor het aanmaken van het content type “Cevora cursus” in de cursus hoofdstuk 6.2 pagina 48 t.e.m. 53 bovenaan. Cevora opleiding Drupal 7.x - David Hosse 90 Februari 2012
  • 91. Werken met velden 3. Andere entities Zoals reeds aangehaald is in Drupal 7.x nieuw dat we velden kunnen toevoegen aan niet-nodes. Zie toevoegen van een geboortedatum veld aan een user in hoofdstuk 5 Gebruikersbeheer. Zie toepassing voor het toevoegen van een bestand aan een gebruikersprofiel in cursus hoofdstuk 6.3 pagina 53 t.e.m. 56. Cevora opleiding Drupal 7.x - David Hosse 91 Februari 2012
  • 92. Overzicht Inleiding Installatie Een eerste kennismaking Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 92 Februari 2012
  • 93. Extra modules 1. Vooraf: opgelet 2. Views 3 3. CKEditor en IMCE modules installeren en configureren 4. Pathauto module 5. Panels 3 6. Installeren van updates en patches Cevora opleiding Drupal 7.x - David Hosse 93 Februari 2012
  • 94. Extra modules 1. Vooraf: opgelet Veel Drupal 7.x modules verkeren nog in Beta of Alpha stadium. Deze zijn niet aan te raden voor productiewebsites. Installeren en activeren van modules via Management menu- Modules (admin/modules). Installeren van een nieuwe module:  Installeren via een url.  Uploaden van .zip of .tar.gz bestand.  Deze 2 opties vragen mogelijks een ftp-account naar de Drupal- installatie om modules automatisch te installeren via ftp (niet van toepassing in deze opleiding). Cevora opleiding Drupal 7.x - David Hosse 94 Februari 2012
  • 95. Extra modules 2. Views 3 (1) Inleiding De Views module behoort niet tot de Drupal Core. Apart te installeren - http://drupal.org/project/views. Deze hangt af van de Chaos tools suite module die ook apart gedownload en geïnstalleerd moet worden. http://drupal.org/project/ctools 2 onderdelen van de Views module moeten geactiveerd worden: “Views” en “Views UI” (voor het aanmaken van views via de webinterface van Drupal. Cevora opleiding Drupal 7.x - David Hosse 95 Februari 2012
  • 96. Extra modules 2. Views 3 (2) Inleiding De views module wordt gebruikt om gegevens te tonen. In een view definiëren we: welke velden van een node we in een lijst willen zien. welke nodes we willen zien (filtering). in welke volgorde we de nodes willen zien (sortering). hoe we de lijst willen zien (bijvoorbeeld een list met bullets). De eerste 3 elementen worden achterliggend omgezet naar een SQL statement. Cevora opleiding Drupal 7.x - David Hosse 96 Februari 2012
  • 97. Extra modules 2. Views 3 (3) Inleiding SQL is de taal die we kunnen gebruiken om een databank te ondervragen. Kennis van SQL is niet nodig om met views te werken. Het helpt wel om de werking van de views beter te begrijpen. Mogelijkheden van een view zeer uitgebreid  configuratiescherm lijkt daarom zeer moeilijk. 1ste belangrijk concept: de default instellingen. Een view kan verschillende displays hebben. Deze bepalen hoe een view naar de gebruiker toe getoond wordt. Cevora opleiding Drupal 7.x - David Hosse 97 Februari 2012
  • 98. Extra modules 2. Views 3 (4) Inleiding De default instellingen bepalen het algemene gedeelte van alle displays. Per display kunnen we nog bepaalde instellingen overschrijven zodat ze afwijken van de default instellingen. Vanuit een display kunnen we ook de default instellingen wijzigen, maar dan wijzigen wel alle andere displays mee. Belangrijk onderscheid maken:  In de default instellingen aangeven wat er moet worden getoond.  In de display zelf bepalen hoe het moet worden getoond. Cevora opleiding Drupal 7.x - David Hosse 98 Februari 2012
  • 99. Extra modules 2. Views 3 (5) Inleiding Standaard 4 soorten displays: Page: maakt een pagina met een eigen URL die eventueel gekoppeld kan worden aan een menu. Block: maakt een block die getoond kan worden via de beheerpagina van de blocks. Attachment: een display die boven of onder een andere display kan worden getoond. Feed: een aanpasbaar RSS feed waarop gebruikers kunnen inschrijven. Kunnen een eigen URL hebben en toegevoegd worden aan page en/of block display. Bijkomende displays kunnen worden toegevoegd. Bekijk ook eens de module “insert view”. Deze laat toe om views via hun naam en parameters weer te geven in nodes. Cevora opleiding Drupal 7.x - David Hosse 99 Februari 2012
  • 100. Extra modules 2. Views 3 (6) Page displays Zie toepassing in cursus hoofdstuk 7.2.2 pagina 58 t.e.m. 62 bovenaan. Vergeet eerst niet het content type “Product” aan te maken! Een block display Zie toepassing in cursus hoofdstuk 7.2.3 pagina 62. Cevora opleiding Drupal 7.x - David Hosse 100 Februari 2012
  • 101. Extra modules 3. CKEditor en IMCE modules installeren en configureren (1) Inleiding Mogelijkheden voor gebruik van HTML in Drupal zijn standaard zeer beperkt. Oplossing  installatie van een WYSIWYG- (What You See Is What You Get) of HTML-editor.  In deze cursus de CKEditor module. Mogelijkheden om met bestanden te werken ook zeer beperkt. Oplossing  installatie van de IMCE module Breidt de beperkte uploadfunctionaliteit van Drupal sterk uit. Elke gebruiker kan beschikken over een homedirectory voor het uploaden van bestanden. Een beperking op de bestandsgrootte kan ingesteld worden. Cevora opleiding Drupal 7.x - David Hosse 101 Februari 2012
  • 102. Extra modules 3. CKEditor en IMCE modules installeren en configureren (2) Inleiding Bij het werken met WYSIWYG-editors moet je ook goed opletten met de filters van Drupal. Sommige code die de editor zelf genereerd kan gefliterd worden zodat het reslutaat van je opmaak binnen de editor beïnvloedt wordt. De filters kan je natuurlijk configureren of bijkomende toevoegen met de juiste instellingen. Cevora opleiding Drupal 7.x - David Hosse 102 Februari 2012
  • 103. Extra modules 3. CKEditor en IMCE modules installeren en configureren (3) CKEditor Installatie is iets moeilijker dan het installeren van een gewone module. De module bevat niet de eigenlijke editor. Deze moet je nadien via www.ckeditor.net downloaden, de inhoud van de directory /ckeditor uitpakken en toevoegen in de juiste folder van de module, nl. de subdirectory /ckeditor. Na het activeren van de CKEditor en de IMCE module moeten nog enkele configuratie instellingen gebeuren. Zie cursus hoofdstuk 7.3.2 pagina 63 t.e.m. 65 bovenaan. Cevora opleiding Drupal 7.x - David Hosse 103 Februari 2012
  • 104. Extra modules 3. CKEditor en IMCE modules installeren en configureren (4) CKEditor Bekijk ook eens de WYSIWYG-module voor Drupal als alternatief op de CKEditor module. Deze module biedt de mogelijkheden meerdere editors te installeren via 1 interface en verschillende editors op één Drupal installatie in te stellen voor verschillende doeleinden.  Let op! Hier worden de editors niet in subfolders van de WYSIWYG-module geplaatst maar in de folder /sites/all/libraries (wordt ook gebruikt om andere plugins vereist door andere modules in onder te brengen) die je zelf dient aan te maken. Meer info is ook terug te vinden op de modulepagina: http://drupal.org/project/wysiwyg.  Let op! De WYSIWYG-module heeft een bijkomende module nodig om met de IMCE te kunnen samenwerken: http://drupal.org/project/imce_wysiwyg. Cevora opleiding Drupal 7.x - David Hosse 104 Februari 2012
  • 105. Extra modules 3. CKEditor en IMCE modules installeren en configureren (5) IMCE De CKEditor laat toe om afbeeldingen of andere bestanden toe te voegen . Bestanden komen standaard terecht in /sites/default/files. IMCE breidt de standaard bestandsbehandeling binnen Drupal uit en laat toe om te bladeren door bestanden, bestanden up te loaden en grenzen voor bestandsgroottes in te stellen via een gebruiksvriendelijke interface. Zie configureren van IMCE in cursus hoofdstuk 7.3.3 pagina 65 t.e.m. 66 bovenaan. Zorg natuurlijk wel dat je de IMCE module eerst geactiveerd hebt! Een tip: Installeer ook de IMCE Mkdir module http://drupal.org/project/imce_mkdir. Deze breidt IMCE uit zodat je ook (sub)folders kan aanmaken en beheren. Cevora opleiding Drupal 7.x - David Hosse 105 Februari 2012
  • 106. Extra modules 4. Pathauto module (1) We hebben reeds gezien dat we de klassieke URL’s (index.php?q=node/1) via Clean Url’s kunnen “vertalen” naar gebruiksvriendelijke URL’s (/node/1). De core module Path laat toe voor bepaalde content dergelijke URL’s in te stellen. Voor elke node kunnen we een path alias instellen zodat /node/1 bv. vervangen wordt door /about-us. De lijst met aliassen kan je terugvinden in Configuration-URL aliases. weinig beheerbaar en moeilijk om consistentie te bewaren als iedere gebruiker per node een alias moet toevoegen. Cevora opleiding Drupal 7.x - David Hosse 106 Februari 2012
  • 107. Extra modules 4. Pathauto module (2) De Pathauto module, die afhankelijk is van de Token module, breidt deze core module uit om automatische aliassen te creëren. Pathauto maakt gebruik van tokens via de Token module. Token = bepaalde waarde. Vb.: [month] zou kunnen staan voor de maandcomponent van de creatiedatum van een node. Modules kunnen tokens definiëren en registreren bij de Token module. Binnen de Pathauto module kunnen we de tokens gebruiken om URL aliassen automatisch te definiëren. Cevora opleiding Drupal 7.x - David Hosse 107 Februari 2012
  • 108. Extra modules 4. Pathauto module (3) Vb: Stel dat we blog posts hebben op onze website. Voor het content type blog zouden we kunnen definiëren dat blogs moeten worden bewaard onder volgende URL: blog/[node:created:custom:Y]/[node:created:custom:m]/[node:created:custom:d]/[node:title] Een blog post geschreven op 10 januari 2011 met als titel “Content management systems” zal onder de volgende URL toegankelijk zijn: blog/2011/01/10/content-management-systems De configuratie van Pathauto gebeurt via de tab Configuration-URL. Zie de configuratie van Pathauto in cursus hoofdstuk 7.3.4 pagina 66 t.e.m. 67 bovenaan. Cevora opleiding Drupal 7.x - David Hosse 108 Februari 2012
  • 109. Extra modules 5. Panels 3 (1) Inleiding Panels en Views zijn door dezelfde ontwikkelaars ontwikkeld. Het wordt ook wel eens de gedopeerde versie van Blocks genoemd. Via Blocks kunnen bepaalde content in Drupal tonen, Panels bouwt daarop verder. Ze laten toe om eigen pagina’s te koppelen aan een Drupal URL (/node/%/edit) en de layout en de inhoud van die pagina’s te bepalen. Op een panel kunnen we bv. views zetten. Cevora opleiding Drupal 7.x - David Hosse 109 Februari 2012
  • 110. Extra modules 5. Panels 3 (2) Installatie Voor de installatie van Panels moeten we 2 modules downloaden: Panels - http://drupal.org/project/panels. Ctools - http://drupal.org/project/ctools. (al geactiveerd voor de Views) Zie de installatieprocedure en configuratie voor panels in cursus hoofdstuk 7.5.2 pagina 68 t.e.m. 70 bovenaan. Voorbeeld van het gebruik van Panels Zie toepassing in cursus hoofdstuk 7.5.3 pagina 70 t.e.m. 74 bovenaan. Cevora opleiding Drupal 7.x - David Hosse 110 Februari 2012
  • 111. Extra modules 6. Installeren van upgrades en patches (1) Hoewel ontwikkelaars van Drupal modules de grootste zorg dragen om foutloos te werken, is het niet uitgesloten dat er fouten kunnen voorkomen. Meestal gaat het hier om kleine fouten die opgelost worden bij het uitgeven van een nieuwe module versie. Deze update/upgrade kan men over de bestaande versie van de betreffende module kopiëren in de module folder. Drupal controleert aan de hand van een cron job automatisch of er nieuwe versies beschikbaar zijn voor enerzijds de Drupal core en anderzijds de beschikbare modules. Automatisch updaten van modules en de drupal core is binnen drupal mogelijk al dan niet met het instellen van een ftp-account. Sommige aanpassingen zijn onmiddellijk nodig en worden onder de vorm van een patch ter beschikking gesteld. Cevora opleiding Drupal 7.x - David Hosse 111 Februari 2012
  • 112. Extra modules 6. Installeren van upgrades en patches (2) De installatie van een patch is iets ingewikkelder dan de installatie van een update/upgrade. Een patch wordt uitgebracht onder de vorm van een patch bestand. Binnen een software ontwikkelingsomgeving kan men de patch toepassen op de bestaande bestanden, los van zo’n omgeving moet men de aanpassing manueel toepassen. Maak altijd eerst een backup van het bestand dat je aanpast! Zie voorbeeld van een patch bestand in cursus hoofdstuk 7.6 pagina 74 t.e.m. 75. Cevora opleiding Drupal 7.x - David Hosse 112 Februari 2012
  • 113. Overzicht Inleiding Installatie Een eerste kennismaking Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 113 Februari 2012
  • 114. Themes 1. Inleiding 2. Eenvoudige theming 3. Een subtheme maken 4. Template bestanden 5. Starter theme: Zen Cevora opleiding Drupal 7.x - David Hosse 114 Februari 2012
  • 115. Themes 1. Inleiding (1) Themes worden gebruikt voor de opmaak van pagina’s  technisch = “Presentation Layer”. Via een theme kan men: page layouts definiëren. bepalen welke grafische elementen er getoond worden. eigenschappen van fonts en graphics bepalen. output van modules overschrijven. Voorkennis die nodig is om met themes te werken hangt af wat men precies wenst te doen. Om het logo te veranderen is weinig voorkennis nodig omdat dit via de instellingen van een actief thema aangepast kan worden. Cevora opleiding Drupal 7.x - David Hosse 115 Februari 2012
  • 116. Themes 1. Inleiding (2) Voor andere aanpassingen is voorkennis nodig van xHTML, CSS, JavaScript, jQuery, PHP en eventueel ook grafische programma’s als Photoshop, Illustrator, Fireworks ... Drupal 7 wordt standaard geïnstalleerd met het Bartik theme, andere beschikbare themes zijn Garland en Stark. Voor administration pagina’s is het Seven theme standaard actief. De Drupal themes zijn terug te vonden in de /themes root folder van de Drupal installatie. Eigen themes of themes ontwikkeld door andere ontwikkelaars worden in sites/all/themes opgenomen. Cevora opleiding Drupal 7.x - David Hosse 116 Februari 2012
  • 117. Themes 2. Eenvoudige theming (1) Via het administratiemenu van Drupal kunnen bepaalde instellingen van themes aangepast worden. Er zijn instellingen die standaard zijn voor alle themes. Daarnaast zijn er instellingen die theme specifiek zijn. Specifieke instellingen overschrijven de globale instellingen. Globale instellingen kunnen gewijzigd worden via Appearance- Settings tab Global settings. We kunnen bepalen wat er getoond wordt op een pagina (logo, site naam, slogan, mission statement, search box, shortcut icon, primary links, secondary links). Cevora opleiding Drupal 7.x - David Hosse 117 Februari 2012
  • 118. Themes 2. Eenvoudige theming (2) Wanneer het gebruik van user pictures geactiveerd is kunnen we ook bepalen of user pictures van de user verschijnen in posts en/of commentaar = de Features.µ Wanneer logo en/of shortcut icon (= favicon) zijn aangevinkt, kunnen de URL’s meegegeven worden die verwijzen naar de respectievelijke bestanden. Site naam, slogan en mission statement kunnen ingevuld worden bij Configuration-Site information. Hier wordt enkel bepaald of ze getoond worden of niet. Per theme kunnen de globale instellingen worden overschreven. Sommige themes laten ook toe om kleuren aan te passen, hiervoor moet de Color module (Drupal core) geactiveerd zijn. Cevora opleiding Drupal 7.x - David Hosse 118 Februari 2012
  • 119. Themes 3. Een subtheme maken Zie toepassing in cursus hoofdstuk 8.3 pagina 77 t.e.m. 80 bovenaan. Cevora opleiding Drupal 7.x - David Hosse 119 Februari 2012
  • 120. Themes 4. Template bestanden = vervolg op een subtheme maken. Zie cursus hoofdstuk 8.4 pagina 80 t.e.m. 82 bovenaan. Cevora opleiding Drupal 7.x - David Hosse 120 Februari 2012
  • 121. Themes 5. Start theme: Zen Zen = starterkit voor de ontwikkeling van een eigen theme. Nadeel aan het kopiëren van een bestaand thema is niet goed weten wat men moet veranderen. In een starter theme is de nodige documentatie en zijn de nodige basisbestanden voorzien. Zie toepassing in cursus hoofdstuk 8.5 pagina 82 t.e.m. 84. Cevora opleiding Drupal 7.x - David Hosse 121 Februari 2012
  • 122. Overzicht Inleiding Installatie Een eerste kennismaking Architectuur Gebruikersbeheer Werken met velden Extra modules Themes Dagelijks beheer Cevora opleiding Drupal 7.x - David Hosse 122 Februari 2012
  • 123. Dagelijks beheer 1. Backup and restore 2. Logging 3. Cron jobs 4. Optimalisatie van Drupal Cevora opleiding Drupal 7.x - David Hosse 123 Februari 2012
  • 124. Dagelijks beheer 1. Backup and restore Backup van databank Via phpmyadmin Via backup-migrate module. http://drupal.org/project/backup_migrate Zie toepassing in cursus hoofdstuk 9.1 pagina 85 t.e.m. 87. Aan te raden is om op regelmatige basis (dagelijks of frequenter voor belangrijkste bestanden) backups te nemen van de Drupal installatie bestanden, zowel de core als de extra modules (sites/all/modules), themes (sites/all/themes), ... Vergeet zeker ook niet de sites/default/files folder regelmatig te backuppen! Cevora opleiding Drupal 7.x - David Hosse 124 Februari 2012
  • 125. Dagelijks beheer 2. Logging Standaard worden in Drupal fouten weggeschreven naar logbestanden en naar het scherm naar de gebruiker toe in de vorm van een foutmelding. in productie best enkel naar logbestanden. dit kan je instellen via Configuration-Error Reporting. Onder Configuration-Site Information kan je ook instellen welke pagina’s er moeten weergegeven worden voor “Access Denied”- en “Not Found”-fouten. hiervoor maak je best voor elk een extra node aan. bij de URL’s vul je vervolgens het path van de node in. Cevora opleiding Drupal 7.x - David Hosse 125 Februari 2012
  • 126. Dagelijks beheer 3. Cron jobs (1) Allerlei modules in Drupal hebben taken die regelmatig moeten worden uitgevoerd. Vb. verwijderen van oude log data, controleren of er updates zijn voor Drupal of voor modules, web pagina’s cachen (enkel voor anonieme gebruikers), indexeren van de site (voor degelijke zoekoptimalisatie) … Al deze taken worden uitgevoerd via zogenaamde cron jobs. In Linux  crontab job, in Windows  Sheduled tasks. Uitvoeren van cron job = het oproepen van cron.php in Drupal installatie. Kan ook vanaf een andere computer uitgevoerd worden. Cevora opleiding Drupal 7.x - David Hosse 126 Februari 2012
  • 127. Dagelijks beheer 3. Cron jobs (2) Vanaf Drupal 7.x maakt de “Poor Man’s Cron”-module deel uit van de core. voegt aan elke pagina een stukje javascript code toe. aan de hand van deze code en een Ajax call wordt er gecontroleerd of cron onlangs heeft gelopen. Indien dit niet zo is dan wordt de cron pagina uitgevoerd. Via Configuration-Cron kan men instellen hoe frequent cron moet worden uitgevoerd. Cevora opleiding Drupal 7.x - David Hosse 127 Februari 2012
  • 128. Dagelijks beheer 4. Optimalisatie van Drupal Zie informatie in cursus hoofdstuk 9.4 pagina 89 t.e.m. 91. Cevora opleiding Drupal 7.x - David Hosse 128 Februari 2012