Chiama smarty variabile da html anziché php

CODICE HTML:

<html><body> {section name=a loop=$items} {$items[a].title} {include file="/directory/showstuff.html" video=$items[a]} {/section} </body> </html> 

CODICE PHP:

$ pid = '12';

$ articoli = $ cbvid-> get_channel_items ($ pid);

assegnare ( 'voci', $ articoli);

Questo funziona perfettamente, con l'integer 12 che è il mio codice php. Tuttavia, volevo aggiungere il numero integer 12 e chiamarlo dal codice html, ma non ha funzionato.

Provai:

 <html><body> {section name=a loop=$cbvid->get_channel_items(12)} {$items[a].title} {include file="/directory/showstuff.html" video=$items[a]} {/section} </body> </html> 

Ma non ha funzionato. Come posso farlo?

Basta non farlo. Sembra che ti piacerebbe spostare la logica di business sul livello di rappresentazione – non è quello per cui Smarty è usato. Preparare i dati in anticipo, quindi darli al model.

Ma se vuoi davvero che funzioni, usa foreach

 <html><body> {foreach from=$cbvid->get_channel_items(12) item=video} {$video.title} {include file="/directory/showstuff.html" video=$video} {/foreach} </body> </html> 

Il motivo per cui non ha funzionato con le sezioni era perché non hai definito la variabile $items , tuttavia, stai cercando di ottenerne il valore. Questo è where devi usare assign .

 <html><body> {assign var="items" value=$cbvid->get_channel_items(12)} {section name=a loop=$items} {$items[a].title} {include file="/directory/showstuff.html" video=$items[a]} {/section} </body> </html> 

Comunque, preferisco foreach .