Magento - Добавить настраиваемое поле в форме обзора - PullRequest
0 голосов
/ 18 января 2012

Я с нетерпением жду создания пользовательского модуля, который добавляет поле ввода для сбора идентификатора электронной почты в форме обзора, но только для гостевых клиентов.

Я знаю, что для этого, вероятно, потребуется переписать некоторые из основных модулей, например '/code/core/Mage/Review/Model/Mysql4/Review/Product/Collection.php' и '/ code / core / Mage / Review / Model / Mysql4 / Review.php 'и редактирование файлов блоков и файлов .phtml для включения текстового поля' email '.

Также необходимо добавить новое поле в таблицу базы данных. И это поле обязательно должно быть там для гостевых клиентов. Зарегистрированные клиенты не должны вводить свой адрес электронной почты при публикации отзыва.

Так что я не знаю, как поступить следующим образом: 1) Какие файлы ядра должны быть переписаны точно? 2) Как мне добавить это новое поле в существующую таблицу базы данных для проверки, чтобы будущие обновления не перезаписывали его? 3) Как мне убедиться, что это поле обязательно заполнено гостевыми клиентами? (Это нормально, если зарегистрированные клиенты не заполняют его)

Пожалуйста, любая помощь очень ценится. Спасибо.


Это то, что я сделал до сих пор

CM
 Review
  Block
     Review
       Edit
         Form.php
  etc
    config.xml
  Helper
    Data.php
  Model
    Resource
      Review.php
      Review
        Product
          Collection.php

Это содержимое моего config.xml

 <?xml version="1.0"?>
 <config>
<modules>
    <CM_Review>
        <version>0.0.1</version>
    </CM_Review>
</modules>
<frontend>
    <routers>
        <review>
            <use>standard</use>
            <args>
                <module>CM_Review</module>
                <frontName>Review</frontName>
            </args>
        </review>
    </routers>
</frontend>    
<global>
    <blocks>
        <adminhtml>
            <rewrite>
            <review_edit_form>CM_Review_Block_Review_Edit_Form</review_edit_form>
            </rewrite>
        </adminhtml>
    </blocks>
    <helpers>
        <review>
       <rewrite>
                <class>CM_Review_Helper</class>
    </rewrite>
        </review>
         </helpers>  
    <models>
          <review>
          <rewrite>
        <resource_review>CM_Review_Model_Resource_Review</resource_review>
                    <resource_review_product_collection>
                      CM_Review_Model_Resource_Review_Product_Collection
                    </resource_review_product_collection>
         </rewrite>
         </review>
          </models>
</global>

И каждый из основных файлов, которые я переписал, дополняет их по сравнению с исходными файлами Review Model и файлами Adminhtml / Block / Review Edit. Я скопировал и вставил тот же код только с дополнительным полем «email» в моем коде .

Я вручную добавил поле в базу данных и добавил поле ввода в base / defaut / review / form.phtml, но все равно он не сохраняет данные в таблице.

Однако, если я попытаюсь добавить это поле, отредактировав основные файлы, тогда он сохранит идентификатор электронной почты гостевых клиентов и будет работать отлично.

Не можете понять, что я делаю не так?

1 Ответ

0 голосов
/ 04 декабря 2012

Проверьте этот ответ здесь:

Добавьте настраиваемые поля в форме обзора

Вы должны использовать голосование с добавлением голоса, а не то, которое помечено как ответ;он изменяет core-файлы, что никогда не было хорошей идеей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...