De stichter van Joomlatools gaf ons een kijk in de development wereld van Joomla extensies en hij presenteerde ook 4 extensies.

Aanwezigen: Karel Mertens, Koen Rottier, Peter Loozen, Caroline Bultinck, Luc Ongena , Rob Van Bezouwen , Jurgen Gaeremyn, Marie Thérèse Willemsen, Gerd Willemen, Piet Verhoeve, Jean-Francois Misonne, Luc De Meester, Alex De Winter (verslag), Manu Ampe (verslag), Lien (met Johan Janssens).

Gastspreker: Johan Janssens, zaakvoerder en ontwikkelaar van Joomlatools

Voorstelling

Zoals blijkt uit een foto van 2005 is Johan Janssens reeds lang actief in de Joomla! community. Hij heeft veel geprogrammeerd voor de core van Joomla!, 40% van de huidige code is nog van hem afkomstig. Zo komt bijvoorbeeld de mogelijkheid om templates te overriden van hem.

Joomlatools doet alles voor klanten en dit gaat van site ontwerpen tot het eigen hosten. Johan blijft nog steeds gefascineerd in "hoe maken we Joomla beter" terwijl andere extensie-bouwers enkel gefocust zijn op "Wat biedt Joomla niet aan, zodat wij dat kunnen leveren".

A. Joomla(tools) Development

De Joomlatools Developer Zone (Open Source!) , www.joomlatools.com/developer/ , biedt eenieder een framework aan waarin het gemakkelijker ontwikkelen is om bijvoorbeeld extensies mee te bouwen.
Er is ook het JoomlaTools Platform (voor distributie). https://www.joomlatools.com/developer/platform/

In Joomla zijn er voor extensies geen strikte regels voor back-office. Johan heeft daar goed over nagedacht en een zeer intuïtieve UI voor uitgewerkt die je als extensie-bouwer kunt gebruiken: https://www.joomlatools.com/developer/ui/
Deze kit is op basis van HTML. Zo koppel je het design los van de functionaliteit zoals het hoort in het Model View Controler concept.

