Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 14.07.2009, 05:44   #1
Fearless Goblin
Senior Member
 
Аватар для Fearless Goblin
 
Регистрация: 18.07.2006
Сообщений: 108
Отправить сообщение для Fearless Goblin с помощью ICQ Отправить сообщение для Fearless Goblin с помощью Skype™
По умолчанию FlexForm и тип "select"

День добрый.

Я разрабатываю расширение (FE Plugin), в котором использую ФлексФормы и хочу получить элемент множественного выбора (на подобие того, который используется в tt_news для выбора типа новостей: LIST, LATEST, SINGLE и т.д.), причём элементы списка берутся из БД.

Для этого использую такую структуру:
Код:
<T3DataStructure>
  <meta>
    <langDisable>1</langDisable>
    <langChildren>0</langChildren>
  </meta>
  <ROOT>
    <type>array</type>
    <el>
      <clubServices>
        <TCEforms>         
<label>LLL:EXT:club_services/locallang_db.xml:pi1_flexform.services</label>
          <config>
            <type>select</type>
            <foreign_table>tx_clubservices_service</foreign_table>
            <foreign_table_where>AND 
tx_clubservices_service.pid=###STORAGE_PID### ORDER BY 
tx_clubservices_service.uid</foreign_table_where>
            <size>10</size>
            <minItems>0</minItems>
            <maxItems>100</maxItems>
          </config>
        </TCEforms>
      </clubServices>
    </el>
  </ROOT>
</T3DataStructure>
Выборка элементов происходит успешно, список создаётся, но отсутствует список выбранных элементов (тот, который должен быть слева от списка всех элементов)...

Что я делаю не так?

Буду благодарен ответившим.
Fearless Goblin вне форума   Ответить с цитированием
Старый 14.07.2009, 12:48   #2
shuman
Senior Member
 
Регистрация: 21.11.2007
Сообщений: 217
По умолчанию

TCA опубликуйте
shuman вне форума   Ответить с цитированием
Старый 14.07.2009, 16:49   #3
Fearless Goblin
Senior Member
 
Аватар для Fearless Goblin
 
Регистрация: 18.07.2006
Сообщений: 108
Отправить сообщение для Fearless Goblin с помощью ICQ Отправить сообщение для Fearless Goblin с помощью Skype™
По умолчанию

TCA генерировался kickstarter-ом:

tca.php:
Код:
<?php
if (!defined ('TYPO3_MODE')) 	die ('Access denied.');

$TCA['tx_clubservices_service'] = array (
	'ctrl' => $TCA['tx_clubservices_service']['ctrl'],
	'interface' => array (
		'showRecordFieldList' => 'sys_language_uid,l10n_parent,l10n_diffsource,hidden,title'
	),
	'feInterface' => $TCA['tx_clubservices_service']['feInterface'],
	'columns' => array (
		'sys_language_uid' => array (		
			'exclude' => 1,
			'label'  => 'LLL:EXT:lang/locallang_general.xml:LGL.language',
			'config' => array (
				'type'                => 'select',
				'foreign_table'       => 'sys_language',
				'foreign_table_where' => 'ORDER BY sys_language.title',
				'items' => array(
					array('LLL:EXT:lang/locallang_general.xml:LGL.allLanguages', -1),
					array('LLL:EXT:lang/locallang_general.xml:LGL.default_value', 0)
				)
			)
		),
		'l10n_parent' => array (		
			'displayCond' => 'FIELD:sys_language_uid:>:0',
			'exclude'     => 1,
			'label'       => 'LLL:EXT:lang/locallang_general.xml:LGL.l18n_parent',
			'config'      => array (
				'type'  => 'select',
				'items' => array (
					array('', 0),
				),
				'foreign_table'       => 'tx_clubservices_service',
				'foreign_table_where' => 'AND tx_clubservices_service.pid=###CURRENT_PID### AND tx_clubservices_service.sys_language_uid IN (-1,0)',
			)
		),
		'l10n_diffsource' => array (		
			'config' => array (
				'type' => 'passthrough'
			)
		),
		'hidden' => array (		
			'exclude' => 1,
			'label'   => 'LLL:EXT:lang/locallang_general.xml:LGL.hidden',
			'config'  => array (
				'type'    => 'check',
				'default' => '0'
			)
		),
		'title' => array (		
			'exclude' => 0,		
			'label' => 'LLL:EXT:club_services/locallang_db.xml:tx_clubservices_service.title',		
			'config' => array (
				'type' => 'input',	
				'size' => '30',	
				'eval' => 'required,trim',
			)
		),
	),
	'types' => array (
		'0' => array('showitem' => 'sys_language_uid;;;;1-1-1, l10n_parent, l10n_diffsource, hidden;;1, title;;;;2-2-2')
	),
	'palettes' => array (
		'1' => array('showitem' => '')
	)
);
?>

