Typo3: возможно ли сделать специальную форму для расширения? - PullRequest
0 голосов
/ 27 февраля 2012

Я делаю расширение, где пользователь может публиковать сообщения.Но я хочу, чтобы расширение было динамичным, чтобы, например, на одной странице пользователь мог загружать изображения, где, как и на другой странице, пользователь может загружать не изображения, а какой-либо текст.

Я хочу иметь возможность создать шаблондля бэкэнда плагинов и один для внешнего интерфейса, который вы можете изменить для каждого использования плагина.Я знаю, что есть flexform, но с этим пользователь плагина должен изменить плагин ...

Возможно ли это, и если да, то как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Вы должны иметь возможность изменить TCA для поля pi_flexform перед его рендерингом, используя некоторые из существующих хуков в основных методах, таким образом изменяя, какой файл XML (содержащий конфигурацию flexform) загружается для вашегоплагин.Поскольку это конфигурация страницы, она может отличаться для каждой страницы, но может наследоваться подстраницами.

Хотя class.t3lib_tceforms.php содержит множество хуков, я считаю, что для изменения TCAна лету вам придется использовать другой: postUserLookUp в t3lib / class.t3lib_userauth.php .

  1. Создать класс, который будет содержать метод, модифицирующийTCA и зарегистрируйте его в ext_localconf.php : $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['postUserLookUp'][] = 'EXT:YOUR_EXTENSION/class.YOUR_CLASS.php:YOUR_CLASS->YOUR_METHOD';

  2. В своем пользовательском методе переопределите TCA для $TCA['tt_content']['columns']['pi_flexform']['config']['ds']['YOUR_EXTENSION_pi1,list'] значением, которое ваш администратор устанавливает на страницеконфигурации.t3lib_BEfunc::getModTSconfig() должен позволить вам загрузить конфигурацию страницы, и вам решать, какой ключ вы будете искать.

ПРИМЕЧАНИЕ : Это непроверенная теория, но ееПринцип основан на одном из моих пользовательских расширений, где я изменяю TCA на лету.

0 голосов
/ 28 февраля 2012

Посмотрите на EXT: поток.Клаус уже сделал это.https://github.com/FluidTYPO3/flux

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...