Array Für Smarty Übergeben

Hallo Zusammen

Ich möchte mir mein kleines eigenes CMS System erstellen. Dazu habe ich nach dem installieren von Smarty eine Smarty taugliche .tpl Datei erstellt und bei den entsprechenden Stellen Platzhalter wie z.B. {$Text1} gesetzt. Diese möchte ich mit Texten welche in einer Tabellen gespeichert sind in der View von Smarty ersetzen lassen.

Dazu habe ich eine Tabelle welche die Texte beinhaltet erstellt :

[color="#0000ee"][/color]

[color="#0000ee"][u]

[/u][/color]Und im Controller einen funktionierenden Test erstellt.

Action im Controller


public function actionSmarty() {

	

	$view = "smartyTextView.tpl";


	$model = new \app\models\text();

	

	$model = \app\models\text::find()

    ->where(['id_layout' => 1, 'id_position' => 1])

    ->one();

	

	echo $this->render($view, ['Text1' => $model->text]);

   	

    }

smartyTextView.tpl

[size="2"]


<h3><i class="fa fa-check-circle"></i>  {$Text1} </h3>

[/size]

[size="2"]Jetzt wird wie gewünscht der Inhalt des Feldes "Text" mit den Kriterien Layout = 1 und Position = 1 aus der Tabelle gelesen. In der View wird der Platzhalter {$Text1} mit dem ermittelten Text aus der Tabelle ersetzt.[/size]

Ich vermute man könnte da evt mit einem Array die Werte so aus der Tabelle lesen und Smarty übergeben das die Platzhalter automatisch bei übereinstimmung abgefüllt werden. Kann mir jemand einen Denkanstoss liefern?

Vielen Dank.

Grüsse Beat

Habs gefunden:


use yii\helpers\ArrayHelper; // load classes


	

public function actionSmarty() {

	

	$view = "smarty.tpl";


	$model = new \app\models\text();

	

	$dataList = ArrayHelper::map(\app\models\text::find()

                              	->asArray()

				->all(),

				 'Position', 'text');


	echo $this->render($view,$dataList );

   	

    }



Ich möchte die Template über das Web pflegen. Ich dreh mich da immer im Kreis…

Wie erkläre ich dem Controller dass er die View’s, welche zum beispiel dem Template home.tpl entspricht, nicht mehr unter views/controller/home.tpl findet sonder dynamisch aus der Datenbank lesen soll?

aktuell

views/controller/home.tpl

Neu

home.tpl ist ein blob feld in der Layout Tabelle der Datenbank.

[size="2"]


  

public function actionSmarty($view) {


	//$view = "home.tpl";

        // -->  der Inhalt der $view würde ich gerne aus der Datenbank holen.


	$dataList = ArrayHelper::map(\app\models\Layouttext::find()

					->asArray()

					->where(['id_Layout' => $view])

					->all(), 'Position', 'text');


	echo $this->render($view, $dataList);

    

    }



[/size]