2012-06-11 51 views
0

我正在为joomla创建一个youtube播放列表模块。joomla模块include_once问题

<div class="youtubeplayer"> 
    <div class="yt_holder"> 
      <!--Up and Down arrow --> 
      <div class="you_up"><img src="modules/mod_youtube_playlist/css/up_arrow.png" alt="+ Slide" title="HIDE" /></div> 
      <div class="you_down"><img src="modules/mod_youtube_playlist/css/down_arrow.png" alt="- Slide" title="SHOW" /></div> 
      <!-- END --> 
     <div id="ytvideo3"></div> 
      <div class="youplayer"> 
      <ul class="videoyou"> 

它看起来是停在那里我用的是“包括一次”在下面的代码(下面的代码是:

如果我分配模块到一个页面,它就会在以下点停止加载我的模块“tmpl/default.php”文件) - 任何想法?

<?php 

defined('_JEXEC') or die; 

JHtml::_('behavior.framework'); 

JHtml::script('modules/mod_youtube_playlist/js/jquery.youtubeplaylist.js'); 
JHtml::script('modules/mod_youtube_playlist/js/jquery.jquery.youtubeplaylist-min.js.js'); 
JHtml::script('modules/mod_youtube_playlist/js/youtubeplaylist.js'); 
JHtml::stylesheet('modules/mod_youtube_playlist/css/youtubeplaylist.css'); 
JHtml::stylesheet('modules/mod_youtube_playlist/css/indext.css'); 
?> 

<div class="youtubeplayer"> 
    <div class="yt_holder"> 
      <!--Up and Down arrow --> 
      <div class="you_up"><img src="modules/mod_youtube_playlist/css/up_arrow.png" alt="+ Slide" title="HIDE" /></div> 
      <div class="you_down"><img src="modules/mod_youtube_playlist/css/down_arrow.png" alt="- Slide" title="SHOW" /></div> 
      <!-- END --> 
     <div id="ytvideo3"></div> 
      <div class="youplayer"> 
      <ul class="videoyou"> 
      <?php 
      // Use like this. 
      include_once('/modules/mod_youtube_playlist/class/class.youtubelist.php'); 
      //in this example a playlist 
      $video = new youtubelist('playlist'); 
      //This is the link to the playlist. 
      //http://www.youtube.com/playlist?list=PLC4FBCA46405A8BF8 
      //REMOVE the PL from the string if there is an PL after list= 
      $video->set_playlist('<?php echo $playlist; ?>'); 
      $video->set_max(50); 
      $video->set_order('title'); 
      $video->set_cachexml(false); 
      $video->set_cachelife(86400); 
      $video->set_xmlpath('./cache/'); 
      $video->set_start(1); 

      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="videoThumb3" href="http://www.youtube.com/watch?v=' . $yValue['videoid'] . '">' . $yValue['description'] . '</a></li>'; 
       } 
      }else{ 
       echo '<li>Sorry, no video\'s found</li>'; 
      } 
      ?> 
      </ul> 
     </div> 
    </div> 
</div> 
+0

你会得到任何PHP错误在这... ????? –

回答

0

使用路径/modules/mod_youtube_playlist/....将寻求在服务器的根,而不是你的站点根目录。

我怀疑你正在得到一个致命的错误,因为它没有找到。

可以使用JPATH_BASE常数,它的路径,站点根:

include_once(JPATH_BASE . '/modules/mod_youtube_playlist/class/class.youtubelist.php'); 

以便将来调试你应该把错误(或看在错误日志),如果张贴在这里SO,总是包括完整的错误信息。

0

而不是使用这样的:

JHtml::script('modules/mod_youtube_playlist/js/jquery.youtubeplaylist.js'); 
JHtml::stylesheet('modules/mod_youtube_playlist/css/indext.css'); 

试试这个:

$document =& JFactory::getDocument(); 
$document->addStyleSheet(JURI::root() . "modules/mod_youtube_playlist/css/indext.css"); 
$document->addScript(JURI::root() . "modules/mod_youtube_playlist/js/jquery.youtubeplaylist.js"); 

也建议包括在使用ROOT,而不是基地。