Meest recente Joomla nieuws

Het laatste nieuws vind je hier

Maak je eigen geplande taken in Joomla

Sinds versie 4.1 (en dus ook in 5.x-serie) heeft Joomla een zeer interessante nieuwe functie geïntroduceerd, genaamd "Geplande taken (Scheduled Tasks)".

Hoewel het al meer dan twee jaar bestaat, realiseert Marc Dechèvre zich elke keer als hij met andere Joomlers wissel dat de meerderheid de kracht van deze functie over het hoofd heeft gezien. Dus het doel van dit artikel is om wat licht te werpen op de mogelijkheden aan de hand van verschillende voorbeelden / usecases:

  • sommige zijn native Plugins, klaar om te worden gebruikt binnen Joomla
  • sommige zijn Plugins van derden, meestal open source en gratis beschikbaar op Github
  • en natuurlijk is het hele idee dat je ook je eigen plugins kunt maken om aan je specifieke behoeften te voldoen.

Andere bronnen over Taakplanner

Gelukkig hebben verschillende mensen al interessante inhoud over de Taakplanner geproduceerd.

Laat ik dus beginnen met hen te bedanken en naar hen te verwijzen:

Geplande taken - native plugins

Ga naar je backend > Systeem > Geplande taken.

Klik op de knop Nieuw en kijk wat er al beschikbaar is in Joomla 5:

  • Delete ActionLogs - Task
    Delete Action logs after days
  • Expiration of privacy consents
    Manage the expiration of privacy consents
  • Rotate Logs
    Periodically rotates log files.
  • Task - Session Data Purge
    Task Plugin that purges expired data and metadata depending on the session handler set in Global Configuration.
  • Joomla! Update Notification
    This task periodically checks for the availability of new Joomla! versions. When one is found it will send you an email, reminding you to update. You can customise the email
  • Image Size Check
    Check images, resize if larger than allowed. Attention: The original file will be overwritten!
  • GET Request
    Make GET requests to a server. Supports a custom timeout and authorization headers.
  • Toggle Offline
    Toggles the site's status on each run.
  • Set Site Online
    Sets site status to online on each run.
  • Set Site Offline
    Sets site status to offline on each run.
  • Global Check-in
    Check in checked out items.

