2009-11-07 3 views
2

설정 파일에서 배열을 멋지게 정의 할 수 있습니까 ?? 예를 들어, 설정 파일 (/ configs에 있음)에 작은 데이터베이스가 있어야합니다. 몇 가지 (약 20 개) 제품 설명 : 제목, 가격, 설명. 그 후에 나는 foreach 또는 section을 통해 그것을 나열하고 싶다. MySql 또는 다른 db 엔진없이 Smarty에서 해당 배열을 어떻게 정의 할 수 있습니까? 내가 할 수 있을까?설정 파일을 통해 현명한 배열 정의

답변

6

, 당신은 FALSE = $ config_overwrite를 설정해야합니다. 이 페이지를 볼 수 있습니다 : config_overwrite

$smarty = new Smarty; 
$smarty->config_overwrite=false; 

설정 파일.

# row colors 
rowColors = #FF0000 
rowColors = #00FF00 
rowColors = #0000FF 

{section} 루프가있는 템플릿.

<table> 
    {section name=r loop=$rows} 
    <tr bgcolor="{cycle values=#rowColors#}"> 
    <td> ....etc.... </td> 
    </tr> 
    {/section} 
</table> 
0

나는 Smarty 문서, 특히 this 페이지를 살펴 보았습니다.

여기서 초기화되는 배열의 예는 보이지 않으며 구성 파일이 간단한 키 - 값 저장소 인 것처럼 Smarty가 해당 구성 파일의 배열 초기화를 지원하지 않는다고 생각됩니다. 구성 파일에서 배열을 초기화하고 그것이 작동하는지 알려주십시오.

다른 Smarty 문서 페이지에서 배열을 초기화하는 기본 위치는 값을 초기화하고 템플리트에 표시하기 전에 사용되는 .php 페이지에있는 것처럼 보입니다.

+0

사실입니다. 거기에 배열을 정의 할 수는 없습니다. 나는 모든 것을 시도했다 .. 오래 전에 나는 컨트롤러에서 배열을 할당했다. (당신이 제안한대로) : php : $ smarty-> assign ('list', array (1,2,3,4)); 제품.conf의 [1] 클라이언트 = BLA URL = BLA 가격 = BLA 설명 = BLA [2] 클라이언트 = URL = 가격 = 설명 = [3] 클라이언트 = URL = 가격 = 설명 = [4] = 클라이언트 URL = 가격 = 설명 = TPL : {foreach from = $ list item = 현재 이름 = prod} {config_load file = 'product.conf'섹션 = $ current} {$ smarty.config.client} {$ smarty.config.url} { $ smarty.config.price} {$ smarty.config.description} {/ foreach} – quardas

0

다시 작성하기 때문에 다음과 같이 형식화합니다.

사실 인 것 같습니다. 거기에 배열을 정의 할 수는 없습니다. (당신은 제안) 난 내가 컨트롤러에서 할당 배열을 사용하는 긴 마지막에 모든 것을 .. 시도 :

PHP :

$smarty->assign('list', array(1,2,3,4)); 

product.conf

[1] 
client= 
url= 
price= 
description= 

[2] 
client= 
url= 
price= 
description= 

[3] 
client= 
url= 
price= 
description= 

[4] 
client= 
url= 
price= 
description= 

TPL :

{foreach from=$list item=current name=prod} 
{config_load file='product.conf' section=$current} 

{$smarty.config.client} 
{$smarty.config.url} 
{$smarty.config.price} 
{$smarty.config.description} 

{/foreach} 
0

이 필요가 현명하게 수행되어야하는 이유가 있습니까? 방금 PHP로 배열을 생성하고 현명한 변수에 전달하면 미래 지향적 인 것처럼 보입니다. 이런 식으로 현명하지 못하면 모든 데이터가 모든 레코딩을 통해 계속 액세스 할 수 있습니다.

관련 문제