Template Marker ersetzten

  • 0 x
    78 Beiträge
    0 Hilfreiche Beiträge
    14. 12. 2009, 20:53

    Hi Leute,

    ich habe dieses Template und möchte die Marker ersetzten:

    1. <!-- ###MAINLISTE### -->
    2. <form action="index.php" method="post">
    3. <input type="hidden" name="send" value="###SENDVALUE###" />
    4.  
    5. <!-- ###REPEAT### -->
    6. <div>###NUMBER###</div>
    7. <!-- ###REPEAT### -->
    8.  
    9. <input type="submit" value="" />
    10. </form>
    11. <!-- ###MAINLISTE### -->

    [HTML]$templateFile = $this->cObj->fileResource('EXT:fx_testextension/res/template.tmpl');
    $template = $this->cObj->getSubpart($templateFile, '###MAINLISTE###');
    $templateRepeat = $this->cObj->getSubpart($template, '###REPEAT###');

    $content = $this->cObj->substituteMarker($template, '###SENDVALUE###', '1');

    $repeat = '';
    $marker = array();

    // For scheife die von 0-10 zählt ( warum kann man die hier nicht eintragen??)

    $marker['###NUMBER###'] = $i;
    $repeat .= $this->cObj->substituteMarkerArrayCached($templateRepeat, $marker);
    //For ende

    $content .= $this->cObj->substituteSubpart($template, '###REPEAT###', $repeat);
    return $content;

    [/HTML]
    Es kommt sowas bei raus, ist natürlich falsch mit den zwei Form Elementen:

    1. <form action="index.php" method="post">
    2. <input type="hidden" name="send" value="1" />
    3. <div>###NUMBER###</div>
    4. <input type="submit" value="" />
    5. </form>
    6. <form action="index.php" method="post">
    7. <input type="hidden" name="send" value="###SENDVALUE###" />
    8. <div>0</div>
    9. <div>1</div>
    10. <div>2</div>
    11. <div>3</div>
    12. <div>4</div>
    13. <div>5</div>
    14. <div>6</div>
    15. <div>7</div>
    16. <div>8</div>
    17. <div>9</div>
    18. <input type="submit" value="" />
    19. </form>

    Wie geht es richtig , ich kriege es einfach nicht hin.
    [/HTML]


  • 1
  • timo_s timo_s
    T3PO
    0 x
    11 Beiträge
    0 Hilfreiche Beiträge
    14. 12. 2009, 23:36

    Hallo.

    Du hast folgende Fehler gemacht, in Zeile 5 nimmst du das ganze Template und ersetzt nur den Marker ###SENDVALUE### und in Zeile 16 nimmst du abermals das ganze Template und ersetzt nun den Marker ###REPEAT###. So kommt es das du das <form>-Tag zweimal in deinem $content stehen hast.

    Versuch mal folgendes:

    1. $templateFile = $this->cObj->fileResource('EXT:fx_testextension/res/template.tmpl');
    2. $template = $this->cObj->getSubpart($templateFile, '###MAINLISTE###');
    3. $templateRepeat = $this->cObj->getSubpart($template, '###REPEAT###');
    4.  
    5. // For scheife die von 0-10 zählt ( warum kann man die hier nicht eintragen??)
    6. $repeat = '';
    7. for($i=0; $i<10; $i++) {
    8. $marker = array('###NUMBER###' => $i);
    9. $repeat.= $this->cObj->substituteMarkerArrayCached($templateRepeat, $marker);
    10. }
    11.  
    12. $marks = array(
    13. '###SENDVALUE###' => '1',
    14. '###REPEAT###' => $repeat;
    15. );
    16. $content = $this->cObj->substituteMarkerArrayCached($template, $marks);
    17.  
    18. return $content;

    Ist nur so runter geschrieben und nicht getestet. Sorry.

    Entscheident hier sind die Zeilen 12 - 16, denn dort nehme ich nur einmal das $template und übergebe der Methode ein Array ($marks) mit den Markern die ersetzt werden sollen.

    Tipp: http://doxygen.frozenkiwi.com/typo3/html/ und suche mal nach 'substituteMarkerArrayCached'

  • 1