Скажи у меня
{php}
function hello(){
{/php}
<div class="hello">{$smarty.foreach.panellist.iteration}</div>
{php}
}
{/php}
Тогда внизу я звоню:
{foreach from=$channelObj->get_panellist_primary('','','pan_ptyid,pan_label1,pan_label2') item=panelObj name=panellist}
{php}hello(){/php}
{/foreach}
Я получаю эту ошибку:
PHP Fatal error: Using $this when not in object context in /var/www.app1/theURL/otherthings/channel.tpl.php on line 197
Почему это не работает? Как я могу получить доступ к итерации этого foreach внутри функции, желательно без передачи параметра?
Так как я знаю, ты мне скажешь {php}
устарел … причина, по которой я его использую, заключается в том, что меня просят сделать действительно сложный шаблон, поэтому мне нужны сложные функции для его создания, чтобы он не превратился в беспорядок, и я никогда раньше не использовал smarty. Я на крайнем сроке и уже опаздываю, поэтому не могу выучить правильную методологию умных способностей. Единственный способ узнать, как управлять этим кодом, — это использовать обычный PHP, но мой начальник настаивает на том, чтобы я делал все это с помощью smarty … PHP или Javascript не допускаются.
Спасибо!
Объем = глобальный
требуется для доступа к переменной из foreach!
{assign var=SenderID value=$Nachricht.sender_id scope=global}
{php} echo $smarty->getTemplateVars('SenderID'); {/php}
или же
{assign var = «edit_ticket_id» value = $ ticket.ticketRaw [‘edit_old_ticket_id’] scope = global}
{} PHP
глобальный $ smarty;
var_dump ($ smarty-> get_template_vars ( ‘edit_ticket_id’));
{/ PHP}
Это ужасный стиль кодирования, это не решение использовать такой код, потому что вы спешите. И если вы вообще не знаете какой-либо технологии, вам не стоит брать деньги за это.
Вы можете использовать в Smarty:
{foreach from=$x item=panelObj name=panellist}
{assign var="iteration" value=$smarty.foreach.panellist.iteration}
{php}hello(){/php}
{/foreach}
И в функции PHP:
function hello()
{
global $smarty;
?>
<div class="hello"><?php echo $smarty->get_template_vars('iteration'); ?>
</div>
<?php
}
и это будет работать (я проверял это), но я бы даже не пытался использовать такой код для любого проекта