Joomla! en open source

Vergelijkbare documenten
icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Inhoudsopgave. versie 0.8

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Inhoudsopgave... 1 Disclaimer... 3 Voorwoord... 3 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Installeer Apache2: Landstede februari 2009 versie 3 1 Bertil Hoentjen

Joomla! en SEO: De basis elementen van SEO. Richard Bruning

USB Webserver installatie en gebruik

ONDERZOEK NAAR DE ZOEKMACHINE VRIENDELIJKHEID VAN COMMERCIËLE,

ONDERZOEK NAAR DE ZOEKMACHINE VRIENDELIJKHEID VAN COMMERCIËLE,

Zicht - Content Management Systeem een algemene beschrijving

Handleiding: Whitelabel Customersite

In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors

SEO advies plan. Tim Pieters M41T

Databases - Inleiding

Joomla! 1.0 vs Joomla! 1.5

JOOMLA WEBSITE SPECIFICATIES VERSIE 1201

Installatie SQL Server 2014

Test Joomla op je PC 1

Bitrix Site Manager gebruikershandleiding BureauZuid

Tinus Plotseling MySQL

Handleiding Website Laatste update: april 2014

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze

Installatie SQL: Server 2008R2

WORDPRESS TRAINING: 1. AANMELDEN

Waarom WordPress? Wat is WordPress? Bloggen en website Uniek design is mogelijk Makkelijk zelf te beheren

Voorbeelden van Drupal websites

Installatiehandleiding Business Assistent

Installatie van WerkMeester

Koppeling met een database

Xampp Web Development omgeving opzetten onder Windows.

Project plan. Erwin Hannaart Sander Tegelaar

Installatiehandleiding Vabi Assets Energie

Installatiehandleiding TiC Narrow Casting Manager

Open Source Software. Bart van Dijk

Op de Virtual Appliance is MySQL voorgeïnstalleerd. MySQL is momenteel de meest gebruikte database op het internet.

SSL VPN. In deze handleiding zullen wij onderstaande SSL mogelijkheden aan u uitleggen. - SSL VPN account/groep creëren.

Planbord installatie instructies

Werking van de Office Connector, en het oplossen van fouten.

KANT-EN-KLARE PHP-TOEPASSINGEN Inhoud

WordPress in het Kort

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database

Installatie SQL Server 2008R2

De voordelen van Drupal

Organisatie. Gestart in 2009 Open Source Webdevelopment Grafische achtergrond Servicegericht

Hoe bouw ik een component? Drs. Arjan Burger

CMS Made Simple productsheet

VKblog-importer : De gebruiksaanwijzing.

Handleiding. WordPress Plugin voor uw uitzendbureau website GRATIS

Handleiding Beveiligen van Wordpress

Drupal lokale installatie op Linux Mint 17.1 Cinnamon.

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

XAMPP Web Development omgeving opzetten onder Windows.

Installatiehandleiding. Facto minifmis

Installatie SQL Server 2012

icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous

SSL VPN. In deze handleiding zullen wij onderstaande SSL mogelijkheden aan u uitleggen. - SSL VPN account/groep creëren.

uziconnect Installatiehandleiding

Doelgroep. Waarom Joomla? Extensions, de kracht van Joomla! Inmiddels meer dan 2850 uitbreidingen beschikbaar Marco Corrò

Handleiding ZO+ Iron CMS 1 maart 2010

Loremipsumdolorsitamet,consectetue radipiscingelit.aeneancommodoligula egetdolor.aeneanmassa.cumsociisnat oquepenatibusetmagnisdisparturient

Handleiding Inloggen met SSL VPN

SELECTEER EEN PAGINA TEMPLATE EN HOOFD VOOR DE PAGINA: Selecteer, in de PAGINA ATTRIBUTEN module rechts naast

Handleiding voor het installeren van Tomcat7

Installatiehandleiding Cane Webservices.nl Integratie

Orbis Software. Portal4U. Installatie Handleiding. Dit document bevat de Installatie Handleiding voor Portal4U

