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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Suspended
Отправлено: 19 Мая, 2009 - 20:40:40
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2008  


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




Наверное вопрос глупый, но я не нашёл ответа в документации. Как вывести из ассоциативного массива элемент по ключу?
$smarty->assign("test", array('abc' => 123));

{$test[abc]}

не работает.
 
 Top
vitaliy_mad
Отправлено: 19 Мая, 2009 - 21:12:09
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




print_r($test)
 
 Top
Гость
Отправлено: 19 Мая, 2009 - 21:31:01
Post Id


УДАЛЁН










Suspended Ну да вывести все элементы print_r или var_dump а к самому элементу доступ по ключу разумеется через квадратные скобки
 
 Top
Suspended
Отправлено: 19 Мая, 2009 - 22:05:20
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2008  


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




Вы о чём вообще? я про smarty спрашиваю, компилятор шаблонов. Он распространённый, тут должны быть люди.
 
 Top
vitaliy_mad
Отправлено: 19 Мая, 2009 - 23:11:07
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




Suspended а в смарти что, другие ассоциативные массивы, специально разработанные для аля смарти??? попробуй веведи массив через print_r или var_dump и посмотри, что оно выдаст...
(Добавление)
Suspended пишет:
$smarty->assign("test", array('abc' => 123));
а вот это ассоциирует "переменную", используемую в шаблоне, а не в скрипте PHP...
вот маленький пример: http://hostinfo[dot]ru/articles/web/[dot][dot][dot]8/rubric55/1411/

(Отредактировано автором: 19 Мая, 2009 - 23:17:55)

 
 Top
Suspended
Отправлено: 20 Мая, 2009 - 02:01:27
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2008  


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




По ссылке я не нашёл ответа на вопрос. Во всех примерах они выводят конструкцией $foo[bar] элменты обрабатываемые section.
Когда я через assign присваиваю массив перменной внутри шаблона, он не перестаёт быть ассоциативным? с array(0 => 123) всё работаео при обращении $test[0], а с array("abc" => 123) не работает с $test[abc]
 
 Top
vitaliy_mad
Отправлено: 20 Мая, 2009 - 02:08:52
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




Suspended пишет:
По ссылке я не нашёл ответа на вопрос. Во всех примерах они выводят конструкцией $foo[bar] элменты обрабатываемые section.
Когда я через assign присваиваю массив перменной внутри шаблона, он не перестаёт быть ассоциативным? с array(0 => 123) всё работаео при обращении $test[0], а с array("abc" => 123) не работает с $test[abc]

$smarty->assign(....); не создает PHP переменной... он создает "абстрактную переменную" для использования только внутри шаблона... т.е. для подмены...и обратиться к ней стандартным способом из PHP скрипта, вряд ли, представляется возможным...
 
 Top
Roler
Отправлено: 20 Мая, 2009 - 13:29:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


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




Цитата:
и обратиться к ней стандартным способом из PHP скрипта, вряд ли, представляется возможным...

Как я понял, автору и нужно методами smarty.
 
 Top
vitaliy_mad
Отправлено: 20 Мая, 2009 - 13:35:14
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




CODE (text):
скопировать код в буфер обмена
  1. array get_template_vars ( [string varname])
  2.  
  3.  
  4. Возвращает значение переменной. Если аргумент не передан, будет возвращен массив всех назначенными переменными.
  5. Пример 13-1. get_template_vars


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // получаем назначенную переменную шаблона 'foo'
  3. $foo = $smarty->get_template_vars('foo');
  4.  
  5. // получаем все назначенные переменные шаблона
  6. $tpl_vars = $smarty->get_template_vars();
  7.  
  8. // поглядим, что из этого вышло
  9. print_r($tpl_vars);
  10. ?>
 
 Top
Гость
Отправлено: 20 Мая, 2009 - 15:01:57
Post Id


УДАЛЁН










Suspended В любом случае smarty гдето создает необходмую переменную причем он вряд ли переделывает ассоциировнный массив другим образом - он также и хранится
Действительно последуйте методу vitaliy_mad
 
 Top
vitaliy_mad
Отправлено: 20 Мая, 2009 - 15:07:04
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




JustUserR пишет:
В любом случае smarty гдето создает необходмую переменную причем он вряд ли переделывает ассоциировнный массив другим образом - он также и хранится
однозначно, но скорее всего оно храниться как свойство объекта, а еще более вероятно есть односвойство например $smarty->variebles, которое является массивом всех внутренних переменных. и к нему,скорее всего, не так просто добраться простымиспособами, так что лучше взять документацию(как это сделаля), и найти\использовать методы объекта, расчитанные на это. вот только все меньше людей остается, которые умеют пользоваться поиском, и читать документацию... проще ведь спросить кого нить - пусть они ищют и читают... ::sad24.gif::
 
 Top
Stierus Супермодератор
Отправлено: 20 Мая, 2009 - 15:17:57
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




{$test.abc}
(Добавление)
{$test[1]} -это если массив не ассоциативный
 
My status
 Top
Suspended
Отправлено: 20 Мая, 2009 - 15:20:50
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2008  


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




Парни, вы не поняли. Мне нужно получить значение ВНУТРИ ШАБЛОНА, в tpl файле. Может не ясно вопрос сформулировал... Ну {$test[0]} внутри шаблона работает прекрасно, а если заменить цифру на буквы, работать перестаёт. Разные комбинации кавычек вокруг ключа приводят только к ошибкам.
 
 Top
Stierus Супермодератор
Отправлено: 20 Мая, 2009 - 15:21:44
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




смотри пост выше
 
My status
 Top
vitaliy_mad
Отправлено: 20 Мая, 2009 - 15:22:06
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




Suspended
гм...
{$test.a} через точку

(Отредактировано автором: 20 Мая, 2009 - 15:22:43)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB