2016-05-30 8 views
0

私は自分の会社のために新しいウェブサイトを作っています。スマート(v3.1.29)を使いたいと思います。問題は、コードすべてのページデータベース(home、products、downloads、...)に格納されています。私は私達のデータベースからコンテンツをロードするDIV-セクションを持っている私のテンプレート(の.tpl)ファイルでスマートテンプレートエンジンにPHPコードを割り当てる

<?php include("functions.php"); ?>  

<p> Hello <?php echo printWorldInColor(); ?> </p> 

:一部のページはのようなPHPのインライン関数が含まれてい

<html> 
    <body> 
    <div id="content"> 
     {$content} 
    </div> 
    </body> 
</html> 

だから私のコードは次のようになりますその後:

<html> 
    <body> 
    <div id="content"> 
     <?php include("functions.php"); ?>  

     <p> Hello <?php echo printWorldInColor(); ?> </p> 
    </div> 
    </body> 
</html> 

解析する前にPHPコードをスマートに処理する方法はありますか?

ヒント:テンプレートファイルを編集しません。私はちょうどウェブサイトの私の内容セクションにデータベースの内容を解析したいと思う。 私が試した何


  • 文字列にデータベース・コンテンツを保存し、Smartyの-PHP-タグとPHPタグを交換し、その後、テンプレートに割り当て
  • SmartyBCクラス

答えて

1

Smartyではこれを実行できません。また、データベースに格納されているPHPコードを実行すると、恐ろしいアイデアのように聞こえます。しかし何らかの理由であなたがこのナンセンスを続けなければならない場合(そしてあなたがevalを使うことはできないと考えている)、これを試すことができます:

  1. データベースからphpコードを読んでください。
  2. )のob_startと出力バッファリングをオンにし(
  3. 、時間のphpファイルに保存
  4. あなたは
  5. (ob_get_cleanと出力を変数に割り当てるを作成したファイルを含める)
  6. に変数を割り当てますテンプレート

私があなただったら、私は別の方法でプロジェクトをやろうとします。

+0

あなたの答えをありがとう。私はサイト全体を再加工しようとは考えていませんでした。なぜページがデータベースに保存されているのかわかりません。私はそのデータベースがなくても新しいサイトを作ってから、必要に応じてデータベース/テーブルを編集すると思います。 – Seelixh

+0

今私はデータベースにコードを保存した理由を知っています。それは私たちのアップデートシステムと関係があります。イントラネットでは、Webサイトを更新し、その変更を公開Webサイトデータベースに直接アップロードすることができます。その後、パブリックWebサイトはデータベースからページコンテンツをロードします。 – Seelixh

関連する問題