discuz 自定义联盟推广链接案例及百度分享自定义推广链接的方法

 

原理,推广者通过论坛自动生成的属于自己的推广链接,分发出去后,其它人通过该链接访问,广告联盟便可记录推广者并给予奖励.

涉及三个文件.cf_conn.php及cf_reg.php,为了让推广链接窗口在帖子中显示.需要修改default这个默认模板.如果用的是第三方模板,需要自己对应模板.\template\default\forum\viewthread_node_body.htm 

cf_conn.php的内容为

 

<?php
/*配置好下面的参数*/

//edusoho的Mysql数据库IP地址或主机名
$dbhost="localhost";

//edusoho的Mysql数据库连接用户名
$dbuser="root";

//edusoho的Mysql数据库连接密码
$dbpwd="root";

//edusoho的Mysql数据库使用的数据库名称
$dbname="discuz2";

//网站网址,如http://www.a.com/,以/结尾
$shop_url="http://www.a.com/";


//广告联盟程序安装路径,如http://www.b.com/,以/结尾
$cf_url="ttp://www.b.com/";

//广告联盟系统密钥,管理员后台可查到,登录加密用
$cf_syscode="xxxxxxxx";


//广告联盟对接的程序普通用户的广告ID
$cf_ad_id=126;

//广告联盟对接的程序楼主的广告ID
$cf_ad_idb=123;


//ifrmame高度,调试时可以设置20到40可以显示调试信息,完成后设置为0即可隐藏
$cf_iframeheight=20;








$conn = mysql_connect($dbhost,$dbuser,$dbpwd);
if (!$conn) die ("对不起,发生错误! 请检查cf_conn.php中数据库的配置是否正确!");
mysql_query("set names gbk");
mysql_select_db($dbname,$conn);




//过滤非法字符
function chkstr($paravalue,$paratype){
 if($paratype==1){
  $filterstr="(and|or)\\b.+?(>|<|=|in|like)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
  if (preg_match("/".$filterstr."/is",$paravalue)==1){   
   exit("传递的参数类型有错误!");
  }
  $inputstr=str_replace("'","''",$paravalue);
  }elseif($paratype==2){
   if($paravalue!=""&&is_numeric($paravalue)==false){
     exit("传递的参数类型有错误!");
   }else{ 
    $inputstr=$paravalue;
   }
 }elseif($paratype==3){
   if($paravalue!=""&&(strtotime($paravalue)==false||strtotime($paravalue)==-1)){
    exit("传递的参数类型有错误!");
   }else{ 
    $inputstr=$paravalue;
   }
 }
 return $inputstr;
}
?>

 

 

 

 

 

cf_reg.php内容为

 

 

<?php
header("expires:mon,26jul199705:00:00gmt"); 
header("cache-control:no-cache,must-revalidate"); 
header("pragma:no-cache"); 
$action = isset($_GET["action"]) ? $_GET["action"] : "useridget";



if($action=="useridget"){

require './source/class/class_core.php';//引入系统核心文件
$discuz = & discuz_core::instance();//以下代码为创建及初始化对象
$discuz->cachelist = $cachelist;
$discuz->init();//以上是调用discuz公共执行类等核心代码
$userid= $_G['uid'];





$ser=$_SERVER['HTTP_HOST'];
$scr=$_SERVER['SCRIPT_NAME'];
$scr_2=substr($scr,0,strrpos($scr,"/")+1);

//如果是登录者时,显示推广链接,这里currurl用base64加密防止被双重伪静态
if($userid!=""){

echo "document.write(\"<script src='http://".$ser.$scr_2."cf_reg.php?action=usertg&userid=$userid&currurl=\"+base64_encode(window.location.href)+\"' charset='gbk'></script>\");";
@include("cf_conn.php");
$from = isset($_GET["from"]) ? $_GET["from"] : $shop_url;

//var currurl= escape('".str_replace("http://","",$currurl)."');

//currurl='".$cf_ad_id.",".$userid.",,'+currurl;
//str+='".$cf_url."cf.aspx?'+base64_encode(currurl);
//获取完整的url
//$cur_1= 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$cur_2= str_replace("http://","",$from);
echo "document.write(\"<script>var cur3= escape('".$cur_2."'); var cur='".$cf_ad_id.",".$userid.",,'+cur3;var my_currurl='http://www.b.com/cf.aspx?'+base64_encode(cur);</script>\");";



}


}




