![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
#9 |
|
Senior Member
Регистрация: 25.12.2009
Сообщений: 106
|
значит для остальных и по существу.
после написания расширения в KickStarter необходимо его доработать дабы в BE появилась возможность ввести переменные для вставляемого на страницу контент-плагина для этого необходимо 1. создать файл flexform.xml (его структуру можете изучить, почти в любом имеющемся плагине он в корневой папке) 2. добавить строки соответствующие объявленым в flexform.xml в файл locallang_db.xml (он так же находится в корневой папке) 3. в файле ext_tables.php(тоже в корневой директории) добавить строки Код:
if(t3lib_div::int_from_ver(TYPO3_version) >= 4002000)
t3lib_extMgm::addPiFlexFormValue('*','FILE:EXT:'.$_EXTKEY.'/flexform.xml');
else
t3lib_extMgm::addPiFlexFormValue('default','FILE:EXT:'.$_EXTKEY.'/flexform.xml');
$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1']='pi_flexform';
4. добавить в файл нашего расширения (pi1/class.tx_нашеРасширение_pi1.php) следующий код Код:
function main($content, $conf) {
$this->conf = $conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
// Init FlexForm configuration for plugin:
$this->pi_initPIflexForm();
$this->mergeflexFormValuesIntoConf();
// Get vars
$var1 = $this->flexFormValue('var1', 's_модуль');
$var2 = $this->flexFormValue('var2', 's_модуль');
$var3 = $this->flexFormValue('var3', 's_модуль');
Код:
protected function mergeflexFormValuesIntoConf() {
$flex = array();
if ($this->flexFormValue('var1', 's_модуль')) {
$flex['var1'] = $this->flexFormValue('var1', 's_модуль');
}
if ($this->flexFormValue('var2', 's_модуль')) {
$flex['var2'] = $this->flexFormValue('var2','s_модуль');
}
if ($this->flexFormValue('var3', 's_модуль')) {
$flex['var3'] = $this->flexFormValue('var3', 's_модуль');
}
$pid = $flex['pages'] ? $this->pi_getPidList($flex['pages'], $flex['recursive']) : 0;
if ($pid > 0) {
$flex['storagePid'] = $pid;
}
$this->conf = array_merge($this->conf, $flex);
}
protected function flexFormValue($var, $sheet) {
return $this->pi_getFFvalue($this->cObj->data['pi_flexform'], $var,$sheet);
}
protected function getDisplayText($label, $stdWrapArray=array()) {
return $this->flexFormValue($label,'s_messages') ? $this->cObj->stdWrap($this->flexFormValue($label,'s_messages'),$stdWrapArray) : $this->cObj->stdWrap($this->pi_getLL('ll_'.$label, '', 1), $stdWrapArray);
}
в принципе 4 этих пунктов достаточно чтоб создать форму параметров для вставляемого расширения |
|
|
|
| Опции темы | |
| Опции просмотра | |
|
|
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Security Bulletin TYPO3-20080919-1: Multiple third party extensions found insecure | RSS Bot | Новости TYPO3 (на английском) | 0 | 19.09.2008 12:00 |
| Multiple security issues in third party TYPO3 extensions | RSS Bot | Новости TYPO3 (на английском) | 0 | 16.07.2008 01:54 |
| Multiple security issues in third party TYPO3 extensions | RSS Bot | Новости TYPO3 (на английском) | 0 | 01.07.2008 10:51 |
| Создание нескольких меню | Podlec | Общие вопросы | 2 | 13.03.2007 14:21 |
| Создание новых Frontend Plugins | Юрий | Общие вопросы | 0 | 19.02.2004 21:11 |