Захотелось мне сделать показ-непоказ хидеров в блоках простейшим путем - прибавляя некий символ (восклицательный знак, знак доллара - не принципиально) в начало названия блока. Т.е. заменить в header.tpl.html условие {if $header ne ""} на {if первый_символ_строки($header) ne "!"}. Вроде бы просто, но оказалось, что я не знаю, как в Smarty вызвать вот ту самую функцию "первый_символ_строки()". Почитал доку - не нашел. Подозреваю, что все - как всегда! - просто и вызывается обычная штатная PHP-функция, но КАК?
1
Smarty: функции работы со строкой. Как?
Автор badisoft, Jul 29 2012 07:08 PM
Сообщений в теме: 5
#1
Отправлено 29 July 2012 - 07:08 PM
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#3
Отправлено 29 July 2012 - 07:42 PM
А у тебя ссылочки, случаем, не найдется для описания ОБЩЕГО случая?
Т.е. про то, транслируется ли строка $value|strpos "!" в php-функцию strpos($value,"!") в соответствии с какими-то правилами или у Smarty есть свой аналог этой функции. Ну не спрашивать же каждый раз про каждую функцию .
Т.е. про то, транслируется ли строка $value|strpos "!" в php-функцию strpos($value,"!") в соответствии с какими-то правилами или у Smarty есть свой аналог этой функции. Ну не спрашивать же каждый раз про каждую функцию .
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#4
Отправлено 29 July 2012 - 07:53 PM
ссылочки нету ((
по str_replace http://www.smarty.ne...ier.replace.tpl
90% функций работы со строками используют php функции, но расстановка аргументов может отличаться
по str_replace http://www.smarty.ne...ier.replace.tpl
90% функций работы со строками используют php функции, но расстановка аргументов может отличаться
#5
Отправлено 29 July 2012 - 08:04 PM
О! Спасибо! Как говаривал какой-то грек (?) - "умному достаточно" .ссылочки нету (( по str_replace http://www.smarty.ne...ier.replace.tpl
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#6
Отправлено 07 January 2014 - 07:30 PM
Таки {if $value|strpos:"!" eq 0}{if $value|strpos:"!" eq 1}
А алгоритм, похоже, прост. Сначала штатной PHP-функции (в данном случае strpos) отдаются заданные через двоеточия параметры, затем $value. Т.е. в данном случае на место $value|strpos:"!" будет подставлен результат выполнения PHP-функции strpos("!",$value).
PS. Правда, это мои уверенные преположения, т.к. описания процедуры трансляции smarty-синтаксиса в вызов функции я не нашел.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)