[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