Перейти к содержимому


Smarty: функции работы со строкой. Как?


  • Вы не можете ответить в тему
Сообщений в теме: 5

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 29 July 2012 - 07:08 PM

Захотелось мне сделать показ-непоказ хидеров в блоках простейшим путем - прибавляя некий символ (восклицательный знак, знак доллара - не принципиально) в начало названия блока. Т.е. заменить в header.tpl.html условие {if $header ne ""} на {if первый_символ_строки($header) ne "!"}. Вроде бы просто, но оказалось, что я не знаю, как в Smarty вызвать вот ту самую функцию "первый_символ_строки()". Почитал доку - не нашел. Подозреваю, что все - как всегда! - просто и вызывается обычная штатная PHP-функция, но КАК?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#2 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 29 July 2012 - 07:10 PM


{if $value|strpos:"!" eq 1}


  • 1
Изображение Изображение Изображение

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 29 July 2012 - 07:42 PM

А у тебя ссылочки, случаем, не найдется для описания ОБЩЕГО случая?
Т.е. про то, транслируется ли строка $value|strpos "!" в php-функцию strpos($value,"!") в соответствии с какими-то правилами или у Smarty есть свой аналог этой функции. Ну не спрашивать же каждый раз про каждую функцию :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 29 July 2012 - 07:53 PM

ссылочки нету ((
по str_replace http://www.smarty.ne...ier.replace.tpl
90% функций работы со строками используют php функции, но расстановка аргументов может отличаться
  • 0
Изображение Изображение Изображение

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 29 July 2012 - 08:04 PM

ссылочки нету (( по str_replace http://www.smarty.ne...ier.replace.tpl

О! Спасибо! Как говаривал какой-то грек (?) - "умному достаточно" :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#6 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 January 2014 - 07:30 PM

{if $value|strpos:"!" eq 1}

Таки {if $value|strpos:"!" eq 0} :)
А алгоритм, похоже, прост. Сначала штатной PHP-функции (в данном случае strpos) отдаются заданные через двоеточия параметры, затем $value. Т.е. в данном случае на место $value|strpos:"!" будет подставлен результат выполнения PHP-функции strpos("!",$value).

PS. Правда, это мои уверенные преположения, т.к. описания процедуры трансляции smarty-синтаксиса в вызов функции я не нашел.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)