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


Как применить модификатор smarty или php функцию


Сообщений в теме: 4

#1 kok

    Активный участник

  • Пользователи
  • PipPipPip
  • 78 сообщений
  • Пол:Мужчина

Отправлено 02 Январь 2011 - 18:30

Привет!
Подскажите как при формировании суммы прописью выводить сумму с заглавной буквы?
Пробовал так: {SumPropis|ucfirst field=$Summa_scheta}, но увы...
*Свободный программер.

#2 kok

    Активный участник

  • Пользователи
  • PipPipPip
  • 78 сообщений
  • Пол:Мужчина

Отправлено 10 Январь 2011 - 11:16

Итак, пока нашёл такое решение:

1. в Smarty.class.php изменил запись на public $allow_php_tag = true;
2. в Редактирование шаблона "Счёт_html" таблицы "Счета" ввел код:
{php}
$new_var = $smarty->getTemplateVars('Summa_scheta');
$string = num2str($new_var);
$string = mb_ereg_replace("^[\ ]+","", $string);  
$string = preg_replace( '/^(\S)(.*)$/eu', "mb_strtoupper('\\1', 'UTF-8').mb_strtolower('\\2', 'UTF-8')", $string );
$smarty->assign('Summa_propis', $string);
{/php}
3. Далее в нужном месте шаблона просто дописал так: {$Summa_propis}

Знаю, что решение кривое, лезть в Smarty.class.php - неправильно.
Кто скажет как правильно?

ps: в php д.б. подключена mbstring.
*Свободный программер.

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Январь 2011 - 11:17

Все проще: {SumPropis field=$Summa_scheta caps=1}

SumPropis - добавленная нами функциия, все параметры можно увидеть в ее описании в файлах include/smarty_function.php и include/propis.php

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Январь 2011 - 11:23

Правда есть один нюанс - параметр caps доступен только с версии 1.9.0 (если не ошибаюсь)

#5 kok

    Активный участник

  • Пользователи
  • PipPipPip
  • 78 сообщений
  • Пол:Мужчина

Отправлено 11 Январь 2011 - 19:33

Спасибо, работает!
*Свободный программер.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных