基于《织梦内容管理系统 DedeCMS V5.7 UTF8 SP2 春哥精简版下载》开发,织梦二次开发实战教程,织梦开发实现多集视频播放,用织梦系统做的小视频网站。废话少续,直接上织梦教程,文章末尾附懒人包。
一、添加字段
用文章模型做视频,一定要添加字段,先给附加表加数据库字段。添加字段 (后台-系统-SQL命令行工具-执行)
ALTER TABLE `#@__addonarticle` ADD `softlinks` text;
二、发布文件
①、打开 /dede/article_add.php 搜索
$query = "INSERT INTO `{$addtable}`(aid,typeid,redirecturl,templet,userip,body{$inadd_f}) Values('$arcID','$typeid','$redirecturl','$templet','$useip','$body'{$inadd_v})";改为
//软件链接列表
$urls = '';
//本地链接处理
$softurl = stripslashes($softurl);
if($softurl != '')
{
$urls .= "{dede:link islocal='1' text='{$servermsg}'} {$softurl} {/dede:link}\r\n";
}
//其它链接处理
for($i=0; $i<=300; $i++)
{
if(!empty(${'softurl'.$i}))
{
$forconfig = empty(${'forconfig'.$i}) ? FALSE : TRUE;
if($forconfig)
{
if(empty(${'need'.$i})) continue;
$serverUrl = stripslashes(${'softurlfirst'.$i});
$serverUrl = preg_replace("#\/$#", "", $serverUrl);
$softurl = stripslashes(${'softurl'.$i});
if( cn_substr($softurl, 1) != '/' ) $softurl = '/'.$softurl;
$softurl = $serverUrl.$softurl;
}
else
{
$softurl = stripslashes(${'softurl'.$i});
}
$servermsg = str_replace("'", "", stripslashes(${'servermsg'.$i}));
$ii = $i+2;
if($servermsg=='') $servermsg = '第'.$ii.'集';
if($softurl != '')
{
$urls .= "{dede:link text='{$servermsg}'} {$softurl} {/dede:link}\r\n";
}
}
}
$urls = addslashes($urls);
$query = "INSERT INTO `{$addtable}`(aid,typeid,redirecturl,templet,userip,softlinks,body{$inadd_f}) Values('{$arcID}','{$typeid}','{$redirecturl}','{$templet}','{$useip}','{$urls}','{$body}'{$inadd_v})";②、打开 /dede/article_edit.php 搜索
$channelid = $arcRow['channel'];
在它上面加入
$newRowStart = 1;
$nForm = '';
$daccess = $addRow['daccess'];
$needmoney = $addRow['needmoney'];
if($addRow['softlinks'] != '')
{
$dtp = new DedeTagParse();
$dtp->LoadSource($addRow['softlinks']);
if(is_array($dtp->CTags))
{
foreach($dtp->CTags as $ctag)
{
if($ctag->GetName()=='link')
{
$islocal = $ctag->GetAtt('islocal');
if($islocal != 1) $needmsg = "<input type='checkbox' name='del{$newRowStart}' value='1' />删除";
else $needmsg = '<input name="sel1" type="button" id="sel1" value="选取" onClick="SelectSoft(\'form1.softurl'.$newRowStart.'\')" />';
$nForm .= "<div style='line-height:36px'>视频地址{$newRowStart}:<input type='text' name='softurl{$newRowStart}' style='width:280px' value='".trim($ctag->GetInnerText())."' />
选集名称:<input type='text' name='servermsg{$newRowStart}' value='".$ctag->GetAtt("text")."' style='width:150px' />
<input type='hidden' name='islocal{$newRowStart}' value='{$islocal}' />
{$needmsg}
</div>\r\n";
$newRowStart++;
}
}
}
$dtp->Clear();
}继续搜索
$iquery = "UPDATE `$addtable` SET typeid='$typeid',body='$body'{$inadd_f},redirecturl='$redirecturl',templet='$templet',userip='$useip' WHERE aid='$id'";改为
//软件链接列表
$urls = '';
for($i=1; $i<=300; $i++)
{
if(!empty(${'softurl'.$i}))
{
$islocal = empty(${'islocal'.$i}) ? '' : 1;
$isneed = empty(${'del'.$i}) ? true : false;
$servermsg = str_replace("'",'',stripslashes(${'servermsg'.$i}));
$softurl = stripslashes(${'softurl'.$i});
if($servermsg=='')
{
$servermsg = '第'.$i.'集';
}
if($softurl != '')
{
if($islocal==1) $urls .= "{dede:link islocal='{$islocal}' text='{$servermsg}'} {$softurl} {/dede:link}\r\n" ;
else if($isneed) $urls .= "{dede:link text='{$servermsg}'} {$softurl} {/dede:link}\r\n";
else continue;
}
}
}
$urls = addslashes($urls);
$iquery = "UPDATE `{$addtable}` SET typeid='{$typeid}',body='{$body}'{$inadd_f},redirecturl='{$redirecturl}',templet='{$templet}',softlinks ='{$urls}',userip='{$useip}' WHERE aid='{$id}'";③、打开 /dede/templets/article_add.htm 搜索
--> </script> </head>
改为
var startNum = 0;
function MakeUpload()
{
var upfield = document.getElementById("uploadfield");
var endNum = parseInt(document.form1.picnum.value) + startNum-1;
if(endNum > 300) endNum = 300;
for(startNum; startNum<=endNum; startNum++){
upfield.innerHTML += "<div style='line-height:36px'>视频地址"+startNum+":<input type='text' name='softurl"+startNum+"' style='width:280px' value='' /> 选集名称:<input type='text' name='servermsg"+startNum+"' style='width:150px' /></div>\r\n";
}
}
function ShowHideAddr()
{
document.getElementById('morelink').style.display = (document.getElementById('morelink').style.display=='block' ? 'none' : 'block');
//document.getElementById('morelink').style.height = '100%';
document.getElementById('btsh3').value = (document.getElementById('morelink').style.display=='block' ? '隐藏地址' : '显示地址');
}
-->
</script>
</head>继续搜索
文章内容
在它所在的 tr 上面加
<tr>
<td height="24" bgcolor="#F9FCEF" class="bline2"><strong> 视频选集列表:</strong></td>
</tr>
<tr>
<td height="24" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="90" height="30"> 视频地址:</td>
<td><input name="softurl" type="text" id="softurl" size="35" />
<input name="sel1" type="button" id="sel1" value="选取" onClick="SelectSoft('form1.softurl')" />
选集名称:
<input name="servermsg" type="text" id="servermsg" value="第1集" style="width:150px" />
</td>
</tr>
</table></td>
</tr>
<tr>
<td height="24" class="bline" style="padding-left:8px"><table width="800" border="0" cellspacing="0" cellpadding="0" style="margin-bottom:5px;" class="bline">
<tr>
<td width="90">增加选集:</td>
<td><input name="picnum" type="text" id="picnum" size="8" value="5" />
<input name='kkkup' type='button' id='kkkup2' value='增加地址' onClick="MakeUpload();" />
<input type="button" name="Submit3" id="btsh3" value="隐藏地址" onClick="ShowHideAddr();" />
(最多为300个链接) </td>
</tr>
</table>
<div id="morelink" style="display:block">
<div id='uploadfield' style="width:790px"></div>
</div></td>
</tr>④、打开 /dede/templets/article_edit.htm 搜索
--> </script> </head>
改为
var startNum = <?php echo $newRowStart?>;
function MakeUpload()
{
var upfield = document.getElementById('uploadfield');
var endNum = parseInt(document.form1.picnum.value) + startNum;
if(endNum > 300) endNum = 300;
for(startNum; startNum < endNum; startNum++)
{
upfield.innerHTML += "<div style='line-height:36px'>视频地址"+startNum+":<input type='text' name='softurl"+startNum+"' style='width:280px' value='' /> 选集名称:<input type='text' name='servermsg"+startNum+"' style='width:150px' /></div>\r\n";
}
}
function ShowHideAddr()
{
document.getElementById('morelink').style.display = (document.getElementById('morelink').style.display=='block' ? 'none' : 'block');
document.getElementById('btsh3').value = (document.getElementById('morelink').style.display=='block' ? '隐藏地址' : '显示地址');
}
-->
</script>
</head>继续搜索
文章内容
在它所在的 tr 上面加
<tr> <td height="24" colspan="4" bgcolor="#F9FCEF"class="bline2"><strong> 视频选集列表:</strong></td> </tr> <tr> <td height="24" colspan="4" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="72"> 增加选集:</td> <td><input name="picnum" type="text" id="picnum" size="8" value="5" /> <input name='kkkup' type='button' id='kkkup2' value='增加数量' onClick="MakeUpload();" /> <input type="button" name="Submit3" id="btsh3" value="隐藏地址" onClick="ShowHideAddr();" /> (最多为300个链接) </td> </tr> </table></td> </tr> <tr> <td height="24" colspan="4" class="bline" style="padding-left:8px"> <?php echo $nForm; ?> <div id='morelink' style='display:block'> <div id='uploadfield' style='width:800px'></div> </div></td> </tr>
三、添加方法
打开 /include/extend.func.php 在它底部加
function bodyvideo($id) {
global $dsql,$cfg_basedir;
$imgurls = '';
$row = $dsql->GetOne("SELECT a.id,c.addtable FROM `#@__archives` AS a LEFT JOIN `#@__channeltype` AS c ON a.channel=c.id where a.id='{$id}'");
$result = GetOneArchive($id);
$addtable = trim($row['addtable']);
$row = $dsql->GetOne("SELECT softlinks FROM `{$addtable}` WHERE aid={$id}");
$dtp = new DedeTagParse();
$dtp->LoadSource($row['softlinks']);
if(is_array($dtp->CTags))
{
foreach($dtp->CTags as $ctag)
{
if($ctag->GetName()=="link")
{
$bigimg .= $ctag->GetAtt('text').'|'.trim($ctag->GetInnerText()).',';
}
}
}
$dtp->Clear();
$imgurls = $bigimg;
$imgurls = rtrim($imgurls,',');
$keywords = explode(',', $imgurls);
foreach ($keywords as $key => $keyword) {
$i = $key + 1;
$link = explode('|',$keyword);
if ($i == 1){
$aaabbb .= '<a id="video1" href="'.$result['arcurl'].'">'.$link[0].'</a>'."\n";
} else {
$aaabbb .= '<a id="video'.$i.'" href="'.$result['arcurl'].'?aid='.$id.'&mus='.$i.'">'.$link[0].'</a>'."\n";
}
}
return rtrim($aaabbb);
}四、前端调用
在 plus 目录内新建 video.php 文件,代码如下
<?php
error_reporting(0);
header('Content-type:text/html;charset=utf-8');
//禁止蜘蛛抓取
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$searchEngines = array('python','@','curl','compatible','bot','spider','Baiduspider','bingbot','Sogou','Bytespider','YisouSpider','360Spider','Googlebot');
foreach ($searchEngines as $searchEngine) {
if (stripos($userAgent, $searchEngine) !== false) {
exit();
}
}
//禁止蜘蛛抓取
require_once(dirname(__FILE__)."/../include/common.inc.php");
$aid = isset($_GET['amid']) ? $_GET['amid'] : '';
$mus = isset($_GET['amus']) ? $_GET['amus'] : '';
if(empty($aid))
{
showMsg('非法操作!', 'javascript:;');
exit();
}
if (!empty($aid)){
require_once(DEDEINC.'/arc.archives.class.php');
global $dsql,$cfg_basedir;
$imgurls = '';
$row = $dsql->GetOne("SELECT a.id,c.addtable FROM `#@__archives` AS a LEFT JOIN `#@__channeltype` AS c ON a.channel=c.id where a.id='{$aid}'");
$result = GetOneArchive($aid);
$addtable = trim($row['addtable']);
$row = $dsql->GetOne("SELECT softlinks FROM `{$addtable}` WHERE aid={$aid}");
$dtp = new DedeTagParse();
$dtp->LoadSource($row['softlinks']);
if(is_array($dtp->CTags))
{
foreach($dtp->CTags as $ctag)
{
if($ctag->GetName()=="link")
{
$bigimg .= trim($ctag->GetInnerText()).',';
}
}
}
$dtp->Clear();
$imgurls = $bigimg;
$imgurls = rtrim($imgurls,',');
$keywords = explode(',', $imgurls);
$urls = array();
foreach ($keywords as $key => $keyword) {
$i = $key + 1;
$urls[] .= $keyword;
}
}
$amusukg = ($mus =='') ? 0 : $mus;
if($amusukg == 0 || $amusukg == ''){
$mp4url = $urls[0];
}else{
$mp4url = $urls[($amusukg-1)];
}
if(empty($mp4url))
{
showMsg('非法操作!', 'javascript:;');
exit();
}
$ulli .= '$("#video").html(\'<iframe frameborder="0" src="/video?url='.$mp4url.'" allowFullScreen="true"></iframe>\');';
$ahtmll = <<<TPL
{$ulli}
TPL;
echo $ahtmll;
exit();
?>五、调用标签
在 /templets/default/article_article.htm 模板里面加
<!-- 样式 -->
<style type="text/css">
@media (max-width: 670px) {#video iframe{width:100%!important;height:250px!important;}}
@media (min-width: 670px) {#video iframe{width:100%!important;height:500px!important;}}
</style>
<!-- 样式 -->
<!-- 播放器 -->
<div id="video"></div>
<!-- 播放器 -->
<!-- 播放列表 -->
{dede:field.id function=bodyvideo(@me)/}
<!-- 播放列表 -->
<!-- jQuery插件库 已调用的可以删掉-->
<script type="text/javascript" src="https://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<!-- jQuery插件库 已调用的可以删掉-->
<!-- 获取播放链接 -->
<script type="text/javascript">
var urllink = new URL(document.location.toString());
var aid = "{dede:field.id/}";
var mus = urllink.searchParams.get("mus");
var amus = (mus == '' || mus == null) ? '?amid='+aid+'' : '?amus='+mus+'&amid='+aid+'';
document.writeln('<script type="text\/javascript" src="/plus/video.php'+amus+'"><\/script>');
var gaov = (mus == '' || mus == null) ? 1 : mus;
$("#video"+gaov+"").css({color:'#ff6428'});//高亮代码
</script>
<!-- 获取播放链接 -->根据需求修改。
六、加播放器
video 目录是播放器目录,在懒人包内,下载播放器就可以使用了。比如:DPlayer、Ckplayer、哔哩哔哩等均支持。
懒人包下载
关于加密
《视频地址加密的方法,利用blob加密视频地址》教程,视频链接加密,小站长是玩不转的。说实话,mp4格式的视频,没有加密的必要。而blob加密,我试了,小宽带服务器确实是带不动的。
本文结束
评论专区




上一篇
发表评论
评论列表(无评论)