EC-CUBE4でURLに指定した文字列が入っていた場合に条件分岐させる方法

EC-CUBE4でURLに指定した文字列が入っていた場合に条件分岐させる方法

EC-CUBE4でURLに指定した文字列が入っていた場合に条件分岐させる方法

EC-CUBE4で参照しているページのURLを取得して、指定の文字列が入っているかどうか、条件分岐させて表示を切り替える方法をご紹介いたします。

カテゴリーによって商品一覧ページの表示を変えたり、特定のページのみで行いたい処理がある場合に便利です。

スポンサードリンク

EC-CUBE4でURLに指定した文字列が入っていた場合に条件分岐させる方法

参照しているページのURLを取得するには、「app.request.server.get(‘REQUEST_URI’)」を使います。

ブロックやページのtwig内で以下のように記述すれば、簡単に条件分岐できます。

{% set request_uri = app.request.server.get('REQUEST_URI') %}
{% if 'example' in request_uri %}
  <p>※URLにexampleが含まれている場合の表示</p>
{% else %}
  <p>※URLにexampleが含まれていない場合の表示</p>
{% endif %}

上記の場合、「{% if ‘example’ in request_uri %}」の部分で、URLに”example”が入っているかどうかを判別しています。

余談:URL全体を取得したい場合

app.request.server.get(‘REQUEST_URI’)では、URL内のドメインよりも後ろの部分が取得されます。「https://hogehoge.com/example」というページにアクセスした場合、”example”が返されます。

ドメイン部分を取得したい場合は、「app.request.server.get(‘SERVER_NAME’)」を使います。

例えばですが、ページのURLを表示したい時は、以下のように記述すればURL全体を表示できます。

{% if app.request.server.get('HTTPS') %}https{% else %}http{% endif %}://{{ app.request.server.get('SERVER_NAME') }}{{ app.request.server.get('REQUEST_URI') }}

app.request.server.get(‘HTTPS’)でプロトコルを判別してhttpsとhttpを出し分けています。

app.request.server.get(‘SERVER_NAME’)でドメイン、app.request.server.get(‘REQUEST_URI’)でドメインよりも後ろのアドレスを表示しています。

あとがき

ページのURLを取得できれば、色んなケースで活用できます。

ちなみに、Page.urlの値で判別する方法もありますので、状況に合わせて使い分けると良いですね。

{% if Page.url == 'homepage' %}
  <p>※トップページ</p>
{% else %}
  <p>※トップページ以外</p>
{% endif %}

キーワードやカテゴリによる検索結果など、特定のパラメータが指定されている場合に条件分岐したい時はapp.request.server.get(‘REQUEST_URI’)を使っていますが、もっとスマートなやり方があるかもしれません。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です