【ec-cube.co】cssをコーディングソフトで編集する方法

ec-cube.coというクラウド版のEC-CUBEでは、管理画面から編集してサイトをカスタマイズしていくことが基本ですが、ローカル環境にテンプレートとして読み込むことで、コーディングソフトで編集していくことができます。
今回はcssの編集方法を紹介したいと思います。


## 準備するもの
<ul>
<li>EC-CUBEのローカル環境</li>
</ul>


## 手順
<ol>
<li>ローカル環境の用意</li>
<li>ec-cube.coのテンプレートのエクスポート</li>
<li>ローカル環境にテンプレートをインポート</li>
<li>css周りの設定</li>
<li>編集</li>
<li>編集したテンプレートをec-cube.coにインポート</li>
</ol>


## 1. ローカル環境の用意
ec-cube.coは最新版のEC-CUBEです。ローカル環境にも最新版のEC-CUBEをインストールします。
インストール方法については<a href="https://doc4.ec-cube.net/" target="_blank">EC-CUBEの開発ドキュメント</a>をご覧ください。

## 2. ec-cube.coのテンプレートのエクスポート
ec-cube.coの`管理画面＞テンプレート＞テンプレート一覧`から使用しているテンプレートをエクスポートします。
エクスポートすると「テンプレート名.tar.gz」というファイルがダウンロードされます。
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892345/377b5dd6-4fa7-42e5-55ce-9ec21566170c.png)


## 3. ローカル環境にテンプレートをインポート
ローカル環境にインストールしたEC-CUBEの`管理画面＞テンプレート＞アップロード`からテンプレートをインポートします。
テンプレートコードやテンプレート名は自由に決めてください。
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892345/f48bc0d8-2efc-f1d1-740e-befbf0049087.png)


アップロードしたテンプレートを有効にします。
テンプレートの保存先から格納先を確認します。
![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892345/9c432752-1bf3-5406-2fe1-579382e886be.png)



## 4. css周りの設定
テンプレート内に編集用のcssを作成してテンプレートに読み込ませます。
EC-CUBEのテンプレートは格納先が2箇所にわかれています。
phpファイルはappディレクトリに、cssやjsのファイルはhtmlディレクトリに格納されます。

```
/*-- phpファイル（twigファイル）の格納先 --*/
[app]
 └─ [template]
     └─ [テンプレート名]
```

```
/*-- cssの格納先 --*/
[html]
 └─ [template]
     └─ [テンプレート名]
            └─[assets]
                 ├─ [css]
                 │    ├─ style.css     # 読み込まれているCSS
                 │    └─ style.min.css # 軽量版CSS
                 └─ [scss]
                      ├─...
```
テンプレートには元々style.cssというファイルがあり、テンプレートのcssが全て記述されています。
style.cssを編集していくこともできますが、今回は別ファイルのcssを作成して編集していきたいと思います。
※ scssを編集していくことも可能です。


### 編集用のcssを追加

`html/template/テンプレート名/assets/css`にアクセスし、cssを追加します。
「test.css」というファイルを追加してみました。
![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892345/60f67cb0-6f9c-2c5b-cf5c-a0744612bb15.png)


### cssの読み込み
次に作ったcssをテンプレートに読み込ませます。
`src/Eccube/Resource/template/default/default_frame.twig`をコピーします。
![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892345/b87068ea-3598-5df7-de68-b07c036c5069.png)

default_frame.twigというのは、テンプレートのheadやbodyなどのベースになるphpファイルです。
EC-CUBEは本体のコアファイルの中に、親テンプレートが存在しています。
親テンプレートをコピーして、自分のテンプレート内にファイルを複製すると読み込みの優先順位が、自分のテンプレートが優先されるようになります。

テンプレート優先順位

```
1.自分のテンプレート
　↓ファイルがなければ
2.親テンプレート
```

default_frame.twigを、`app/template/テンプレート名/`にペーストします。
![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892345/936f3072-9867-4300-d049-8db81a2690f0.png)
コアファイルのdefault_frame.twigを直接編集してしまうとec-cube.coにテンプレートとして読み込むことができないので、必ず自分のテンプレートにdefault_frame.twigを複製してください。

ペーストしたdefault_frame.twigを以下のように編集します。

```default_frame.twig
/* 37行目をコピー */
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
/* 38行目にペースト、編集用cssを読み込む */
<link rel="stylesheet" href="{{ asset('assets/css/test.css') }}">
```


## 5. 編集
test.cssを編集していきます。
サンプルにサイトの背景を水色にするcssを入力してみました。

```test.css
@charset "UTF-8";
.ec-layoutRole{
  background: #B2EBF2;
}
.ec-categoryRole,
.ec-topicRole,
.ec-itemNav__nav li a{
  background: transparent;
}
.ec-newsRole .ec-newsRole__news{
  border: 8px solid #fff;
}

```
サイトに反映されているか確認します。
反映されていなければ、`管理画面＞コンテンツ管理＞キャッシュ管理`からキャッシュを削除してください。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892345/f03d773c-89fa-19a3-7a2d-a23555f74867.png)


## 6.編集したテンプレートをec-cube.coにインポート
2、3と同じ手順で、編集し終わったテンプレートをエクスポートしてec-cube.coにインポートします。
インポートしたテンプレートを有効にして、反映されていれば完了です。

作成したtest.cssはec-cube.coの画面では編集できません。
ローカル環境でサイトを構築し、coにはテンプレートとして読み込ませましょう。