| ||||||||||||||||||||||||||||
Weitere Projekte auf AMBROSIA60Einbindung BBClone in eine bestehende Website
Nachdem die Einbindung der Website bereits seit über einem halben Jahr am Laufen ist, ist mir heute bei der
genaueren Analyse der Ergebnisse aufgefallen, dass bislang nur Seiten in der detailierten Statistik aufgeführt
wurden, die im Web-Root Verzeichnis liegen.
define("_BBC_PAGE_NAME", "[filename]");
define("_BBCLONE_DIR", "clone/");
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
Wenn man nun diesen Codeschnipsel in ein Include File packt, das von jeder Webseite aufgerufen wird, benötigt man nur einen einziges mal den Aufruf. Hier muss dann allerdings der aufrufende [Filename] ermittelt werden.
$sname = $_SERVER["SCRIPT_NAME"];
$file = basename($sname);
define("_BBC_PAGE_NAME", $file);
define("_BBCLONE_DIR", "clone/");
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
Wie ich jetzt feststellen musste, funktioniert die Zeile
define("_BBCLONE_DIR", "clone/");
nur bei Aufrufen aus dem Root Verzeichnis.
- The directory you specified in your inclusion doesn't contain a trailing
slash. This, however, is necessary for getting a valid path to the counter.
funktioniert das nicht, weil BBClone nur mit relativen Pfaden arbeitet.
$sname = $_SERVER["SCRIPT_NAME"];
$file = basename($sname); // Ermittlung des Scriptnamens
$dname = dirname($sname); // Ermittlung des Script Paths
define("_BBC_PAGE_NAME", $file); // Wenn Scipt in Subdir
if ($dname=="\\") { // dann Ergebnis = /subdir/
define("_BBCLONE_DIR", "clone/"); // andernfalls Ergebnis = \
} else {
define("_BBCLONE_DIR", "../clone/");
}
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
Die Unterscheidung zwischen Root Verzeichnis "\" und Subdirs "/subdir/"
ist hierbei ein Anfang .... Jetzt könnte man noch weiter die Anzahl der Unterverzeichnisse
ermitteln, um die Anzahl der Backsteps "../" zu generieren ....
<?php
$sname = $_SERVER["SCRIPT_NAME"];
$file = basename($sname); // lese filename aus
$dname = dirname($sname); // lese aktuellen path aus
define("_BBC_PAGE_NAME", $file);
if ($dname=="\\") {
define("_BBCLONE_DIR", "clone/"); // aufruf aus root path
} else {
$dstr = str_repeat("../",substr_count($dname, "/"))."clone/";
define("_BBCLONE_DIR", $dstr); // aufruf aus subdir
} // benutze anzahl ../
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
?>
| ||||||||||||||||||||||||||||