Maison  >  Article  >  cadre php  >  Comment déterminer la page actuelle dans la barre de navigation thinkphp

Comment déterminer la page actuelle dans la barre de navigation thinkphp

王林
王林original
2023-05-26 10:01:071227parcourir

Lors du développement d'un site Web, il est souvent nécessaire d'ajouter une barre de navigation pour faciliter l'accès des utilisateurs aux différentes pages du site Web. Lors du développement à l'aide du framework PHP ThinkPHP, comment déterminer à quelle barre de navigation appartient la page actuelle ? Cet article vous présentera comment implémenter la barre de navigation ThinkPHP et comment déterminer la page actuelle.

1. Méthode d'implémentation de la barre de navigation ThinkPHP

Dans ThinkPHP, la barre de navigation est généralement implémentée à l'aide de modèles publics. Les étapes spécifiques sont les suivantes :

1. Créez d'abord un fichier de modèle public, tel que header.html, pour stocker le code à barres de navigation du site Web. Dans ce fichier, vous pouvez personnaliser le style et la disposition de la barre de navigation en fonction de vos besoins.

2. Référencez le fichier de modèle public dans chaque sous-page et intégrez le code à barres de navigation dans la sous-page. Dans le framework ThinkPHP, utilisez le code suivant pour référencer le fichier de modèle public :

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

Où THEME_PATH est le chemin du thème défini par l'utilisateur.

3. Dans le fichier de modèle public, vous devez utiliser du code PHP pour déterminer la barre de navigation à laquelle appartient la page actuelle. Habituellement, la variable $_SERVER['REQUEST_URI'] est utilisée pour obtenir l'adresse URL de la page actuelle, puis l'instruction if est utilisée pour déterminer la barre de navigation à laquelle appartient la page actuelle.

Par exemple, le code suivant peut déterminer si la page actuelle appartient à la barre de navigation de la page d'accueil :

<?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 } ?>

Dans le code ci-dessus, la fonction strpos() est utilisée pour déterminer si l'adresse URL de la page actuelle contient l'index/index '. Si tel est le cas, expliquez. La page actuelle appartient à la barre de navigation de la page d'accueil, puis l'état sélectionné est ajouté à la barre de navigation actuelle en définissant l'attribut actif de la balise 25edfb22a4f469ecb59f1190150159c6.

2. Comment déterminer la barre de navigation à laquelle appartient la page actuelle

Dans l'étape précédente, nous avons présenté comment utiliser l'instruction if pour déterminer la barre de navigation à laquelle appartient la page actuelle. Cependant, en développement réel, cette méthode peut poser certains problèmes, tels que : si l'adresse URL contient des paramètres, comment déterminer à quelle barre de navigation appartient la page courante ? À ce stade, vous devez utiliser des méthodes plus intelligentes pour résoudre le problème.

Dans le framework ThinkPHP, vous pouvez déterminer intelligemment la barre de navigation à laquelle appartient la page actuelle en définissant le tableau de la barre de navigation et en déterminant le contrôleur actuel et la méthode de fonctionnement. Les étapes spécifiques sont les suivantes :

1. Définissez le tableau de la barre de navigation dans le fichier de configuration. Par exemple :

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

Dans le tableau ci-dessus, la clé représente le nom de la barre de navigation et la valeur est un tableau contenant les noms du contrôleur et des méthodes de fonctionnement.

2. Dans le fichier de modèle public, utilisez une boucle foreach pour parcourir le tableau de la barre de navigation et utilisez une instruction if pour déterminer si le contrôleur et la méthode de fonctionnement actuels sont les mêmes que les valeurs du tableau de la barre de navigation. S'ils sont identiques, ajoutez l'attribut actif à la barre de navigation pour indiquer que la page actuelle lui appartient.

Par exemple, le code suivant peut déterminer intelligemment la barre de navigation à laquelle appartient la page actuelle :

<?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 } ?>

Dans le code ci-dessus, une boucle foreach est utilisée pour parcourir le tableau de la barre de navigation. Ensuite, utilisez une instruction if pour déterminer si le contrôleur actuel et la méthode de fonctionnement sont les mêmes que les valeurs du tableau de la barre de navigation. S'ils sont identiques, ajoutez l'attribut actif à la balise 25edfb22a4f469ecb59f1190150159c6 pour indiquer que la page actuelle lui appartient. Parmi elles, la fonction strtolower() est utilisée pour convertir les lettres majuscules en lettres minuscules afin d'éviter les erreurs de jugement dues à des problèmes de majuscules.

En résumé, que vous utilisiez une instruction if pour déterminer à quelle barre de navigation appartient la page actuelle ou que vous utilisiez une méthode de jugement intelligent, vous devez clarifier les connaissances pertinentes du framework ThinkPHP. J'espère que l'introduction de cet article pourra être utile à tout le monde lors du développement de sites Web à l'aide du framework ThinkPHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:thinkphp modifier les champsArticle suivant:thinkphp modifier les champs