Results 1 to 2 of 2

Die Art, wie vBSEO seine Dateien einbindet - ungewöhnlich

This is a discussion on Die Art, wie vBSEO seine Dateien einbindet - ungewöhnlich within the Deutsch forums, part of the General Discussion category; Hallo zusammen, ich hatte kürzlich ( hier ) eine Inkompatibilität zwischen vBSEO und der Erweiterung "Plugins in Dateien auslagern" geschildert. ...

  1. #1
    Member
    Real Name
    Gérome M.
    Join Date
    Dec 2007
    Posts
    41
    Liked
    0 times

    Die Art, wie vBSEO seine Dateien einbindet - ungewöhnlich

    Hallo zusammen,

    ich hatte kürzlich (hier) eine Inkompatibilität zwischen vBSEO und der Erweiterung "Plugins in Dateien auslagern" geschildert.

    Kurz zusammengefasst hebelt obige Erweiterung vBSEO gänzlich aus und ich habe herausgefunden, woran dies liegt. Der Plugin-Code, der ausgelagert wird, landet in Dateien im Ordner "/includes/plugins" und wird von dort in die jeweiligen Scripte inkludiert. Soweit, so gut.

    Wird nun der vBSEO-Code, beispielsweise aus dem Hook "init_startup" eingebunden, sehen wir folgenden Code:
    PHP Code:
    @include_once(dirname(__FILE__).'/functions_vbseo.php'); 
    Das Statement "dirname(__FILE__).'/functions_vbseo.php'" sollte sich im Normalfall auflösen zu "{pfad}/includes/functions_vbseo.php". Liegt der Code selbst aber in einem Unterverzeichnis wie oben geschildert, so löst sich das gleiche Statement auf zu "{pfad}/includes/plugins/functions_vbseo.php" und ergibt einen ungültigen Pfad.

    Da durch das '@' vor der Zeile die Fehlermeldung unterdrückt wird, macht das vBulletin artig weiter und bindet vBSEO eben nicht ein. Dies erklärt, warum ich dann rein gar nicts mehr von vBSEO erkennen kann.

    Was also tun? Naja, machen wir's doch wie sonst auch: Nutzen wir die Konstante 'DIR', um an unsere Dateien zu kommen. Ändert man obigen Code also zu
    PHP Code:
    @include_once(DIR '/includes/functions_vbseo.php'); 
    dann folgt er nicht nur dem vBulletin Style-Guide, sondern - viel besser - funktioniert auch noch. Bleibt die Frage, ob es legitim ist, diesen Code so zu ändern. Ich sage: Ja. Wir ändern Code in Plugins - und wenn das vBulletin soweit initialisiert ist, dass Plugins ausgeführt werden können, dann wurde zuvor garantiert auch die Konstante 'DIR' initialisiert (ganz oben in init.php, noch vor der Verbindung zur Datenbank).

    Für den Moment kann ich den Code in den paar Plugins per Hand ändern und so dieses Problem umgehen. Dennoch bleibt die Frage offen, warum die vBSEO-Entwickler diesen - im Kontext von vBulletin - sehr eigentümlichen Weg gehen, um Dateien zu inkludieren.



    Grüße,
    Gérome

  2. #2
    Senior Member Hoffi's Avatar
    Real Name
    Christian
    Join Date
    Nov 2005
    Location
    Germany
    Posts
    330
    Liked
    2 times
    Blog Entries
    2
    Danke für die Analyse. Dann kann ich jetzt auch die Massen an Plugins auslagern.

    Ich überlege gerade ob ein simples search and replace in der XML Datei dies auch richtet, oder es da zuviel Möglichkeiten gibt das kaputt zu machen.

Similar Threads

  1. Replies: 4
    Last Post: 10-06-2006, 06:09 PM
  2. Replies: 12
    Last Post: 08-16-2006, 05:22 AM
  3. [Diskussion] PR-Update und seine Folgen
    By Doc Great in forum Deutsch
    Replies: 25
    Last Post: 11-14-2005, 10:38 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •