Тема: Добавление полей, не отображается в админке

Требуется добавить поле в таблицу product_prop_dir, сделал согласно видео уроку
Модуль устанавливается, поле добавляется в БД, но не выводится в админке.
Включил отображение ошибок, но ошибок нет никаких.
Где промахнулся?

Создал директории modules\custom\config

Вот содержимое файлов
file.inc.php

<?php
namespace Custom\Config;
use \RS\Orm\Type;


class File extends \RS\Orm\ConfigObject
{
   
}

handlers.inc.php

<?php

namespace Custom\Config;
use \RS\Orm\Type as OrmType;


class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this
            ->bind('orm.init.catalog.property-dir');
            
    }
    /**Расширяем объект Характеристики
    * @param Catalog\Model\Orm\Property\dir $property - объект товара
    **/
    public static function ormInitCatalogPropertyDir(\Catalog\Model\Orm\Property\dir $dir)
    {
        $dir->getPropertyIterator()->append(array(
            /*t('Дополнительно'),*/
                'title_for_product' => new OrmType\Varchar(array(
                    'maxLength' => '255',
                    'hint' => t('Как подписывать в карточке товара, если не указать, то подставиться основное название'),
                    'description' => t('Как подписывать в карточке товара'),          
                )),
        ));
    }        
}

install.inc.php

<?php
/**
* ReadyScript (http://readyscript.ru)
*
* @copyright Copyright (c) ReadyScript lab. (http://readyscript.ru)
* @license http://readyscript.ru/licenseAgreement/
*/
namespace Custom\Config;

/**
* Класс отвечает за установку и обновление модуля
*/
class Install extends \RS\Module\AbstractInstall
{
    function install()
    {
        
        $result = parent::install();
        if ($result) {
            $dir = new \Catalog\Model\Orm\Property\dir();
            Handlers::ormInitCatalogPropertyDir($dir);
            $dir->dbUpdate();
        }
        
        return $result;
    }
    
    /**
    * Функция обновления модуля, вызывается только при обновлении
    */
    function update()
    {
        $result = parent::update();
        if ($result) {
            $dir = new \Catalog\Model\Orm\Property\dir();
            Handlers::ormInitCatalogPropertyDir($dir);
            $dir->dbUpdate();

        }
        return $result;
    }     
     
    
}

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>Voltage</author>        
    </defaultValues>
</config>

Повысить оценку Понизить оценку

2 Отредактировано Закусило Александр (09.01.2017 12:03:02)

Re: Добавление полей, не отображается в админке

У Вас отсутствует при добавлении поля ключ title (наименование)

  'title' => t('Вот это поле я пропустил'),
  'maxLength' => '255',
  'hint' => t('Как подписывать в карточке товара, если не указать, то подставиться основное название'),
  'description' => t('Как подписывать в карточке товара'),          

Re: Добавление полей, не отображается в админке

Добавил, вот состав файла, но без изменений

<?php

namespace Custom\Config;
use \RS\Orm\Type as OrmType;


class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this
            ->bind('orm.init.catalog.property-dir');
            
    }
    /**Расширяем объект Характеристики
    * @param Catalog\Model\Orm\Property\dir $property - объект товара
    **/
    public static function ormInitCatalogPropertyDir(\Catalog\Model\Orm\Property\dir $dir)
    {
        $dir->getPropertyIterator()->append(array(                
                'title_for_product' => new OrmType\Varchar(array(
                    'title' => t('Как подписывать в карточке товара'),
                    'maxLength' => '255',
                    'hint' => t('Как подписывать в карточке товара, если не указать, то подставиться основное название'),
                    'description' => t('Как подписывать в карточке товара'),          
                )),
        ));
    }        
}

Повысить оценку Понизить оценку

4 Отредактировано Закусило Александр (09.01.2017 16:52:59)

Re: Добавление полей, не отображается в админке

Вроде бы всё правильно. Надо смотреть. Обратитесь в поддержку, поможем. support@readyscript.ru

5

Re: Добавление полей, не отображается в админке

Добрый день! Сталкнулся с подобной проблемой

    function init()
    {
        $this ->bind('orm.init.catalog.property-item');
    }

    public static function ormInitCatalogPropertyItem(\Catalog\Model\Orm\Property\Item $item){
        $item->getPropertyIterator()->append(array(
            t('Основные'),
            'test' => new OrmType\Varchar(array(
                'description' => 'Описание поля',
                'hint' => 'Подсказка'
            ))
        ));
    }

Не хочет отображаться доп. поле и в базе product_prop не добавляется данный столбец.
С расширением др. orm-объектов подобных проблем не было

Повысить оценку Понизить оценку