Bewertung: 0 / 5

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
 

Problembeschreibung

Die Komponente SEF Service Map verwendet noch in Ihren Scripten die PHP-Vergleichsfunktion eregi(). Ab PHP Version 5.3 ist diese veraltet (deprecated). Werden durch die Hostingprovider die PHP-Versionen hochgesetzt kommt es dann zu Fehlerausgaben auf der Website. Diese sind zwar zunächst unkritisch, weil es nur Warnausgaben sind, aber sehrwohl stören diese das Seitenlayout, weshalb ein Behebung unumgänglich ist.

Leider wird die Komponente durch den Entwickler diesbezüglich wohl schleppend gepflegt. Deshalb kommt man um ein händischen Fixen nicht herum.



Die Lösung im Detail

Hier beschreibe ich wie es geht. Es ist ganz einfach:

  • plugins/system/sefservicemap.php
  • administrator/components/com_sefservicemap/admin.sefservicemap.php
  • administrator/components/com_sefservicemap/sefservicemap.util.php
  • components/com_sefservicemap/servicemap.html.php

In allen diesen Scripten sind die immer gleichen Dinge zu tun, nämlich das ersetzen des alten Befehls eregi() durch die neue unterstütze Version preg_match(). Zu Erklärung eregi such innerhalb eines Strings nach einem Ausdruck und ignoriert dabei Groß- und Kleinschreibung. Das gleiche bewirkt diese Muster preg_match("/text/i",string). Entsprechen müssen also alle eregi's ersetzt werden. Hier eine Beispielzeile:

Vorher, alte Version:

 

if (eregi('bot',$agent) || eregi('crawler',$agent) || eregi('slurp',$agent) || eregi('ia_archiver',$agent) || eregi('msnbot',$agent) || eregi('live',$agent) || eregi('yahoo',$agent))

 

Nachher, neue Version:

if (preg_match('/bot/i',$agent) || preg_match('/crawler/i',$agent) || preg_match('/slurp/i',$agent) || preg_match('/ia_archive/i',$agent) || preg_match('/msnbot/i',$agent) || preg_match('/live/i',$agent) || preg_match('/yahoo/i',$agent))

 

 

Kommentare (0)

Bisher wurden hier noch keine Kommentare veröffentlicht

Einen Kommentar verfassen

Kommentar als Gast veröffentlichen. Registriere Dich oder melde Dich zu Deinem Benutzerkonto an.
0 Zeichen
Anhänge (0 / 3)
Deinen Standort teilen
Gib den Text aus dem Bild ein. Nicht zu erkennen?