![]() |
flexform и создание extensions
создал расширение которое отлично работает
суть заключается в том что расширение лезет на защищеный WebSrvice и берет оттуда данные, после чего закидывает их в базу предварительно проверяет если последние данные были взяты меньше часу назад то не лезет а берет сразу данные из базы. проблема в том что с этими данными будут работать несколько модулей и у меня ситуация при которой либо я делаю 5-6 отдельных расширений, либо я добавляю в BE к расширению параметры пользователь при вставке плагина выбирает параметр и расширение в соответствии с выбором будет выдаст нужный результат расширение и таблицы создал через KickStarter, но не нашел как сделать форму для внесения параметров, почитал что вроде как это FlexForm, но никакой нормальной инфы по ней не нашел, может кто поможет? |
кикстартер флекс формы к сожалению не делает
Я сам разбирался с флексформами на примерах (экстеншен comments) Пара страниц об этом есть в книжке Дулепова, но проще на примере посмотреть. |
тогда вопрос к Вам, как к уже прошедшему данный этап
достаточно ли создать файл flexform.xml и задать в нем нужную структуру или есть еще пару файлов необходимых для появления формы настроек в BE ??? |
Ещё есть пара файлов
|
можете подсказать или лучше книжку купить??? ;)
|
Думаю, лучше на примерах смотреть. методом научного тыка так сказать :)
|
|
спасибо Void - то что доктор прописал!
|
значит для остальных и по существу.
после написания расширения в KickStarter необходимо его доработать дабы в BE появилась возможность ввести переменные для вставляемого на страницу контент-плагина для этого необходимо 1. создать файл flexform.xml (его структуру можете изучить, почти в любом имеющемся плагине он в корневой папке) 2. добавить строки соответствующие объявленым в flexform.xml в файл locallang_db.xml (он так же находится в корневой папке) 3. в файле ext_tables.php(тоже в корневой директории) добавить строки Код:
if(t3lib_div::int_from_ver(TYPO3_version) >= 4002000) 4. добавить в файл нашего расширения (pi1/class.tx_нашеРасширение_pi1.php) следующий код Код:
function main($content, $conf) { Код:
protected function mergeflexFormValuesIntoConf() { в принципе 4 этих пунктов достаточно чтоб создать форму параметров для вставляемого расширения |
Вы так пишете, что новички могут подумать что flexform.xml всегда один и в корневой папке. На самом деле их может может быть много - например один для каждого плагина (piX).
Я для удобства обычно пишу их не в корень, а в подпапку плагина: pi1/flexform.xml pi2/flexform.xml Так легче разбираться с ними если плагинов в экстеншене несколько. Надо только правильно прописать пути в вызове addPiFlexFormValue(). Ваша функция getDisplayText это от какого-то копипаста остаток. Она вовсе не обязательна и никем кроме вас не может вызываться. Хотя это может быть удобным способом локализации - она берет локализованную строку либо заданную пользователем со странички FF s_messages, либо из стандартного locallang файла. Но это все должно быть должным образом сконфигурировано. Также у вас есть дублирование в коде, так как вы уже FF в $this->conf записали используя mergeflexFormValuesIntoConf(): Код:
$this->mergeflexFormValuesIntoConf(); |
Часовой пояс GMT +4, время: 17:40. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot