Uitgelicht bericht

Over mxScraper

mxScraper is een algemeen inzetbare plugin die voorziet in vrij definieerbare shortcodes en een text-widget die shortcodes evalueert. Met de plugin kan data van andere websites worden ingelezen en binnen Wordpress content worden getoond. Lees voor meer informatie de Documentatie.

Deze WordPress website is een standaard installatie (WordPress versie 6.2.2, PHP versie 8.2.5) in thema Twenty Twelve, waarin de plugin geïnstalleerd is. De Home-pagina geeft in berichten een overzicht van nieuwe versies, ontwikkelingen en andere wetenswaardigheden. Op de Voorbeeld pagina worden diverse scrapes live werkend getoond.

Ondersteuning voor WordPress 6 onder PHP 7 of 8

0.22.1220 – Bij de release van de eerste versie van de mxScraper plugin begin 2013 was WordPress versie 3.5 nog gangbaar, draaiend onder PHP versie 5.3 of ouder. Sindsdien zijn er heel wat updates geweest van zowel WordPress als PHP. Op moment van schrijven is WordPress 6.1.1 de meest recente versie en is PHP 8.2.0 pas net uitgekomen, maar op veel webservers nog niet beschikbaar.

Compatibiliteit

De voorgaande versie van de mxScraper plugin (versie 0.16.0312) werkte prima op veel verschillende versies van PHP en WordPress, maar niet meer op WordPress 6 met PHP 8. Doordat in de nieuwe versies bepaalde functies niet meer ondersteund worden geeft WordPress bij gebruik van die versies een melding van fatale fouten en moet de plugin worden gedeactiveerd om de website te kunnen gebruiken.

Om dat te verhelpen is een update van de plugin uitgebracht. Deze update beoogt compatibel te zijn met zowel oudere versies van WordPress en PHP als met nieuwe versies. Sommige functionaliteit is gewijzigd in de loop der jaren en de plugin is hierop aangepast voor correcte werking in verschillende versies.

Let op: met zeer oude versies zal de plugin waarschijnlijk niet of niet goed werken. Raadpleeg de lijst van testresultaten hieronder om te zien welke versies goed zouden moeten werken.

Deze update is werkend getest met verschillende versies van WordPress en PHP:
– WordPress 3.8.41 – PHP 5.4.17 / 5.6.8 / 5.6.39
– WordPress 4.4.2 – PHP 5.3.9
– WordPress 4.7.25 – PHP 5.5.38 / 5.6.40
– WordPress 4.8.21 – PHP 5.6.40
– WordPress 6.1.1 – PHP 5.6.39 / 5.6.40 / 7.4.33 / 8.0.26 / 8.1.13 / 8.2.0RC5 / 8.2.0

Aandachtspunten

– Bij gebruik van de blok-editor van WordPress is de mxText widget beschikbaar als “verouderde widget” . De widget is gewoon bruikbaar, maar wordt door WordPress omgezet voor gebruik als blok.
– Met behulp van de Classic Widgets plugin kunnen widgets op de oude manier worden beheerd. Deze plugin is een officiële plugin (onderhouden door het WordPress team) die de “klassieke” WordPress widgets instellingen schermen uit vorige versies terugzet. De plugin wordt ondersteund en onderhouden tot ten minste 2024, of zo lang als nodig is.
– WordPress 6.1.1 kan werken met PHP 5.6 (vanaf versie 5.6.20), maar geeft dan een melding in het Dashboard
– Vanaf WordPress 5.3 zijn tijd-functies aangepast. De plugin houdt hier intern rekening mee, maar past geen gebruikerscode aan. Wanneer een Calc de functie date() gebruikt, moet deze vanaf WordPress 5.3 vervangen worden door wp_date().

Fix voor short_open_tag

0.16.0312 – Bij sommige servers blijkt default de optie short_open_tag = Off in php.ini ingesteld te zijn. Code geschreven in php moet dan beginnen met <?php en niet met de kortere variant <?.

