织梦园模板网提供云优cms模板,pbootcms模板,Wordpress主题模板等各类企业新闻资讯网站模板下载服务。织梦园网站模板交流群
用户名:
密码:
注册
注册后享受折扣价

织梦DEDECMS下载地址如何全局调用函数

织梦园模板 / 2019-10-04 / 收藏
大家可以看到大多数的下载站在软件下载地址处使用的是全局调用函数来实现的,可以这样说很多的朋友不是太明白,我们还是先来看一张效果图(如下),大家应该明白我的意思了吧。
下面是我从网上搜集来的相关调用实例,供大家学习研究。

 
织梦DEDECMS下载地址如何全局调用函数
<?php   
/* -------------------------------   
==========  
Tigs:   
调用方法:{dede:field.id function="getsoftlinks(3,1,@me)"}   
参数说明:  
    1.$channelid 是内容模型的ID;  
    2.调用类型(1 = 本地 ;2 = 镜像列表)  
    3.@me 为当前值,也是软件的文档ID编号  
--------------------------------*/  
function getsoftlinks($channelid,$type,$aid){   
    global $dsql;   
    $goto = $dsql->GetOne("Select * From `dede_softconfig` ");   
    $channeltable = $dsql->GetOne("select * from `dede_channeltype` where id = $channelid");   
    $addtable = $channeltable['addtable'];   
    $row = $dsql->GetOne("select * from `".$addtable."` where aid = $aid");    
    if ($type == 1){ //设置条件为调用本地下载   
        if($row['softlinks'] != ''){ //判断下载地址是否为空;   
            $dtp = new DedeTagParse();   
            $dtp->LoadSource($row['softlinks']);   
            foreach($dtp->CTags as $ctag){   
                if($ctag->GetName()=='link'){ //读取 {dede:link}的标签   
                    $link = trim($ctag->GetInnerText()); //链接地址为底层模板;   
                    $serverName = trim($ctag->GetAtt('text')); //服务器名称   
                    $islocal = trim($ctag->GetAtt('islocal')); // 是否为本地的判断   
                    if ($islocal == 1){//本地下载链接   
                        if($goto['gotojump'] == 1){  //如果后台设置为链接到跳转页面,则对下载地址进行再次处理   
                            $uhash = substr(md5($link), 0, 24);   
                            $links = "/plus/download.php?open=2&id=$aid&uhash=$uhash";   
                        }      
                            return $links;   
                    }   
                }   
            }   
        }              
    }   
    else if($type == 0){   
        if($row['softlinks'] != ''){ //判断下载地址是否为空;   
            $dtp = new DedeTagParse();   
            $dtp->LoadSource($row['softlinks']);   
            if(is_array($dtp->CTags)){   
                foreach($dtp->CTags as $ctag){   
                    if($ctag->GetName()=='link'){ //读取 {dede:link}的标签   
                        $link = trim($ctag->GetInnerText()); //链接地址为底层模板;   
                        $serverName = trim($ctag->GetAtt('text')); //服务器名称   
                        $islocal = trim($ctag->GetAtt('islocal')); // 是否为本地的判断   
                        $rapidity = rand(0,70);   
                        if ($rapidity == 0){   
                            $line = 'stop';   
                        }   
                        elseif($rapidity <= 20){   
                            $line = 'busy';   
                        }   
                        elseif($rapidity <= 40){   
                            $line = 'nofree';   
                        }   
                        else{   
                            $line = 'free';   
                        }   
                        if ($islocal != 1){   
                            if($goto['gotojump'] == 1){//如果后台设置为链接到跳转页面,则对下载地址进行再次处理   
                                $uhash = substr(md5($link), 0, 24);   
                                $link = "/plus/download.php?open=2&id=$aid&uhash=$uhash";   
                            }   
                            $links =  "<tr><td class='line-name'><a href='".$link."' target='_blank'>".$serverName."</a></td><td>链接速度:</td><td class='line-speed'><p class='".$line." speed-bad'>".$rapidity."</p></td></tr>";   
                            $downlinks .= $links;   
                        }   
                    }   
                }   
            }   
            $dtp->Clear();   
            return $downlinks;   
        }   
    }   
    else{   
        return "调用参数错误";   
    }   
}   
?>  

相关标签调用

收缩