//登录用户显示推广链接
if($action=="usertg"){

@include("cf_conn.php");

if($cf_ad_id==0) exit;

//取出当前页,判断哪些页面需要出现推广提示
$currurl = isset($_GET["currurl"]) ? chkstr($_GET["currurl"],1) : "";
$currurl=base64_decode($currurl);

//echo("alert('$currurl');");

//用正则读取
if(preg_match('/p-([0-9]*)-.*\.html/',$currurl,$matched)){$tid=$matched[1];}else{$tid="";};

$userid = isset($_GET["userid"]) ? chkstr($_GET["userid"],2) : "";


$sql="select email from pre_ucenter_members where uid='$userid'";
$result=mysql_query($sql);
if($rs=mysql_fetch_array($result)){
 $username=$rs["email"];
}


if($tid!=""){  
//如果这个帖子是当前用户发的则调用对楼主的广告
$sql="select authorid from pre_forum_post where tid='$tid'";

$result=mysql_query($sql);
if($rs=mysql_fetch_array($result)){
 $useridb=$rs["authorid"];
 if ($userid==$useridb){$cf_ad_id=$cf_ad_idb;}
}
}else{
 exit;//非主题页时不显示
}



//echo("alert('$currurl');");

//把用户提交到联盟用户新增接口
echo "document.write(\"<iframe src='".$cf_url."cf.aspx?action=useradd&userid=$userid&username=$username&checkcode=".md5($userid.$username.$cf_syscode)."' frameBorder=0 width=200 height=$cf_iframeheight marginheight=0 marginwidth=0 scrolling=no></iframe>\");";

echo("
var sxadwidth = 500;
var sxadheight = 120

document.write('<span id=\"cf_sxtg\"></span>');

//关闭按钮
str='';

str+='<div align=\"left\" id=\"cf_sxtg\" style=\"background-color:#c6ccd9;padding:7px;width:590px;display:inline-block\">'

str+='<span style=\"font-size:14px;color:#ff0000;\">推广本站赚钱</span>';
str+='<br><span style=\"font-size:12px;\">复制推广链接给别人可获提成</span>';

str+='<iframe src=\"".$cf_url."d_info.asp?userid=$userid&checktime=".time()."&checkcode=".md5($userid.time().$cf_syscode)."\" frameBorder=0 width=400 height=$cf_iframeheight marginheight=0 marginwidth=0 scrolling=no></iframe>';

str+='<br><textarea   onfocus=\"select()\"id=\"tgtext\" style=\"width:540px;height:18px;margin-bottom:-3px;\">';

var currurl= escape('".str_replace("http://","",$currurl)."');

currurl='".$cf_ad_id.",".$userid.",,'+currurl;

//alert(currurl);

str+='".$cf_url."cf.aspx?'+base64_encode(currurl);
str+='</textarea> <a style=\"font-size:16px;display:inline-block;\"href=\"javascript:\" onclick=\"tgcopy(\'tgtext\');\"> 复制';
str+='</div>';

showMsg(str);

function showMsg(str) {
	var s=\"\";
	var _width=sxadwidth;_height=sxadheight;
	try{
		if(document.compatMode && document.compatMode != 'BackCompat'){
			s+=('<div style=\"\" id=\"BottomMsg\">');
		}else {
			s+=('<div style=\"\" id=\"BottomMsg\" >');
		}
		s+=(str);
		s+=('</div>');
		document.getElementById('cf_sxtg').innerHTML = s;
	}catch(err){}
}


function cf_sxtg_closeDiv(){
 document.getElementById('cf_sxtg').style.visibility='hidden';
 document.getElementById('cf_sxtg_close').style.visibility='hidden';
}


function tgcopy(ob){
	var obj=tgfindObj(ob);
if(-[1,]){  
obj.select();
 alert(\"您的浏览器不支持此这个复制功能,请手工复制文本框中内容\")
}else{  
  if (obj) { 
 obj.select();js=obj.createTextRange();js.execCommand(\"Copy\");}
} 

}

function tgfindObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf(\"?\"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}




");


}



echo("
function base64_encode(str){
                var c1, c2, c3;
                var base64EncodeChars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";                
                var i = 0, len= str.length, string = '';

                while (i < len){
                        c1 = str.charCodeAt(i++) & 0xff;
                        if (i == len){
                                string += base64EncodeChars.charAt(c1 >> 2);
                                string += base64EncodeChars.charAt((c1 & 0x3) << 4);
                                string += \"==\";
                                break;
                        }
                        c2 = str.charCodeAt(i++);
                        if (i == len){
                                string += base64EncodeChars.charAt(c1 >> 2);
                                string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
                                string += base64EncodeChars.charAt((c2 & 0xF) << 2);
                                string += \"=\";
                                break;
                        }
                        c3 = str.charCodeAt(i++);
                        string += base64EncodeChars.charAt(c1 >> 2);
                        string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
                        string += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
                        string += base64EncodeChars.charAt(c3 & 0x3F)
                }
                        return string
        }
")
?>

 

 

 

 

 

三,如果要让百度分享显示.并且分享后,附带回调的本论坛网址为自定义的推广链接.

其中{eval}表示在模板中直接运行php,

如果要自定义链接.需要增加bdUrl:my_currurl 这一句.

为 了方便复杂推广链接,请不要开启百度划词分享功能.

 

在\template\default\forum\viewthread_node_body.htm
大约62行.也就是<!--{if $post['first']}-->的下面,要加在这个位置,是因为这个代码只想让他显示在主题帖子中,回复中不显示.添加上面两个文件的调用及百度分享
代码都不需要在后台设置什么

		
<!--{eval 
$cur_1= 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo "<script src='/cf_reg.php?from=".$cur_1."' charset='gbk'></script>";
}--> 
<div class="bdsharebuttonbox"><a href="#" class="bds_more" data-cmd="more"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a><a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"></a><a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"></a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a></div>
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"32",bdUrl:my_currurl},"share":{},"image":{"viewList":["qzone","tsina","tqq","renren","weixin"],"viewText":"分享到:","viewSize":"16"}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能:论坛宣传中心,适用于对推广宣传要求较强的论坛。 特点:自主生成的多样式代码,方便会员的图文宣传。 本版本除了进行美化、修改,还推出了抽奖功能,通过积分、勋章的奖励,能大幅提升会员积极性。 此外,新加的达标机制,被推广注册者的发帖和积分达标后能为推广者增加积分,增强了推广实效性。 V2.0正式版 What is new? 1.精华帖随机推荐地址生成 2.排行榜显示积分数 3.主题页面增加宣传按钮 4.增加宣传业绩显示 5.增加反作弊机制 注:v1.9版本可保留数据直接升级。V2.0测试版请完全卸载后全新安装。 【2010.1.1】查证贴内宣传按钮在分类情况下出错,已经修补。版本号为2.0.1。 安装原来2.0版本用户升级方法:下载附件2.0upgrade2.0.1.rar解压后将upload下文件覆盖论坛根目录。 【2010.1.2】查证宣传代码获取处第五个代码丢失,已经修补。版本号为2.0.2。 安装原来2.0/2.0.1版本用户升级方法:下载附件2.0or2.0.1upgrade2.0.1.rar解压后将upload下文件覆盖论坛根目录。 V1.9 What is new? 1.可以设定勋章获取几率(包括不获得)。解决勋章重复问题。 2.增添了达标机制,被推广注册者达到指定积分和发帖数,推广者将获得奖励,大大提交实效性。 3.添加了版本更新检查功能,为插件后续更多的功能华丽升级做准备。 3.解决文字错误。 4.优化界面,改善用户体验效果。 V1.5 What is new? 1.把抽奖时积分清零改为扣除一定积分。 2.新增了抽奖图片自定义功能。 3.修正了插件版本不一致提示。 4.更改了部分文字提示。 5.解决复制按钮失效、对代码进行修正。(V1.0 Final 1018) 6.修正了关闭抽奖时出错的问题。(V1.0 Final 0930) V1.0 Final 1.增加抽奖功能:宣传积分累计达到一定次数,可以抽取勋章、积分。 2.采用多编码并适用于7.1论坛,完全绿色方便安装、卸载。 3.美化了界面显示,修正链接地址,增加了对站长的提示,增加了对自定义注册文件名的适应免去了模板修改的麻烦。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值