Nu3oN » 2010.08.05 14:43

В данном шаблонизаторе еще не совсем толком разобрался, так вот:
Как вызвать в шаблоне пользовательскую функцию?
Искал в гугле, н он выдает не то что мне необходимо!

Akdmeh » 2010.08.06 00:47

Почитайте мануал по самому Smarty.
Кокнкретно код я не припомню, ну что-то типу этого:
сначала укажем папку, где хранятся дополнительные пользовательские функции
$smarty->plugins_dir[] = 'smarty/';
Затем создаешь файл modifier.echo_ok.php
а в нем пишешь:
<?php
function smarty_modifier_echo_ok($string)
{
    return echo_ok($string, true);
}

затем можно вызывать
{'ололо'|echo_ok}

почитай мануал, там есть и другой функционал, просто я не сильно ним интересовался)

Gemorroj » 2010.08.06 10:08

это во второй версии так вроде, в 3, они там все на ООП переписали, теперь это не функции, а классы.

Akdmeh » 2010.08.06 10:46

да-да)
Как в третьем - не знаю.
В любом случае надо читать мануал.

Nu3oN » 2010.08.07 01:16

у мну "Smarty 2.6.26 Stable Release" по идее должен прокатить!
Завтра домой приеду, гляну че к чему!

Nu3oN » 2010.08.08 12:42

и еще... в связи с тем что в смарти нет цикла while
приходится писать такую беду

Код:

1
lt;?while ($out = $outS -> fetch_assoc()) $outSe[] = $out;$smarty -> assign('outSe', $outSe);// и потом в шаблоне {foreach item=out from=$outSe} {$out.name}{/foreach}

но это полная фигня... т.к получается в итоге 2 цикла!
Это ниесть гуд!

Есть еще вариант, типа

Код:

1
2
3
4
5
6
7
{php}
global $outS;
while($out = $outS -> fetch_assoc())
{
echo $out['name'];
}
{/php}

но тогда теряется вся суть шаблонизатора...
----
Есть ли еще какие выходы из этой "ситуации"?

Gemorroj » 2010.08.08 13:11

ну, на мой взгляд 1 вариант вполне приемлим.