PDA

Просмотр полной версии : Вкладки (tabs) в своем расширении


des
19.10.2012, 11:00
Добрый день всем! Ребят, помогите пожалуйста решить небольшую проблему! Я создал свое расширение в kickstarter, настроил все поля в файле tca.php... все отлично работает! Но хотелось бы раскидать эти поля на несколько вкладок для визуального удобства их заполнения.

Вот тут та и возникла проблема...

Для включения вкладок я добавил в файл ext_tables.php своего расширения строку:
'dividers2tabs' => '1'

а вот кстати все содержимое файла ext_tables.php:

<?php
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}
$TCA['tx_feedbackformdes_desfeedbackform'] = array(
'ctrl' => array(
'title' => 'LLL:EXT:feedbackformdes/locallang_db.xml:tx_feedbackformdes_desfeedbackfor m',
'label' => 'uid',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'default_sortby' => 'ORDER BY crdate',
'delete' => 'deleted',
'dividers2tabs' => '1',
'enablecolumns' => array(
'disabled' => 'hidden',
),
'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY) . 'tca.php',
'iconfile' => t3lib_extMgm::extRelPath($_EXTKEY) . 'icon_tx_feedbackformdes_desfeedbackform.gif',
),
);


if (TYPO3_MODE === 'BE') {
t3lib_extMgm::addModulePath('web_txfeedbackformdes M1', t3lib_extMgm::extPath($_EXTKEY) . 'mod1/');

t3lib_extMgm::addModule('web', 'txfeedbackformdesM1', '', t3lib_extMgm::extPath($_EXTKEY) . 'mod1/');
}
?>

и добавил в файл tca.php своего расширения разделитель вкладок с названием General:

'types' => array(
'0' => array('showitem' => '--div--;General, fromsite, emailsite, subjectsite, fromnamesite, fromclients, fromnameclients, subjectclients, bodytextclients;;;richtext[]:rte_transform[mode=ts], hidden;;1;;1-1-1')
),

все содержимое файла tca.php:

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

$TCA['tx_feedbackformdes_desfeedbackform'] = array(
'ctrl' => $TCA['tx_feedbackformdes_desfeedbackform']['ctrl'],
'interface' => array(
'showRecordFieldList' => 'hidden,fromsite,emailsite,subjectsite,fromnamesit e,fromclients,fromnameclients,subjectclients,bodyt extclients'
),
'feInterface' => $TCA['tx_feedbackformdes_desfeedbackform']['feInterface'],
'columns' => array(
'hidden' => array(
'exclude' => 1,
'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.hidden',
'config' => array(
'type' => 'check',
'default' => '0'
)
),
'fromsite' => array(
'exclude' => 0,
'label' => 'LLL:EXT:feedbackformdes/locallang_db.xml:tx_feedbackformdes_desfeedbackfor m.fromsite',
'config' => array(
'type' => 'input',
'size' => '30',
'max' => '255',
)
),
'emailsite' => array(
'exclude' => 0,
'label' => 'LLL:EXT:feedbackformdes/locallang_db.xml:tx_feedbackformdes_desfeedbackfor m.emailsite',
'config' => array(
'type' => 'text',
'cols' => '30',
'rows' => '2',
)
),
'subjectsite' => array(
'exclude' => 0,
'label' => 'LLL:EXT:feedbackformdes/locallang_db.xml:tx_feedbackformdes_desfeedbackfor m.subjectsite',
'config' => array(
'type' => 'input',
'size' => '30',
'max' => '255',
)
),
'fromnamesite' => array(
'exclude' => 0,
'label' => 'LLL:EXT:feedbackformdes/locallang_db.xml:tx_feedbackformdes_desfeedbackfor m.fromnamesite',
'config' => array(
'type' => 'input',
'size' => '30',
'max' => '255',
)
),
'fromclients' => array(
'exclude' => 0,
'label' => 'LLL:EXT:feedbackformdes/locallang_db.xml:tx_feedbackformdes_desfeedbackfor m.fromclients',
'config' => array(
'type' => 'input',
'size' => '30',
'max' => '255',
)
),
'fromnameclients' => array(
'exclude' => 0,
'label' => 'LLL:EXT:feedbackformdes/locallang_db.xml:tx_feedbackformdes_desfeedbackfor m.fromnameclients',
'config' => array(
'type' => 'input',
'size' => '30',
'max' => '255',
)
),
'subjectclients' => array(
'exclude' => 0,
'label' => 'LLL:EXT:feedbackformdes/locallang_db.xml:tx_feedbackformdes_desfeedbackfor m.subjectclients',
'config' => array(
'type' => 'input',
'size' => '30',
'max' => '255',
)
),
'bodytextclients' => array(
'exclude' => 0,
'label' => 'LLL:EXT:feedbackformdes/locallang_db.xml:tx_feedbackformdes_desfeedbackfor m.bodytextclients',
'config' => array(
'type' => 'text',
'cols' => '30',
'rows' => '5',
'wizards' => array(
'_PADDING' => 2,
'RTE' => array(
'notNewRecords' => 1,
'RTEonly' => 1,
'type' => 'script',
'title' => 'Full screen Rich Text Editing|Formatteret redigering i hele vinduet',
'icon' => 'wizard_rte2.gif',
'script' => 'wizard_rte.php',
),
),
)
),
),
'types' => array(
'0' => array('showitem' => '--div--;General, fromsite, emailsite, subjectsite, fromnamesite, fromclients, fromnameclients, subjectclients, bodytextclients;;;richtext[]:rte_transform[mode=ts], hidden;;1;;1-1-1')
),
'palettes' => array(
'1' => array('showitem' => '')
)
);
?>

Но вкладка ни в какую не хочет отображаться!
http://i008.radikal.ru/1210/9f/82cdad62de23.jpg

Может я еще что-то забыл указать... Помогите, пожалуйста! Заранее спасибо!

dmartynenko
19.10.2012, 12:06
Возможно она не показывается потому что одна. Добавьте еще 2-ю вкладку с полями.

des
20.10.2012, 19:39
Возможно она не показывается потому что одна. Добавьте еще 2-ю вкладку с полями.

Спасибо, dmartynenko ! Все так и есть.

Почитал доки на эту тему и выяснил что, 'dividers2tabs' имеет три режима: '0', '1' и '2'. Так вот, для отображения вкладок в режиме '1' необходимо иметь не менее двух разделителей, если же разделитель один, то сам таб будет отображаться без названия...

добавил еще один разделитель:

'types' => array(
'0' => array('showitem' => '--div--;Администратору, fromsite, emailsite, subjectsite, fromnamesite, '. '--div--;Клинету, fromclients, fromnameclients, subjectclients, bodytextclients;;;richtext[]:rte_transform[mode=ts], hidden;;1;;1-1-1')
),

и все отобразилось:

http://s018.radikal.ru/i506/1210/4b/ae8e39987f2a.jpg

Вам, dmartynenko, огромное спасибо! Рад, что на этом форуме всегда есть люди готовые подсказать и чем-либо помочь!