Вход

Просмотр полной версии : Дополнительные поля в sys_category


dust
30.09.2015, 21:07
Добрый день, не подскажете как мне добавить дополнительные поля в регистер категорий. Я хотел-бы помимо стандартных полей категорий ( титель, описание, фото) иметь ещё пару дополнительных.

Ивано++
01.10.2015, 12:45
Можно в ядре добавить (не желательный, но самый простой вариант).
1. https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Configuration/TCA/sys_category.php ( добавляете колонки в структуру таблицы )
2. https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/ext_tables.sql ( скорее всего структуру MySQL таблицу расширяете в ручную )

Либо расширение создавать.

dust
01.10.2015, 20:33
Разобрался, спасибо. Лучше конечно создать своё расширение, чтоб при update поля не слетели. Внизу мой пример, может кому понадобиться:

typo3conf\ext\preis_sys_category\Configuration\TCA \Category.php

<?php
if (!defined ('TYPO3_MODE')) {
die ('Access denied.');
}

/**
* Add extra fields to the sys_category record
*/
$newSysCategoryColumns = array(

'preis' => array(
'exclude' => 1,
'label' => 'Preis',
'config' => array(
'type' => 'input',
'size' => 10,
)
),
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility ::addTCAcolumns('sys_category', $newSysCategoryColumns);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility ::addToAllTCAtypes('sys_category', '--div--;Preis, preis', '', 'before:description');




typo3conf\ext\preis_sys_category\Classes\Domain\Mo del\Category.php


<?php
namespace FUCHS\PreisSysCategory\Domain\Model;

/**
* Category
*/
class Category extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {

/**
* preis
*
* @var string
*/
protected $preis = '';

/**
* Returns the preis
*
* @return string $preis
*/
public function getPreis() {
return $this->preis;
}

/**
* Sets the preis
*
* @param string $preis
* @return void
*/
public function setPreis($preis) {
$this->preis = $preis;
}

}
typo3conf\ext\preis_sys_category\ext_tables.sql
#
# Extend table structure of table 'sys_category'
#
CREATE TABLE sys_category (
preis varchar(100) DEFAULT '' NOT NULL,
);