메뉴얼

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
카테고리 아니오 제목 날짜 조회 수
팁 & 노하우 나눔 39 페이스북위젯 삽입하기 file 2018.12.15 47
클래스 38 클래스의 사용 2019.10.03 93
클래스 37 클래스의 구조 2019.10.03 35
클래스 36 클래스와 객체의 기초 file 2019.10.03 56
메일 서비스 35 메일 사용자 설명서 2019.03.29 61
팁 & 노하우 나눔 34 구글 캘린더 합치기 1 file 2018.12.12 427
EC-CUBE 3系 33 관리 화면의 사이드 메뉴에 항목 추가하는 방법 file 2019.11.11 165
EC-CUBE 4系 32 管理機能一覧 2020.11.12 30
EC-CUBE 3.x » 新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ file 2019.04.10 863
EC-CUBE 2.x 30 商品数や階層に関係なく全カテゴリーを表示させる方法 file 2019.04.10 260
EC-CUBE 2.x 29 商品名などで長くなったテキストを省略する方法 file 2019.04.10 45
EC-CUBE 2.x 28 商品ステータスを変更・追加する方法 file 2019.04.10 62
EC-CUBE 2系 27 単体テストガイドライン 2019.09.28 86
EC-CUBE 2系 26 リファクタリングガイドライン 2019.09.28 153
EC-CUBE 4系 25 フロント機能一覧 2020.11.12 33
EC-CUBE 3.x 24 デフォルトのtitleを任意のものに変更する方法 file 2019.04.10 228
EC-CUBE 2.x 23 サイトデザインをPCで統一させる方法 file 2019.04.10 52
EC-CUBE 2系 22 イベントセット販売プラグインマニュアル file 2019.11.07 131
EC-CUBE 3.x 21 titleの並びや区切り記号を変更する方法 file 2019.04.10 96
메뉴얼 20 THEVOS Youtube BOARD SKIN 사용 설명 2018.11.11 116
Board Pagination Prev 1 2 Next
/ 2