Я считаю, что ваша проблема в том, что функции не вызываются с использованием этого синтаксиса Smarty.
То, что вы делаете, является своего рода смесью между функцией и модификатором.
Модификаторы изменяют заданный ввод - например, нижний регистр строки.
{$upperCaseWord|strtolower}
Функции принимают именованные параметры и обычно выполняют немного больше работы, например, создают раскрывающийся список.
{html_options options=$arrayOfOptions selected=$selectedValue}
В вашем случае, я предполагаю, что вы хотите использовать модификатор, поскольку вы пытаетесь изменить значение. Вы по-прежнему можете передавать опции в них, но они не названы, и это быстро запутывает. Тем не менее, код может быть:
{foreach item=alt from=$alticerik|@alticerik:"where ustid=$ustid"}
{$alt.id}
{/foreach}
Между тем ваша фактическая функция выглядит так:
<?php
function smarty_modifier_alticerik($input, $whereString) {
// Here, $input is the same as your $alticerik variable
// and $whereString is just the string that comes after the colon.
if (!function_exists('alticerik')) {
if (!function_exists('get_instance')) return "Can't get CI instance";
$CI= &get_instance();
}
return $CI->IceriklerMod->liste($whereString);
}
?>
Заметьте, однако, что в вашем коде вы не используете значение $ alticerik из вашего шаблона, поэтому меня интересует, нужна ли вам вместо этого функция. Я не могу знать наверняка, пока не пойму, что должен делать плагин alticerik.
Для получения дополнительной информации о функциях и модификаторах см. Документацию здесь: Документация по функциям Smarty.net и здесь: Документация модификатора Smarty.net .