0

環境: PH​​P/5.5.6

定義されたサイド ナビゲーション バー用に 2 つの *.html ファイルがあり、1 つは役割 A 用、もう 1 つは役割 B 用です。この 2 つには類似点があり、類似点を 1 つのファイルにまとめて、さまざまなオプションを含めたいと思います。ユーザーがログインしたときの役割に基づいて。

すなわち:

  • サイド ナビゲーション バーには 5 つのオプションがあります。オプション 1 からオプション 5。
  • ロール A には、オプション 1 ~ オプション 4 へのアクセス権があります。
  • 役割 B は、オプション 1 - オプション 3 およびオプション 5 にアクセスできます。

現在、ユーザーがログインすると、呼び出されるファイルはユーザーのロールに基づいていますが、ロールが拡張されると、各ロールよりも別のファイルが必要になります。私はこのアプローチが好きではありません.

  1. すべてのオプションを 1 つのファイルに配置し、CSS display:block または :none を javascript / jquery と共に使用して、必要な機能をユーザーに表示することを検討しました。これが最善のアプローチかどうかはわかりません。項目は表示されませんが、ソース コードを表示すると、これらのオプションの html が表示されます。

  2. また、TinyButStrong を使用して、ユーザーの役割に基づいて要素をリストに追加し、その要素を独自のファイルに含めることも検討しました。このアプローチがどのように機能するかはわかりませんが、サイド ナビゲーション メニューで単一の項目をマージ (追加) しようとしています。現在、以下に詳述するように、TBS を使用して単一の要素ではなく div 全体を含めています。

つまり、サイド ナビゲーション オプションの html ファイルに含まれるもの

<li><a href="/page5">Option 5</a></li>  <!-- another file would have option 4 -->

ベースサイドナビ *html

<ul>
    <li><a href="/page1">Option 1</a></li>
    <li><a href="/page2">Option 2</a></li>
    <li><a href="/page3">Option 3</a></li>
    <!-- insert Option 5 or Option 4 here -->
</ul>

どのアプローチが最適ですか、またはこれにアプローチする別の方法はありますか? 上記のアプローチが良くない場合、なぜですか?

この時点で誰かが私を助けたり、導いたりしてくれることを願っています。

4

1 に答える 1

1

*.html ファイルの内容を 1 つの *.php ファイルに移動し、php を使用して概説された役割を使用して、その 1 つのファイルにメニュー項目を除外/含めます。

例えば:

<?php
    if (roles->getUserRole(reports)) { echo "<li><a href='/page5'>Reports</a></li>"; }
?>

もちろん、HTML メニュー構造やパーミッション クラスなどを使用します。上記は単なる例です....

于 2014-02-12T13:41:48.587 に答える