Syllabus Zelf een website bouwen. Artheos

De installatie en configuratie van een webserver

Installatie van sqlserver

De polling is er nu dan ook in een service variant en kan dus in plaats van de normale polling gebruikt worden.

Mach3Framework 5.0 / Website

Beveiligingsbeleid. Online platform Perflectie

BASIS- INRICHTING ORBIS TASKCENTRE 4.7

Documentatie. Remote Access Voorziening Etam (RAVE)

Webhosting Online Beginnen met Joomla v1.0

Foto web applicatie documentatie

Het googlebaar van je site maken gebeurt in een paar stappen:

JOOMLA! GEBRUIKSVRIENDELIJKHEID IN DE PRAKTIJK. Tips en hulpmiddelen voor gebruiksvriendelijkheid

Linux. Linux lezing 13 april 2005 Marcel Nijenhof Note: De slechste vragen zijn niet gestelde vragen

SEO Plan e meting: Meta description, Meta Keywords, sitemap, robots.txt

Het opzetten van deze applicatie

Portal4U 1.4 Installatie

5/5 Red Carpet. 5/5.1 Inleiding

Installatiehandleiding Business Assistent

Popsy Financials. Overstap Access-MSDE

Nieuwe Installatie/Factuur2King 2.2 MU bijwerken

Installatie Solid Edge ST5

Globale kennismaking

16. Web Station. In dit hoofdstuk komen de volgende onderwerpen aan bod:

Installatie nieuwe build van Alure (alle componenten)

Technisch Ontwerp Stylin s

SEO SCAN. evolveconsulting.nl. Uitgevoerd door: Content Stream. SEO specialist: Erik Pols

ExpressionEngine CMS. Content Management Systeem/Publicatieplatform NOAH DESIGN CREATIE & WEBDEVELOPMENT

Beschrijving functioneel en technisch design van de website

HANDLEIDING DMS Plugin Installatie, configuratie & werking

uziconnect Installatiehandleiding

Een website maken met databasetoegang.

Meehelpen met de ontwikkeling van nieuwe of verbetering van bestaande spellen. Pag. 1

Transcriptie:

Joomla! en open source GNU General Public License (GPL) GPL kan je NIET accepteren, het bestaat gewoon Non-GPL feitelijk in strijd met Joomla! licentie 6 Joomla! is beschikbaar onder de GNU General Public License een bekende open source licentie. Open source is de algemene noemer waaronder een groot aantal licenties vallen die als kenmerk hebben dat de broncode van de desbetreffende programmatuur vrijelijk aangepast kan worden. Een gevolg hiervan is dat de software vrijwel altijd ook gratis te downloaden is. Ook al is dat voor veel mensen de belangrijkste eigenschap van een open source licentie, het is niet de hoofdreden. De GNU GPL licentie is indertijd geschreven door Richard Stallman, die ook de Free Software Foundation heeft opgericht. Destijds werd altijd gerefereerd naar free software, waarbij Richard Stallman keer op keer moest uitleggen dat het woord free niet als gratis moest worden opgevat, maar juist als vrij. Zijn gevleugelde uitspraak free as in free speech, not free beer is hier getuige van. Na verloop van tijd is daarom gekozen voor de duidelijkere term open source (waarmee de openheid van de broncode wordt bedoeld). Het is belangijk om te weten dat de GPL niet geaccepteerd kan worden, maar dat het meer een feit is dat Joomla! onder de GPL wordt uitgebracht. Los van de GPL licentie wordt Joomla! ook uitgebracht onder een copyright van OpenSourceMatters (een juridische entiteit die het open-source karakter van Joomla! probeert te bewaren). Het gebruik van GPL software zal nooit inbreuk maken op de licentie. Alleen het aanpassen of toepassen van de broncode brengt een acceptatie van de GPL met zich mee. Sommige derde-partij Joomla! extensies worden uitgebracht onder een andere licentie dan de GPL. Er zijn zelfs extensies die hun PHP code alleen in versleutelde vorm aanleveren. In feite is dit juridisch gezien niet correct: Een uitbreiding op een GPL product moet altijd opnieuw onder de GPL worden uitgebracht. Het niet-meeleveren van de broncode kan gezien worden als een grove schending van deze regels. Vooralsnog neemt het Joomla! project hier echter geen juridische stappen voor. 6

