Hi MyBB'ler,
Bei der Anpassung meines Forums, dem Hinzufügen einer eigenen News Section, bin ich auf folgendes Problem gestoßen:
In der online.php wird ja standartmäßig nur der Dateiname überprüft, und daran dann die Location festgelegt. Nun ist aber der Dateiname nicht mehr eindeutig:
/forum/index.php
/news/index.php
Im Falle der index.php müsste ich also noch den Ordner mit einbeziehen, um die Eindeutigkeit zu bekommen.
Die Frage ist nun logischerweise:
Wie mach ich das? ^^
Danke im Vorraus für eure Hilfe.
MfG Zwoetzen
Das blöde ist ja, dass es dann wegen dem /forum dann gar nichts mehr erkennen würde.
Irgendwie verstehe ich nicht ganz, was du mir sagen willst... oO
Aber vielleicht sind es nicht genug Infos diesbezüglich:
In der news/index.php habe ich die /forum/global.php eingebunden, das heißt, die gehört direkt mit zum Forum, ist nur in einem anderem Verzeichnis. (Die restlichen Dateien des Forums sind alle in /forum anzutreffen, also zB auch die online.php)
Die anderen Dateien der News-Section (zB news/addnews.php) kann ich in der online.php auch erkennen. Das Problem ist nur, dass es die index.php 2mal gibt, wenn man nur den Dateinamen betrachtet. (Eben einmal im forum-Ordner und einmal im news-Ordner) Ich müsste also in diesem Fall irgendwie den Ordnernamen in die Betrachtung mit einbeziehen.
Und da weiß ich eben nicht, wie genau ich das anstellen könnte
Quasi sowas wie:
PHP-Code:
[...]
case "index":
if ($ordner == "news")
$user['activity'] = "news";
else
$user['activity'] = "index";
break;
[...]
Nur wie krieg ich den ordner raus?
Bisher wird der Ordner nicht in den Sessions abgespeichert.
Einfachste Lösung: Benenne die eine index.php um in news.php und erstelle in dem gleichen Ordner eine index.php mit diesem Code zur Weiterleitung:
PHP-Code:
<?php
header("Location: news.php");
exit;
?>
Danke für eure Antworten, habe aber gestern abend selbst eine Variante gefunden, die das Problem löst
Und zwar habe ich herausgefunden, dass in $user['location'] der gesamte Pfad zur aktuellen Datei des jeweiligen Users steht, also bei mir eben "/forum/index.php" bzw. "/news/index.php", und da kann ich nun ja recht einfach den Ordner rausfischen
Habe also nun folgende Lösung:
PHP-Code:
case "index":
case '':
if(basename(dirname($user['location'])) == "news")
$user['activity'] = "news_index";
else
$user['activity'] = "index";
break;
(Das mit "basename(dirname(...))" hab ich von php.net, keine Ahnung, ob das die beste Variante ist ^^)
Trotzdem Danke für eure Vorschläge, vielleicht kann ich es woanders mal gebrauchen