Dynamisches CMS

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dynamisches CMS

    Also ich momentan dabei mir ein eigenes CMS zu proggen.
    Mein Problem ist das ich das CMS einigermaßen Dynamisch machen will das heißt das ich mit Modulen arbeiten will.

    Als BSP:

    Top Downloads ist eine eigene PHP Datei diese kann nun mit ein Platzhalter in ein Template eingebunden werden.

    Code PHP (mit smarty):

    Index.php
    PHP-Code:
    [...]
    /*als bsp mal in die PHP Datei geschrieben normalerweise in einer
    extra Datei ausgelagert*/
    $tpl->assign('TOP_DOWNLOADS','{include_php file="content/top_downloads.php"}');
    [...] 
    Code TPL

    index.tpl
    Code:
    [...]
    <tr><td>{$TOP_NEWS}</td></tr>
    
    <tr><td>{$TOP_DOWNLOADS}</td></tr>
    [...]


    Code PHP (mit PHP):

    Index.php
    PHP-Code:
    <?PHP
    [...]
    /*als bsp mal in die PHP Datei geschrieben normalerweise in einer
    extra Datei ausgelagert*/
    $TOP_DOWNLOADS =  "<?php include('content/top_downloads.php') ?>";

    require(
    'templates/index.tpl');
    [...]
    ?>
    Code TPL

    index.tpl
    Code:
    [...]
    <tr><td><?=$TOP_NEWS ?></td></tr>
    
    <tr><td><?=$TOP_DOWNLOADS ?></td></tr>
    [...]
    Bei Smarty bekomme ich dann {include_php file="content/top_downloads.php"} raus.

    Bei PHP ist an der Stelle dann garnichts.

    Hat jemand eine bessere Idee das CMS Dynamisch zu halten oder kann mir jemand bei diesem Problem helfen?

  • #2
    ich vermute, dass in deinem Fall kann die Template nicht vollständig compiliert werden, was Performance kosten kann.
    versuch einfach zu testen, ob
    ob_start();
    include("content/top_downloads.php");
    $tpl->assign('TOP_DOWNLOADS',ob_get_contents());
    ob_end_clean();

    schneller geht.
    Slava
    bituniverse.com

    Kommentar


    • #3
      Soweit ich weiß ist Smarty nicht two pass compiling.
      Somit kannst du einen Platzhalter im Template zwar mit

      $tpl->assign('TOP_DOWNLOADS','{include_php file="content/top_downloads.php"}');

      durch Smarty-Code ersetzen, aber da Smarty das Template anschließend nicht noch einmal parst, wird der Smarty-Code nicht ausgeführt (es wird nichts included) sondern erscheint 1 zu 1 in der Ausgabe.

      Kommentar

      Lädt...
      X