De favorieten geplande taken van Marc Dechèvres zijn:

  • Global Check-in
    Goh, hoe vaak eindgebruikers mij in de afgelopen tien jaar niet hebben gebeld omdat ze aan het bewerken waren vanaf de front-end, maar sommige Artikelen "per ongeluk" waren "uitgecheckt", waardoor ze ze niet konden openen. Elke keer moest ik naar de back-end om alle Artikelen "in te checken".
    Nu kan ik deze actie bijvoorbeeld elke nacht om 3.00 uur automatiseren
  • Image Size Check
    In veel gevallen wil je een maximale breedte of hoogte voor afbeeldingen in een bepaalde map. Maar zelfs als je je eindgebruikers bewust maakt van het belang van het aanpassen van de grootte (om een betere prestatie te hebben voor de bezoekers, maar ook om kleinere back-ups te hebben, enz.
    Nu kan ik voor bepaalde mappen automatisch het formaat van de afbeeldingen wijzigen (ik heb bijvoorbeeld een maximale breedte van 600 pixels ingesteld voor alle afbeeldingen in de map Nieuwsbrief).
  • Get request
    Voor sommige van mijn websites moet ik een synchronisatie starten dankzij een script dat toegankelijk is via een bepaalde URL.
    Het Get verzoek doet precies dat...

Geplande taken - Plugins van derden

Een taakplanner om al je inhoud in Joomla 4 in te checken

Zoals hierboven vermeld, is er in Joomla 5 een native plugin om al je inhoud in te checken. Maar wat als je website nog op J4 draait?

Zie ook: https://github.com/zero-24/plg_task_checkin

A Task Scheduler to auto-delete files

Hoe zit het met het automatisch verwijderen van bestanden die ouder zijn dan een bepaald tijdsbestek in een bepaalde map (en niet de submappen)?

Zie ook https://github.com/TLWebdesignNL/Auto-Delete-Files-Task-Scheduler-Plugin

Een taakplanner om verschillende parameters van artikelen automatisch te wijzigen

Hoe zit het met de mogelijkheid om artikelen te verplaatsen naar andere categorieën in functie van een bepaalde datum (of soortgelijke dingen te doen)?

Taakplanner - Kick Beheer Artikel

Een taakplanner om artikelen van een bepaalde categorie naar een andere categorie te verplaatsen als ze ouder zijn dan X dagen, gebaseerd op de volgende data:

  • created (aangemaakt)
  • modified (aangepast) 
  • published (gepubliceerd)
  • unpublished (gedepubliceerd)

Zie ook: https://github.com/Kicktemp/plg_task_kickmanagearticle  

Taakplanner - CCC Timewarp (verschijnt binnenkort)

Met deze plugin kun je

  • je artikelen naar een andere categorie verplaatsen afhankelijk van een bepaalde datum
  • de publicatiestatus wijzigen
  • het toegangsniveau aanpassen
  • ...

Dit is vooral praktisch als je Joomla Artikelen gebruikt om Gebeurtenissen weer te geven, maar bijvoorbeeld ook om je nieuws gedurende x dagen alleen beschikbaar te maken voor een besloten kring en pas na verloop van tijd openbaar te maken.  NB: naast de gebruikelijke Datatypen kun je ook een Aangepast veld van het Type Datum gebruiken in je voorwaarden, wat handig is.

Zie ook: https://coolcat-campus.com/en/ 

A Task Scheduler to Reset Hits

Voor een bepaald project waarbij ik "de populairste Films van de maand" moest weergeven, wilde ik het aantal hits opnieuw instellen op de eerste dag van elke maand.

Zie ook: https://github.com/woluweb/plg_task_resethits

A Task Scheduler to synchronize my Custom Fields with some external Web Service

Voor een ander project moest ik de waarde van 20 aangepaste velden voor 300 artikelen synchroniseren met de meest recente gegevens van een externe webservice.

Laten we een praktisch voorbeeld nemen: social.brussels is een soort adresboek van alle sociale diensten en verenigingen in Brussel. Je hebt toegang tot de details van elke organisatie:

Op de Joomla website zijn er honderden artikelen met aangepaste velden voor het adres, telefoonnummer enz.
Het idee was dus om een dagelijkse synchronisatie tussen de externe bron en onze website te automatiseren, zodat de eindgebruikers niet elke maand uren bezig zouden zijn met controleren of bepaalde informatie sinds de laatste keer verouderd was...

Zie ook: https://github.com/dgrammatiko/plg_task_json2cf

Een taakplanner met enkele extensies

Zoals vermeld in de Bronnen, bieden sommige extensies hun eigen taakplanners. Voorbeelden:

Geplande taken - maak je eigen taken (en deel ze)!

Zoals je aan de hand van bovenstaande voorbeelden kunt zien, is de sky the limit: voor elke behoefte kun je je eigen Scheduled Task bedenken.

Dit zou een leuk onderwerp zijn voor (nog) een artikel in het Joomla Community Magazine in de komende maanden: ontwikkel verschillende leuke usecases voor Scheduled Tasks zoals:

  • je website verbinden met Zapier of andere soortgelijke diensten
  • de waarde van een aangepast veld wijzigen op basis van bepaalde voorwaarden
  • het wachtwoord van (sommige) gebruikers elke x maanden opnieuw instellen
  • wat databasewerk doen (optimaliseren, ...)
  • controleren en waarschuwen voor updates
  • controleren op systeemwijzigingen (PHP-versie, uitvoeringstijd, ...)
  • interactie met uw nieuwsbrief extensie
  • interactie met uw e-commerce-extensie (achtergelaten winkelwagens, ...)
  • Pushmeldingen versturen (OneSignal, ...)
  • SMS versturen (Twillio, ...)
  • ...

Dus deel je ideeën/suggesties voor Geplande Taken hieronder in de comments!
En als je er al een geschreven hebt, deel dan alsjeblieft de link zodat iedereen kan meegenieten...


Bron: https://magazine.joomla.org/all-issues/november/scheduled-tasks

Met speciale dank aan de schrijver van het Engelstalig artikel: Marc Dechèvre