ワイヤード・パンチ

サイトレイアウトを変えてみました。よろしければアンケートにご協力ください。

EC-CUBE3、新しく追加したページのURLを出力したい。

image

仕事上、EC-CUBEを使用したサイトの制作にも関わることがあります。管理画面にログイン後、コンテンツ管理→ページ管理→新規入力と進めば、新しいページを作成することができます。しかし、その新しく追加したページのURLを出力するためのコードがわかりません。なお、今回はバージョン3.0.6で行っています。

広告

デフォルトのページなら専用のコードがある。

たとえば商品一覧ページ、twigファイル内に以下のコードを書けば出力されます。

{{ url("product_list") }}

もしかして新しく追加したページも、カッコ内の文字列を変えたらいけるのでは?と思って、今回は試しにcompanyというページを追加したので、それを入力してみましたが、ダメでした。エラー画面になってしまいます。

新しく追加したページ用のコードがある。

{{ url(app.config.user_data_route, {"route": "company"}) }}

上記のコードで出力できました。companyの部分はそれぞれ合わせてください。これを実行すると結果は管理画面でも見えるとおり「http://192.168.xx.xx/hogehoge/html/user_data/company」という感じになります。

直接URL書いたらダメなの?

「http://192.168.xx.xx/hogehoge/html/user_data/company」と直接書いてしまったら、もしサーバを移転した場合はどうなるでしょう。そのページが存在しないため、アクセスできなくなってしまいます。置き換えも面倒です。

よって、EC-CUBEに限らずwordpressでも、URLの出力はなるべく関数を使用するべきです。URLを自動的に出力してくれるので、サーバ移転にすぐ対応できます。

EC-CUBEの解説サイトがまだまだ足りない。

数カ月前にバージョンが2から3に上がったことで、内部の仕組みも大きく変わりました。よって、まだ対応できていない人が多いのか、わからないことがあってもバージョン2の話が出てくることがほとんどです。公式サイトですら関数についてのマニュアルが無い状態です。

エンジニアの皆さん、やっててやりにくかったところや、質問サイトで得たことなど、自分のサイトでどんどん広めていくのが良いと思う。他の人のためだけならず、忘れたころにあとで自分で見返すためにも。

ところで、新しいページのURLに「user_data」って入るのですが、このままだとダサいです。どうにかなりませんか?