ext_tables.php:
Код:
<?php
if (!defined ('TYPO3_MODE')) {
	die ('Access denied.');
}

t3lib_extMgm::allowTableOnStandardPages('tx_clubservices_service');

$TCA['tx_clubservices_service'] = array (
	'ctrl' => array (
		'title'     => 'LLL:EXT:club_services/locallang_db.xml:tx_clubservices_service',		
		'label'     => 'title',	
		'tstamp'    => 'tstamp',
		'crdate'    => 'crdate',
		'cruser_id' => 'cruser_id',
		'languageField'            => 'sys_language_uid',	
		'transOrigPointerField'    => 'l10n_parent',	
		'transOrigDiffSourceField' => 'l10n_diffsource',	
		'default_sortby' => 'ORDER BY crdate',	
		'delete' => 'deleted',	
		'enablecolumns' => array (		
			'disabled' => 'hidden',
		),
		'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY).'tca.php',
		'iconfile'          => t3lib_extMgm::extRelPath($_EXTKEY).'icon_tx_clubservices_service.gif',
	),
);


t3lib_div::loadTCA('tt_content');
$TCA['tt_content']['types']['list']['subtypes_excludelist'][$_EXTKEY.'_pi1']='layout,select_key,pages';
$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1']='pi_flexform';
t3lib_extMgm::addPiFlexFormValue($_EXTKEY . '_pi1', 'FILE:EXT:' . $_EXTKEY . '/pi1/flexform_ds.xml');


t3lib_extMgm::addPlugin(array(
	'LLL:EXT:club_services/locallang_db.xml:tt_content.list_type_pi1',
	$_EXTKEY . '_pi1',
	t3lib_extMgm::extRelPath($_EXTKEY) . 'ext_icon.gif'
),'list_type');


if (TYPO3_MODE == 'BE') {
	$TBE_MODULES_EXT['xMOD_db_new_content_el']['addElClasses']['tx_clubservices_pi1_wizicon'] = t3lib_extMgm::extPath($_EXTKEY).'pi1/class.tx_clubservices_pi1_wizicon.php';
}

t3lib_extMgm::addStaticFile($_EXTKEY,'static/club_services/', 'Club Services');
?>
Собственно, данные для списка берутся из таблицы "tx_clubservices_service".

Возможно я не до конца всё понимаю (впервые разрабатываю расширение...), но, как я понял из документации, TCA нужен только для того, чтобы можно было создавать записи (records) на страницах (то есть, чтобы в 'Web->List' их можно было увидеть, создать, отредактировать, удалить и т.д.), но FlexForms не зависит от TCA, так как данные, записанные в них, хранятся не в отдельных таблицах, а прямо в 'tt_content' в поле 'pi_flexform' (и потому необходимо только создать правильный xml и добавить его, а также поле 'pi_flexform' в 'ext_tables.php').
Возможно, я что-то неправильно понял?..
Fearless Goblin вне форума   Ответить с цитированием
Старый 14.07.2009, 20:06   #4
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Да, вы правильно поняли что TCA совершенно не причем.

Но если что-то вам нужно есть в tt_news, то может там и посмотреть как это сделано?

Я например нашел дополнительно к вашему FF для поля clubServices вот такие параметры:
<multiple>1</multiple>
<selectedListStyle>width:150px</selectedListStyle>
<itemListStyle>width:150px</itemListStyle>
dmartynenko вне форума   Ответить с цитированием
Старый 15.07.2009, 13:21   #5
Fearless Goblin
Senior Member
 
Аватар для Fearless Goblin
 
Регистрация: 18.07.2006
Сообщений: 108
Отправить сообщение для Fearless Goblin с помощью ICQ Отправить сообщение для Fearless Goblin с помощью Skype™
По умолчанию

Эх, а проблема-то была совершенно в другом... Вот тут: <maxItems>100</maxItems>
Нету параметра "maxItems", есть только "maxitems" - с маленьким i.
Потому и подставлялась в него дефолтовая единица, которая предотвращала построение второго списка
Fearless Goblin вне форума   Ответить с цитированием
Ответ

Теги
flexforms, select


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тип страницы shotcut и SEO surfman TYPO3: SEO и статистика посещений 4 07.09.2009 00:14
новый тип поля в FCE templavoila - как? (:) Общие вопросы 5 04.03.2008 11:04
не могу поменять тип поля text -> rte вручную demav Общие вопросы 2 29.01.2008 20:49
extension + flexform, проблема ne0ie Общие вопросы 0 13.11.2007 15:17
FlexForm GrishanAnton Общие вопросы 6 07.02.2006 13:34


Часовой пояс GMT +4, время: 14:27.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория