Zum Inhalt springen

Templates und Subparts, Problem mit Unterbereiche

Erstellt am 24. Oktober 2007 · 2 Antworten · letzte Antwort am 24. Oktober 2007

Tags: Frage

laser ·

Ich hab ne kleine Frage, und zwar habe ich in meinem Template ein Bereich in kleinere Bereiche Unterteilt, das ganze sieht im Moment so aus:

<!-- ###OVERVIEW### begin -->

<div class="tx_mh_branchenbuch-list">
  
  
  <!-- ###CATEGORIES### -->
  <h1>Branche wählen (Anzahl der Einträge in dieser Branche):</h1>
  <ul>
    <!-- ###ITEM### -->
    <li>###NAME### (###COUNT###)</li> 
    <!-- ###ITEM### -->
  </ul>
  <!-- ###CATEGORIES### -->
 

</div>

<!-- ###OVERVIEW### end -->

Das dumme daran ist, irgendwie rendert er das HTML was innerhalb von ###CATEGORIES### ist nicht.

Der PHP-Code sieht so aus:

[..]
$template['total']  = $this->cObj->getSubpart($this->templateCode,"###OVERVIEW###");
    $template['item']   = $this->cObj->getSubpart($template['total'],'###ITEM###');
[..]
if($GLOBALS['TYPO3_DB']->sql_num_rows($getCats)) {
      while($row = mysql_fetch_array($getCats)) {
        $markerArray['###NAME###']  = htmlentities($row['name']);
        $markerArray['###COUNT###'] = $row['entries'];
        
        $SubpartArray['###CATEGORIES###'] .= $this->cObj->substituteMarkerArrayCached($template['item'], $markerArray);
      }
    }
    
    return $this->cObj->substituteMarkerArrayCached($template['total'], array(), $SubpartArray);

Hoffe ihr könnt mir da irgendwie helfen!

steffenk ·

ich will Dir mal ein Beispiel geben, wie ich das mache mit den Subparts:

<!-- ###STATUSINFO### -->
    <table class="std">
          <!-- ###ROW### -->
          <tr>
            <th>###LABEL###</th> 
            <td>###VALUE###</td>
          </tr>
          <!-- ###ROW### -->
    </table>
<!-- ###STATUSINFO### -->
$template=$this->cObj->fileResource($this->templateFile);
$subpart=$this->cObj->getSubpart($template,'###STATUSINFO###');
$sspart=$this->cObj->getSubpart($subpart,'###ROW###');    

$rows=''; #init
while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {    
   $markerArray['###LABEL###']=$row['label'];
   $markerArray['###VALUE###']=$row['value'];
   $rows.= $this->cObj->substituteMarkerArrayCached($sspart,$markerArray); 
}
#nun den subpart füllen
$subpartArray['###ROW###']=$rows;
...
laser ·

Ah - Danke!
Funktioniert bestens, das eröffnet mir ganz neue Möglichkeiten, jetzt muss ich glaube meine ganzen Templates mal umbauen :p

Besten Dank nochmal!