Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Получить из массива данные и передать в шаблон через Smarty

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dropoff
Отправлено: 19 Октября, 2011 - 11:59:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Добрый день.

Ребята, такой вопрос.

Есть массив
PHP:
скопировать код в буфер обмена
  1. shopcart Object
  2. (
  3.     [tax] => Array
  4.         (
  5.             [1] => Array
  6.                 (
  7.                     [value] => 2684.27142857
  8.                     [desc] => Включая налог
  9.                 )
  10.  
  11.         )
  12.  
  13. )


В шаблон передается сейчас таким образом
PHP:
скопировать код в буфер обмена
  1. $tpl->assign('UST', $_SESSION['cart']->show_tax());

В итоге получаю одну метку {$UST}, которая выводит Включая налог 2684

А мне нужно получать две
К примеру
{$UST_DESC} - Включая налог
{$UST_VALUE} - 2684

Чтобы в шаблоне их вставить как нужно.

Не могу понять как разрулить это все( Не хочется менять метод show_tax(), так как много где его он используется. А все переделывать...
 
 Top
EuGen Администратор
Отправлено: 19 Октября, 2011 - 12:06:08
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




dropoff пишет:
Не хочется менять метод show_tax()

И все же придется, так как если он возвращает одно значение, то он ниоткуда не возьмет второе.
Либо написать еще один метод.
Либо изменить show_tax так, чтобы не пришлось переписывать все места, где он используется. Например, так:
PHP:
скопировать код в буфер обмена
  1. function show_tax($bReturnLabel=false)
  2. {
  3.    if($bReturnLabel)
  4.    {
  5.       //возвращать массив из двух требуемых элементов
  6.    }
  7.    else
  8.    {
  9.       //код по-умолчанию, с возвратом одного значения
  10.    }
  11. }

- так как $bReturnLabel по-умолчанию уже задано в определении метода, то нигде в других местах не нужно будет ничего переписывать (имею ввиду вызов метода), а в Вашем примере вызвать просто
PHP:
скопировать код в буфер обмена
  1. $_SESSION['cart']->show_tax(true)

Хотя лучше регулировать вывод не логической переменной (так как мало ли Вам потребуется добавить еще один способ вывода), а некоторым параметром, задающим формат вывода.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dropoff
Отправлено: 19 Октября, 2011 - 12:16:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Спасибо!
Наверное сделаю вывод в зависимости от параметра.

Я почему-то думал, что можно как-то через смарти получить любое значение из массива.

(Отредактировано автором: 19 Октября, 2011 - 12:18:20)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB