DiscuzX 门户加入优酷视频按钮
此内容年代久远,谨慎参考
操作前先备份涉及的文件
§添加样式
找到并打开/source/module/home/home_editor.php
,加入优酷按钮的样式
cssa.icoYouku{background:url('/static/image/miscellaneous/youku.ico');background-repeat:no-repeat;background-position:2px 2px;}
这个icon的文件建议直接使用优酷官网的”favicon_16.ico”
§添加标签
找到并打开/source/module/home/home_editor.php
,查找
html<a class="icoSwf" id="icoSwf" onClick="createFlash(event, 1);return false;" title="<?php echo lang('home/editor', 'editor_link_flash'); ?>"></a>
在这一行(可自行选择位置)之后加入优酷按钮
html<a class="icoYouku" id="icoYouku" onClick="createYouku(event, 1);return false;" title="添加优酷视频"></a>
这里有一点要注意,我是直接写的中文文本,如果你和上面一样使用php读取本地化文本的话需要在editor_language里面自己加文本,不要忘记处理文本编码问题
还有就是我这里响应的是createYouku方法,方法名可自定义,后面也需要改成一样的
继续查找
html<div id="createPage" class="eMenu"
并在下面按样例加入
html<div id="createYoukuDiv" class="eMenu" style="display:none;top:35px;left:26px;width:400px;font-size:12px">
<p>视频ID,例如[http://v.youku.com/v_show/id_<span style="color:red;">XMTc0Mjk1NDIwNA==</span>.html]</p>
<input type="text" id="YoukuVID" name="YoukuVID" value="" class="t_input" style="width:190px;" placeholder="XMTc0Mjk1NDIwNA==">
<input type="button" onclick="createYouku();" name="createYouku" value="<?php echo lang('home/editor','editor_ok'); ?>" class="submit">
<a onclick="fHide($('createYoukuDiv'));return false;"><?php echo lang( 'home/editor', 'editor_cancel'); ?></a>
</div>
§响应方法
找到/static/image/editor/editor_base.js
,将
javascriptif(fInObj(el, "createUrl") || fInObj(el, "createImg") || fInObj(el, "createSwf") || fInObj(el, "createPage"))
改为
javascriptif(fInObj(el, "createUrl") || fInObj(el, "createImg") || fInObj(el, "createSwf") || fInObj(el, "createPage") || fInObj(el, "createYouku"))
即可响应createYouku方法,但不一定需要这样改,可以直接写createYouku方法,这里是为了兼容DZ其他的功能
在本文件中搜索var arrMatch
,并按样例在最后加入icoYouku:"createYouku"
,注意检查是否掉了逗号
在String.prototype.trim = function()
这一行之前,仿照上面的样例加入
javascriptfunction createYouku(e, show) {
if (typeof show == 'undefined') {
//不要自作主张改将$改为jQuery
var YoukuVID = $('YoukuVID').value;
if ((YoukuVID != null)) {
setCaret();
format('insertHTML', '[youku]' + YoukuVID + '[/youku]');
}
fHide($('createYouku'));
$('YoukuVID').value = '';
} else {
if (gIsIE) {
var e = window.event;
}
getCaret();
var dvYoukuBox = $("createYouku");
var iX = e.clientX;
var iY = e.clientY;
dvYoukuBox.style.display = "";
dvYoukuBox.style.left = (iX - 350) + "px";
dvYoukuBox.style.top = 33 + "px";
}
}
查找fHideMenu
方法,并在var arr = []
中按样例加入'createYouku'
§解析短代码
找到/source/function/function_blog.php
文件,在function blog_bbcode($message)
中,按样例加入一行
javascript$message = preg_replace("/[youku](.+?)[/youku]/ie", "blog_youku('\1')", $message);
当然这行正则可以自己随意修改,后面是匹配blog_youku
的方参,在最后加上blog_youku
的方法来解析短代码
javascriptfunction blog_youku($vid){
return '<div id="youkuplayer" style="width:480px;height:400px"></div>
<script type="text/javascript" src="http://player.youku.com/jsapi"></script>
<script type="text/javascript">player = new YKU.Player('youkuplayer',{styleid:'0',client_id:'1c8daaa346d55d67',vid:''.$vid.'',newPlayer:true,autoplay:true});</script>';
}