Выполнение PHP в шаблоне

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

передача данных

#1 11 апреля 2011 в 14:25
Добрый день, вопрос такой, допустим мне нужно получить рейтинг пользователя, на странице которога я нахожусь, и передать данные в php скрипт исполняемый внутри шаблона т.е.

в самом шаблоне без php рейтинг выводит так {$usr.user_rating}

а мне нужно это значение присвоить к пекременной $rt

в шаблоне пробовал так,
  1.  
  2. {php}
  3. $rt={$usr.user_rating};
  4. {/php}
  5.  
не работает, как только не пробовал, решения не нашел…
#2 11 апреля 2011 в 14:40
  1. {assign var="rt" value=$usr.user.rating}
далее в шаблоне будет как — {$rt}

тут можно почитать мануал: Смарти мануал на русском
#3 11 апреля 2011 в 14:55

далее в шаблоне будет как — {$rt}

• Mike •
вы видно не поняли, мне нужно не {$rt} а {php}$rt=(рейтинг){/php}
#4 11 апреля 2011 в 15:05
  1. {php}$rt = $smarty->get_template_vars('$usr.user.rating'){/php}
но если встречаются такие конструкции значит логика шаблона не до конца проработана… )
#5 11 апреля 2011 в 15:20

{php}$rt = $smarty->get_template_vars('$usr.user.rating'){/php}

• Mike •

Fatal error: Call to a member function get_template_vars() on a non-object

не срабатывает
#6 11 апреля 2011 в 15:29
  1.  
  2. {php}
  3. $rt = $this->_tpl_vars['usr']['user_rating'];
  4. {/php}
  5.  
Но вы не сможете использовать полученную переменную как {$rt} далее в шаблоне. Она будет видна только внутри данного блока {php}...{/php}
#7 11 апреля 2011 в 15:31
  1.  
  2. {php}
  3. $inDB = cmsDatabase::getInstance();
  4. $rating=$inUser->rating;
  5. {/php}
  6.  
рейтинг пользователя который авторизирован, а как вывести тот рейтинг на странице пользователя которого я нахожусь… в smarty это {$usr.user_rating} а как его в PHP затащить не знаю…
#8 11 апреля 2011 в 15:34
можно написать плагин для смарти там не сложно, в любом случае код php в шаблон без очень серъезных причин вставлять не нужно…
#9 11 апреля 2011 в 15:37
вот инструкция разобраться не сложно Плагины в Смарти
#10 11 апреля 2011 в 15:38

Код PHP: исходный кодпечать?1{php} 2$rt = $this->_tpl_vars['usr']['user_rating']; 3{/php}
SyntaxHighlighter.config.clipboardSwf = '/includes/jquery/syntax/scripts/clipboard.swf';
SyntaxHighlighter.all();

Но вы не сможете использовать полученную переменную как {$rt} далее в шаблоне. Она будет видна только внутри данного блока {php}...{/php}

Администратор

Спасибо огромное заработало, использую чтобы при увеличении рейтинга менялся цвет полосы заполнения рейтинга :)

например рейтинг больше 2000 одним цветом и полоса заполняется в процентах Пример больше 2000 рейтинга
Пример больше 1000 рейтинга
#11 11 апреля 2011 в 15:39

можно написать плагин для смарти там не сложно, в любом случае код php в шаблон без очень серъезных причин вставлять не нужно…

• Mike •
согласен, в дальнейшем буду избегать подобного… но пока есть идеи всякие а время чтобы изучить CMS нету(
#12 11 апреля 2011 в 16:09
спасибо всем)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.