Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit.

Slides:



Advertisements
Verwante presentaties
HET DIGITALE ARBEIDSPLEIN Het Digitale Arbeidsplein is een website ontwikkeld in het kader van het project “Zelfmanagement van de eigen loopbaan” van MeijerConsult.
Advertisements

Deze presentatie mag noch geheel, noch gedeeltelijk worden gebruikt of gekopieerd zonder de schriftelijke toestemming van Seniornet Vlaanderen VZW Mijn.
SharePoint denk in blokken Ton Stegeman.
Les 2 Vandaag •Vragen over voorgaande stof •Plaatjes •Tabellen •Links •Huiswerk.
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Blog sweet blog. robot wisdom 17 december 1997 > ‘weblog’ ‘The more interesting your life becomes, the less you post... and vice versa.’
E-RADEN Roadmap. AGENDA • Overzicht van nieuwe ontwikkelingen 2009 • Interfaces • Document Types : Meta-data • E-raden gratis ? • Perspectieven.
Databases via internet
Geïntegreerd project 2008 la nouvelle espérance Jeroen Bolle Maarten Masschelein Laura Rogiers Sara Vanden Hautte Tine Vanseveren.
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
la nouvelle espérance Geïntegreerd project 2008 Jeroen Bolle
WordPress Dashboard e.d.
Voor meer informatie: Link Invent Design: Externe promotor : Jean Van der Biest
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Geïntegreerd project 2008 la nouvelle espérance Jeroen Bolle Maarten Masschelein Tine Vanseveren Laura Rogiers Sara Vanden Hautte.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Base: bewerkingen 2 soorten - Oplopend- Aflopend.
HTML Les 1: Introductie HTML
CSS & HTML Les 2 Navigatie. De tag voor het maken van verwijzingen naar pagina’s of delen van een webpagina. Contact Het element wordt gebruikt om de.
WordPress les 3.
Crashcursus HTML en CSS 2013
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Basis 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Webpagina ’ s maken ITV 10 maart Onderwerpen Ontwerp en inhoud Navigatie HTML: de basis Webpagina’s in Word.
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
DSpace-gebruikersdag 9 maart 2006 WildFire ● WildFire is ontwikkeld door Henk Druiven, Rijksuniversiteit Groningen Met dank aan Johannes Nicolai en al.
Webmaster Training: CSS CSS2 & XHTML By Frederik Van Outryve.
Nieuw in LIPS VLUG 2 26 juni 2006 Kristof Brams. Overzicht Vernieuwde editor Printervriendelijke pagina Statistieken Variabele fontgrootte Grootte van.
Het is u misschien ontgaan Nieuwsitems, RSS, e-Raden VLUG2 26 juni 2006.
Visual Basic.
Subversion Version control
Workshop PHP Een productencatalogus. Case Uitgever van software wil webpagina met productgegevens publiceren op basis van catalogus. Het gaat momenteel.
Workshop PHP Een productencatalogus Met database.
La Nouvelle Espérance Tussentijdse presentatie van het resultaat.
La nouvelle espérance - geïntegreerd project 2008 Belangrijke aspecten bij de keuze van een CMS systeem 2. Inleiding project CMS functionaliteiten Support.
Hoofdstuk 16 en 19 PHP en MYSQL
1 realtime and social: blogs & tweets, FB & G+ Jeroen Bosman VOGIN, 17 november 2011 Wageningen.
WEBBUILDING 07/03/2005 Saartje De Geyter.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Client-side scripting. 1.Scripting in webpagina’s 1. Verschillende talen VB: toepassingen in Windowsomgeving VBA: toepassingen in MS-Office VBScript internet.
DSpace-gebruikersdag 9 maart 2006 WildFire ● WildFire is ontwikkeld door Henk Druiven, Rijksuniversiteit Groningen Met dank aan Johannes Nicolai en al.
Wat is WordPress en hoe installeer je het?. Wat is WordPress? WordPress is een CMS (Content Management Systeem) net als Joomla; Met een CMS kan een gebruiker.
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Starten met PHP Dynamischer bouwen. PHP is een een scripttaal waarmee de server pagina’s in elkaar kunt laten zetten. Het verschil met HTML: Een php pagina.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Starten met PHP Dynamischer bouwen.
Web 1.0 HTMLAfbeeldingen FlashHyperlinks CSS Participation AJAX Usability Design Ruby on Rails.
realtime & social: blogs & tweets
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Deze les * recap css selectors * pseudoclasses * styling links: live tutorial * references, recources, categorisation * live tutorial o add css to template.html.
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
JQuery CarouFredsel Gemaakt door Yannick. Inhoudstafel O CarouFredsel O Wat is CarouFredsel ? O Downloaden O Script O HTML O CSS O Javascript O Voorbeelden.
Prototyping Week 7 // Tweenlite & API. TweenMax Snel mooie en effectieve animatie.
Les 0 Structured Query Language SQL. Programma Les 0 – Introductieopdracht Les 1 Les 2 Les 3 Schriftelijke toets.
Let’s go! ›Beginnerspresentatie ›Starten met prospero ›Verschil CMS en web navigator ›Nieuwe content > nieuwe folder aanmaken ›Bestanden uploaden ›Linkobject.
ICT-dag Gent 25 mei 2010
Hoe een website realiseren ? Horen, zien en ontsluiten Gooik, 27 januari 2006 Johnny Van Bavegem Heemkundige Kring van Gooik.
wordPress  Het meest flexibele CMS CMS= Content Management System.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Webinar voor ambassadeurs
Inhoud: Terugkomdag Wie heeft wat gemaakt? Tips?
Het aanpassen van Microsoft SharePoint Onlinewebsite
CSS: cascading stylesheets
SQL Les February 2019.
ASP.NET MVC Web Development
SQL Les 7 24 February 2019.
SQL Les 9 12 May 2019.
Powershell & HTML.
CSS: cascading stylesheets
HTML5 introductie.
Transcript van de presentatie:

