Verslag JUG Utrecht 14 januari 2019 – Presentatie “Joomla! API / PHP Essentials” door Roland Dalmulder
Nieuws
- Er zijn twee nieuwe deelnemers dus iedereen stelt zich even kort voor.
- Vandaag zal Roland Dalmulder een presentatie verzorgen over PHP Essentials, volgende bijeenkomst zal Patrick Smits een tweede deel van zijn presentatie over Joomla 3.9 en 4.0 geven. René Kreijveld en Jeroen Molensloot hebben ook toegezegd binnenkort een presentatie te komen geven.
- Het ziet ernaar uit dat Joomla 4 niet eerder dan het 4e kwartaal van 2019 zal uitkomen.
- Er zal een bijeenkomst in Duitsland plaatsvinden waar studenten in 2 weken Joomla leren, bugs oplossen, enzovoort. Zij hebben ook iets gebouwd waarmee gecheckt kan worden of extensies update-proof zijn. Deze haalt van de update-server informatie voor welke versie de extensie geschikt is. Roland gaat naar deze bijeenkomst.
Presentatie Roland Dalmulder: Joomla! API / PHP Essentials
Roland geeft aan dat hij meer met programmeren bezig is, maar hij komt veel onderdelen van Joomla tegen bij het oplossen van bugs. Deze presentatie is niet bedoeld om te leren programmeren, maar inzicht te krijgen in het knippen en plakken van stukken code om zo dingen te bereiken in Joomla.
API (Application Programming Interface) is een verzameling definities om programma’s te laten communiceren.
HTML Helper is de nieuwe naam van de oude JHTML en hiermee kan je functionaliteiten toevoegen via /Joomla/CMS/HTMLHelper::<naam> of use Joomla/CMS/HTML/HTMLHelper; HTMLHelper::<naam>. Dit zijn naamspaces om te definiëren.
Wil je API gebruiken voor CSS, Javascript en plaatjes gebruik dan de locatie /media/extensie/type/bestand. Gebruik altijd deze locatie, zowel voor gecomprimeerde als niet-gecomprimeerde bestanden.
Stylesheets:
HTMLHelper::stylesheet(‘com_helloworld/helloworld.css’, array('version' => 'auto', 'relative' => true) );
Voor scripts en images geldt hetzelfde, met dien verstande dat “stylesheet” gewijzigd wordt in “script” of “image”. Bij images is het verplicht “echo” ervoor te zetten en dient er alt-tekst toegevoegd te worden. De code is dan: HTMLHelper::image(‘com_helloworld/helloworld.png', 'Hello world', null, true); en de locatie: /media/com_helloworld/images/helloworld.png.
De meeste hosters met SSL hebben HTTP-Z-protocol zodat er meerdere plaatjes tegelijk naar de browser gestuurd worden.
Er zijn meer voorbeelden van de HTML Helper Class dan alleen mediabeheer. Andere opties zijn bijv. een calendar of Iframe in /libraries/CMS/HTML/.
Layouts:
Layouts gebruik je voor stukjes code die vaker voorkomen in /layouts/joomla/. Binnen componenten kan dit ook voorkomen, dan zit het in de componenten-map. Alle data staat in $displayData.
Binnen de layouts kunnen er ook nog sub-layouts bestaan.
Modules:
Je kan je eigen modules en posities maken en ze tonen. ModuleHelper is bedoeld om snel een module toe te voegen die niet een onderdeel van je template hoeft te zijn.
Het is beter de compressie aan te zetten en het samenvoegen van Javascript-bestanden maakt het sneller.
Met Key behavior.core en Key jquery.framework kan je de volgorde bepalen van het laden van de bestanden.
PHP Storm is een goede editor om code in te voeren en te controleren.
De slides van de presentatie (met voorbeelden van de code) staat online op: https://www.slideshare.net/RolandDalmulder/joomla-api-php-essentials
Dokter Joomla
Gevraagd wordt of het mogelijk is (er een extensie bestaat) van een winkelwagen die, zonder de aanwezigheid van een shop, artikelen in de winkelwagen kan zetten. Dit bijv. vanuit Mosets Tree. Dat lijkt lastig en is verder niet bekend bij de deelnemers.
Er wordt gevraagd hoe lang het in Google duurt voordat je website vindbaar is op de zoektermen? Het toevoegen van een sitemap helpt aanzienlijk. Met www.webtexttool.com kan je de kwaliteit van je content controleren.