PDA

Просмотр полной версии : Как создать форму в бэкэнде?


ms9
10.04.2012, 21:54
Добрый день!

Я как-то читал, что kickstarter устарел для свежих версий TYPO3 и более не используется. В этой связи есть вопрос. Подскажите, пожалуйста, как написать бэкэнд-экстеншн, который будет принимать данные от пользователя и писать их в свою таблицу или базу?

Заренее спасибо!

ms9
12.04.2012, 21:31
Подскажите, пожалуйста, что почитать по этой проблеме? Про flexform или про что еще?

Мне надо предоставить возможность в бэкэнде заполнять текстовые поля, выбирать из списков, загружать файлы, писать описания. Заливать всё это в отдельную таблицу. А затем не отображая во фронтэнде отдавать в виде rss.

Я попробовал kickstarter. Я так понимаю, что с его помощью можно сделать рыбу для плагина. Плагин для фронтэнда у меня получился, а вот для бэкэнда -- не очень.

Может быть можно TV научить смотреть в стороннюю таблицу? Что посоветуете?

ms9
13.04.2012, 19:21
Вот, нашёл что-то похожее, на то, что надо: http://docs.typo3incubator.org/ExtbaseFluidBook/_build/html/4-FirstExtension/Index.html

Буду пробовать.

dmartynenko
15.04.2012, 13:48
Мне надо предоставить возможность в бэкэнде заполнять текстовые поля, выбирать из списков, загружать файлы, писать описания. Заливать всё это в отдельную таблицу. А затем не отображая во фронтэнде отдавать в виде rss.


Как-то вы сильно усложняете.
Вам не нужен свой BE модуль.

Вам нужно в своем эксте создать таблицу с нужными полями (это кикстартер делает). В результате получится таблица в SQL и конфигурация по каждому полю в TCA. Ввод данных будет делатся стандартными средствами ядра через BE (все таблицы в TYPO3 так сделаны, включая страницы и контент).

Отдавать в RSS это значит отобразить в FE в формате RSS. То есть можно написать свой FE плагин в этом же эксте. А можно используя TS объект CONTENT сделать вывод в виде RSS ланных из вашей таблицы. PHP программирование вам вообще может и не понадобиться для решения вашей задачи.

dmartynenko
15.04.2012, 13:50
Extbase and Fluid - это конечно хорошо и современно (или модно?), но для начального изучения сложновато. Лучше разберитесь со "старым" кикстартером (для создания таблиц) и как использовать всю мощь TypoScript.

ms9
17.04.2012, 14:23
Экст из кикстартера не захотел отображать поля. А вот на основе учебного экста inventory мне удалось сделать то, что надо. Описание таблиц и в кикстарере, и в fluid-extbase произвоится одинаково. Т.о. ввод данных осилил .Сейчас посмотрим, что с выводом. Попробую сделать так, как Вы советуете.

dmartynenko
17.04.2012, 14:47
Экст из кикстартера не захотел отображать поля.

Очень понятно написали в чем проблема :rolleyes:

Из вашего комента некоторые могут сделать неправильный вывод что кикстартер не работает и бесполезен.

ms9
17.04.2012, 20:43
Тут, действительно проблема во мне, а не в кикстартере, но я не стал выяснять в чём она, ибо то, что мне было надо уже написал при помощи fluid и extbase. Наверняка, нужно было посмотреть как заполнена таблица с описанием таблиц. Ну, да ладно.

По ходу, так как таблицы описываются примерно одинаково как и для fluid/extbase, так и для кикстартера, то возможно подскАжите, как загружать сразу несколько изображений с возможностью добавлять title и alt. Сейчас я просто описываю поле так:

'image' => array(
'label' => 'Images',
'config' => array(
'type' => 'group',
'internal_type' => 'file',
'allowed' => 'gif,jpg',
'max_size' => 1000,
'uploadfolder' => 'uploads/pics/',
'show_thumbs' => 1,
'size' => 3,
'minitems' => 0,
'maxitems' => 200,
'autoSizeMax' => 10
)
),

В данном случае возможно выбрать несколько файлов, а вот загружать можно только один и нет возможности добавлять описания изображений. Мне надо предоставить возможность редактору загружать и описывать от 0 до 10 картинок.

Может быть стоит посмотреть в сторону с полем Field type “inline”?
Или я вовсе не в ту сторону смотрю?

Андрей Аксенов
18.04.2012, 09:34
Может эта (http://forum.typo3.biz/showthread.php?t=9096&highlight=API)документация подойдет. Посмотрите также на использование мастеров для выбираемых элементов (новый элемент, правка) ведь, как я понимаю, изображения будут также элементами содержимого? Иначе как их править?

dmartynenko
18.04.2012, 13:35
Таблицы определяются с помощью TCA и управляются ядром. Никакого отношения к тому как и на базе какой технологии работает весь остальной ваш код в эксте TCA не имеет.

Вообще, типовой подход для подписей, ссылок и т.п. для нескольких картинок, который применяется как в стандартном CE Image, Image+Text и в tt_news - это создание отдельных текстовых полей для title, alt, description и т.д. Каждая строка (разделенная обычно chr(10)) из этих полей относится к соответствующей картинке. Логика вывода картинки и соответствующих текстов ложится целиком на вас.

Второй вариант действительно это inline поле и связь с отдельной табличкой, каждая запись которой может содержать 1 картинку и поля для title, alt, description и т.д.

Ну а самый продвинутый вариант это использование DAM. При этом информация о картинки и связанной с ней описаний и метаинформации хранится в таблице DAM. Откуда вы можете ее вытянуть и вывести. Смотрите эксты dam_ttnews, dam_ttcontent.

ms9
18.04.2012, 15:00
Спасибо! Попробовал последний вариант. Супер. Быстро и круто, но остановлюсь на том, что использовал, ибо у DAM слишком сложный интерфейс, а требуется всего два поля: загрузка и описание. Чуть позже попробую с inline. Ну а первый вариант меня как-то настораживает, чтобы пробовать, хотя может быть посмотрю )

Для последнего варианта заменил приведённое мной выше описание поля на 'image' => txdam_getMediaTCA('image_field', 'tx_example_dam_images'), и всё сходу заработало!