Jeroen Bolle

1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit

1. Inleiding

2. Geschiedenis dorp.org Dries Buytaert

3. Technology stack Server Operating System Webserver PHP Drupal Database

3. Installatie 1. Download de laatste versie op 2. Pak het bestand uit naar een directory op de webserver 3. Voer het installatiescript uit door naar de directory te surfen 4. Geef de gegevens op om met de MySQL-database te verbinden Standaardinstallatie

Database wordt aangemaakt en opgevuld Default site wordt aangemaakt adhv. settings.php./sites/default/settings.php 5. Aanmaken eerste gebruiker: super user 3. Installatie

Standaardinstallatie De Drupal website is klaar voor gebruik! 3. Installatie

4. Multi-site Verschillende websites gebruiken dezelfde programmatie als backend! default Standaardwebsite bij installatie all Modules en themes voor alle websites.../.../... Oneindig aantal websites

sites\default sites\default\modules\Extra modules voor default site sites\default\themes\Extra themes voor default site sites\default\settings.phpInstellingen voor default site sites\all sites\all\modules\Extra modules voor alle sites sites\all\themes\Extra themes voor alle sites sites\xxx sites\xxx\modules\Extra modules voor site xxx sites\xxx\themes\Extra themes voor site xxx sites\xxx\settings.phpInstellingen voor site xxx 4. Multi-site

Voorbeelden multi-site./sites/ all/ modules/ themes/ default/ settings.php voorbeeld.com/ settings.php themes/ voorbeeld.com.site3/ settings.php modules/ themes/ sub.voorbeeld.com/ settings.php themes/ modules/ 4. Multi-site

5. Modules Contributed modules RequiredOptional Core modules

BlockBesturen van de boxes die rond de inhoud getoond worden. FilterZorgt dat de inhoud gefilterd wordt voor het wordt weergeven Node Laat toe dat inhoud naar de site kan gestuurd worden en op pagina’s weergeven kan worden. SystemVerzorgt de algemene configuratie van de site voor de beheerders User Beheert het registreren van gebruikers en het systeem om aan te melden. WatchdogLoggen en opnemen van systeemgebeurtenissen. Core modules - required 5. Modules

