2

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

如果我将模块分配给页面,它将在以下点停止加载:

<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>
4

2 回答 2

1

使用该路径/modules/mod_youtube_playlist/....将查看服务器的根目录,而不是您的站点根目录。

我怀疑你在那个包含上遇到了一个致命错误,因为它没有找到。

您可以使用作为JPATH_BASE站点根目录路径的常量:

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

对于将来的调试,您应该打开错误(或查看错误日志),如果在此处发布,请始终包含完整的错误消息。

于 2012-06-11T12:28:22.987 回答
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 而不是 BASE。

于 2012-06-11T16:54:35.667 回答