einsiedler: smarty templates

Beitrag lesen

Habe mal eine Frage, ich weiß jetzt nicht ob es sich so nennt. Jedenfalls möchte ich ein template (genannt: section-card.html) in meine index.php direkt einfügen.

Mein template (section-card.html):


`
<section>
  <h4 class="header-tabelle">{headline}</h4>
  <h5 class="header-tabelle">{subheadline}</h5>
    <p>
      {title}
    </p>
    <p>{title}{subtext}</p>
    <p>{text}</p>
</section>
`

Die Platzhalter die ersetzt werden sollen stehen hier in der userdata.json :

$_UserData = [
    [
        '{headline}' => '<span>MÜLLKunsthalleMünster,</span><span>ASI-Speicher II, Münster</span>',
        '{subheadline}' => 'BLUPPBLUPP, 2012',
        '{title}' => 'Perfor&shy;mance',
        '{subtext}' => '<span>MÜLLKunsthalleMünster,</span><span>ASI-Speicher II, Münster</span>',
        '{text}' => 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.'
    ]
];

Nun meine Frage, da ja sowiso meine index eine .php ist kann ich es doch direkt mein template einfügen.

Zum Beispiel an der Stelle der section class="text"

Ein Ausschnitt meiner index.php:

[ ... ]
<body>
   <main id="main" tabindex="-1">
        <article class="bildstrecke">
          <h3>Abbildungen</h3>
          <section>
            <h4>Meine h4</h4>
            <p>Irgendwie ein Sub-Text...</p>
                <section class="text">
                       <?php
                                $_UserCardsHml = file_get_contents( TEMPLATE_FOLDER_PATH . 'section-card.html' );
                                $jFileContent = file_get_contents('userdata.json');
                                $jObject = json_decode($jFileContent);
                                
                                include_once "make_section.php";

                       ?>
                </section>
          </section>
        </article>
   </main>
</body>
</html>

So sieht meine make_section.php dann aus:

<?php
const TEMPLATE_FOLDER_PATH = './template/';

$_UserCards = array_map(
        function ( $user ) use ( $_UserCardsHml ) {
            $_card = $_UserCardsHml;
            foreach ( $user as $key=>$data )
                $_card = str_replace( '{' . $key . '}', $data, $_card );
            return $_card;
        }
        , $_UserData
    );
?>

Aber da bin ich mir nicht sicher ob alles richtig ist.

Mit der Bitte um Korrektur.

es geht mir darum das Prinzip ersteinmal grundsätzlich zu verstehen.

Gruß der einsiedelnde