Heim >PHP-Framework >Denken Sie an PHP >So ermitteln Sie die aktuelle Seite in der Thinkphp-Navigationsleiste

So ermitteln Sie die aktuelle Seite in der Thinkphp-Navigationsleiste

王林
王林Original
2023-05-26 10:01:071272Durchsuche

Bei der Entwicklung einer Website ist es oft notwendig, eine Navigationsleiste hinzuzufügen, um Benutzern den Zugriff auf verschiedene Seiten der Website zu erleichtern. Wie kann bei der Entwicklung mit dem PHP-Framework ThinkPHP ermittelt werden, zu welcher Navigationsleiste die aktuelle Seite gehört? In diesem Artikel erfahren Sie, wie Sie die ThinkPHP-Navigationsleiste implementieren und die aktuelle Seite ermitteln.

1. Implementierungsmethode für die ThinkPHP-Navigationsleiste

In ThinkPHP wird die Navigationsleiste normalerweise mithilfe öffentlicher Vorlagen implementiert. Die spezifischen Schritte sind wie folgt:

1. Erstellen Sie zunächst eine öffentliche Vorlagendatei, z. B. header.html, um den Navigations-Barcode der Website zu speichern. In dieser Datei können Sie den Stil und das Layout der Navigationsleiste an Ihre Bedürfnisse anpassen.

2. Verweisen Sie auf jeder Unterseite auf die öffentliche Vorlagendatei und betten Sie den Navigationsbarcode in die Unterseite ein. Verwenden Sie im ThinkPHP-Framework den folgenden Code, um auf die öffentliche Vorlagendatei zu verweisen:

<?php include(THEME_PATH . 'header.html'); ?>

Dabei ist THEME_PATH der benutzerdefinierte Theme-Pfad.

3. In der öffentlichen Vorlagendatei müssen Sie PHP-Code verwenden, um die Navigationsleiste zu bestimmen, zu der die aktuelle Seite gehört. Normalerweise wird die Variable $_SERVER['REQUEST_URI'] verwendet, um die URL-Adresse der aktuellen Seite abzurufen, und dann wird die if-Anweisung verwendet, um die Navigationsleiste zu bestimmen, zu der die aktuelle Seite gehört.

Zum Beispiel kann der folgende Code bestimmen, ob die aktuelle Seite zur Navigationsleiste der Startseite gehört:

<?php if(strpos($_SERVER['REQUEST_URI'], 'index/index') !== false) {?>
    <li class="active"><a href="/index.php/Home/Index/">首页</a></li>
<?php } else { ?>
    <li><a href="/index.php/Home/Index/">首页</a></li>
<?php } ?>

Im obigen Code wird die Funktion strpos() verwendet, um zu bestimmen, ob die URL-Adresse der aktuellen Seite den Index/Index enthält ' Wenn ja, erklären Sie, dass die aktuelle Seite zur Homepage-Navigationsleiste gehört, und dann wird das aktive Attribut des 25edfb22a4f469ecb59f1190150159c6-Tags festgelegt, um einen ausgewählten Status zur aktuellen Navigationsleiste hinzuzufügen.

2. So bestimmen Sie die Navigationsleiste, zu der die aktuelle Seite gehört

Im vorherigen Schritt haben wir vorgestellt, wie Sie die if-Anweisung verwenden, um die Navigationsleiste zu bestimmen, zu der die aktuelle Seite gehört. In der tatsächlichen Entwicklung kann diese Methode jedoch einige Probleme verursachen, z. B.: Wenn die URL-Adresse Parameter enthält, wie kann dann ermittelt werden, zu welcher Navigationsleiste die aktuelle Seite gehört? An diesem Punkt müssen Sie intelligentere Methoden verwenden, um das Problem zu lösen.

Im ThinkPHP-Framework können Sie die Navigationsleiste, zu der die aktuelle Seite gehört, intelligent bestimmen, indem Sie das Navigationsleisten-Array definieren und den aktuellen Controller und die aktuelle Betriebsmethode bestimmen. Die spezifischen Schritte sind wie folgt:

1. Definieren Sie das Navigationsleisten-Array in der Konfigurationsdatei. Beispiel:

//定义导航栏数组
'NAV_LIST' => array(
    '首页' => array('Index', 'index'),
    '新闻' => array('News', 'index'),
    '产品' => array('Product', 'index'),
    '联系我们' => array('Contact', 'index'),
),

Im obigen Array stellt der Schlüssel den Namen der Navigationsleiste dar, und der Wert ist ein Array, das die Namen des Controllers und der Betriebsmethoden enthält.

2. Verwenden Sie in der öffentlichen Vorlagendatei eine foreach-Schleife, um das Navigationsleisten-Array zu durchlaufen, und verwenden Sie eine if-Anweisung, um zu bestimmen, ob der aktuelle Controller und die Betriebsmethode mit den Werten im Navigationsleisten-Array übereinstimmen. Wenn sie identisch sind, fügen Sie das aktive Attribut zur Navigationsleiste hinzu, um anzuzeigen, dass die aktuelle Seite dazu gehört.

Zum Beispiel kann der folgende Code intelligent bestimmen, zu welcher Navigationsleiste die aktuelle Seite gehört:

<?php foreach(C('NAV_LIST') as $key=>$vo){ ?>
    <?php $active = strtolower(CONTROLLER_NAME) == strtolower($vo[0]) && strtolower(ACTION_NAME) == strtolower($vo[1]) ? 'class=active' : ''; ?>
    <li <?php echo $active;?>><a href="<?php echo U($vo[0].'/'.$vo[1]);?>"><?php echo $key;?></a></li>
<?php } ?>

Im obigen Code wird eine foreach-Schleife verwendet, um das Navigationsleisten-Array zu durchlaufen. Verwenden Sie dann eine if-Anweisung, um zu bestimmen, ob der aktuelle Controller und die aktuelle Betriebsmethode mit den Werten im Navigationsleistenarray übereinstimmen. Wenn sie identisch sind, fügen Sie das aktive Attribut zum 25edfb22a4f469ecb59f1190150159c6-Tag hinzu, um anzugeben, dass die aktuelle Seite dazu gehört. Unter anderem wird die Funktion strtolower () verwendet, um Großbuchstaben in Kleinbuchstaben umzuwandeln, um Beurteilungsfehler aufgrund von Groß- und Kleinschreibung zu vermeiden.

Zusammenfassend lässt sich sagen, dass Sie die relevanten Kenntnisse des ThinkPHP-Frameworks klären müssen, unabhängig davon, ob Sie eine if-Anweisung verwenden, um zu bestimmen, zu welcher Navigationsleiste die aktuelle Seite gehört, oder eine intelligente Beurteilungsmethode verwenden. Ich hoffe, dass die Einführung in diesem Artikel für alle hilfreich sein kann, die Websites mit dem ThinkPHP-Framework entwickeln.

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie die aktuelle Seite in der Thinkphp-Navigationsleiste. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:thinkphp ändert FelderNächster Artikel:thinkphp ändert Felder