![Joris De Groot](/sites/default/files/styles/user_profile_thumbnail/public/2020-08/0.jpeg?h=391bf2ce&itok=K2hziGQJ)
Joris De Groot
Als web agency is het belangrijk om expert te zijn in verschillende kennisvelden. Ook contact- en ledenbeheer (CRM) is belangrijk voor veel van onze klanten. Daarom hebben wij ervoor gekozen om officiële partner te worden van CiviCRM, een krachtig Open Source CRM-systeem dat hoofdzakelijk bedoeld is voor websites met een actieve ledenwerking. Het systeem ondersteunt de ledenorganisatie in het beheren van contactpersonen, lidmaatschappen en evenementen en nog veel meer. Calibrate is het enige web agency in België dat officiële empowering partner is van CiviCRM.
Een partnership met CiviCRM is meer dan enkel een financiële bijdrage leveren. Samen met andere partners ondersteunen we de groei en stabiliteit van het platform. Hiernaast leveren we ook op regelmatige basis bijdrage aan de CiviCRM en Drupal Community met code contributies en sprints.
Op vrijdag 22/08/2018 leverden onze CiviCRM experts: Wouter Hechtermans (CiviCRM Lead), Joris Vercammen (Drupal Developer, Search API maintainer) en Wannes De Roy (Full Stack developer) opnieuw een bijdrage aan de CiviCRM en Drupal Community met een development sprint.
Ter voorbereiding van een sprint worden tijdens een planningsmeeting de doelstellingen van de sprint vastgelegd. De doelstelling van de afgelopen sprint waren tweeledig, enerzijds wilden we de Drupal 8 module van een update voorzien, anderzijds wilden we CiviCRM implementeren met Composer. Nadat de doelstellingen bepaald zijn, is het coderen geblazen.
Verbeteringen CiviCRM drupal 8 module
Een overzicht van alle ingediende pull requests:
In de maak (nog te testen & optimaliseren):
Weer dezelfde insteek, het eenvoudiger maken van het begrijpen van de code door ze minder diep te indenteren en early returns toe te voegen: lees meer.
Omdat deze class een belangrijke functie heeft, hebben we ook een Unit-test toegevoegd om te garanderen dat het gedrag nog steeds correct werkt. Jammer genoeg worden deze testen (nog) niet geautomatiseerd uitgevoerd.
We moeten er daarvoor eerst in slagen om CiviCRM op een eenvoudige manier via composer te installeren.
Dat maakt het makkelijker om [TravisCI], [CircleCI] of iets anders te gebruiken om deze uit te voeren.
_CiviCRM Sessie deleten voor anonieme gebruikers (issue met varnish caching)_
Wanneer je een Drupal8-website bezoekt met Varnish, werkt Varnish-caching prima totdat je op een publieke CiviCRM pagina komt, er wordt dan een sessie geplaatst. Wanneer je de pagina verlaat door op een andere link te klikken blijft de sessie en kan Varnish niet meer gebruikt worden om de pagina's te serveren.
We moeten er dus voor zorgen dat deze CiviCRM-sessie weggehaald wordt bij het verlaten van de CiviCRM pagina. Onze oplossing hiervoor is een custom middleware service die op basis van bepaalde voorwaarde deze sessie gaat clearen nadat een gebruiker op een CiviCRM pagina is geweest.
Nog te doen
Implementatie CiviCRM & Composer
Hieronder de genomen stappen om CiviCRM toe te voegen aan Composer van Drupal.
We gebruiken voor sommige packages onze eigen forks met bepaalde fixes al in. Verschillende fixes zitten al in pull-request maar zijn nog niet doorgevoerd in de laatste versies van de repositories.
Dit zou gaan als de CiviCRM extensions op packagist beschikbaar zijn. En samen met composer installers en het type `civicrm-ext` komt deze direct in de juiste folder die je zelf kan instellen: lees meer.