dedecms的广告和广告位置分析

2012-02-01 15:28 来源:www.chinab4c.com 作者:dedecms专家

    dedecms广告功能和传统的cms一样,和ecshop广告功能的原理也是差不多的。都是先建立对应的广告位置,然后在对应的广告位置下建立广告.不同的是ecshop可以灵活的在后台设置广告的位置以及数量。而dedecms需要在dedecms模板中动态的插入.

     首先我们看下dedecms数据库是如何存储dedecms的广告位置的。我们可以研究dedecms数据库dede_myadtype表.这个是存储广告分类的,dede_myad这个表就是用来存储dedecms的广告位置的。

    首先我们看dedecms后台的广告位置管理。

    后台=>模块=>广告管理.

   在这里我们先增加广告分类,也就是所谓的广告位置,首先在列表里面循环的显示出所有的广告分类,也就是广告位置.

   $dsql->SetQuery("Select * From dede_myadtype");
 $dsql->Execute();
 $k=0;
 while($row = $dsql->GetObject())

    其次,我们看到广告位置里面。可以插入广告,唯一条件是广告的名称不能重复,因为广告名称是唯一在dedecms模板中调用广告的标记.

    $row = $dsql->GetOne("SELECT typeid FROM dede_myad WHERE typeid='$typeid' AND tagname LIKE '$tagname'");
    if(is_array($row))
    {
        ShowMsg("在相同栏目下已经存在同名的标记!","-1");
        exit();
    }

   然后到了后台,我们可以选择插入该广告在数据库中。

   $query = "
     INSERT INTO dede_myad(clsid,typeid,tagname,adname,timeset,starttime,endtime,normbody,expbody)
     VALUES('$clsid','$typeid','$tagname','$adname','$timeset','$starttime','$endtime','$normbody','$expbody');
    ";
    $dsql->ExecuteNoneQuery($query);

    这样就完成了整个的dedecms广告管理的操作.

   dedecms广告的调用有两种方式,一种是直接获取JS.以这个方式调用

<!--StartFragment--><script src='/cms/x/plus/ad_js.php?aid=3' language='javascript'></script>

   在模板中也可以直接用模板标签,name指的就是广告的唯一标记的名字.

   {dede:myad name='indexLeftBanner'/}

   来源:http://www.chinab4c.com