0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ECCUBE4】管理画面から各カテゴリの見出し文を設定できるようにする【SEO対策】

Last updated at Posted at 2020-04-11
1 / 10

目的

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/

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?