메뉴얼

EC-CUBE 3.x

新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ

by TheVOS posted Apr 10, 2019
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form
원문출처 https://www.nxworld.net/cms/ec-remove-us...l-tag.html
EC-CUBE 3.X:新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ

EC-CUBE 3.Xではもともと用意されているページを利用するだけでなくオリジナルで新規ページを追加することもできるのですが、その場合作成したページのURLに「user_data」が付与されています。
この「user_data」という部分をURLから消す方法とそれに関連して新規作成したページのURLをテンプレートタグを使って出力する方法です。

※紹介している内容はEC-CUBEのVersion 3.0.10で動作確認したもので、デフォルトのテンプレートを使っている想定になります。

新規作成したページURLから「user_data」を消す

EC-CUBEは例えばプライバシーポリシーや特定商取引法に基づく表記などのようにECサイトであれば必要なページはある程度最初から用意されており、さらに表示させる要素やスタイル調整などもある程度できるようにはなっていますが、それらを利用する以外にもオリジナルのページを新たに作成できるようにもなっています。

ただ、オリジナルページはコンテンツをはじめ、名称・URL・ファイル名なども自由に決めることができるようになってはいるのですが、デフォルトではURLに「user_data」というのが付与されます。
特にこだわり等もなければそのままでいいですが、できれば消したいという要望がほとんどなので、この「user_data」を消してみます。
URLから「user_data」を消す方法としては、ファイル移動・DB操作・.htaccessを利用などのいろいろと方法はあるのですが、ここではルーティングを変更する方法を紹介します。

まずsrc/Eccube/ControllerProviderにあるFrontControllerProvider.phpを開き、41行目に辺りにある下記の記述を見つけます。

FrontControllerProvider.php


	// user定義
	$c->match('/'.$app['config']['user_data_route'].'/{route}', '\Eccube\Controller\UserDataController::index')->assert('route', '[0-9a-zA-Z_]+')->bind('user_data');
	
	

上記記述を見つけたら、$c->match('/'.$app['config'] ~の部分を削除もしくはコメントアウトして、その代わりに下記を記述します。

FrontControllerProvider.php


	// user定義
	$c->match('/' . '/{route}', '\Eccube\Controller\UserDataController::index')->assert('route', '[0-9a-zA-Z_]+')->bind('user_data');
	
	

上記を記述後に作成したページを確認すると、例えば「example」というURLで作成したページの場合はデフォルトでは「http://example.com/html/user_data/example」のようになっていますが、それが「http://example.com/html/example」というように「user_data」がないURLになっているのを確認できます。

この方法は以下EC-CUBEのフォーラムで紹介されていた方法です。

URLを出力するテンプレートタグ

a要素でリンクを設定する際など、例えばお問い合わせページであれば「http://example.com/contact」とか「/contact」のような記述で設定するのでも一応ページ遷移もできはするのですが、こういったCMSなどはURLを出力するテンプレートタグなどが用意されていることがほとんどですし、それらを利用していなかったことで後々大変になることもあったりするので、基本的にはそちらを利用するべきです。

EC-CUBEでURLを出力するテンプレートはそれぞれ下記のような記述になり、下記は上からTOPページ・お問い合わせ・商品一覧のURLを出力させるものになります。
基本的には赤文字部分の中をページ毎に変更し、デフォルトのテンプレートとして用意されている商品一覧やプライバシーポリシーのようにURLの中にディレクトリが複数あるような場合は_を利用して記述します。


	<!-- TOPページ -->
	<a href="{{ url('homepage') }}">TOP</a>

	<!-- お問い合わせ -->
	<a href="{{ url('contact') }}">お問い合わせ</a>

	<!-- 商品一覧 -->
	<a href="{{ url('product_list') }}	">商品一覧</a>
	
	

上の流れで行くと新規作成したページも{{ url('xxx') }}と記述して「xxx」の部分を作成した際に決めたURLにすれば問題ないように感じますが、実はこれだと意図した形には出力されず、例えば「example」というURLにしたからといって{{ url('example') }}と記述してもリンク先は404となってしまいます。
新規作成したページのURLを出力したい時はこれまでとは少し違った記述方法になり、例えば「example」というURLにしたページのURLを出力するときは下記のように記述をします。

	
	<a href="{{ url(app.config.user_data_route, {'route': 'example'}) }}">サンプル</a>
	
	

Facebook [ko]댓글 


List of Articles
카테고리 아니오 제목 날짜 조회 수
EC-CUBE 3.x » 新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ file 2019.04.10 866
EC-CUBE 2.x 38 EC CUBEで商品ごとに支払い方法を簡単に分ける file 2019.10.28 665
EC-CUBE 2系 37 EC-CUBE2.13カスタマイズ:新しいページを追加する file 2019.11.11 636
EC-CUBE 2系 36 EC-CUBE 2系の「もっと見る」を簡潔に 2020.01.02 624
EC-CUBE 4系 35 EC-CUBE4 계에서 관리 화면에 새 메뉴 항목을 추가하는 방법 file 2019.10.28 495
EC-CUBE 2.x 34 EC-CUBE에서 모든 페이지에서 로그인 체크하기 2019.11.11 449
팁 & 노하우 나눔 33 구글 캘린더 합치기 1 file 2018.12.12 427
EC-CUBE 4.x 32 EC-CUBE 4를 설치했을 때 설정 한 데이터베이스 암호는 어디에 저장되는 것입니까? 2019.11.14 388
EC-CUBE 2.x 31 商品数や階層に関係なく全カテゴリーを表示させる方法 file 2019.04.10 260
EC-CUBE 3.x 30 デフォルトのtitleを任意のものに変更する方法 file 2019.04.10 228
EC-CUBE 3系 29 관리 화면의 사이드 메뉴에 항목 추가하는 방법 file 2019.11.11 165
EC-CUBE 2系 28 EC-CUBE標準規約 2019.09.28 154
EC-CUBE 2系 27 リファクタリングガイドライン 2019.09.28 153
EC-CUBE 2系 26 EC-CUBE 2系で注文を受けた商品の規格を後で削除すると、管理画面で受注内容を編集できなくなる 2020.01.02 135
EC-CUBE 2系 25 イベントセット販売プラグインマニュアル file 2019.11.07 131
EC-CUBE 2系 24 ECCUBE 2.13のインストール方法をスクリーンショット付きでわかりやすく徹底解説! file 2019.10.10 131
EC-CUBE 2.x 23 EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法 2019.10.03 119
메뉴얼 22 THEVOS Youtube BOARD SKIN 사용 설명 2018.11.11 116
CSS 21 Css 텍스트 외곽선 처리하기, Stroke 2019.11.28 111
EC-CUBE 2系 20 EC-CUBE 2系で商品情報をCSVで更新するとき関連商品情報が削除される 2020.01.02 104
Board Pagination Prev 1 2 Next
/ 2