Smarty - Probleme mit .conf Files

Mik3e

Erfahrenes Mitglied
Hi zusammen,

Versuche gerade mich in Smarty einzuarbeiten und bin dabei auf ein kleines Problem gestoßen. Ich möchte Testweise eine Tabelle mit n-Zeilen ausgeben, deren BGColor immer wechselt.

Ist alles kein Problem, klappt mit
<td bgcolor="{cycle values=#FF0000,#FFFFFF}">TESTTEXT</td>
im Template File problemlos.

Nun möchte ich die Farbwerte allerdings in einem config File hinterlegen.
Dieses sieht im Moment so aus:

colours.conf:
PHP:
bodyBgColor = #000000
rowOneBgColor = #FF0000
rowTwoBgColor = #000000

Dann gibt es den entsprechenden Code:
index.php:
PHP:
define('SMARTY_DIR', 'c:/php/smarty/libs/');
require_once(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty;
$smarty->security = false;
$smarty->debugging = true;
$smarty->template_dir = 'c:/inetpub/wwwroot/smartytest/guestbook/templates/';
$smarty->compile_dir = 'c:/inetpub/wwwroot/smartytest/guestbook/templates_c/';
$smarty->config_dir = 'c:/inetpub/wwwroot/smartytest/guestbook/configs/';
$smarty->cache_dir = 'c:/inetpub/wwwroot/smartytest/guestbook/cache/';
$data=array();
for ($i=0; $i<=10; $i++) {
	$randval = rand();
	array_push($data, $randval);
}
$smarty->assign('custid',$data);
$smarty->display('index.tpl');

Und das zugehörige Template File:
templates/index.tpl:
PHP:
{config_load file='/inetpub/wwwroot/smartytest/guestbook/templates/colors.conf' scope='global'}
<table>
{section name=kunde loop=$custid}
<tr>
   <td bgcolor="{cycle values=#rowOneBgColor#,#rowTwoBgColor#}">id: {$custid[kunde]}</td>
</tr>
{/section}
</table>
Wie man sieht habe ich die Werte des Config Files hier eingesetzt. Allerdings werden diese Konstanten von Smarty nicht geparst (im Quellcode steht dann: bgcolor=#rowOneBgColor#). Ich vermute mal, in diesem Fall muss man spezielle Anführungszeichen oder Highstacks setzen... Vielleicht kann mir irgendein Smarty Pro ja einen Tipp geben.

Danke & Ciao,
Mike
 
Mik3e hat gesagt.:
templates/index.tpl:
PHP:
   <td bgcolor="{cycle values=#rowOneBgColor#,#rowTwoBgColor#}">id: {$custid[kunde]}</td>

versuchs mal mit
PHP:
   <td bgcolor="{cycle values=`$smarty.config.rowOneBgColor`,`$smarty.config.rowTwoBgColor`}">id: {$custid[kunde]}</td>

Ich hoffe ich konnte helfen ;>
 
Hi,

Ja, diesen Workaround mit dem direkten Zugriff auf die $smarty.conf.* Parameter, habe ich auch gefunden... Dürfte in diesem Fall mit den Standard Delimitern #vars# bzw. dem direkten ansprechen der Konfigurationsvariablen nicht funktionieren. Eigentlich recht hässlich, aber was solls...

Danke jedenfalls,
Ciao,
Mike
 
Zurück