目的
SEO対策のため、各カテゴリページにカテゴリの説明分を記載できるように、管理画面を改修します。
今回すること
・カテゴリエンティティに説明を付与
・カテゴリページに登録した説明を表示
カテゴリエンティティに説明を付与
カテゴリエンティティに説明を付与します。フォームで自動生成されるようにFormAppendも指定します。
app/Customize/Entity/CategoryTrait.php
<?php
namespace Customize\Entity;
use Doctrine\ORM\Mapping as ORM;
use Eccube\Annotation as Eccube;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @Eccube\EntityExtension("Eccube\Entity\Category")
*/
trait CategoryTrait
{
/**
* @ORM\Column(name="description", type="text", nullable=true)
* @Eccube\FormAppend(
* auto_render=true,
* options={
* "label": "説明"
* }
* )
*/
public $description;
public function setDescription($description = null)
{
$this->description = $description;
return $this;
}
public function getDescription()
{
return $this->description;
}
}
管理画面のレイアウトを少し整えます。
src/Eccube/Resource/template/admin/Product/category.twig
{% form_theme f f.vars.eccube_form_options.form_theme %}
{{ form_row(f) }}
{% else %}
- <div class="form-row mb-3">
+ <div class="form-row mb-3" style="display: block">
<div class="col-3">
<span>{{ f.vars.label|trans }}</span>
</div>
・・・
</div>
</div>
</div>
+ <div class="mode-view">
+ {{ Category.description }}
+ </div>
<form class="form-row d-none mode-edit" method="POST" action="{{ (Parent and Parent.id) ? url('admin_product_category_show', {'parent_id': Parent.id}) : url('admin_product_category') }}">
{{ form_widget(forms[Category.id]._token) }}
<div class="col-auto align-items-center">
・・・
{# エンティティ拡張の自動出力 #}
{% for f in forms[Category.id] if f.vars.eccube_form_options.auto_render %}
<div class="col-auto align-items-center" style="width:90%; padding-top: 10px;">
- <div class="row">
+ <div class="row" style="display: block">
<div class="col-3">
<span>{{ f.vars.label|trans }}</span>
</div>
・・・
カテゴリページに登録した説明を表示
管理画面>コンテンツ管理>ページ管理から、商品一覧ページの任意の場所に追記します。
{% if Category is not null %}
<div>{{ Category.description }}</div>
{% endif %}
以上!
宣伝
ハンドメイド猫グッズ専門ショップを運営しています。
ネコ好きの方、親しい間柄にネコ好きがいらっしゃる方、ぜひご覧ください。
■キャットギフト
https://cat-gift.net/