ContactPersoonlijke en algemene contact formulieren HelpBeheert het tonen van online help Locale Zorgt voor de vertaling van de User Interface naar talen buiten het Engels MenuHiermee kunnen beheerders menu’s maken en beheren. PathHet vertalen van de URL’s naar eenvoudige woorden TaxonomyIndelen van de inhoud in categorieën Upload Laat gebruikers toe om bestanden up te loaden en als bijlage toe te voegen. Core modules - optional Extra functionaliteiten die standaard meegeleverd worden bij een Drupal installatie Aanzetten afhankelijk van functionele eisen van de website 5. Modules

Contributed modules Functionaliteit die niet is opgenomen in de core modules is hoogst waarschijnlijk te vinden in één van de honderden contributed modules

5. Modules Contributed modules CAPTCHABeveiliging van formulieren tegen geautomatiseerde bots FCKEditorInvoegen van inhoud in MS-Word stijl (WYSIWYG) GuestbookEen gastenboek ImageUploaden, verkleinen en bekijken van afbeeldingen LocalizerMogelijkheid om inhoud naar meerdere talen te vertalen SimplenewsVersturen van nieuwsbrieven naar geabonneerde adressen. Site_mapMaakt automatisch een site map voor de website ViewsZelfgemaakt views van nodelijsten

Beheer van modules Installeren van modules Afhankelijk van door welke sites ze gebruikt worden Gedownloade map kopiëren naar de modules directory /sites/all/modules/ Module dependencies Sommige modules zijn afhankelijk van een andere modules om hun taak uit te voeren Beheer van modules Het uitschakkelen, aanzetten en deïnstalleren van modules gebeurt in de Administer sectie /sites/all/modules/ 5. Modules

6. Theming Uitdenken en uitwerken van een ontwerp Uitwerking aan de hand van Macromedia Fireworks MX

Vertalen van het ontwerp naar een webpagina XHMTL Indelen van het ontwerp in verschillende onderdelen De onderdelen krijgen een semantische betekenis CSS Opmaken van de verschillende XHTML onderdelen Positioneren van de verschillende elementen Complexe taak! - Browser incompatibiliteit (Internet Explorer) - Sommige constructies zijn moeilijk te vertalen 6. Theming

Identificeren van secties in het ontwerp header intro main sidebar 6. Theming

Omzetten van secties naar XHTML Verdere uitwerking elementen XHMTL 6. Theming

Opmaken van XHTML element met CSS CSS #header { color: #336633; background: #ccff66; overflow: hidden; background-image: url(bg-lijn-header.gif); background-repeat: repeat-x; height: 50px; overflow: hidden; } #intro #intro_links { float: left; width: 425px; text-align: right; height: 192px; position: relative; margin-bottom: 10px; } ul.menu { list-style: none; border: none; text-align:left; } ul.menu li { margin-left: 15px; } li.expanded { list-style-type: none; margin: 0; text-align: right; background: url(img/arrowD.gif) no-repeat; padding-top: 4px; background-position: 0.7em; } 6. Theming

Na verloop van tijd uitgewerkte webpagina = template TEMPLATE vormt de basis voor THEME 6. Theming

Drupal theme systeem Elegante architectuur om de drupal website van een lay-out te voorzien Perfecte scheiding van opmaak en programmatie Minimalisering van code en gemakkelijker onderhoud 6. Theming

Drie abstractiniveaus 1. Template language Taal gebruikt om de template bestanden te vullen met gegevens die van Drupal afkomstig zijn. 2. Theme engine De interface die het mogelijk maakt dat Drupal de template files kan lezen en interpreteren 3. Theme Verzameling bestanden die de look & feel van de website vormen. 6. Theming

