PHPプログラミングで「ホーム」のメニューの使用例ですね。ここでは、簡単なHTML構造とPHPのコードを組み合わせて、動的なメニューの表示と、現在選択されているメニュー項目の強調表示を行う例をご紹介します。
基本的なHTML構造 (menu.php):
HTML
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>シンプルなメニュー</title>
<style>
.menu {
list-style: none;
padding: 0;
margin: 0;
display: flex;
}
.menu-item {
margin-right: 20px;
}
.menu-item a {
text-decoration: none;
color: #333;
}
.menu-item.active a {
font-weight: bold;
color: blue;
}
</style>
</head>
<body>
<ul class="menu">
<?php
$menuItems = [
'home' => 'ホーム',
'about' => '私たちについて',
'services' => 'サービス',
'contact' => 'お問い合わせ'
];
$currentPage = basename($_SERVER['PHP_SELF'], '.php'); // 現在のファイル名を拡張子なしで取得
foreach ($menuItems as $key => $label) {
$activeClass = ($key === $currentPage) ? 'active' : '';
echo '<li class="menu-item ' . $activeClass . '"><a href="' . $key . '.php">' . $label . '</a></li>';
}
?>
</ul>
<h1>ようこそ、ホームへ!</h1>
<p>ここはホームページのコンテンツが表示される場所です。</p>
</body>
</html>
各メニューに対応するPHPファイル (例: home.php, about.php など):
home.php:
PHP
<?php include 'menu.php'; ?>
about.php:
PHP
<?php include 'menu.php'; ?>
<h1>私たちについて</h1>
<p>私たちの会社やサービスについて説明します。</p>
services.php:
PHP
<?php include 'menu.php'; ?>
<h1>サービス</h1>
<p>提供しているサービスの一覧です。</p>
contact.php:
PHP
<?php include 'menu.php'; ?>
<h1>お問い合わせ</h1>
<p>お問い合わせフォームや連絡先を記載します。</p>
解説:
-
HTML構造 (menu.php):
<ul class="menu">
でメニューのリストを作成します。- CSSで基本的なメニューのスタイルを定義しています(必要に応じて調整してください)。
- PHPのコードブロック
<?php ... ?>
内で動的にメニュー項目を生成します。
-
メニュー項目の定義 ($menuItems):
- 連想配列
$menuItems
で、メニューのキー(URLの一部として使用)と表示するラベルを定義します。
- 連想配列
-
現在のページを特定 ($currentPage):
$_SERVER['PHP_SELF']
は現在のスクリプトのパスとファイル名を取得します。basename()
関数でファイル名のみを取り出します。.php
を取り除くことで、メニューのキーと比較できるようにします。
-
メニュー項目のループ処理 (foreach):
foreach
ループで$menuItems
の各要素を処理します。$activeClass
変数で、現在のページに対応するメニュー項目にactive
クラスを付与するための条件分岐を行います。echo
を使って、各メニュー項目の<li>
要素を生成します。href
属性には、キーに.php
を付けたファイル名を指定します。<a>
タグの中には、メニューのラベルが表示されます。class
属性には、現在のページであればactive
クラスが追加されます。
-
各コンテンツファイル (home.php, about.php など):
- 各ファイルの上部で
include 'menu.php';
を記述することで、共通のメニュー構造を読み込みます。 - その後に、各ページ固有のコンテンツを記述します。
- 各ファイルの上部で
動作:
この例では、ユーザーが home.php
にアクセスすると、「ホーム」のメニュー項目が太字で青色に強調表示されます。同様に、about.php
にアクセスすると、「私たちについて」が強調表示されます。
さらに発展させる場合:
- 設定ファイルからのメニュー定義: メニュー項目をPHPファイルに直接記述するのではなく、設定ファイル(JSONや配列形式のPHPファイルなど)から読み込むことで、メニューの変更がより簡単になります。
- データベースからのメニュー管理: より複雑なサイトでは、メニュー項目をデータベースで管理し、動的に生成することも考えられます。
- URLパラメータの利用:
index.php?p=home
のようにURLパラメータを使ってページを切り替える方式も一般的です。この場合は、$_GET['p']
で現在のページを判定します。 - テンプレートエンジンの利用: より大規模なアプリケーションでは、HTMLとPHPのロジックを分離するために、TwigやBladeなどのテンプレートエンジンを利用することが推奨されます。
この基本的な例を参考に、ご自身のプロジェクトの要件に合わせてメニューの構造やスタイルを拡張してみてください。
0 件のコメント:
コメントを投稿