Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   FlexForms как Content Element (http://forum.typo3.ru/showthread.php?t=3226)

z0r1k 25.04.2007 18:00

FlexForms как Content Element
 
Столкнулся с такой проблемой:
Хочу использовать FlexForms как ContentElement, но ничего рабочего не выходит.
Использование FlexForms через "Insert plugin" не вызывает трудностей, но когда пытаюсь использовать FlexForms как CType ничего не выходит. При этом добавляется новый контент элемент, но флексформа не рендерится. А рендерятся элементы button и header.

Я подозреваю что проблема в этом:
Для использования FlexForms как плагина используется функция:
PHP код:

t3lib_extMgm::addPlugin(array('LLL:EXT:myFlexExt/locallang_db.xml:tt_content.CType_pi1'$_EXTKEY.'_pi1'),'list_type'); 

а для использования FlexForms как CType элемента используется функция:
PHP код:

t3lib_extMgm::addPlugin(array('LLL:EXT:myFlexExt/locallang_db.xml:tt_content.CType_pi1'$_EXTKEY.'_pi1'),'CType'); 

и в таком случае интерфейс описывается в таком виде:
PHP код:

$TCA['tt_content']['types'][$_EXTKEY.'_pi1']['showitem']='CType;;4;button;1-1-1, header;;3;;2-2-2, '

Вопрос: Может кто-то сталкивался с такими проблемами? Как добавить/преобразовать xml к такому виду?

void 25.04.2007 19:58

В вашем посте сплошная мешанина.

Статический метод addPlugin добавляет в TCA и TS нужные для отображения плагина (в бекенде и фронтэнде соответственно) определения. Плагин при этом может использовать флексформы, а может их и не использовать.

Флексформа же подгружается методом addPiFlexFormValue.

Опишите, что у вас не работает - не добавляется новый элемент в CType или не рендерится флексформа?

z0r1k 25.04.2007 20:26

Цитата:

Сообщение от void (Сообщение 11543)
В вашем посте сплошная мешанина.

Статический метод addPlugin добавляет в TCA и TS нужные для отображения плагина (в бекенде и фронтэнде соответственно) определения. Плагин при этом может использовать флексформы, а может их и не использовать.

Флексформа же подгружается методом addPiFlexFormValue.

Опишите, что у вас не работает - не добавляется новый элемент в CType или не рендерится флексформа?

Элемент добавляется, а вот флексформа не рендерится. А если модуль вставлять как плагин, то форма рендерится. Отсюда можно предположить, что XML валидный.

void 25.04.2007 21:19

Согласно тца, при вашем тца-типе рендерятся поля button и header и несколько палитр.
Какое из них является флексформой?
Попробую догадаться, что флексформа - это поле pi_flexform. В таком случае, его нужно добавить в список рендерящихся полей, и, возможно, сконфигурировать.

z0r1k 26.04.2007 11:29

Цитата:

Сообщение от void (Сообщение 11547)
Согласно тца, при вашем тца-типе рендерятся поля button и header и несколько палитр.
Какое из них является флексформой?
Попробую догадаться, что флексформа - это поле pi_flexform. В таком случае, его нужно добавить в список рендерящихся полей, и, возможно, сконфигурировать.

Догадка действительно верна.
Привожу полный текст ext_tables.php:

PHP код:

<?php
  
if (!defined ('TYPO3_MODE'))     die ('Access denied.');
  
  
t3lib_div::loadTCA('tt_content');
  
$TCA['tt_content']['types']['list']['subtypes_excludelist'][$_EXTKEY.'_pi1']='layout,select_key,pages,recursive,CType,header,fe_group,list_type'
  
$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1']='pi_flexform'
  
$TCA['tt_content']['types'][$_EXTKEY.'_pi1']['showitem']='CType;;4;button;1-1-1, header;;3;;2-2-2, '
  
  
t3lib_extMgm::addPiFlexFormValue($_EXTKEY.'_pi1''FILE:EXT:myFlexExt/flexform_ds_pi1.xml');  
  
t3lib_extMgm::addPlugin(array('LLL:EXT:myFlexExt/locallang_db.xml:tt_content.CType_pi1'$_EXTKEY.'_pi1'),'CType');   
?>


void 26.04.2007 13:26

Что даёт
PHP код:

$TCA['tt_content']['types'][$_EXTKEY.'_pi1']['showitem']='CType;;4;button;1-1-1, header;;3;;2-2-2, pi_flexform;;;;1-1-1 '

?

z0r1k 26.04.2007 14:12

В частности то что Вы и написали:
Цитата:

"Согласно тца, при вашем тца-типе рендерятся поля button и header и несколько палитр."
Но без этой строки не выводится никаких элементов вообще.
На сколько я понимаю, то мне каким-то образом нужно добавить мою флексформу в $TCA['tt_content']['types'][$_EXTKEY.'_pi1']['showitem']
Я правильно понимаю?

void 26.04.2007 14:57

Да, вы правильно понимаете. Нужно добавить pi_flexform к вашему type. Что я и сделал в коде постом выше...

z0r1k 26.04.2007 15:34

Большое спасибо за помощь.
Обязательно попробую сделать это.

z0r1k 26.04.2007 17:14

Btw, хотель бы побольше узнать о синтаксисе данный строки
PHP код:

"CType;;4;button;1-1-1, header;;3;;2-2-2, pi_flexform;;;;1-1-1 "

А именно где можно узнать список всех элементов и что обозначают эти цифры... Также интересно было бы узнать о разделителях и спец.символах.


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

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