Web サイトを開発する場合、多くの場合、ユーザーが Web サイトのさまざまなページにアクセスしやすくするためにナビゲーション バーを追加する必要があります。 PHP フレームワーク ThinkPHP を使用して開発する場合、現在のページがどのナビゲーション バーに属しているかをどのように判断すればよいでしょうか?この記事では、ThinkPHP ナビゲーション バーの実装方法と現在のページを確認する方法を紹介します。
1. ThinkPHP ナビゲーション バーの実装方法
ThinkPHP では、通常、パブリック テンプレート メソッドを使用してナビゲーション バーを実装します。具体的な手順は次のとおりです:
1. まず、Web サイトのナビゲーション バーコードを保存するためのパブリック テンプレート ファイル (header.html など) を作成します。このファイルでは、必要に応じてナビゲーション バーのスタイルとレイアウトをカスタマイズできます。
2. 各サブページで公開テンプレート ファイルを参照し、ナビゲーション バーコードをサブページに埋め込みます。 ThinkPHP フレームワークでは、次のコードを使用してパブリック テンプレート ファイルを参照します。
<?php include(THEME_PATH . 'header.html'); ?>
ここで、THEME_PATH はユーザー定義のテーマ パスです。
3. パブリック テンプレート ファイルでは、PHP コードを使用して、現在のページが属するナビゲーション バーを決定する必要があります。通常、$_SERVER['REQUEST_URI'] 変数を使用して現在のページの URL アドレスを取得し、次に if ステートメントを使用して現在のページが属するナビゲーション バーを決定します。
たとえば、次のコードは、現在のページがホームページ ナビゲーション バーに属しているかどうかを判断できます。
<?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 } ?>
上記のコードでは、strpos() 関数を使用して、URL アドレスが現在のページの「index/index」文字列が含まれている場合、それは現在のページがホームページ ナビゲーション バーに属していることを意味し、< の active 属性を設定して、選択された状態を現在のナビゲーション バーに追加します。 li> タグ。
2. 現在のページが属するナビゲーション バーを決定する方法
前のステップでは、if ステートメントを使用して現在のページが属するナビゲーション バーを決定する方法を紹介しました。所属しています。しかし、実際の開発では、この方法では、URL アドレスにパラメータが含まれている場合、現在のページが属するナビゲーション バーをどのように決定するかなどの問題が発生する可能性があります。この時点で、よりインテリジェントな方法を使用して問題を解決する必要があります。
ThinkPHP フレームワークでは、ナビゲーション バー配列を定義し、現在のコントローラーと操作メソッドを決定することにより、現在のページが属するナビゲーション バーをインテリジェントに決定できます。具体的な手順は次のとおりです:
1. 構成ファイルでナビゲーション バー配列を定義します。例:
//定义导航栏数组 'NAV_LIST' => array( '首页' => array('Index', 'index'), '新闻' => array('News', 'index'), '产品' => array('Product', 'index'), '联系我们' => array('Contact', 'index'), ),
上記の配列では、キーはナビゲーション バーの名前を表し、値はコントローラーと操作メソッドの名前を含む配列です。
2. パブリック テンプレート ファイルで、foreach ループを使用してナビゲーション バー配列を走査し、if ステートメントを使用して現在のコントローラーと操作メソッドがナビゲーション内の値と同じかどうかを判断します。バー配列。それらが同じ場合は、ナビゲーション バーに active 属性を追加して、現在のページがそれに属していることを示します。
たとえば、次のコードは、現在のページが属するナビゲーション バーをインテリジェントに決定できます。
<?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 } ?>
上記のコードでは、foreach ループを使用してナビゲーション バー配列を走査します。次に、if ステートメントを使用して、現在のコントローラーと操作メソッドがナビゲーション バー配列の値と同じかどうかを判断します。それらが同じ場合は、
要約すると、if ステートメントを使用して現在のページがどのナビゲーション バーに属するかを決定するか、インテリジェントな判断方法を使用するかにかかわらず、ThinkPHP フレームワークの関連知識を明確にする必要があります。この記事の紹介が、ThinkPHP フレームワークを使用して Web サイトを開発する際の皆様のお役に立てれば幸いです。
以上がthinkphp ナビゲーション バーの現在のページを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。