Webserver Behandelt requests van browser Statische content Statische HTML CSS JavaScript Afbeeldingen Dynamische content PHP interpreter 13 Het is handig om te weten hoe een browser eigenlijk werkt. De browser is een programma dat op een computer geïnstalleerd kan worden en het een gebruiker mogelijk maakt om webpagina's te bezoeken. Hierom wordt een browser in het Engels ook wel een user agent genoemd. De browser download een webpagina door een zogenaamd HTTP-Request naar een webserver te sturen. HTTP staat voor HyperText Transfer Protocol en is het communicatieprotocol waarmee webpagina's over het Internet worden gestuurd. De webserver ziet deze aanvraag binnenkomen en bekijkt welk HTML-document gegenereerd moet worden. In het geval van Joomla! worden hierbij verschillende PHP-scripts gebruikt om de uiteindelijke pagina te genereren. De HTML-pagina wordt vervolgens via een HTTP-Reply door de webserver teruggestuurd naar de browser. Dit antwoord bestaat uit een aantal HTTP-headers die extra informatie geven over de HTML-pagina en de daadwerkelijke HTML-pagina zelf. De browser laadt de HTML-pagina in het geheugen van de computer en gaat vervolgens bekijken op welke manier de manier correct weergegeven moet worden op het beeldscherm. Dit proces heet 'renderen'. Bij het renderen maakt de browser gebruik van een eigen interpretatie van de XHTML-standaard. Des te meer deze standaard overeenkomt met de standaard zoals die gedefinieerd is door W3C, des te meer een pagina W3C-compliant is. Vaak zitten in een HTML-document ook verwijzingen naar andere bestanden zoals CSS-bestanden, JavaScript-bestanden of afbeeldingen. De browser stuurt voor ieder van deze bestanden een nieuw HTTP-Request naar de webserver, die vervolgens weer door de webserver wordt beantwoord met een HTTP-Reply. Op deze manier laadt de browser alle bronnen van de webpagina in het geheugen. Het resultaat van het renderen wordt hierna op het beeldscherm getoond. 13

UNIX permissies (1) Toegang voor: eigenaar ( user ) groep ( group ) de rest van de wereld ( other ) Permissies: read write execute 18 Is de webserver gebaseerd op UNIX (ofwel BSD ofwel Linux), dan is het handig iets meer te weten van UNIX permissies. Bij UNIX besturingssystemen wordt er gebruik gemaakt van een simpel authorisatie-systeem dat gebaseerd is op drie verschillende soorten gebruikers: Een bestand heeft altijd een eigenaar en een groep. De eigenaar is een UNIX gebruiker, en een UNIX gebruiker kan altijd lid zijn van meerdere groepen. Een groep bevat een of meerdere UNIX gebruikers, en door middel van de groepstoegang kunnen dus permissies voor meerdere gebruikers uitgedeeld worden. Wordt een permissie aan alle gebruikers op het UNIX systeem gegeven dan wordt hiervoor het derde niveau other gebruikt. Per niveau kan worden bepaald of een bestand of folder gelezen kan worden ( read ), beschreven kan worden ( write ), of uitgevoerd kan worden ( execute ). Zo kan worden aangegeven dat een bepaalde groep schrijfrechten heeft op een bestand, maar dat de rest van de wereld ( other ) het bestand alleen kan lezen. Er zijn wat zaken waar op gelet moet worden: Een bestand of folder kan alleen maar 1 groep hebben. Moeten verschillende gebruikers dezelfde rechten krijgen op een bestand, zonder dat dit geldt voor alle gebruikers, dan moeten deze gebruikers eerst toegevoegd worden aan de desbetreffende groep. Een folder moet leesbaar zijn om een lijst te tonen van alle bestanden en subfolders. Om naar die folder toe te gaan, moet de folder executable zijn. 18

