Вызвать метод объекта внутри PHP, причем запись в стиле Smarty

Wertuoz

Новичок
Есть поле, в шаблоне Smarty вызывается вот так
PHP:
{$oTopic->getVideoContent()}
При создании топика заполняется данными в виде уникального кода, плейлист Youtube (выделено жирным)
youtube.com/playlist?list=PLC96B806286684C89
Есть PHP скрипт, который размещен в /engine/lib/external/Smarty/libs/plugins под название function.youtube.php
его задача подставлять параметры значений для вывода списка роликов в плейлисте, вот привожу его
PHP:
function smarty_function_youtube($params, $template)
{
       include_once SMARTY_PLUGINS_DIR.'class.youtube.php';
       $video = new youtubelist('playlist');
       $video->set_playlist ('вывод данных, код плейлиста');
       $video->set_max(50);
       $video->set_order('relevance');
       $video->set_lang('en');
       $video->set_start(1);
       $video->set_time('all_time');
       $video->set_descriptionlength(300);
       $video->set_titlelength(75);
       
       if ( $video->get_videos() !=null ) {
	   foreach ($video->get_videos() as $yKey => $yValue) {
	        echo '<li><p>' . $yValue['title'] . '</p><span class="time">' . $yValue['time'] . '</span><a class="videoThumb" href="http://www.youtube.com/watch?v=' . $yValue['videoid'] . '">' . $yValue['description'] . '</a></li>';
	                }
	        }else{
	         echo '<li>Извините, нет видео</li>';
	        }
}	           
?>
Все это дело вывожу в шаблоне
PHP:
<div class="youtubeplayer">
    <div class="p_holder">
    <div id="pvideo" style="z-index:1;"></div>
           <div class="pip_player">
		<ul class="videop">
                     {youtube} 
                </ul>
	   </div>
    </div>
</div>
когда в
PHP:
$video->set_playlist ('вывод данных, код плейлиста');
подставляю код плейлиста все выводится, но когда так
PHP:
$video->set_playlist ('{$oTopic->getVideoContent()}');
НЕ работает.
 

AmdY

Пью пиво
Команда форума
если кратко, то в плагине должен быть уже php код вроде такого
PHP:
$video->set_playlist ($this->_tpl_vars['oTopic']->getVideoContent());
но лучше передавать данные через сам вызов
PHP:
{youtube content=$oTopic->getVideoContent()}
$video->set_playlist ($params['content']);
 

Wertuoz

Новичок
Спасибо большое!
Первый не сработал, выдал
Fatal error: Using $this when not in object context in
Второй вариант сработал.
Успехов!!! Добра!!!
 
Сверху