このコードをheader.tplに入れましたが、すべてのページに div が表示されています
{if cart.php}
<div> This is Cart.PHP </div>
{/if}
この div をcart.phpページのヘッダーのみに表示したい。
{if __FILE__ eq "cart.php"}
do your thing
{/if}
@JaredFarrish が言うように、比較は常に true を返します。これは、ファイル名 (この場合はcart.phpがtrue ) であり、現在のファイル名であるかどうかを尋ねているためです。
ただし、これはインクルードでは機能しない場合があり(あなたのケースのように)、次のようなものを使用することをお勧めします:
{if $smarty.server.PHP_SELF eq "/cart.php"}
do your thing
{/if}
ファイルがサブディレクトリにある場合は、それをフルパスと比較するか$smarty.server.PHP_SELF
、パスも返すため、文字列からファイル名を抽出する必要があることに注意してください。
これを行うには、basename
関数を変数に直接使用できるため、それでbasename($smarty.server.PHP_SELF) eq "cart.php"
十分です。
サーバー変数 PHP_SELF を使用します (「/cart.php」を、サイトのルートからカート ファイルがある場所までの正確なパスに変更します。
if ($_SERVER['PHP_SELF'] == "/cart.php") {
echo "<div>This is cart.php</div>";
}