diff --git a/install/assets/snippets/breadcrumbs.tpl b/install/assets/snippets/breadcrumbs.tpl index b4572238f8..bb1bb81ffe 100644 --- a/install/assets/snippets/breadcrumbs.tpl +++ b/install/assets/snippets/breadcrumbs.tpl @@ -1,11 +1,12 @@ + array( - 'crumb' => '[+crumb+]', - 'separator' => ' » ', - 'crumbContainer' => '[+crumbs+]', - 'lastCrumbWrapper' => '[+lastCrumbSpanA+]', - 'firstCrumbWrapper' => '[+firstCrumbSpanA+]' - ), - 'defaultList' => array( - 'crumb' => '
  • [+crumb+]
  • ', - 'separator' => '', - 'crumbContainer' => '', - 'lastCrumbWrapper' => '[+lastCrumbSpanA+]', - 'firstCrumbWrapper' => '[+firstCrumbSpanA+]' - ), -); +$tpl = get_tpl($templateSet); +if($templateSet !== 'defaultString' && $templateSet !== 'defaultList') +{ + $tpl = get_chunk_tpl($templateSet); +} +if(isset($crumb)) $tpl['crumb'] = $crumb; +if(isset($separator)) $tpl['separator'] = $separator; +if(isset($crumbContainer)) $tpl['crumbContainer'] = $crumbContainer; +if(isset($lastCrumbWrapper)) $tpl['lastCrumbWrapper'] = $lastCrumbWrapper; +if(isset($firstCrumbWrapper)) $tpl['firstCrumbWrapper'] = $firstCrumbWrapper; /* ----------------------------------------------------------------------------- * END CONFIGURATION @@ -456,30 +453,79 @@ $pretemplateCrumbs = array_reverse($pretemplateCrumbs); $pretemplateCrumbs[0] = str_replace( array('[+firstCrumbClass+]','[+firstCrumbSpanA+]'), array($stylePrefix.'firstCrumb',$pretemplateCrumbs[0]), - $templates[$templateSet]['firstCrumbWrapper'] + $tpl['firstCrumbWrapper'] ); $pretemplateCrumbs[(count($pretemplateCrumbs)-1)] = str_replace( array('[+lastCrumbClass+]','[+lastCrumbSpanA+]'), array($stylePrefix.'lastCrumb',$pretemplateCrumbs[(count($pretemplateCrumbs)-1)]), - $templates[$templateSet]['lastCrumbWrapper'] + $tpl['lastCrumbWrapper'] ); // Insert crumbs into crumb template $processedCrumbs = array(); foreach ( $pretemplateCrumbs as $pc ) { - $processedCrumbs[] = str_replace('[+crumb+]',$pc,$templates[$templateSet]['crumb']); + $processedCrumbs[] = str_replace('[+crumb+]',$pc,$tpl['crumb']); } // Combine crumbs together into one string with separator -$processedCrumbs = implode($templates[$templateSet]['separator'],$processedCrumbs); +$processedCrumbs = implode($tpl['separator'],$processedCrumbs); // Put crumbs into crumb container template $container = str_replace( array('[+crumbBoxClass+]','[+crumbs+]'), array($stylePrefix.'crumbBox',$processedCrumbs), - $templates[$templateSet]['crumbContainer'] + $tpl['crumbContainer'] ); // Return crumbs -return $container; \ No newline at end of file +return $container; + + + +function get_tpl($templateSet) +{ + switch($templateSet) + { + case 'defaultList': + case 'list': + case 'li': + { + $tpl['crumb'] = '
  • [+crumb+]
  • '; + $tpl['separator'] = ''; + $tpl['crumbContainer'] = ''; + $tpl['lastCrumbWrapper'] = '[+lastCrumbSpanA+]'; + $tpl['firstCrumbWrapper'] = '[+firstCrumbSpanA+]'; + break; + } + default: + { + $tpl['crumb'] = '[+crumb+]'; + $tpl['separator'] = ' » '; + $tpl['crumbContainer'] = '[+crumbs+]'; + $tpl['lastCrumbWrapper'] = '[+lastCrumbSpanA+]'; + $tpl['firstCrumbWrapper'] = '[+firstCrumbSpanA+]'; + } + } + return $tpl; +} + +function get_chunk_tpl($templateSet) +{ + global $modx; + $src = $modx->getChunk($templateSet); + $lines = explode("\n", $src); + foreach($lines as $line) + { + $line = ltrim($line); + if(!empty($line) && $line[0] == '&' && strpos($line,'=')!==false) + { + list($key,$value) = explode('=',$line,2); + $key = trim($key,'& '); + $value = trim($value,'`'); + $tpl[$key] = $value; + } + } + return $tpl; +} +?> \ No newline at end of file