#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);
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS