romanum Reply #1, 3 months, 4 weeks ago
Hi,
I could do with some advice on templating a custom snippet. The snippet below outputs rows from a custom database table. It uses a rowTpl and rowClass set as parameters in the snippet call.
How would I go about adding a 'outerTpl'. I need to be able to output the rows using a placeholder in a 'outerTpl' chunk?
I can get the outerTpl chunk to display, but can't get the foreach loop output to replace the placeholder.
Snippet Code:
Any help or advice would be great!
Many Thanks
I could do with some advice on templating a custom snippet. The snippet below outputs rows from a custom database table. It uses a rowTpl and rowClass set as parameters in the snippet call.
How would I go about adding a 'outerTpl'. I need to be able to output the rows using a placeholder in a 'outerTpl' chunk?
I can get the outerTpl chunk to display, but can't get the foreach loop output to replace the placeholder.
Snippet Code:
// add package so xpdo can be used:
$path = MODX_CORE_PATH . 'components/its/';
$result = $modx->addPackage('its',$path . 'model/','modx_');
//$isbn = parameter value passed from snippet call
//$outerTpl = parameter value passed from snippet call
//$rowTpl = parameter value passed from snippet call
//$rowClass = parameter value passed from snippet call
//$altClass = parameter value passed from snippet call
$rows = $modx->getCollection('ITS',array('isbn'=>$isbn));
$outerTpl = $modx->getOption('tpl',$scriptProperties,'itsTpl');
$rowTpl = $modx->getOption('rowTpl',$scriptProperties,'itsRowTpl');
$rowClass = $modx->getOption('rowClass',$scriptProperties,'white');
$altClass = $modx->getOption('altClass',$scriptProperties,'brown');
$i = 0; //Starts row count at 0
$output = $modx->getChunk($outerTpl,$resourceArray);
foreach($rows as $row) {
if($i % 2 == 0){
$itsClass = $rowClass;
}else{
$itsClass = $altClass;
}
$resourceArray = $row->toArray();
$resourceArray['itsClass'] = $itsClass;
$rowOutput .= $modx->getChunk($rowTpl,$resourceArray);
$i++;
}
return $output;Any help or advice would be great!
Many Thanks