Im Backend ist das Verwalten von Addons nicht möglich. Es erscheint ein Dialog mit folgender Meldung:
Uncaught AJAX Error. <br /> <b>Notice</b>: Undefined index: csrf in <b>/path/to/blackcat/backend/addons/ajax_get_details.php</b> on line <b>233</b><br /> […]
Sehr wahrscheinlich unterscheidet sich der Pfad in $_SERVER
(wird vom Webserver gesetzt) von dem in dirname()
. (Erklärung siehe unten.)
In diesem Fall hilft es, den Pfad in der config.php
auf den korrekten Pfad zu setzen.
define('CAT_PATH', dirname(__FILE__));
ändern in (Beispiel, Pfad entsprechend anpassen!)
define('CAT_PATH', '/path/to/blackcat');
Enthaltene Datei in das BlackCat-Installationsverzeichnis entpacken (da wo config.php
und index.php
liegen) und im Browser aufrufen. Meldet [OK] wenn die Pfade übereinstimmen, andernfalls wird die notwendige Änderung angezeigt.
Aus einem Script heraus kann man mit der Funktion dirname(FILE)
das aktuelle Arbeitsverzeichnis ermitteln. Das funktioniert in etwa so wie pwd
unter Linux. BlackCat CMS verwendet daher diese Methode, um das lokale Verzeichnis zu ermitteln, in dem die config.php
liegt. Das ist das Installationsverzeichnis des CMS und damit die Basis für alle Aktionen.
Der Webserver befüllt auf Basis seiner Konfigurationseinstellungen das $_SERVER
-Array. Das ist eine Liste von Variablen, die Informationen über die Serverumgebung beinhalten. Dazu gehört auch der Aufrufpfad des aktuell ausgeführten Scriptes.
Im Gegensatz zu dirname()
(oder pwd
) sind die Pfadangaben in $_SERVER
nicht absolut, sondern werden von den Konfigurationseinstellungen beeinflußt. So kann es vorkommen, daß die beiden Pfade, die eigentlich gleich sein sollten, unterschiedlich sind. Die einzige Stelle, an der sich das auswirkt, ist unseres Wissens eben die hier beschriebene.
Weitere Informationen:
http://blog.eye48.com/post/17154778683/symlinks-php-realpath-lesson-learned (Englisch)