Вход

Просмотр полной версии : Генерация форм из tca.php описания


GrishanAnton
30.01.2006, 14:41
Здравствуйте!

Пишу бэкенд модуль. Модуль заполнеяет некую табличку в БД записями. Через кикстарт создал прототип модуля и tca.php файл с описанием таблиц и полей БД. Вопрос: а какой собственно командочкой можно сгенерить форму описанную в этом tca.php ($TCA).

C уважением
Брат по разуму

Seel
30.01.2006, 17:30
И мне интересно. Я не смог найти эту информацию.

Pavel Antonov
31.01.2006, 12:56
Не совсем понятен вопрос.

tca.php загружает описание данных вашего расширения в глобальную переменную TCA.
загрузка происходит посредством t3lib_div::loadTCA($table)...

Используются эти данные в разных местах. Конкретно генерация форма находится в class.t3lib_tceforms.php, процессинг данных и сохранение в базу в class.t3lib_tcemain.php.

Та что все есть, но не понятно что нужно? Для чего Вам нужна какая то функция, если Typo3 все показывает сама?

GrishanAnton
31.01.2006, 16:29
:) Ну так как же мне всетаки показать на экране форму через class.t3lib_tceforms.php?

Pavel Antonov
31.01.2006, 16:45
Что значит как показать? Показать где?
Можно немного конкретики, что хотите сделать?

Формы TCA "показывать" не надо... их Typo3 сама показыва, контролирует, создает в BackEnd в режиме Web->List

GrishanAnton
31.01.2006, 17:08
Я пишу Бэк Енд экстеншен (первый раз). В админ зоне должна быть форма ввода (допустим название категории и её описание (RTE)). Кикстартером я создал прототип расширения. Расширение пихает свой пункт в секцию "Web". Когда кликаем по названию расширения (Bussnes-Plan) попадаем на страницу с модулем, а вот на этой самой странице хочется показать форму! Очень очень хочется :) Как бы это сделать или где про это можно почитать?

Valery Romanchev
31.01.2006, 17:29
Никак не сделать.
Это уже сделано в List модуле. То есть он позволяет создавать\\редактировать любые описанные в TCA таблицы.

Если List не устраивает - то тогда это серьезная проблема - нужно писать свое редактирование записей (по крайней мере я не нашел примера как герерить форму на оснвое TCA в собственном BE-модуле)

GrishanAnton
31.01.2006, 18:59
:( Что то не понятно. Люди, плииииииииз дайте кусок PHP кода который рендерит форму (самую простую)...

GrishanAnton
31.01.2006, 19:00
Через class.t3lib_tceforms.php

Pavel Antonov
31.01.2006, 21:00
Прежде чем что то писать, нужно хотя бы разобраться...

То что Вам надо делается ручками... TCA тут не причем, он к custom формам отношения не имеет...

GrishanAnton
01.02.2006, 00:08
Ок. Про TCA я понял, но как генерировать форму через class.t3lib_tceforms.php нет, можно увидеть код на PHP?

GrishanAnton
01.02.2006, 11:41
Ага! Все, разобрался!

АНТ0Н
22.03.2006, 17:20
Ага! Все, разобрался!


ну елки-палки
на таких форумах принято делиться! код в студию плиз :mad:

АНТ0Н
22.03.2006, 17:29
и исчо:

тип селектбокс например
как его делать динамическим без перекомпиляции модуля?

например, чтоб к существующим итемам можно было бы потом в админке добавлять еще итемы

Pavel Antonov
22.03.2006, 18:25
и исчо:

тип селектбокс например
как его делать динамическим без перекомпиляции модуля?

например, чтоб к существующим итемам можно было бы потом в админке добавлять еще итемы
Документация, документация и еще раз документация!
Как можно даже заикаться о разработке расширений, не ознакомившись с "doc_core_api"??? :eek:

http://typo3.org/documentation/document-library/core-documentation/doc_core_api/current/view/4/2/

Все селекторные поля (check, radio, select) имеют в TCA параметр "itemsProcFunc" задающий имя функции, которая принимает и возвращает массив возможных значений поля.

АНТ0Н
22.03.2006, 18:29
Документация, документация и еще раз документация!
Как можно даже заикаться о разработке расширений, не ознакомившись с "doc_core_api"??? :eek:

http://typo3.org/documentation/document-library/core-documentation/doc_core_api/current/view/4/2/

Все селекторные поля (check, radio, select) имеют в TCA параметр "itemsProcFunc" задающий имя функции, которая принимает и возвращает массив возможных значений поля.

о, пасиб
я рад бы не писать это расширение, но заказчику этого не скажешь ;)