0

サイトの基本的なナビゲーション システムを作成しようとして行き詰まりました。

サイトのナビゲーション全体を入れようとしている .txt ファイルがあります。次に、行ごとにループして、ネストされた s を作成しています。これは問題なく動作しますが、2 つの問題があります。

1-別の div に別のナビゲーションがあるため、ネストされておらず、最初のループでは発生しないため、それを設定する方法がわかりません。

2-JQuery を使用したり、各ページに手動で $parent 変数を追加したりせずに、親ナビゲーション リンクのクラスを変更する方法がわかりません。

これが私のコードです:

nav.txt

index.php:Home
products.php:Products:2
    ace.php:Ace Blade
    electrodes.php:Electrodes
    megasoft.php:Mega Soft
    lletz.php:Lletz Loops
    megapower.php:Mega Power:-2
samples.php:Samples
gogreen.php:Go Green:2
    wastecalculator.php:Waste Calculator
    environmental.php:Environmental Considerations:-2
about.php:About Us

マイナビ機能:

<?php 

function  main_navigation()
{    

$active_page = basename($_SERVER['PHP_SELF']);

?>

<div class="main_nav">
    <ul>

        <?php
            $nav = fopen("template/nav.txt", "r") or exit("Unable to open file!");
            //Output a line of the file until the end is reached        
            while(!feof($nav)){ 
                $line = fgets($nav);
                list($url, $name, $layer) = explode(":", $line);

                echo "<li>";
                if ($active_page == $url) {
                        echo "<div class='active'>".$name."</div>";
                    }else{
                        echo "<a href='".$url."'>".$name."</a>";
                    };
                if ($layer == 2){
                    echo "<ul>";
                }elseif($layer == -2){
                    echo "</ul>";
                }else{
                    echo "</li>";
                };

            };
            fclose($nav);
        ?>
    </ul>
</div>
<?
};

?>

繰り返しますが、ここには示されていませんが、3 番目の「レイヤー」を追加しようとしていますが、この 内にネストされていません。

4

1 に答える 1

0

混乱したコードの外でナビゲーションが必要な場合は、次のようなものを使用できます。これにより、階層化が可能になりますが、それでも単純なコーディングが可能になります。そして、このコードを1年ほどで確認して-2から、2

menu.php

<?php
function AddMenuItem($url, $name)
{
  $active_page = basename($_SERVER['PHP_SELF']);

  if ($active_page == $url)
    echo "<div class='active'>".$name."</div>";
  else
    echo "<a href='".$url."'>".$name."</a>";
}
?>

<ul>
  <li>
    <?php echo AddMenuItem("index.php", "Home"); ?>
  </li>
  <li>
    <?php echo AddMenuItem("products.php", "Products"); ?>
    <ul>
      <li>
        <?php echo AddMenuItem("ace.php", "Ace Blade"); ?>
      </li>
      <li>
        <?php echo AddMenuItem("electrodes.php", "Electrodes"); ?>
      </li>
      <li>
        <?php echo AddMenuItem("megasoft.php", "Mega Soft"); ?>
      </li>
    </ul>
  </li>
  <li>
    <?php echo AddMenuItem("samples.php", "Samples"); ?>
  </li>
</ul>



index.php, products.php, ace.php, etc.

<?php require_once("menu.php"); ?>
于 2013-03-05T19:02:35.730 に答える