Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[转载]uchome 2.0中分享功能增加视屏缩略图的方法

[复制链接]
dreamboycx 发表于 2010-6-22 11:48:00 | 显示全部楼层 |阅读模式
官方没有这个功能,大站都有,kaixin001也加了这个功能,个人觉得非常有必要,经过长时间摸索,找到了方法,目前可支持youku,tudou,ku6,mofile视频网站,以下分享方法。

此方法需要空间支持file_get_contents函数。当然也可能有更好的方法(如从视频中获取帧),但对空间要求更大。

忘记截图了,补上:

以下是修改方法(特别说明,修改前做好备份):

修改cp_share.php 408行起以下内容

if(preg_match("/(youku.com|youtube.com|5show.com|ku6.com|sohu.com|mofile.com|sina.com.cn)$/i", $parseLink['host'], $hosts)) {

$flashvar = getflash($link, $hosts[1]);

if(!empty($flashvar)) {

    $arr['title_template'] = cplang('share_video');

    $type = 'video';

    $arr['body_data']['flashvar'] = $flashvar;

    $arr['body_data']['host'] = $hosts[1];

}

}

修改为:

if(preg_match("/(youku.com|youtube.com|5show.com|ku6.com|sohu.com|mofile.com|sina.com.cn|tudou.com)$/i", $parseLink['host'], $hosts)) {

$flashvar = getflash($link, $hosts[1]);

$flashimg = getflashimg($link, $hosts[1]);

if(!empty($flashvar)) {

    $arr['title_template'] = cplang('share_video');

    $type = 'video';

    $arr['body_data']['flashvar'] = $flashvar;

    $arr['body_data']['host'] = $hosts[1];

    if(!empty($flashimg)){

    $arr['image'] = $flashimg;

    }

}

}


找到这个函数:
  1. function getflash($link, $host) {

  2. $return = '';

  3. if('youku.com' == $host) {

  4.    // http://v.youku.com/v_show/id_XNDg1MjA0ODg=.html]http://v.youku.com/v_show/id_XNDg1MjA0ODg=.html[/url]

  5.    preg_match_all("/id\_(\w+)[=.]/", $link, $matches);

  6.    if(!empty($matches[1][0])) {

  7. $return = $matches[1][0];

  8.    }

  9. } elseif('ku6.com' == $host) {

  10.    // [url=http://v.ku6.com/show/bjbJKPEex097wVtC.html

  11.    preg_match_all("/\/([\w\-]+)\.html/", $link, $matches);

  12.    if(1 > preg_match("/\/index_([\w\-]+)\.html/", $link) && !empty($matches[1][0])) {

  13. $return = $matches[1][0];

  14.    }

  15. } elseif('youtube.com' == $host) {

  16.    preg_match_all("/v\=([\w\-]+)/", $link, $matches);

  17.    if(!empty($matches[1][0])) {

  18. $return = $matches[1][0];

  19.    }

  20. } elseif('5show.com' == $host) {

  21.    preg_match_all("/\/(\d+)\.shtml/", $link, $matches);

  22.    if(!empty($matches[1][0])) {

  23. $return = $matches[1][0];

  24.    }

  25. } elseif('mofile.com' == $host) {

  26.    preg_match_all("/\/(\w+)\/*$/", $link, $matches);

  27.    if(!empty($matches[1][0])) {

  28. $return = $matches[1][0];

  29.    }

  30. } elseif('sina.com.cn' == $host) {

  31.    preg_match_all("/\/(\d+)-(\d+)\.html/", $link, $matches);

  32.    if(!empty($matches[1][0])) {

  33. $return = $matches[1][0];

  34.    }

  35. } elseif('sohu.com' == $host) {

  36.    preg_match_all("/\/(\d+)\/*$/", $link, $matches);

  37.    if(!empty($matches[1][0])) {

  38. $return = $matches[1][0];

  39.    }

  40. }

  41. return $return;

  42. }
复制代码
修改为:
  1. function getflash($link, $host)

  2. {

  3. $return = '';

  4. if('youku.com' == $host) {

  5.    preg_match_all("/id\_(\w+)[=.]/", $link, $matches);

  6.    if(!empty($matches[1][0])) {

  7.     $return = $matches[1][0];

  8.    }

  9. } elseif('ku6.com' == $host) {

  10.     preg_match_all("/\/([\w\-]+)\.html/", $link, $matches);

  11.    if(1 > preg_match("/\/index_([\w\-]+)\.html/", $link) && !empty($matches[1][0])) {

  12.     $return = $matches[1][0];

  13.    }

  14. } elseif('youtube.com' == $host) {

  15.    preg_match_all("/v\=([\w\-]+)/", $link, $matches);

  16.    if(!empty($matches[1][0])) {

  17.     $return = $matches[1][0];

  18.    }

  19. } elseif('5show.com' == $host) {

  20.    preg_match_all("/\/(\d+)\.shtml/", $link, $matches);

  21.    if(!empty($matches[1][0])) {

  22.     $return = $matches[1][0];

  23.    }

  24. } elseif('mofile.com' == $host) {

  25.    // http://tv.mofile.com/PPU3NTYW/

  26.    //preg_match_all("/\/(\w+)\/*$/", $link, $matches);

  27.    //------added by jiangtc at 2009.10.18

  28.    //http://v.mofile.com/show/HLD5PLD2.shtml

  29.    preg_match_all("/\/([\w\-]+)\.shtml/", $link, $matches);

  30.    //------added by jiangtc at 2009.10.18

  31.    if(!empty($matches[1][0])) {

  32.     $return = $matches[1][0];

  33.    }

  34. } elseif('sina.com.cn' == $host) {

  35.    // http://you.video.sina.com.cn/b/16776316-1338697621.html

  36.    preg_match_all("/\/(\d+)-(\d+)\.html/", $link, $matches);

  37.    if(!empty($matches[1][0])) {

  38.     $return = $matches[1][0];

  39.    }

  40. } elseif('sohu.com' == $host) {

  41.    // http://v.blog.sohu.com/u/vw/1785928

  42.    preg_match_all("/\/(\d+)\/*$/", $link, $matches);

  43.    if(!empty($matches[1][0])) {

  44.     $return = $matches[1][0];

  45.    }

  46. }

  47. //------added by jiangtc at 2009.10.18

  48. elseif('tudou.com' == $host) {

  49.    // [url=http://www.tudou.com/programs/view/oOrUqgezkOc/

  50.    preg_match_all("/\/([\w\-]+)\/*$/", $link, $matches);

  51.    if(!empty($matches[1][0])) {

  52.     $return = $matches[1][0];

  53.    }

  54. }

  55. //------added by jiangtc at 2009.10.18

  56. return $return;

  57. }

  58. function getflashimg($link, $host)

  59. {

  60. $return='';

  61. $content = file_get_contents($link);//获取

  62. if ('tudou.com' == $host)

  63. {

  64.    preg_match_all("/<span class="s_pic">(.*?)<\/span>/i",$content,$img);

  65. }

  66. elseif('youku.com' == $host)

  67. {

  68.    preg_match_all("/\+0800\|(.*?)\|">/i",$content,$img);

  69. }

  70. elseif('ku6.com' == $host)

  71. {

  72.    preg_match_all("/<span class="s_pic">(.*?)<\/span>/i",$content,$img);

  73. }

  74. elseif('mofile.com' == $host)

  75. {

  76.    preg_match_all("/thumbpath="(.*?)";/i",$content,$img);

  77. }

  78. if(!empty($img[1][0])) {

  79.    $return = $img[1][0];

  80. }

  81. return $return;

  82. }
复制代码
上面同时修改了mofile视频的bug,增加了支持土豆视频。


修改模板文件space_share_li.htm 找到(大约15行):
  1. <!--{if $value['image']}-->

  2. <a href="$value[image_link]"><img src="$value[image]" class="summaryimg image" alt="" width="70" /></a>

  3. <!--{/if}-->
复制代码
修改为:
  1. <!--{if $value['image'] && 'video'!=$value['type']}-->

  2. <a href="$value[image_link]"><img src="$value[image]" class="summaryimg image" alt="" width="70" /></a>

  3. <!--{/if}-->
复制代码
找到(22行左右):

<div class="media">

<img src="image/vd.gif" alt="点击播放" style="cursor:pointer;" />

</div>

修改为:

<div class="media">

<img src="<!--{if !empty($value['image'])}-->$value[image]<!--{else}-->/image/vd.gif<!--{/if}-->" alt="点击播放" style="cursor:pointer;" />

</div>

以上借用了feed表中的image字段,免得修改表结构了

然后是修改space_feed_li.htm

找到:

<!--{if $value['image_1']}-->

<a href="$value[image_1_link]"{$value[target]}><img src="$value[image_1]" class="summaryimg" /></a>

<!--{/if}-->

修改为:

<!--{if $value['image_1'] && empty($value['body_data']['flashvar'])}-->

<a href="$value[image_1_link]"{$value[target]}><img src="$value[image_1]" class="summaryimg" /></a>

<!--{/if}-->

评分

1

查看全部评分

htr999 发表于 2010-6-25 09:59:07 | 显示全部楼层
不错,好东西!!
回复

使用道具 举报

lainade 发表于 2010-6-25 10:06:05 | 显示全部楼层
很好的特色,欢迎转发到我站哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 17:33 , Processed in 0.026197 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表