Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 30.12.2009, 14:53   #1
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Ещё есть пара файлов
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 30.12.2009, 14:54   #2
3ton
Senior Member
 
Регистрация: 25.12.2009
Сообщений: 106
По умолчанию

можете подсказать или лучше книжку купить???
3ton вне форума   Ответить с цитированием
Старый 30.12.2009, 15:11   #3
Lucifer
Senior Member
 
Аватар для Lucifer
 
Регистрация: 01.07.2008
Сообщений: 392
По умолчанию

Думаю, лучше на примерах смотреть. методом научного тыка так сказать
Lucifer вне форума   Ответить с цитированием
Старый 30.12.2009, 22:35   #4
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

http://wiki.typo3.org/index.php/Exte...sing_Flexforms
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 31.12.2009, 00:40   #5
3ton
Senior Member
 
Регистрация: 25.12.2009
Сообщений: 106
По умолчанию

спасибо Void - то что доктор прописал!
3ton вне форума   Ответить с цитированием
Старый 04.01.2010, 12:22   #6
3ton
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';
позволяющие нам работать с 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 этих пунктов достаточно чтоб создать форму параметров для вставляемого расширения
3ton вне форума   Ответить с цитированием
Старый 04.01.2010, 16:50   #7
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Вы так пишете, что новички могут подумать что flexform.xml всегда один и в корневой папке. На самом деле их может может быть много - например один для каждого плагина (piX).

Я для удобства обычно пишу их не в корень, а в подпапку плагина:
pi1/flexform.xml
pi2/flexform.xml

Так легче разбираться с ними если плагинов в экстеншене несколько. Надо только правильно прописать пути в вызове addPiFlexFormValue().

Ваша функция getDisplayText это от какого-то копипаста остаток. Она вовсе не обязательна и никем кроме вас не может вызываться. Хотя это может быть удобным способом локализации - она берет локализованную строку либо заданную пользователем со странички FF s_messages, либо из стандартного locallang файла. Но это все должно быть должным образом сконфигурировано.

Также у вас есть дублирование в коде, так как вы уже FF в $this->conf записали используя mergeflexFormValuesIntoConf():
Код:
$this->mergeflexFormValuesIntoConf();
// Get vars
$var1 = $this->conf('var1');
И стоит сказать, что такая практика нужна если вы хотите использовать в плагине возможность конфигурирования одновременно через FF и через TypoScript. Иначе записывать в $this->conf совсем не обязательно.
dmartynenko вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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


Часовой пояс GMT +4, время: 04:51.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория