![]()  | 
	Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community | 
| 
			
			 | 
		#1 | 
| 
			
			 Senior Member 
			
			
			
			Регистрация: 25.12.2009 
				
				
				
					Сообщений: 106
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			создал расширение которое отлично работает 
		
		
		
		
		
		
		
	суть заключается в том что расширение лезет на защищеный WebSrvice и берет оттуда данные, после чего закидывает их в базу предварительно проверяет если последние данные были взяты меньше часу назад то не лезет а берет сразу данные из базы. проблема в том что с этими данными будут работать несколько модулей и у меня ситуация при которой либо я делаю 5-6 отдельных расширений, либо я добавляю в BE к расширению параметры пользователь при вставке плагина выбирает параметр и расширение в соответствии с выбором будет выдаст нужный результат расширение и таблицы создал через KickStarter, но не нашел как сделать форму для внесения параметров, почитал что вроде как это FlexForm, но никакой нормальной инфы по ней не нашел, может кто поможет?  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#2 | 
| 
			
			 Administrator 
			
			
			
				
			
			
	 | 
	
	
	
		
		
			
			 
			
			кикстартер флекс формы к сожалению не делает 
		
		
		
		
		
		
			
		
		
		
		
	Я сам разбирался с флексформами на примерах (экстеншен comments) Пара страниц об этом есть в книжке Дулепова, но проще на примере посмотреть.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#3 | 
| 
			
			 Senior Member 
			
			
			
			Регистрация: 25.12.2009 
				
				
				
					Сообщений: 106
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			тогда вопрос к Вам, как к уже прошедшему данный этап 
		
		
		
		
		
		
		
	достаточно ли создать файл flexform.xml и задать в нем нужную структуру или есть еще пару файлов необходимых для появления формы настроек в BE ???  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#5 | 
| 
			
			 Senior Member 
			
			
			
			Регистрация: 25.12.2009 
				
				
				
					Сообщений: 106
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			можете подсказать или лучше книжку купить???  
		
		
		
		
		
		
		
	 
		 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#6 | 
| 
			
			 Senior Member 
			
			
			
				
			
			Регистрация: 01.07.2008 
				
				
				
					Сообщений: 392
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Думаю, лучше на примерах смотреть. методом научного тыка так сказать  
		
		
		
		
		
		
		
	 
		 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#8 | 
| 
			
			 Senior Member 
			
			
			
			Регистрация: 25.12.2009 
				
				
				
					Сообщений: 106
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			спасибо Void - то что доктор прописал!
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#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 этих пунктов достаточно чтоб создать форму параметров для вставляемого расширения  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#10 | 
| 
			
			 Senior Member 
			
			
			
				
			
			
	 | 
	
	
	
		
		
			
			 
			
			Вы так пишете, что новички могут подумать что 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');
 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
		
| Опции темы | |
| Опции просмотра | |
		
  | 
	
		
  | 
			 
			Похожие темы
		 | 
	||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение | 
| 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 |