Ich arbeite daran, das Menü für unsere Content-Management-Software mit PHP zu machen, und wir haben dieses kleine Problem. Da wir möchten, dass schließlich alles in Blöcken aufgerufen wird, wurden bestimmte Seitenelemente in Blöcke zerlegt und über Funktionen durch eine enthaltene Datei geladen. Da dies schwer zu erklären ist, werde ich einen Beispielcode veröffentlichen, was ich darunter verstehe.Definieren Sie eine Variable, bevor Sie die Funktion in PHP einfügen und verwenden Sie die Variable
Dies ist die Datei page.php (unnötiger HTML-Code entfernt). Dies ist die Seite der Benutzer auf:
<?php
define("CURRENT_PAGE", "page.php");
include_once("data/main.inc.php");
?><html>
Content loads here.
<? desktopMenu(); ?>
</html>
Okay, und hier ist die Funktion für desktopMenu()
von main.inc.php:
function desktopMenu() {
// Query to get the top level navigation links with no parents
$query = mysql_query("SELECT * FROM menu WHERE p_id = '0'");
if(mysql_num_rows($query) > 0) {
while($result = mysql_fetch_array($query)) {
extract($result);
if($isparent == "1") {
// Just check if they have children items
$sub_menu_query = mysql_query("SELECT * FROM menu WHERE p_id = '$id'");
if(mysql_num_rows($sub_menu_query) > 0) {
// CODE TO SHOW THE MENU ITEM AND ITS SUBS
}
} else {
// CODE TO SHOW REGULAR MENU ITEMS
// WANT TO INSERT class='active' if the CURRENT_PAGE is this value..
echo "<li><a href='#'>link</a></li>";
}
} else {
echo "<li><a href='javascript:void(0);'>Error Loading Menu</a></li>";
}
}
Ich frage mich, wie ich die CURRENT_PAGE auf der mitgelieferten bekommen Skript, damit ich die class="active"
auf die richtige Seite laden kann. Ich verwende bereits folgendes:
$config = include('config.inc.php');
$GLOBALS = $config;
auf der Oberseite des main.inc.php
oberhalb dieser Menüfunktion, so konnte ich globale Variablen gesetzt und sind meine $config['database']
Variablen innerhalb einer Funktion die SQL-Datenbank aufrufen (funktioniert nicht auf andere Weise) .
Wie kann ich die Variable current_page überprüfen, damit ich sie im Menü aktivieren kann? Ich habe ein paar verschiedene Dinge ausprobiert, aber nichts zeigt, wie wir es erwarten. Danke Typ.
Sie definieren 'CURRENT_PAGE' als eine Konstante, was bedeutet, dass es ein super global ist, also könnten Sie es einfach innerhalb der Funktion verwenden. – Parziphal
CURRENT_PAGE gibt nichts zurück, wenn ich es in meiner Funktion benutze, auch wenn ich es einstelle, bevor ich die Seite einschließe. Das verwirrt mich. – Kaboom