Project

General

Profile

Bug #80473

Updated by Faton Haliti over 7 years ago

In the case that one have a custom extension which has flexform and use section which will allow the user to select between possible arrays of objects to create in the form 

 How to reproduce:  
 1. Use e.g. (ext:news "composer require georgringer/news") 
 2. Inside flexform_news.xml in general settings part inside <el> add the code bellow 
 
 e.g.:  

 @ 
 ... 
 <testElement> 
						 <section>1</section> 
						 
	 <type>array</type> 
						 
	 <el> 
							 
	     <record> 
								 
			 <type>array</type> 
								 
				 <el> 
									 
					 <question> 
										 
						 <TCEforms> 
											 <label>Question</label> 
											 
							 <label>LLL:EXT:iaelements/Resources/Private/Language/locallang_db.xlf:tx_iaelements_pi1.flexform.iatype2.question</label> 
							 <config> 
												 
								 <type>input</type> 
											 
							 </config> 
										 
						 </TCEforms> 
									 
					 </question> 
									 <answer1> 
										 <TCEforms> 
											 <label>Answer 1</label> 
											 <config> 
												 <type>input</type> 
											 </config> 
										 </TCEforms> 
									 </answer1> 
									 <answer2> 
										 <TCEforms> 
											 <label>Answer 2</label> 
											 <config> 
												 <type>input</type> 
											 </config> 
										 </TCEforms> 
									 </answer2> 
									 <answer3> 
										 <TCEforms> 
											 <label>Answer 3</label> 
											 <config> 
												 <type>input</type> 
											 </config> 
										 </TCEforms> 
									 </answer3> 
									 
					 <correctanswer> 
										 
						 <TCEforms> 
											 <label>Correct Answer</label> 
											 
							 <label>LLL:EXT:iaelements/Resources/Private/Language/locallang_db.xlf:tx_iaelements_pi1.flexform.iatype2.correctanswer</label> 
							 <config> 
												 
								 <type>radio</type> 
												 
								 <items type="array"> 
													 
								 <numIndex index="0" type="array"> 
														 
								 <numIndex index="0">1</numIndex> 
														 
								 <numIndex index="1">1</numIndex> 
													 
								 </numIndex> 
													 <numIndex index="1" type="array"> 
														 <numIndex index="0">X</numIndex> 
														 <numIndex index="1">2</numIndex> 
													 </numIndex> 
													 <numIndex index="2" type="array"> 
														 <numIndex index="0">2</numIndex> 
														 <numIndex index="1">3</numIndex> 
													 </numIndex> 
												 
								 ... 
								 </items> 
												 
							 <default>1</default> 
											 
							 </config> 
										 
								 </TCEforms> 
									 
					 </correctanswer> 
								 
			 </el> 
							 
               </record> 
						 </el> 
					 </testElement> 
 .. 
 @ 

 3. In a specific page under "plugin settings" you have a button with the data added in flexform_news.xml "<testElement>...</testElement>"  

 Result: Don't show the specific options added in flexform when you click the button. 
 Expected result: Show the specific options added in flexform when you click the button. 


 This specific XML structure (the so-called "FlexForm") is stored in the pi_flexform "tt_content" database table which then provides additional form fields in the backend. 
 With the latest changes on [[#80100]]    this will fail because will bypass the    fetch of database record if already loaded. 

 The suggested change is to check if the tableName is not "tt_content" and not bypass the fetch of database record. 

Back