DiscuzX 门户加入优酷视频按钮
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>';
}
作者
ragnaroks
发布时间
2016-10-12
创作协议