Re: (Smarty) Создание массива в шаблоне
От: starshiptrooper  
Дата: 29.09.05 09:44
Оценка: 2 (1)
Здравствуйте, Eugene Kurilov, Вы писали:

EK>как можно создать массив в шаблоне?


Я пользуюсь этим плагином:
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Type:     function
 * Name:     set
 * File:     function.set.php
 * Version:  0.1
 * Purpose:  assigns smarty variables including arrays and range arrays
 * Author:   Andreas Freier <AndreasFreier@gmx.net>
 * Synopsis:
 *      {set myvar="array('x','y',array('a'=>'abc'))"}
 *      or
 *      {set myvar="range(1,2)"}
 *      or
 *      {set myvar="myvalue"}
 *
 * Examples:
 *  assign an array of hashes of javascript events (useful for html_field_group):
 *      {set events="array(
 *          array(
 *              'onfocus'=>'alert(\'Dia guit\');',
 *              'onchange'=>'alert(\'Slainte\');'
 *          ),
 *          array(
 *              'onfocus'=>'alert(\'God be with you\');',
 *              'onchange'=>'alert(\'Cheers\');'
 *          )
 *      )" }
 * or assign a range of days to select for calendaring & scheduling
 *      {set repeatdays="range(1,30)" }
 */
function smarty_function_set($params, &$smarty)
{
    foreach ($params as $var => $value) {    
        if (preg_match('/^\s*array\s*\(\s*(.*)\s*\)\s*$/s', $value, $match)) {
            eval('$value=array('.str_replace("\n", '', $match[1]).');');
        } else if (preg_match('/^\s*range\s*\(\s*(.*)\s*\)\s*$/s', $value, $match)) {
            eval('$value=range('.str_replace("\n", "", $match[1]).');');
        }
        
        $smarty->assign($var, $value);
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.