Het door zijn team ontwikkeld framework biedt voor ontwikkelaars van Joomla! extensies een goede combinatie van flexibiliteit, herbruikbaarheid en uitbreidbaarheid. Wat wil je meer als ontwikkelaar? Een debugger? JSON of REST API? Gemakkelijkere templating? Het is allemaal voorzien: https://www.joomlatools.com/developer/framework/  
Men kan dit framework gratis downloaden en gebruiken. Om de professionaliteit nog even te benadrukken: Johan volgt de 12 Factor App methodologie ( https://www.slideshare.net/mKrishnaKumar1/12-factorappanintroduction  https://www.joomlatools.com/developer/platform/12-factor-app/ ).

De gratis development tools van Joomlatools bevatten Composer, Console en Vagrant. 

Composer dient om joomla)extensies te installeren via command lines.Op eender welke server. Het is een package manager voor PHP. PHP ontwikkelaars kennen zeker Composer om de nodige libraries voor je programma te verzamelen. Janssens heeft een gelijkaardig app gemaakt voor Joomla! extensies, de  Joomlatools Composer ( zie op Github: https://github.com/joomlatools/joomlatools-composer ).

Console dient om joomlasites te managen.

Vagrant is een lokale ontwikkelingsomgeving. Hier wordt alles in samengebracht in een virtuele omgeving; Vagrant bevat dus Composer, de Console, en nog veel meer (dus Vagrant installeren , lokaal, volstaat; daarmee heb je alles).
De werkomgeving is een virtuele machine Virtualbox waarin hij dan Vagrant gebruikt om de uitgebreide configuratie van de ontwikkelomgeving te vereenvoudigen. Als je site op Siteground staat, dan kan je zelfs je die virtualisatie-box zo tweaken dat die gelijkaardig is aan de productieserver van de internetprovider. Zend is default web server.
In de Vagrant die Joomlatools je levert, heb je heel specifieke command-lines ter beschikking, typisch voor Joomla, functionaliteiten die je niet hebt bij bv. WAMP, XAMP, etc.. Zo kan je met een minimum aan code (vaak maar 1 command-line voor een hele operatie) een hele site creëren. Je kan hiervoor de Joomla-versie kiezen (inclusief beta-versies) alsook de PHP-versie, je kan verschillende PHP-versies testen op elk van die sites (per folder aparte boxes opzetten, met bv. elk een eigen PHP-versie). Je kan met meerdere boxen tegelijkertijd werken.Profiling met XDebug om te ontdekken welke functie voor de vertraging zorgt.
Vagrant Share laat toe om je virtuele box te delen met iemand anders (remote), die dan je site kan zien of eraan kan werken. Zo’n share blijft dan typisch 1 uur actief.

Johan toont hoe hij, met weinig moeite, een virtuele development omgeving opzet waarin hij dan eendere welke Joomla-versie installeert.

Bekijk een voorstelling op Slideshare: Joomla in a box https://www.slideshare.net/joomlatools/joomla-in-a-box (een voorstelling die hij ook in Joomla!Days 2016 in China voorgesteld heeft: https://www.timble.net/talks/2016/07/joomla-in-a-box-joomla-meets-vagrant/ ).

Er zijn ook extra tools bijgeleverd waar we ons in dit verslag beperken tot het vermelden van 4:

  • Met Xdebug kan je profilen.
  • Met Z-Ray van Zend (meer info op http://www.zend.com/en/products/server/z-ray) (te vergelijken met een X-ray doorlichting) kan je zien welke Joomla-extensie hoeveel tijd inneemt (is wel enkel beschikbaar in commerciële versie).
  • Mailcatcher laat zien of je een email verstuurd hebt. Vangt de emails op (draait op server-niveau, dus wel degelijk alles wordt gecatched). Zo kan je testen zonder dat er emails verstuurd worden of die mails effectief bij de geadresseerde toekomen.
  • PimpMyLog laat toe om in real time de logs na te pluizen.


Verder levert Joomlatools eveneens enterprise consultingdiensten: https://www.joomlatools.com/enterprise/

B. Joomlatools Extensies

Volgende 4 extensies zijn de bekendste van Joomlatools:

  1. TEXTman: via front-end dashboard artikels en menu-items zien en editeren. Bv. press-releases.
  2. DOCMan: alles met document-management inclusief workflow en permissies.
  3. FILEMan: resizen a.h.v. medium. Als het ware een uitgebouwde Media Manager (auto-resizing support, dus maximum afmeti ng per medium, thumbnails maken.
  4. LOGMan: audit-tool. logt wat er in je Joomla-site gebeurt, wat de gebruikers doen (in back-office). Wat heeft klant bv. net gedaan als er iest mis is, wanneer zijn klanten ingelogd, etc. . 110 User-acties. Kan ook gebruikt worden door bv. site-beheerders als bewijs wat ze wanneer gedaan hebben (bijsluiten bij factuur). Integraties met eigen en andere componenten. 

TEXTMan

Een tekstverwerker voor artikels die veel simpeler is én in de front-end werkt.
Veel functionaliteiten die je met WordPress sowieso hebt, zitten hier ook in. Zo heeft TEXTman ook de werkbalk bovenaan die het werk voor de publiceerder op de front-end vergemakkelijkt.
TEXTman is gebaseerd op CKEditor waardoor de daarin voorzien formatteer-mogelijkheden ter beschikking staan.
Er is sowieso een auto-save en preview functie voorzien, en een Sticky Toolbar.
Het overzicht van artikels kan je filteren zodat je enkel jouw artikels ziet, de meest recent gecreëerde op gewijzigde, of op de meest populaire.
Afbeeldingen kun je met drag&drop in je tekst slepen.
Als je ook FileMan installeert dan zullen de afbeeldingen automatisch resizen.
Ingetypte URLs worden automatisch in klikbare links omgezet.

Het ondersteunt Open Graph (voor Facebook) en TwitterCards. Vanuit TEXTman kan je de meta-descriptie aanpassen.

Vanuit TEXTman kan je een categorie creëren waartoe het artikel moet behoren.

Indien je ook FILEman geïnstalleerd hebt dan kan je bestanden als attachment bijvoegen, dan zie je die onderaan het artikel (in een mini-galerij) of als een lijstje. Deze attachment-functionaliteit werkt ook in andere teksteditors.

Meer weten op https://www.joomlatools.com/extensions/textman/

LOGman

Deze extensie laat toe om na te gaan wat de gebruikers doen op je back-office. Van zodra een extensie gebruik maakt van het Joomla! Event-systeem kan LOGman elke activiteit (creëren, wijzigen, verwijderen, installeren, …) in die extensie traceren. Logt zo dus ook activiteiten uitgevoerd in K2, ZOO Kunena. LOGman werkt niet met Hikashop omdat deze het Event-systeem van Joomla! niet gebruikt. In de documentatie van LOGman kan je zien welke extensies ze wel kunnen traceren. Deze lijst wordt steeds uitgebreid, zo staat nu Virtuemart op de to-do-lijst.

We vermelden enkele bijkomende opties:

  • Laat dus ook toe om het inloggen van gebruikers vast te leggen
  • Activiteiten van gast-gebruikers kunnen ook gelogd worden
  • Behoudbaarheid van de logs via periode of datum
  • Exporteren van de logs naar CSV-bestand

De interface is intuïtiever dan we gewoon zijn in Joomla. Er zijn iconen per type log wat maakt dat je sneller (intuïtief) ziet waarover de log gaat.
In de front-end kan je

  • alle activiteiten bekijken of enkel die van jou
  • filteren op Gebruiker, Group, Component en op datum

Meer weten? https://www.joomlatools.com/extensions/logman/

DOCman

DOCman is een zeer uitgebreide extensie voor document- en download-beheer. Het biedt meer souplesse functionaliteit aan dan andere gelijkaardige extensies, zelfs wat betreft S.E.O. (van de bestanden) - aandacht voor microdata - en voor jouw Google Analytics is er automatische event-tracker mogelijk. Alle beheer is ook via de front-end mogelijk.
De gebruikers kunnen al of niet

  • hun documenten editeren
  • verwijderen
  • tags aangeven

Je kan in plaats van het bestand zelf in te geven, de URL naar het bestand op de Cloud Drive gebruiken. Bij het tonen van het bestand, wordt dat op de achtergrond gedownload zodat de gebruiker niet kan weten dat het bestand van een Cloud Drive komt.

Na uploaden van bestanden kan je vragen om als titels de bestandsnaam te nemen (waarbij enige opkuis van speciale karakters gebeurt), om tags bij te voegen, ….

Je kan een maximum bestandslimiet instellen die niet gelimiteerd wordt door Joomla!-settings. Deze extensie kan grote bestanden aan omdat ze de bestanden in stukjes behandelt (dus ook audio- en videostreaming zijn daardoor mogelijk). Met het systeem kan je werkelijk ongelimiteerd uploaden.

Als je bestanden via FTP naar je server uploadt, dan kan je er zo voor zorgen dat die automatisch opgenomen worden in DOCman. De regels hiervoor moet je wel op voorhand specificeren zodat de bestanden de juiste categorie, permissies, … hebben.

Voorstelling van bestanden in front-end:

  • Voorstellingswijze of menu-type:
    • Hiërarchisch (Tabel, List, …)
    • Boomlijst
    • Platte lijst
    • 1 document
  • Upload bestanden
  • Welke bestanden mogen getoond worden: filteren op Category, Tags en/of Owner
  • Enkel documenten van de ingelogde gebruiker tonen
  • Meerdere sorteringen mogelijk

Voor toegangsrechten toe te kennen is DOCman iets ruimer opgevat dan we gewoon zijn in Joomla! Je kan de toegang toekennen aan de door Joomla voorziene toegangsniveaus, maar daarnaast kan je ook kiezen om ze aan de gebruikersgroepen toe te kennen (die je zelf beheert en gemakkelijk te beheren zijn). In de Access-rights is er een extra permissie bij: de “Downloads"-permissie.

Mocht je willen migreren, dan is dat met DOCman geen probleem: er is een exportmodus voor DOCman voorzien. Na import in de nieuwe site zal alles werken inclusief je permissies (ongeacht de versie van Joomla).

Vragen van Michel Baghuis aan Johan:

  1. Kan je docman gebruiken zoals Google-docs (wijzigingen door meerdere gebruikers)?
    Antwoord van Johan: niet op die manier. DOCman is enkel documentmanager, geen tool om collaboratief te werken
  2. Kan je docman gebruiken in combinatie met Google-docs?
    Antwoord: ja. Je kan de URLs gebruiken van die documenten. Het wordt ook nog een connect-service
  3. Kan je gebruikers documenten laten indienen rond specifieke onderwerpen en deze laten zien op specifieke pagina's?
    Antwoord: ja. Submit menu-item gebruiken. Je kan uploaden, linken en beschrijving meegeven. Kan je laten terechtkomen in categorie ‘niet gepubliceerd’, en dan is er de Notify-plugin (net als vele plugins gratis te downloaden). Laat bv. toe ‘als er een document wordt toegeveoegd, stuur dan een e-mail’.   

Meer details: https://www.joomlatools.com/extensions/docman/

FILEman

Zoals de naam doet vermoeden is deze extensie gericht op het beheer van je bestanden en dit met extra functionaliteit.

Er worden automatisch thumbnails van de bestanden gemaakt waarbij aan een ideale caching gedacht is.
Je kan het bestand in de browser zelf inkijken, voor afbeeldingen kan je inzoomen.
Je kan een groot aantal bestanden via FTP opladen want FILEman neemt rechtstreeks over wat er in bestandssysteem staat. Dan ontbreekt uiteraard wel je eigen beschrijvingen (titels), tags, … maar die kan je later nog bijvoegen.
Microdata wordt bij de documenten gevoegd voor een betere S.E.O. FILEman zorgt ook dat Google Analytics geïntegreerd wordt.

FILEman voorziet raporten.

Voor Front-end (menu-type) heb je de keuze tussen:

  • Direct link
  • Gallerij
  • Uplodad bestand
  • Tabel
  • User Tabel : map per gebruiker

Filteren op bestands-type nog niet aanwezig, maar wel zoeken op naam (waar je dan nu de bestandsextensie kan ingeven).
Volgende versie: kunnen instellen dat iemand enklel aan zijn eigen files kan.

Joomlatools Connect

Dit is een dienst waarbij Joomlatools voor jou de content uit jouw documenten indexeert en voorziet van thumbnails met als uiteindelijke bedoeling jouw bestanden zichtbaar te maken in de zoek-motor op jouw site.
Deze functionaliteit kwam op vraag van de klanten, de meeste web hosting pakketten bieden blijkbaar niet voldoende flexibiliteit en rekenkracht voor dergelijke zware taken.
Maakt ook thumbnails van afbeeldingen, tekstdocumenten én van video's.
Joomlatools Connect wordt gehost op best-in-class infrastructuur voor een supersnelle oplevering. De bestanden blijven niet op de servers, ze worden daar enkele gebruikt bij de bewerking.

Deze dienst is er enkel voor de Joomlatools business-klanten. Meer hier over op https://www.joomlatools.com/connect/

C. Varia

Het systeem voor categorieën is in Joomla-systeem net zoals het tag-systeem op de Content-component gebouwd. Maar dit is qua performantie niet ideaal. Zo heeft Johan een klant met 5000 categories., mochten ze daarvoor het Joomla-systeem gevolgd hebben dan zouden er zeker performantie-problemen gerezen hebben. Zoals de categorieën in Joomlatools opgevat zijn, vormen zelfs zo'n grote aantallen geen probleem.
Ook met Tags blijken er mogelijke performantie problemen te kunnen opduiken; dit is al gemeld maar krijgt geen hoge prioriteit in het developmentplan.

Aparte Plugins kan je vrij downloaden (maar 2 zijn betalend).
Joomlatools heeft een plug-in die je informeert zodra een er bestand geüpload wordt.

Joomlatools Connect is de enige extensie die niet meer zal werken als je de licentie stop zet. Al de andere extensies blijven werken na einde licentie.

Doordat het Joomla gebruik niet groeit wordt het moeilijker om gratis extensies aan te bieden. Developers in België zijn ook niet goedkoop. Er zijn zelfs Joomla! firma's die de laatste 2 jaar tot de helft hebben moeten inkrimpen om te kunnen overleven.