Drie abstractiniveaus 1. Template language Taal gebruikt om de template bestanden te vullen met gegevens die van Drupal afkomstig zijn. 2. Theme engine De interface die het mogelijk maakt dat Drupal de template files kan lezen en interpreteren 3. Theme Verzameling bestanden die de look & feel van de website vormen. 6. Theming

Template languages en theme engines Abstractie van Drupal theme engine Eender welke PHP template language kan gebruikt worden Smarty PHPTAL PHPTemplate XTemplate... Template language speciaal voor Drupal ontwikkeld PHPTemplate wordt standaard meegeleverd en gebruikt 6. Theming

Installeren van theme engines 1. Theme engines kunnen gedownload worden op 2. Theme engines worden geïnstalleerd voor de sites die ze gebruiken 6. Theming

PHPTemplate theme engine bevindt zich standaard in Drupal core Beste keuze is PHPTemplate: volledig afgestemd op Drupal 6. Theming

Enkele drupal objecten Node Alle vormen van inhoud in Drupal worden opgeslaan als een node. Dit kan bijvoorbeeld een afbeelding, een pagina of een download zijn. node 6. Theming

Enkele drupal objecten Block Blocks zijn navigatie of inhoud elementen die meestal aan de linker of rechter kant van de website geplaatst worden. Blocks zijn geen nodes, ze worden gebruikt om gegevens in de website te positioneren. language selection Menu’s Newsletter subscription 6. Theming

Theme: template files page.tpl.php block.tpl.php comment.tpl.php template.php node.tpl.php Het bepalen van de lay-out van een pagina Het bepalen van de lay-out van een block Het bepalen van de lay-out van een node Het bepalen van de lay-out van een comment Theme overriding en andere theme functies box.tpl.phpHet bepalen van de lay-out van een comment 6. Theming

7. LNE theme Opmaken van de standaardpagina 1.Maak een nieuwe directory aan, rekening houdend met de sites waarvoor het theme kan gebruikt worden../sites/all/themes/lne/ 2.Maak een nieuw bestand aan dat de basis zal vormen voor alle pagina’s van de drupal website../sites/all/themes/lne/page.tpl.php 3.Plaats de inhoud van het XHTML file in page.tpl.php en kopieer de bestanden naar waar verwezen wordt ook naar de directory van het theme../sites/all/themes/lne/ page.tpl.php css/ style.css nav.css images/...

Opmaken van de standaardpagina 4.De lay-out is nu opgenomen in Drupal en kan weergeven worden door naar de website te surfen. De inhoud en instellingen van de Drupal website moeten nu in de lay-out opgenomen worden! 7. LNE theme

Integratie van Drupal elementen in de lay-out Site configuration De beheerder kan een aantal parameters instellen voor de website via het Administer gedeelte van de website. /admin/settings/site-information Integratie van PHP variabelen De Drupal Theme Engine maakt automatisch een aantal variabelen aan die in de website geïntegreerd kunnen worden. Vb. De instellingen van Site Configuration kunnen met deze variabelen benaderd worden. Aan- of uitzetten van PHP variabelen Sommige standaard PHP variabelen kunnen aan- of uitgezet worden. /admin/build/themes/settings/lne 7. LNE theme

PHP variabelen voor page.tpl.php $base_path Geeft een base URL pad van de Drupal installatie. $breadcrumb HTML voor het weergeven van een ‘breadcrumb’. $closure Moet weergeven worden op het einde van de pagina voor dynamische javascript, die enkel maar mogen uitgevoerd worden wanneer de pagina reeds geladen is. $content De HTML-inhoud die Drupal gegenereerd heeft en weergeven moet worden. $css Een array met alle CSS bestanden voor de huidige pagina. $directory De map waar in het theme geplaatst is. $feed_icons Een string met alle feeds (RSS) voor de huidige pagina $footer_message Het footer bericht dat opgegeven is in de Administer sectie $head HTML gegenrereerd door drupal_get_html_head(). $head_title De tekst die moet weergeven worden als pagina titel. $help Dynaminsche help tekst voor admin pagina’s 7. LNE theme

