Drupal
Drupal

Na een upgrade van de module Internationalisering (i18n), ik kreeg het volgende bericht op een multi-taal, installatie (Drupal 6.16): warning: preg_match() expects parameter 2 to be string, array given in includes/bootstrap.inc on line 777.

Ik kreeg de melding alleen als ik niet was ingelogd en de taal was ingesteld op de niet-standaard taal.

Op zoek naar het probleem

Na het uitschakelen van de module “Block translation”, was het probleem verdwenen. Na wat zoeken bleek de aan functie check_plain (regel 237) een array werd meegegeven. Om snel de site weer te laten draaien, heb ik de volgende regel toegevoegd aan de  check_plain functie (Regel met “Quick fix!!!”).

includes/bootstrap.inc:
/* Encode special characters in a plain-text string for display as HTML.
*
* Uses drupal_validate_utf8 to prevent cross site scripting attacks on
* Internet Explorer 6.
*/
function check_plain($text) {
if (is_array($text)) return ''; //Quick fix!!!
return drupal_validate_utf8($text) ? htmlspecialchars($text, ENT_QUOTES) : '';
}

Let op: Dit is een tijdelijke oplossing om de site weer te laten draaien, het is niet de definitieve oplossing.Het probleem zal worden gerapporteerd en kan daarna deze regel weer worde verwijderd.