サイトのナビゲーションを自動的に構築する 1 つの解決策は、次のようなドキュメントのフォルダーをスキャンすることです。
foreach(glob('pages/*.pg.php') as $_SITE_NAV_filePath):
$_SITE_NAV_filePath = explode('.pg',pathinfo($_SITE_NAV_filePath,PATHINFO_FILENAME));
$_SITE_NAV_fileName = $_SITE_NAV_filePath[0];
$_SITE_NAV_qv = preg_replace('/([A-Z])/','-$1',$_SITE_NAV_fileName); $_SITE_NAV_qv = trim($_SITE_NAV_qv,'-');
$_SITE_NAV_name = preg_replace('/([A-Z])/',' $1',$_SITE_NAV_fileName);
?>
<li><a href="?page=<?=$_SITE_NAV_qv?>" class="<?=$_SITE_NAV_qv == $_SITE_PAGE['qv']?'active':''?>"><?=$_SITE_NAV_name?></a></li>
<?php
endforeach;
このコードは、「AnAwesomePage.pg.php」を次のようなメニュー項目に変えます:
<li><a href="?page=An-Awesome-Page">An Awesome Page</a></li>
これは悪い習慣 (?) かもしれません。
ともかく; ほとんどの場合、サイトにはデータベースがあり、それにより、より良い解決策が得られるため、私はこの方法をあまり使用しません...
しかし、私の質問は次のとおり
です。並べ替え順序の目的で、ファイル名の前に整数とアンダースコア(3_AnAwesomePage.pg.php)を付けて、クエリ文字列の外で非同期なしで目的のページに渡す方法はありますかジャバスクリプト?
ファイル名をもう一度爆発させ"_"
てソート順を取得し、それをどこかに保存することはできますか?
これは、ページ クエリ リクエストを処理するためのコードです。
$_SITE_PAGE['qv'] = $_GET['page'];
if (empty($_SITE_PAGE['qv'])){ $_SITE_PAGE['qv'] = explode('-','Home'); }
else { $_SITE_PAGE['qv'] = explode('-',$_GET['page']); }
$_SITE_PAGE['file'] = 'pages/'.implode($_SITE_PAGE['qv']).'.pg.php';
このコードは「An-Awesome-Page」を「AnAwesomePage.pg.php」に戻すため、php に含めることができます。
しかし、プレフィックスを使用すると、それほど簡単ではありません。
問題は次のとおりです。クエリ文字列から削除されているため、以前にあったプレフィックス番号を知る方法はありません。そのため、「バックグラウンド」で何らかの形で送信する必要があります。
私が思いついた非常に悪い解決策の 1 つは、ナビゲーション リンクをフォーム ボタンに変換し_POST
、プレフィックス インターガーだけをフォームと一緒に変換することでした。最初は良い解決策のように思えましたが、ユーザーがページを更新すると、見栄えがよくないことに気付きました。結局のところ、それはフォームの目的ではありません...
そこに何か良い解決策はありますか?
または、これに対処するための他のより良い方法はありますか?