Уважаемые коллеги, просветите пожалуйста, позволяет ли данное расширение работать с обычными полями, или он предназначено только для работы с полями типа flex.
Допустим есть вот такая табличка сконфигурированная в TCA:
PHP код:
$TCA["tx_revaproductcatalog_category"] = array (
"ctrl" => array (
'title' => 'LLL:EXT:reva_product_catalog/locallang_db.xml:tx_revaproductcatalog_category',
'label' => 'name',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'sortby' => 'sorting',
'delete' => 'deleted',
'enablecolumns' => array (
'disabled' => 'hidden',
),
'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY).'tca.php',
'iconfile' => t3lib_extMgm::extRelPath($_EXTKEY).'icon_tx_revaproductcatalog_category.gif',
),
"feInterface" => array (
"fe_admin_fieldList" => "hidden, name, icon, parent_category, description",
)
"interface" => array (
"showRecordFieldList" => "hidden,name,icon,parent_category,description"
),
"columns" => array (
'hidden' => array (
'exclude' => 1,
'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.hidden',
'config' => array (
'type' => 'check',
'default' => '0'
)
),
"name" => Array (
"exclude" => 0,
"label" => "LLL:EXT:reva_product_catalog/locallang_db.xml:tx_revaproductcatalog_category.name",
"config" => Array (
"type" => "input",
"size" => "48",
"max" => "150",
"eval" => "required,trim",
)
),
"icon" => Array (
"exclude" => 1,
"label" => "LLL:EXT:reva_product_catalog/locallang_db.xml:tx_revaproductcatalog_category.icon",
"config" => Array (
"type" => "group",
"internal_type" => "file",
"allowed" => "gif,png,jpeg,jpg",
"max_size" => 500,
"uploadfolder" => "uploads/tx_revaproductcatalog",
"show_thumbs" => 1,
"size" => 1,
"minitems" => 0,
"maxitems" => 1,
)
),
"parent_category" => Array (
"exclude" => 1,
"label" => "LLL:EXT:reva_product_catalog/locallang_db.xml:tx_revaproductcatalog_category.parent_category",
"config" => Array (
"type" => "select",
"foreign_table" => "tx_revaproductcatalog_category",
"foreign_table_where" => "ORDER BY tx_revaproductcatalog_category.uid",
"size" => 5,
"minitems" => 0,
"maxitems" => 10,
)
),
"description" => Array (
"exclude" => 1,
"label" => "LLL:EXT:reva_product_catalog/locallang_db.xml:tx_revaproductcatalog_category.description",
"config" => Array (
"type" => "text",
"cols" => "30",
"rows" => "5",
)
),
),
"types" => array (
"0" => array("showitem" => "hidden;;1;;1-1-1, name, icon, parent_category, description;;;richtext[cut|copy|paste|formatblock|textcolor|bold|italic|underline|left|center|right|orderedlist|unorderedlist|outdent|indent|link|table|image|line|chMode]:rte_transform[mode=ts_css|imgpath=uploads/tx_revaproductcatalog/rte/], category_properties")
),
"palettes" => array (
"1" => array("showitem" => "")
)
);
Как бы ничего необычного, все стандартно. И вот допустим мы хотим к этой конфигурации добавить поле типа "input". Прочитав документацию к расширению Dynflex приходим к выводу что для этого необходимо выполнить несколько шагов.
1) создать класс в котором конфигурируется $DCA массив для нашей таблицы tx_revaproductcatlog_catagory. Для это в файл с именем class.user_df_productCategory.php помещам такое определение класса user_df_productCategory:
PHP код:
class user_df_productCategory
{
var $DCA = array(
0 => array(
"path" => "tx_revaproductcatalog_category/columns",
"modifications" => array(
array(
"method" => "add",
"type" => "field",
"field_config" => array(
"name" => "category_properties",
"title" => "LLL:EXT:reva_product_catalog/locallang_db.xml:tx_revaproductcatalog_category_properties",
"config" => array(
"type" => "input",
"default" => "Test"
)
)
)
)
),
1 => array(
"path" => "tx_revaproductcatalog_category/types/0/showitem",
"parseXml" => false,
"modifications" => array(
array(
"method" => "add",
"type" => "append",
"config" => array(
"text" => ", category_properties"
)
)
)
)
);
}
2) Вторым этапом необходимо зарегистрировать наш класс в расширении Dynaflex для нашей таблицы tx_revaproductcatalog_category. Делаем это при помощи размещения в файле ext_localconf.php следующей строки кода:
PHP код:
$GLOBALS['T3_VAR']['ext']['dynaflex']['tx_revaproductcatalog_category'][] = "EXT:reva_product_catalog:class.user_df_productCategory.php:user_df_productCategory"
Теперь все как бы должно работать, т.е. при редактировании записи из таблицы tx_revaproductcatalog_category к тем полям которые уже были описаны изначально в TCA должно добавиться еще одно поле. Но почему-то не выходит, хотя по идеи все как бы должны быть правильно, поскольку сначало мы создаем новое поле, а затем добавляем его в описание types. В связи с этим и возникает вопрос поставленный в начале поста. Поэтому прошу пнуть в сторону правильного решения проблемы.