Voorheen gaf de mxScraper plugin foutmeldingen na activeren in de Plugins pagina en werkte de plugin niet goed wanneer bovengenoemde optie op Off stond. Een workaround was dan om in php.ini de optie te wijzigen naar short_open_tag = On, maar dit was niet bij iedere website mogelijk.

In de nieuwe versie is de plugin-code aangepast en gebruiken alle plugin-bestanden de langere notatie. Hierdoor worden meldingen als “De plugin genereerde 1279 tekens van onverwachte uitvoer tijdens de activatie.” niet meer gegeven en werkt de plugin zoals het hoort, ook op afwijkend-geconfigureerde servers.

Zoeken op attribuut zoals class-naam

0.16.0306 – Met de meest recente versie van de MxScraper plugin kan met de xtext methode nu ook op attribuut-waarde zoals de class-naam van een element worden gezocht. Voorbeeld van een Scrape definitie: div@class:item_container//table:Mijn tekst//tr#6//td#2 – vind de tweede td binnen de zesde tr in een tabel met de tekst “Mijn tekst”, binnen een div waarvan het class attribuut de waarde “item_container” heeft.

Bekende incompatibiliteiten en foutmeldingen

short_open_tag
Bij het testen op een nieuwe configuratie bleek dat op sommige servers de php-instelling short_open_tag uit kan staan. Dit betreft met name servers met nieuwere php-installaties. De mxScraper plugin gebruikt de php notatie <?  en ?> waardoor deze instelling problemen oplevert, zoals foutmeldingen of niet werkzame shortcodes. Bij (her-) activatie van de plugin kan dit bijvoorbeeld leiden tot meldingen als “De plugin genereerde 1279 tekens van onverwachte uitvoer tijdens de activatie.”

Om de plugin succesvol te kunnen gebruiken is het vooralsnog noodzakelijk om de short_open_tag instelling op “on” te hebben staan.

Update: de short_open_tag incompabiliteit is onlangs gefixed.

Tabbladen, Debug level en Backups voor downloads

0.13.0419 – Verbeterde afhandeling bij downloadproblemen middels backups. Tabbladen bij Instellingen voor beter overzicht. Nieuwe optie Debug level voor verbergen/tonen van foutmeldingen en waarschuwingen.

Naar aanleidingen van ontwikkelingen op de metaalmarkt bleek de weergave van foutmeldingen bij downloadproblemen niet de beste oplossing. Tijdens drukte bij een bron-url voor marktprijzen was de gewenste pagina niet (goed) beschikbaar en dit werd middels foutmeldingen kenbaar gemaakt. Echter, gebruikers zitten hier niet op te wachten. Ter verbetering wordt nu bij downloadproblemen gebruik gemaakt van de vorige versie indien deze beschikbaar is. Tevens worden foutmeldingen en waarschuwingen binnen de plugin onderdrukt, tenzij de gebruiker is ingelogd en via de instellingenpagina het gewenste weergave niveau voor de betreffende sessie wordt ingesteld.

Voor het overzicht is de pagina Instellingen ingedeeld in vier aparte tabbladen: Algemeen, Scrapes, Calcs en Downloads. De instelling voor foutmeldingen is te wijzigen in tabblad Algemeen. Het tabblad Downloads geeft een overzicht van alle bestanden (downloads en evt. backups) in de folder voor downloads.

Update functie en configuratie pagina

Versie 0.13.0217 – Admin-configuratie-pagina “Instellingen | mxScraper” toegevoegd. Basisconfiguratie (Scrapes en Calcs) worden in de wp_options tabel gebundeld opgeslagen (optie: mxscraper_configuration) en zijn via de pagina “Instellingen | mxScraper” te bewerken. Andere instellingen zijn nog hardcoded. De configuratie hoeft niet meer handmatig worden bewaard voor een update.

Versie 0.13.0214 – Kleine verbeteringen plus Update functie toegevoegd. De plugin controleert nu automatisch op de Maxint server of er een nieuwe versie is en attendeert de admin indien nodig. Ter voorkoming van het overschrijven van de configuratie moet deze voor een update nog handmatig worden bewaard.