[TYPO3-english] Flexform questions
Robert Wildling
robertwildling at gmail.com
Tue May 8 23:56:45 CEST 2012
Thank you so much for responding, Jigal!
I do have a script, but the return values are wrong - and I don't why.
The debug statements through the correct contents, but obviousely I am
putting them together in a wrong way... the multiselect result list is
filled with these 3 values:
Please choose...
A
A
I Have absolutely no idea where the 2 "A"s come from...???
This is the script - maybe you find a moment ... thanks!
<?php
class tx_rwhandselectedcontent_addFieldsToFlexForm
{
function addFields ($config)
{
// fetch values from FlexForm
$piValues = t3lib_div::xml2array($config['row']['pi_flexform']);
// extract the reqired data into 2 variables
$teaserPID = $piValues['data']['sDEF']['lDEF']['teaserPID']['vDEF'];
$col = $piValues['data']['sDEF']['lDEF']['col']['vDEF'];
//debug($piValues,'FELXFORM-VALUES',__LINE__, __FILE__,5);
//debug($teaserPID,'TEASER-PID',__LINE__, __FILE__,5);
//debug($col,'COL-NR',__LINE__, __FILE__,5);
//debug($GLOBALS['TYPO3_DB'],'GLOBALS[TYPO3_DB]',__LINE__,
__FILE__,5);
// Prepare SQL Statement to get all child pages of current page
(parentPID)
$queryParts['SELECT'] = '*';
$queryParts['FROM'] = 'tt_content';
$queryParts['WHERE'] = "pid=" . $teaserPID . ' AND colPos=' . $col;
$queryParts['GROUPBY'] = '';
$queryParts['SORTING'] = 'crdate';
$queryParts['LIMIT'] = '';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
$queryParts['SELECT'],
$queryParts['FROM'],
$queryParts['WHERE'],
$queryParts['GROUPBY'],
$queryParts['SORTING'],
$queryParts['LIMIT']
);
//$num = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
$optionList = array();
$optionList[0] = array("Please choose...",0);
$i=1;
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
//$header = $row['header'];
//$index = $row['uid'];
//debug($header,'header',__LINE__,__FILE__,5)
// -> debug shows correct values
//$optionList[$i] .= array($header, $index);
$optionList[$i] .= array(0=>$row['header'], 1=>$row['uid']); //
<-- here sth is wrong!!!
$optionList[$i] .= array(0=>"$row['header']",
1=>"$row['uid']"); // <-- doesn't work either ...
$i++;
}
$GLOBALS['TYPO3_DB']->sql_free_result($res);
$config['items'] = array_merge($config['items'],$optionList);
//debug($optionList['0']['1'],'optionList',__LINE__,
__FILE__,5); // <- throws NULL
//debug($config['items'],'configItems',__LINE__, __FILE__,5);
return $config;
}
}
?>
>>> The next step would be to show a field that reads the contents from the
>>> table with the pid given in teaserPID in form of a database relation (an
>>> empty select box next to a selectbox with a list of content elements to
>>> choose from). Here I am totally stuck. The only entry in the Core
>>> documentation that can be found when searching for database relation is
>>> under allowNonIdValues ...
>
> I think there is enough information in the thread you linked in one of
> your answers to the original question. You can populate the field with a
> custom function using <itemsProcFunc> and retrieve the value of your
> teaserPID using the code in François's answer.
>
More information about the TYPO3-english
mailing list