Emiel Kwakkel presenteert 'Zelf modules maken'

Er was een man (m/v) of vijftien aanwezig op deze avond.

Komende bijeenkomsten

  • 10 augustus: Dokter Joomla XXL
  • 14 september: onderwerp nog niet bekend, maar kan zijn: automatisch factureren vanuit je website, met behulp van formulieren
  • 10 oktober: Pizza, Bugs & Fun
  • 12 oktober: onderwerp nog niet bekend

Joomla nieuws

Laatste versies

  • Joomla: 1.5.26 en 2.5.28, niet meer gebruiken voor nieuwe versies. De huidige versie is 3.4.3.
  • Akeeba Backup 4.2.4
  • Admin Tools 3.6.1
  • JCE 2.5.2

11 juli was er Pizza, Bugs & Fun in Nijmegen. Rob is erheen geweest. Het was bij Peter Martin in het bedrijfsverzamelpand, er waren ongeveer 12 mensen. Een deel daarvan heeft vertaald, de rest heeft zich bezig gehouden met bugs en patches testen. Er zijn veel bugs opgepakt, nagekeken en teruggestuurd als ze onvolledig waren (als de melder/patch maker onvoldoende informatie heeft gegeven om het probleem te reproduceren).

Op zaterdag 10 oktober is er dus een Pizza, Bugs & Fun bij Zpot De Meern. Wij rekenen op een grote opkomst!

Presentatie Emiel: Versimpel beheer met Joomla modules

Emiel Kwakkel werkt voor Trade Point als frontend developer. Hij begon op de middelbare school met het bouwen van zijn eigen CMS, maar toen hij Mambo ontdekte begreep hij €˜dat het complete onzin is om je eigen CMS te gaan zitten maken€™. Op zijn werk houdt Emiel zich bezig met User Experience, Front-end (websites bouwen), Interaction Design (zorgen dat je het zo vormgeeft dat het voor de gebruiker zo natuurlijk mogelijk overkomt) en Visual Design.

Emiel Kwakkel presenteert 'Zelf modules maken'

Vanavond legt Emiel uit hoe je zelf een module kunt maken.

Modules zijn lichtgewicht flexibele extensies. De login module is er een voorbeeld van. Je hebt ze standalone (geen data van bijvoorbeeld een component nodig) of specifiek gelinkt aan een component (bijvoorbeeld lijstjes met informatie uit een component).

Iedereen is wel bekend met de custom HTML module. Daarmee kun je, eventueel met gebruik van Sourcerer om code niet verloren te laten gaan bij opslaan, functionaliteit toevoegen in de backend. Maar een van de doelen van een CMS is juist de scheiding tussen content en functionaliteit. Dus is het handiger en gebruiksvriendelijker als de gebruiker gewoon een paar veldjes kan in vullen om te genereren wat hij wil zien.

De presentatie van Emiel, plus de link naar de voorbeeldmodule, staat hier: http://www.slideshare.net/EmielKwakkel/maak-je-eigen-joomla-module-50500505

Hoe zit de module in elkaar

Modules maken gebruik van een combinatie van technieken: XML + HTML + PHP

XML is een set van gestructureerde gegevens die de module beschrijft. HTML bouwt de webpagina op. PHP slaat variabelen op en geeft ze door.

XML en HTML bevatten tags, elementen en attributen.

PHP is een programmeertaal die wordt uitgevoerd op de server. Het eindresultaat van de berekeningen die uitgevoerd zijn op de server worden getoond aan de gebruiker. Tip: gebruik altijd commentaar voor jezelf, want over een jaar weet je niet meer wat wat doet.

Variabelen krijgen een dollarteken. Een zinnetje heet een string, een enkel element heet een integer. Door echo€ voor een string te zetten weet PHP: alles wat er in die string zit moet ik weergeven. Je kunt PHP gebruiken om iets te berekenen. Of iets wel of niet te tonen (een ja/nee optie).

Mapstructuur

Als je een random module opent zie je altijd de volgende bestanden:

Mod_naam

  • Helper.php
  • Index.html
  • Mod_naam.php
  • Mod_naam.xml
  • Tmpl
    • Default.php
    • Index.html

Mod_naam.xml: beschrijft wat er in de module staat, welke bestanden erin zitten, wie de maker is etc. Je kunt er een standaardbestandje voor kopiëren en dan je eigen gegevens invullen.

Mod_naam.php: als je een aantal velden hebt aangemaakt, wil je daar iets mee kunnen doen. De ingevulde informatie moet doorgestuurd worden naar de template. In het php bestand vertel je wat opgehaald moet worden en waar het heen moet.

In de template map staat de standaard view: het standaard stukje HTML waarmee je de pagina opbouwt.

Helper.php staat er standaard in. Het gebruik is optioneel. Je gebruikt hem om verbinding te maken met de database en code te scheiden van de view.

Index.html zijn standaard HTML-bestanden met een heel klein beetje HTML erin.

Hoe werkt het?

Joomla ziet een mapje staan: mod_naam, en gaat op zoek naar informatie in mod_naam.xml. Op het moment dat iemand iets doet met de module, wordt mod_naam.php geactiveerd, en eventueel helper.php.

Default.php bepaalt wat de gebruiker te zien krijgt: daar staat HTML in met stukjes PHP tussendoor.

XML bestand begint met een standaard stukje code (

Hier staat: maak een tekstalinea, vet, laat de datum van het event zien.

Tekst kan er ook bij:

 

Hier staat: maak een tekstalinea, vet, laat zien "€œHet event start"€ en daarna de datum van het event.

Die punt is nodig omdat echo stopt na het tweede aanhalingsteken; hiermee zeg je dat hij verder moet gaan.

Om php iets te laten checken dat niet leeg is kun je != gebruiken. Handig.

Tip: zet in de administrator bij de algemene instellingen -€“> server -€“> error reporting op development (alleen tijdens het ontwikkelen, daarna natuurlijk niet meer he). Dan krijg je bij een fout geen witte pagina maar een melding waaraan je kunt zien waar de fout zit.

Als je module klaar is kun je het mapje met de bestanden in Joomla zetten. Om de module in de lijst met modules te laten verschijnen moet je eerst zeggen dat hij bestaat. Dat doe je met extensies -> ontdekken. Je kunt het mapje ook zippen en de standaard installer gebruiken, dan hoeft die ontdekken-stap niet.

Aanvulling van Martijn:

Naast de door Emiel gegeven presentatie is er ook inmiddels op docs.joomla.org wat meer naar het Nederlands vertaalde informatie over het maken van modules o.a. staat hier aanvullend iets over het installatie-script en hoe je een update-server kunt gebruiken

Hoe een eenvoudige module te maken: https://docs.joomla.org/J3.x:Creating_a_simple_module/nl

Reageer

1000 Resterende tekens