PHP variabelen voor page.tpl.php $is_front Variabele is true wanneer de pagina de front page is. $language De taal waarin de website weergeven wordt. $logo Pad naar de locatie van het logo, gedefinieerd in de theme instellingen $messages HTML voor status en error berichten. $mission De missie tekst, opgegeven in de Administer sectie. $scripts HTML om javascript bestanden te laden en de JS instellingen benaderbaar te maken. $search_box Variabele is true als de search box enabled is. $site_name De naam van de website $site_slogan Toont de slogan van de website $styles Toont de nodige style tags. Nodig voor stylesheet switching $tabs HTML voor het tonen van tabs $title Titel van de node 7. LNE theme

" xml:lang=" "> " title="">

Verschillende lay-out voor een pagina Uitgangspunt: Enkel de front page moet de introtekst en foto tonen Template file kan op basis van de system URL gekozen worden - page-node-edit.tpl.php - page-node-1.tpl.php - page-node.tpl.php - page.tpl.php Vb. Pagina om node 1 te wijzigen: node/1/edit PHPTemplate theme engine zoekt of vlgende bestanden bestaan 7. LNE theme

Extra mogelijkheid: instellen van voorpagina page-front.tpl.php Front page is dynamisch en kan bij Site Administration ingesteld worden. page-front.tpl.php wordt altijd geladen bij als de pagina als front page is ingesteld Toepassing: We kopiëren de page.tpl.php naar page-front.tpl.php en verwijderen in het originele bestand de XHTML code om de introductietekst te tonen. 7. LNE theme

Block regions Regions zijn locaties in de lay-out waar blocks kunnen geplaatst worden. sidebar-leftsidebar-rightcontentheaderfooter_message 5 standaard regions door PHPTemplate: LNE theme heeft slechts 3 regions nodig sidebar linksheaderfooter vanonder Custom regions: theme overriding 7. LNE theme

Custom regions: theme overriding PHPTemplate bevat een functie om de standaard theme regions aan te maken theme_regions() lne_regions() Override: Door functie opnieuw te definiëren met naam van het theme /* * Verschillende regio's in het theme waar content geplaatst kan worden * Header wordt voor taalkeuze gebruikt */ function lne_regions() { return array( 'customleft' => t('sidebar links'), 'header' => t('header'), 'customfooter' => t('footer vanonder'), ); } 7. LNE theme

Custom regions: plaatsen van blocks admin/build/block Blocks kunnen in een region geplaatst worden Blocks kunnen een gewicht toegekend krijgen om hun volgorde tov. andere blocks te bepalen Region Weight 7. LNE theme

Opmaken van een block Zelfde principe voor de opmaak van een pagina. - block-modulenaam-delta.tpl.php - block-modulenaam.tpl.php - block-region.tpl.php - block.tpl.php Block template file volgorde Block template file variabelen $block Het volledige block object $block_id Integer die telkens verhoogt wordt als het block gegenereerd wordt en de template file geladen is. $block_zebra Telkens $block_id verhoogt wordt, verandert deze variabele naar de waarde odd of even. 7. LNE theme

Block: theme overriding Soms voldoet de output die een block geeft niet aan de vooropgestelde eisen van de website vb. Localizer module: language selection block Standaard block lay-outGewenste block lay-out theme override Dit kan niet aan de hand van een block.tpl.php file bereikt worden! 7. LNE theme

Block: theme overriding toont alle eigenschappen van dit block stdClass Object ( [module] => localizer [delta] => 0 [theme] => garland [status] => 1 [weight] => 0 [region] => left [custom] => 0 [throttle] => 0 [visibility] => 0 [content] => English français ) Dit moet veranderen! 7. LNE theme

Block: theme overriding Opzoeken van originele theme function die de inhoud bepaalt, in de source van de module function theme_localizer_block_switch_language($links) { return theme('item_list', $links); } OVERRIDE function lne_localizer_block_switch_language($links) {... } template.php 7. LNE theme

Block: theme overriding Herschrijven van functie om de juiste lay-out toe te passen /* * Switch language block herschreven voor output om het in het design te doen passen (images) */ function lne_localizer_block_switch_language($links) { foreach ( $links as $key => $value ) { $links[$key] = str_replace ( 'English', ' ', $links[$key] ); $links[$key] = str_replace ( 'français', utf8_encode(' '), utf8_decode($links[$key]) ); $output.= $links[$key]; } return utf8_encode($output); } 7. LNE theme

8. Extra functionaliteit Extra functionaliteit aan de Drupal website toevoegen Eigen module ontwikkelen Views & Content Construction Kit modules Custom functions

Views Module die een methode aanbiedt om te bepalen hoe lijsten van nodes aan de gebruiker getoond worden Slimme query builder die met genoeg informatie inhoud op zeer verschillende manieren kan weergeven Full Nodes Teaser view List view Table view User contributed views - Toegangsbeperking - Filters - Velden selecteren - Page/Block - Arguments - Sort criteria - Exposed filters 8. Extra functionaliteit

The power of Drupal: download systeem Content type: Publication Taxonomy: Publcations Views: Table view Publication content type: - Enkel titel veld - Mogelijkheid om bestanden toe te voegen (Upload module) Publications category: - Met terms: Quarterly bulletin, Yearly report,... - Content type: Publication - Required: Yes Taxonomy term View: - Table view: use pager - Fields: title (without link), file (with link), size - Filter: published = yes - Sort criteria: sticky, created time DESC 8. Extra functionaliteit

The power of Drupal: download systeem 8. Extra functionaliteit

Content Construction Kit (CCK) Module waarmee de gebruiker de functionaliteit kan uitbreiden door zelfgemaakte velden toe te voegen aan content types. Komt in actie bij specifieke eisen waar Drupal niet standaard kan voorzien User reference Node reference Text Decimal Integer - Text field - Select list - Checkboxes / Radio buttons - Single checkbox - Select list - Autocomplete text field 8. Extra functionaliteit

Custom (theme) functions Quik & dirty Snel een functionaliteit aan een module toevoegen die met Views of CCK niet bereikt kan worden. Functies gaan omschrijven in template.php die onmiddellijk functionaliteit bijvoegen op de plaats waar ze aangeroepen worden. Tijdsbesparend omdat geen extra module moet bijgeprogrammeerd worden 8. Extra functionaliteit

function next_prev($huidig_nid, $type, $knopType, $label, $class) { $tid = db_result(db_query(db_rewrite_sql("SELECT tn.tid FROM {term_node} tn LEFT JOIN {node} n ON tn.nid=n.nid WHERE tn.nid = $huidig_nid"))); if (empty($tid)){ return ''; } switch ($knopType) { case 'next': $sort = 'DESC'; $case = '< '; break; case 'prev': $sort = 'ASC'; $case = '> '; break; default: return NULL; break; } $sql = "SELECT n.nid, n.title FROM {node} n INNER JOIN {term_node} t ON n.nid = t.nid "; $sql.= "INNER JOIN {term_data} r ON t.tid = r.tid WHERE n.type = '". $type."' AND n.nid ". $case; $sql.= $huidig_nid." AND r.tid = ". $tid." AND n.status = 1 ORDER BY nid ". $sort; $result = db_fetch_array(db_query(db_rewrite_sql($sql))); if (!$result) { return NULL; return l($label.$name, "$type/tid/$tid", array('title' => $name, 'class' => $class)); } else { return l($label, 'node/'. $result['nid'], array('title' => $result['title'], 'class' => $class)); } template.php Image pager

<?php if ($terms && arg(0) == 'node' && is_null(arg(2))) { $next = next_prev($node->nid, 'image', 'next', 'next >', 'imgprev'); $previous = next_prev($node->nid, 'image', 'prev', '< previous', 'imgnext'); print ' '; if ($previous) { print ' '. $previous. ' '; } if ($next) { print ' '. $next. ' '; } print ' '; } ?> node-image.tpl.php 8. Extra functionaliteit