#author("2024-06-13T14:51:23+09:00","default:fujioka","fujioka") #author("2024-06-13T15:47:51+09:00","default:fujioka","fujioka") 商品に追加項目1(add_item1)を追加する。 **結局はこれ [#o9025438] -https://noveblo.com/eccube-customize-12/ **画面の追加項目を作成 [#udf6e8aa] -「/app/Customize/Form/Extension/Admin」ディレクトリに「ProductTypeExtension.php」というファイルを作成する。(デフォルトでディレクトリは用意されていない) <?php namespace Customize\Form\Extension\Admin; use Eccube\Form\Type\Admin\ProductType; use Symfony\Component\Form\AbstractTypeExtension; use Symfony\Component\Form\Extension\Core\Type\TextType; // use Symfony\Component\Form\Extension\Core\Type\IntegerType; use Symfony\Component\Form\FormBuilderInterface; class ProductTypeExtension extends AbstractTypeExtension { public function getExtendedType() { return ProductType::class; } public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('add_item1', TextType::class, [ 'required' => false ]); } } **テーブルの追加項目を作成 [#o7b89f38] -「/app/Customize/Entity/ProductTrait.php」を作成する。 <?php namespace Customize\Entity; use Eccube\Annotation\EntityExtension; use Eccube\Entity\Product; /** * @EntityExtension("Eccube\Entity\Product") */ trait ProductTrait { /** * @var string * * @ORM\Column(name="add_item1", type="string", nullable=true) */ private $add_item1; /** * Set add_item1. * * @param string|null $special_comment * * @return Product */ public function setAddItem1($add_item1) { $this->add_item1 = $add_item1; return $this; } /** * Get add_item1. * * @return string */ public function getAddItem1() { return $this->add_item1; } } **コマンドでproxyファイルを作成し、DBに「ProductTrait」で指定した項目を追加 [#tf69d0c3] -https://minory.org/xserver-ssh-php7.html cd /var/www/public_html/[EC-CUBEインストールディレクトリ] php bin/console eccube:generate:proxies php bin/console cache:clear --no-warmup php bin/console doctrine:schema:update --dump-sql --force **ビューに画面に追加する項目を追加 [#kebbda77] -「/src/Eccube/Resource/template/admin/Product/product.twig」に画面に追加する項目を追加する。 -%%「/src/Eccube/Resource/template/admin/Product/product.twig」をコピーして、「/app/template/admin/Product/product.twigに貼り付け 469行目あたり検索ワードの下に下記ソースコードを記述する。%% <div class="row"> <div class="col-3"> <div class="d-inline-block" data-tooltip="true" data-placement="top" title="{{ 'tooltip.admin.product.add_item1'|trans }}"> <span>{{ 'admin.product.add_item1'|trans }}</span> <i class="fa fa-question-circle fa-lg ml-1"></i> </div> </div> <div class="col mb-2"> <div> {{ form_widget(form.add_item1) }} {{ form_errors(form.add_item1) }} </div> </div> </div> **画面に表示する固定文言を追加 [#ffa5d69d] -「/app/Customize/Resource/locale/Eccube/messages.ja.yaml」に画面で利用する固定文言を追加する。 admin.product.add_item1: 追加項目1 tooltip.admin.product.add_item1: 追加項目1を設定します。 ** [#m53025c9] -https://qiita.com/espritfort_tech/items/1729c93b300120be8885 -https://enginiya.com/entry/2021/10/28/222740 ---- RIGHT:Today : &counter(today); / Yesterday : &counter(yesterday); / Total : &counter(total);