[Typo3] Flexible Content and New Content wizard

Burkhard Pauli mail at bpauli.de
Tue Mar 15 17:34:05 CET 2005


Jan Wulff schrieb:
> I don't think so, I hope we get one in 3.8. There is an extension to remove
> denied fields from the wizard, but as far as I know, it don't work with
> TemplaVoila. But after you've created your own extension and extended the
> wizard for the first time, it's an expenditure of maybe 60 seconds to add
> or delete fields.
> 
> I would nearly always create a user extension (f.e. user_yoursitename) from
> the beginning, to have all the little precision settings you have to do in
> PHP in one place.
> 
> In the case you didn't worked with PHP before, I could mail you an example.

So, here is my working solution. It render all available Flexforms:

<?php
class ux_tx_templavoila_dbnewcontentel extends 
tx_templavoila_dbnewcontentel {
	function wizardArray()	{
		global $LANG, $TYPO3_DB;
		
		$positionPid = $this->id;
		$storageFolderPID = $this->getStorageFolderPid($positionPid);
		$tTO = 'tx_templavoila_tmplobj';
		$tDS = 'tx_templavoila_datastructure';
		$res = $TYPO3_DB->exec_SELECTquery (
		"$tTO.*",
		"$tTO LEFT JOIN $tDS ON $tTO.datastructure = $tDS.uid",
		"$tTO.pid=".intval($storageFolderPID)." AND 
$tDS.scope=2".t3lib_befunc::deleteClause 
($tTO).t3lib_befunc::deleteClause ($tDS)
		);
		
		$fce_count = 1;
		$wizardItems = array();
		$wizardItems['fce']['header'] = $LANG->getLL('fce');
		
		while ($row = $TYPO3_DB->sql_fetch_assoc($res))	{
			$tmpFilename = 'uploads/tx_templavoila/'.$row['previewicon'];
			$wizardItems['fce_'.$fce_count]['icon'] = 
(@is_file(PATH_site.$tmpFilename)) ? 
($GLOBALS['BACK_PATH'].'../'.$tmpFilename) : 
($GLOBALS['BACK_PATH'].'../'.t3lib_extMgm::siteRelPath('templavoila').'res1/default_previewicon.gif');
			$wizardItems['fce_'.$fce_count]['description'] = $row['description'] 
? htmlspecialchars($row['description']) : $LANG->getLL 
('template_nodescriptionavailable');
			$wizardItems['fce_'.$fce_count]['title'] = 
htmlspecialchars($row['title']);
			$wizardItems['fce_'.$fce_count]['params'] = 
'&defVals[tt_content][CType]=templavoila_pi1&defVals[tt_content][tx_templavoila_ds]='.$row['datastructure'].'&defVals[tt_content][tx_templavoila_to]='.$row['uid'];
			$fce_count ++;
		}
		return $wizardItems;
	}
	function getStorageFolderPid($positionPid)    {
             // Negative PID values is pointing to a page on the same 
level as the current.
         if ($positionPid<0) {
             $pidRow = 
t3lib_BEfunc::getRecord('pages',abs($positionPid),'pid');
             $positionPid = $pidRow['pid'];
         }
         $row = t3lib_BEfunc::getRecord('pages',$positionPid);

         $TSconfig = t3lib_BEfunc::getTCEFORM_TSconfig('pages',$row);
         return intval($TSconfig['_STORAGE_PID']);
     }

}
?>

It render no traditional content elements. Thanks a lot to Jan, who 
bring  me on the right way!



More information about the TYPO3-english mailing list