所有操作均在终端下完成,所以没有图片

添加样式

找到并打开”/source/module/home/home_editor.php“,
加入优酷按钮的样式:
a.icoYouku{background:url(/static/image/common/youku.ico);background-repeat:no-repeat;background-position:2px 2px;}
这个icon的文件建议直接使用优酷官网的”favicon_16.ico”.

加入元素


<a href="javascript:;" class="icoSwf" id="icoSwf" onClick="createFlash(event, 1);return false;" title="<?php echo lang('home/editor', 'editor_link_flash'); ?>"></a>
这一行(可自行选择位置)之后加入优酷按钮:
<a href="javascript:;" class="icoYouku" id="icoYouku" onClick="createYouku(event, 1);return false;" title="添加优酷视频"></a>
这里有一点要注意,我是直接写的中文文本,如果你和上面一样使用php读取本地化文本的话需要在editor_language里面自己加文本,不要忘记处理文本编码问题. 还有就是我这里响应的是createYouku方法,方法名可自定义,后面也需要改成一样的.

查找<div id="createPage" class="eMenu",并在下面按样例加入

1
2
3
4
5
6
<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 href="javascript:;" onclick="fHide($('createYoukuDiv'));return false;"><?php echo lang( 'home/editor', 'editor_cancel'); ?></a>
</div>

响应方法

找到”/static/image/editor/editor_base.js“,将
if(fInObj(el, "createUrl") || fInObj(el, "createImg") || fInObj(el, "createSwf") || fInObj(el, "createPage"))
改为
if(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()这一行之前,仿照上面的样例加入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function createYouku(e, show) {
    if (typeof show == 'undefined') {
        var YoukuVID = $('YoukuVID').value; /*不要自作主张改将$改为jQuery*/
        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)中,按样例加入一行

$message = preg_replace("/\[youku](.+?)\[\/youku\]/ie", "blog_youku('\\1')", $message);
当然这行正则可以自己随意修改,后面是匹配blog_youku的方参.
在最后加上blog_youku的方法来解析短代码

1
2
3
4
5
function 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>';
}