В моем проекте я добавил новое поле location
в «обзоры продуктов» панели администратора, выполнив следующие шаги, как описано во многих блогах.
- Создал новое поле в таблице базы данных
review_detail
какlocation
. Добавлен следующий код в
app/code/code/Mage/Adminhtml/Block/Review/Edit/Form.php
$fieldset->addField('location', 'text', array( 'name' => 'location', 'label' => Mage::helper('adminhtml')->__('Location'), 'required' => false ) );
Чуть выше:
$fieldset->addField('nickname', 'text', array(
'label' => Mage::helper('review')->__('Nickname'),
'required' => true,
'name' => 'nickname'
));
.Добавил следующий код в
app/code/core/Mage/Review/Model/Resource/Review.php
$detail = array( 'title' => $object->getTitle(), 'detail' => $object->getDetail(), 'nickname' => $object->getNickname(), 'location' => $object->getLocation() /* added */ );
Добавлено «местоположение» в массив функций ниже. В файле:
app/code/core/Mage/Review/Model/Resource/Review/Collection.php
protected function _initSelect() { parent::_initSelect(); $this->getSelect() ->join(array('detail' => $this->_reviewDetailTable), 'main_table.review_id = detail.review_id', array('detail_id', 'title', 'detail', 'nickname', 'customer_id','location')); return $this; }
В
{$mytheme}/template/review/form.phtml
добавлено следующее:<li> <label for="location_field" class="required"><em>*</em><?php echo $this->__('Location') ?></label> <div class="input-box"> <input type="text" name="nickname" id="location_field" class="input-text required-entry" value="<?php echo $this->htmlEscape($data->getLocation()) ?>" /> </div> </li>
Моя проблема заключается в том, что хотя я вижу новое поле в панели администратора, всякий раз, когда я отправляю форму проверки, она не отправляется/не сохраняется в базе данных.
Я даже переиндексировал и почистил кеш.
Что я должен изменить больше, чтобы заставить его работать правильно?
Пожалуйста, помогите... Я на magento 1.8.
PS: Я знаю, что основные файлы не должны быть изменены. Я переопределю это на новый модуль, как только добьюсь успеха в этой проблеме.