Разработка сайтов и программного обеспечения, системное администрирование, обучение программированию и работе с СУБД MySQL

in english

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}

Реклама:

Метки: php, исходник, source, smarty.

Комментарии:

Вы можете оставить первый комментарий.

имя:

e-mail (не публикуется):

комментарий:

© Ткачев Филипп, 2005—2017
Программист, веб-разработка и прикладное ПО.
Все права защищены.