Algemene instellingen: tabblad Website (2) META data in <head> HTML <title> tag toont altijd een dynamische artikel De titel metatag is niet hetzelfde, maar een extra <meta> tag Metatag met auteur Administrator is zinloos SEO instellingen Zoekmachine vriendelijke URLs (Search Engine Friendly / SEF) Apache mod_rewrite en het.htaccess bestand Achtervoegsel (normaliter.html ) Jira ICT - Joomla! basisopleiding 39 Een webpagina is opgebouwd uit HTML-code en wordt daarom ook wel een HTMLdocument genoemd. Een HTML-document bestaat altijd uit twee delen: Een header (omsloten door de begintag <head> en de eindtag </head>) en een body (omsloten door de begintag <body> en de eindtag </body>). Veel HTML-tags zijn gedefinieerd in de Joomla! template, maar is ook een groot deel tags die dynamisch door de verschillende onderdelen van Joomla! worden gegenereerd. Binnen de HTML-header genereert Joomla! een aantal links naar externe JavaScript of CSS bestanden, maar er worden ook META-tags gedefinieerd die zoekmachines meer informatie over de website geven. Binnen de Algemene Instellingen kunnen een aantal instellingen hiervoor worden aangepast. Zo is er de mogelijkheid om een extra META-tag te genereren met de titel van het artikel. Dit is feitelijk dubbelop want de titel wordt al weergegeven in de <title> tag. Het kan iedergeval geen kwaad en enkele zoekmachines zullen deze instelling waarderen. Er is ook de mogelijkheid om een META-tag op te nemen met de naam van de auteur. Als verschillende auteurs werkzaam zijn binnen de Joomla! website, dan kan dit handig zijn. Is Administrator de enige die teksten schrijft, dan is deze instelling natuurlijk overbodig. Een belangrijke instelling is het in- of uitschakelen van zoekmachine vriendelijke URLs. Om dit goed te laten werken is wel de zogenaamde mod_rewrite module binnen Apache nodig. Hierover volgt later meer.wordt er gekozen om het achtervoegsel te activeren, dan worden de meeste URLs afgesloten met de extensie.html - iets waarover smaken verschillen, maar wat iedergeval niet van belang is voor het populair maken van de website onder zoekmachines. 39

Authenticatie MySQL tabel jos_users LDAP / Active Directory GMail account OpenID account 47 Wanneer een gebruiker inlogt met een gebruikersnaam en wachtwoord, moet Joomla! allereerst bekijken of deze logingegevens bekend zijn in het systeem. Dit proces heet authenticatie. Traditioneel was authenticatie alleen mogelijk met behulp van de MySQL database-tabel jos_users, maar Joomla! 1.5 introduceert ook andere mogelijkheden voor authenticatie. Deze functionaliteit wordt aangeboden in de vorm van Authenticatie Plugins. Tijdens het loginproces wordt ieder van deze plugins geactiveerd om authenticatie uit te voeren. Mislukt authenticatie bij de een, dan wordt authenticatie met de volgende plugin geprobeerd. Dankzij het nieuwe mechanisme van authenticatie is het mogelijk om Joomla! te koppelen aan bijvoorbeeld Microsoft Active Directory zoals dat vaker wordt gebruikt binnen bedrijfsnetwerken. Microsoft Active Directory is gebaseerd op het Lightweight Directory Access Protocol (LDAP) en dankzij dit feit is het mogelijk een open-source product als Joomla! te koppelen aan de closed-source architectuur van Active Directory. Het resultaat is dat gebruikers met hun Windows gebruikersnaam en wachtwoord zich aan kunnen melden op Joomla!. De gebruiker hoeft hierbij niet van tevoren in Joomla! te bestaan zodra een Windows gebruiker zich aanmeldt, wordt er een pseudo-account in Joomla! aangemaakt zonder wachtwoord. Aan dit pseudoaccount kunnen hierna rechten worden gegeven om te bepalen wat de gebruiker wel en niet mag binnen Joomla! (de authorisatie). Hetzelfde mechanisme werkt ook met GMail en OpenID. Beiden zijn authenticatie mechanismen op het web gebaseerd. Het voordeel hierbij is dat er een enkel account kan worden beheerd waarmee vervolgens ingelogd kan worden op meerdere systemen zoals Joomla!. Op deze manier hoeft een wachtwoord bijvoorbeeld maar 1 keer gewijzigd te worden. Op het Internet zijn ook andere Authenticatie Plugins beschikbaar zoals voor Second Life en RADIUS. Los hiervan zijn er ook verschillende integraties mogelijk met andere webapplicaties zoals Moodle, Gallery2 en phpbb. 47

