PcSchool.Club

パソコンを分かりやすく解説することを目指す無料のオンラインパソコン教室

岐阜のパソコン教室「パソコンスクール・テルン」

EC-CUBE3.0の覚書き?その1

2021年5月28日

EC-CUBE3.0の案件があったため、その覚書をついでに記載しておきます。

  • デザインカスタマイズ方法

デフォルトページ

/src/Eccube/Resource/template/defaut/

この階層にデフォルトのページが格納されている

カスタマイズする場合は、この中身を/app/template/default/にコピーしてから作業を行います

※また自作のプラグインを作った場合は、/app/plugin/プラグイン名/Resource/templeate/プラグインのテンプレートに格納することを推奨しています。

 

  • Twigの記述方法

Twigは、{{と}}に囲まれた個所で変数の出力や関数を実行することができます。

・ページの紹介文をTwigを利用して記述する場合は以下です。

<meta name=”description” content=”{{PageLayout.description}}”>

・ブロックblock.twigを呼び出す場合、

{{include(“block.twig”,{“Blocks”:PageLayout.Header}) }}

 

・また{% と %}で囲んだ部分でifやforの制御構文を実行します。

例)もしPageLayout.Headが存在する場合はblock.twingを読み込みする場合

{% if PageLayout.Head %}

{# ▼上ナビ #}・・コメント記述方法

{{include(“block.twig”,{“Blocks”:PageLayout.Head}) }}

{% endif %}

 

例2)Blocks変数で与えられたブロックを1つずつBlockという変数に入れて処理する

{% for Block in Blocks %}

<!?▼ {{ Block.name }} a

{% if Block.logic_flg %}

{{ render(path(“block_” ~ Block.file_name)) }}

{% else %}

{# 省略 #}

{% endfor %}

 

・変数の出力方法

<img src=”{{ app.config.front_urlpath}}/img/top/mv01.jpg”>

これはPHP側で $app[“config”][“front_urlpath”]に格納されている値と同じです。

Twing_EnvironmentクラスのaddGlobalメソッドで追加された値も利用可能です。

Application.phpの$BaseInfoには店名(shop_name)などの情報が格納されています。

$app[“twig”]->addGlobal(“BaseInfo”,$BaseInfo);

これをTwigで使う場合は、

{{ BaseInfo.shop_name }}

 

Application.phpでの初期化処理はすべてページ処理に共通した処理ですが、各ページやブロック毎にコントローラで渡される値も存在します。 この値はApplicationクラスのrenderメソッドで渡されます。

ProductController.php

return $app->render(“Product/detail.twig”,array(

“ttile” =>$this->ttile,

“subtitle”=>$Product->getName();

“form”=>$form->createView(),

“Product”=>$Product,

“is_favorite”=>$is_favorite,

));

Product\detail.twig

<li> {{ Product.name }} </li>

  • Twigファイルの継承

Twigには継承という仕組みがあります。ECCUBE3でいうと各ページのTwigファイルに記述されている以下のコードが継承の部分にあたります。

{% extends “default_frame.twing” %}

このコードによって各ページのTwigファイルはヘッダー、フッター、ブロックなどw含むフレームを表示することができます。Default_frame.twingには以下の記述があります。

{# 省略 #}

<div id=”main_middle”>

<% block main %}{% endblock %}

</div>

{# 省略 #}

 

  • ECCUBEのフォルダについて

app・・キャッシュファイル、ログファイルなど

html・・TemplateフォルダにJsやCSSファイルなどが格納される user_data、.htaccessもここ

src/eccube・・ここで機能のカスタマイズを行う

vender・・SilexやTwigのソースを格納 ここはいじらない

 

  • データベースへの接続情報

app/config/eccube/datebase.ymlに記述

 

EntityとRepository

データベースの各テーブルはEntityとして扱います。 /src/Eccube/Entityフォルダ

EntitiyはRepositoryと呼ばれる補助用クラスを経由して利用されます。

 

$Other=$app[“orm.em”]->getRepository(“Eccube\Entity\BlockPosition”)

->findBy(array(

“anywhere” =>1,

“block_id”=>$data[“id”,$i],

));

Eccubeでよく利用するテーブルのRepositoryはEccubeServiceProviderクラスでまとめてApplicationクラスに保持しています。

 

  • キャッシュのクリア

/app/cache/twig 内のファイルを削除します。

 

  • 定数について

ymlファイルに定義された定数

mtb_という文字から始まるデータベーステーブル

root: /

admin_dir : admin/

というように:で区切って定数が指定されています。ymlファイルの場所

./src/Eccube/Resource/config

./app/config/eccube

なお、Applicationクラスで定数を読み込んでいます。

 

  • デバッグの実行方法

/index_dev.phpを追加することで可能です。

/products/list?category_id=2 をデバッグする場合は以下のように足してURLを実行します。

/index_dev.php/products/list?category_id=2

※デバッグエラーは/html/index_dev.phpのallow=array() 内にデバッグしたいサーバーのIPアドレスを追加

  • ログファイルのチェック

app/logフォルダ

関連サイト

パソコン教室

パソコンスクール・テルン岐阜・穂積・大垣教室 楽しく学ぶ・通うパソコン教室あもる

パソコン修理・販売・買取・サポート

パソコンの修理・販売・買取・サポート