Тема: Добавление поля в таблицу order_address [Решено]
Здравствуйте.
Добавил новое поле в таблицу order_address
Если через админку заказа вводить данные в это поле
А при оформлении заказа не заносятся
Подскажите что нужно указать в своем модуле?Наверное еще какой то хук?
<?php
namespace Person\Config;
use \RS\Orm\Type as OrmType;
class Handlers extends \RS\Event\HandlerAbstract
{
function init()
{
$this
->bind('orm.init.shop-address')
->bind('orm.beforewrite.shop-address');
}
public static function ormInitShopAddress (\Shop\Model\Orm\Address $address )
{
$address->getPropertyIterator()->append(array(
'person' => new OrmType\Varchar(array(
'maxLength' => '100',
'description' => t('Персона'),
)),
));
}
/**
* Действия перез записью заказа в БД
*/
public static function ormBeforeWriteShopAddress ($data) {
/**
* @var \Shop\Model\Orm\Order
*/
$address = $data['orm'];//Получаем объект заказа
$flag = $data['flag'];//флаг
if (isset($_POST['person'])){
$address['person'] = \RS\Http\Request::commonInstance()->request('person', TYPE_STRING);
}
// var_dump($address);
}
}
Решение
Создаем собственный модуль
person/config/handlers.inc.php
<?php
namespace Person\Config;
use \RS\Orm\Type as OrmType;
class Handlers extends \RS\Event\HandlerAbstract
{
function init()
{
$this
->bind('orm.init.shop-address')
->bind('orm.beforewrite.shop-address');
}
public static function ormInitShopAddress (\Shop\Model\Orm\Address $address )
{
$address->getPropertyIterator()->append(array(
'person' => new OrmType\Varchar(array(
'maxLength' => '100',
'description' => t('Получатель'),
)),
));
}
/**
* Действия перез записью заказа в БД
*/
public static function ormBeforeWriteShopAddress ($data) {
/**
* @var \Shop\Model\Orm\Order
*/
$address = $data['orm'];//Получаем объект заказа
$flag = $data['flag'];//флаг
if (isset($_POST['person']) || isset($_POST['addr_person'])){
$address['person'] = \RS\Http\Request::commonInstance()->request('person', TYPE_STRING);
}
}
}
person/config/file.inc.php
<?php
namespace Person\Config;
use \RS\Orm\Type;
class File extends \RS\Orm\ConfigObject
{
}
person/config/module.xml
<?xml version="1.0" encoding="utf-8"?>
<config>
<defaultValues>
<name multilanguage="true">Расширение таблицы с адресами заказов</name>
<description multilanguage="true">Модуль добавляет новые поля в таблицу адресов пользователя</description>
<version>1.0.0.0</version>
<author>My mod</author>
</defaultValues>
</config>