Smarty Plugins. Исходники
Главная → Статьи → Smarty Plugins
Попалась небольшая задачка, которая потребовала дополнительного функционала от шаблонизатора. Пришлось написать пару плагинов к шаблонизатору Smarty.
Функция Count
Функция count реализует обычную функцию count PHP для подсчета элементов в массиве.
function.count.php
<?php
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
/**
* Smarty count function plugin
*
* Type: function<br>
* Name: count<br>
* Date: Apr 11, 2008
* Purpose: подсчёт числа элементов в массиве
* Input: string to count
* Example: {count from=$array}
*
* @author Tkatchev Philippe <zoonman at gmail dot com>
* @version 1.0
* @param array
* @return int
*/
function smarty_function_count($params,&$smarty)
{
if (isset($params['from']))
{
if(is_array($params['from']))
{
return count($params['from']);
}
else
{
$smarty->_trigger_fatal_error("input must be array");
return;
}
}
else
{
$smarty->_trigger_fatal_error("input cannot be empty");
return;
}
}
?>
Использование функции:
{count from=$имя_массива}
Модификатор Miles
Реализует вывод с отступами тысяч целых чисел.
modifier.miles.php
<?php
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
/**
* Smarty miles modifier plugin
*
* Type: modifier<br>
* Name: miles<br>
* Date: Apr 10, 2008
* Purpose: modifies integer value to division by miles ( 248938 => 248 938 )
* Input: string to miles
* Example: {$var|miles:"12756"}
* @link
* @author Tkatchev Philippe <zoonman at gmail dot com>
* @version 1.0
* @param string
* @return string
*/
function smarty_modifier_miles($string)
{
$new_s=' ';
$m990=0;
for ($i=strlen($string)-1;$i>=0;$i-- )
{
$new_s=mb_substr($string,$i,1).(($m990%3==0)?' ':'').$new_s;
$m990++;
}
$string=$new_s;
return $string;
}
?>
Использование модификатора:
{$длинное_целое_число|miles}
Реклама:
Комментарии:
e-mail (не публикуется):
комментарий:
Вы можете оставить первый комментарий.