Zelf een split menu maken (1) 57 Een veelgebruikte feature in professionele templates is de split menu functionaliteit. Hiermee kan een enkel menu verdeeld worden over meerdere modulen, zodat menuitems op het hoogste niveau op een andere manier vormgegeven kunnen worden dan op onderliggende niveaus. Split menu functionaliteit is vaak terug te zien bij een horizontaal menu bovenin waarbij de submenu-items worden getoond in een menu links of rechts. De schermvoorbeeld laat zien dat het menu Main Menu links de top level menuitems van een menu bevat terwijl de submenu-items in het menu Submenu rechts worden getoond. Aan beide menu's wordt een andere opmaak meegegeven. Dit zou niet mogelijk zijn bij een menu binnen een enkele module. 57

Review: MosetsTree 64 Op de website extensions.joomla.org staat het component MosetsTree vermeld. Dit component stelt je in staat een boom-structuur op te bouwen van verschillende producten. Het component is allereerst ontworpen voor het bouwen van een real estate website (een plek waar vastgoed - huizen, apartementen - kunnen worden aangeboden door makelaars en eigenaren), maar het component is ook geschikt voor het opbouwen van andere geavanceerde lijsten. Ten eerste moet worden opgemerkt dat het component alleen tegen betaling beschikbaar is. Of u hier geld voor over is natuurlijk een eerste vraag, maar een belangrijke tweede vraag is of de PHP broncode aan te passen is: Misschien heeft u hier in eerste instantie geen behoefte aan, maar het kan zijn dat u tegen tekortkomingen aan loopt welke alleen opgelost kunnen worden door de broncode aan te passen. Sommige commerciele extensies versleutelen hun PHP broncode via een tools als ioncube, wat betekent dat de broncode niet aan te passen is. Aan het eind van deze cursus wordt meer aandacht besteedt aan PHP encryptie. In het geval van Mosets Tree is de broncode niet versleuteld. Verder is te zien dat het component recentelijk is aangepast. Dit is een positief teken. Helaas wordt alleen Joomla! 1.0 officieel ondersteund. Dit betekent direct dat het component alleen onder Joomla! 1.5 draait met behulp van de System Legacy plugin, of juist helemaal niet. Het beste hierbij is om op zoek te gaan (via bijvoorbeeld Google Search) of er gebruikers zijn geweest die het component succesvol draaiend hebben gekregen onder Joomla! 1.5. Uit ervaring weet Jira dat Mosets Tree wel degelijk draait onder Joomla! 1.5 en dat de makers hard bezig zijn om officiele support voor Joomla! 1.5 toe te voegen. Verder is het opvallend dat de rating tegenvalt. Het is verstandig om de User Reviews onder de samenvatting door te lezen om te achterhalen op welke punten het component tegenvalt. 64

SQL (Structured Query Language) Query statements: SELECT INSERT UPDATE DELETE Selectors: WHERE HAVING ORDER BY / GROUP BY JOIN 87 MySQL is een open-source variant van SQL. SQL staat voor Structured Query Language en is algemene taal waarmee informatie binnen een database gemanipuleerd kan worden. Terwijl de database structuur van MySQL sterk verschilt van andere databases als Oracle, Microsoft SQL of PostgreSQL, is de taal die gebruikt wordt bij het maken van database queries nagenoeg gelijk. Met SQL is het mogelijk om data op te halen via een SELECT-statement, nieuwe data toe te voegen via INSERT, bestaande data aan te passen via UPDATE of te verwijderen via DELETE. De grammatica van SQL reikt van vrij simpel (zoals een query als SELECT * FROM jos_users waarmee alle data uit de tabel jos_users worden opgehaald) tot erg complex. De complexiteit van queries wordt voornamelijk bepaald door de speciale voorwaarden die via selectors aan een query wordt meegegeven. De meest bekende selector is WHERE, waarmee bijvoorbeeld alle gebruikers uit de tabel jos_users opgehaald kunnen worden die het woord piet in hun naam hebben. Complexer zijn de statements waarbij meerdere queries worden gecombineerd in een enkele query. Dit gebeurt via een SELECT-statement binnen een SELECT-statement of door middel van een JOIN. 87

JoomlAtWork SEF Patch Patch van Joomla! core Eigen HTML titel in artikel Extra META tags in Global Configuration 99 Vanaf de website www.joomlatwork.com is de zogenaamde JoomlAtWork SEF Patch te downloaden. Dit ZIP bestand kan uitgepakt worden in de root van de Joomla! installatie, en zorgt voor een aantal verbeteringen op het gebied van SEO. Zo is het mogelijk om na het patchen van Joomla! per artikel een eigen HTML titel mee te geven. Dit is een enorm voordeel ten opzichte van de standaard functionaliteit waarbij de HTML titel altijd gelijk is aan de titel van het artikel of het component dat op dat moment wordt getoond. Ook voegt de SEF patch een aantal META tags toe die te configureren zijn vanuit de Global Configuration. Het nadeel van de SEF patch is dat er systeembestanden van Joomla! worden overschreven. Bij iedere upgrade van Joomla! moet ook de bijbehorende SEF patch achteraf worden geinstalleerd. De planning is om deze SEF patch vanaf Joomla! 1.6 onderdeel te laten zijn van de core. 99

Joomla! mappenstructuur /administrator /cache /components /images /includes /language /libraries /logs /media /modules /plugins /templates /tmp /xmlrpc Joomla! Administrator Cache bestanden om de performance te verbeteren Joomla! en derde-partij component Afbeeldingen voor componenten (bijv. artikelen) Joomla! systeembestanden Taalbestanden o.a. Joomla! Framework Logbestanden Documenten en andere niet-afbeeldingen Joomla! Modules Joomla! Plugins (mambots) Joomla! Templates Tijdelijke bestanden (bijv. installatiebestanden) XML-RPC server en client 110 De mappen van Joomla! worden voor verschillende doeleinden gebruikt. Zo zijn er veel mappen die intern door Joomla! zelf worden gebruikt (zoals /includes en /libraries). Een gebruiker heeft meestal alleen te maken met de map /images, waarin afbeeldingen worden opgeslagen en welke wordt beheerd via de Media Manager, en de map /media waarin andere documenten (zoals PDF of Microsoft Word documenten) in opgeslagen kunnen worden. Een Joomla! beheerder kan modules, plugins, templates, taalbestanden en componenten installeren waarbij de gelijkgenaamde mappen worden gebruikt. De juiste mappen kennen kan handig zijn als er handmatig bestanden weggegooid moeten worden, bijvoorbeeld als een component niet volledig via de Joomla! Administrator verwijderd kan worden. Let er wel op dat componenten vaak gebruik maken van eigen MySQL tabellen. Plugins, componenten en modules kunnen niet verwijderd worden door alleen de bestanden weg te gooien: In de Joomla! database worden deze extensies in speciale tabellen geregistreerd. Bij templates en taalbestanden is dit niet het geval, deze kunnen verwijderd worden door de bestanden weg te halen. 110