最近在用最新版本织梦做一个小型门户的时候发现一个问题,可能是新版本的bug。在有的时候会出现把广告设置在大类显示,小类没设置就不会显示广告内容了。根据需求修改了一下广告调用的程序,需要注意的事,是用的默认表前缀。请注意使用!如果你修改过就得修改程序文件。
首先覆盖文件\include\taglib\myad.lib.php
< ?php
if(!defined('DEDEINC')) exit('Request Error!');
require_once(DEDEINC.'/taglib/mytag.lib.php');
function lib_myad(&$ctag, &$refObj)
{
$attlist = "typeid|0,name|";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$typeid=$_GET['tid'];
$body = lib_GetMyTagT($refObj, $_GET['tid'], $name, '#@__myad');
//return "#######".$typeid;
return $body;
}
?>
然后覆盖文件\include\taglib\mytag.lib.php
< ?php
if(!defined('DEDEINC')) exit('Request Error!');
function lib_mytag(&$ctag, &$refObj)
{
$attlist = "typeid|0,name|,ismake|no";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
if(trim($ismake)=='') $ismake = 'no';
$body = lib_GetMyTagT($refObj, $typeid, $name, '#@__mytag');
//编译
if($ismake=='yes')
{
require_once(DEDEINC.'/arc.partview.class.php');
$pvCopy = new PartView($typeid);
$pvCopy->SetTemplet($body,"string");
$body = $pvCopy->GetResult();
}
return $body;
}
function lib_GetMyTagT(&$refObj, $typeid,$tagname,$tablename)
{
global $dsql;
if($tagname=='') return '';
if(trim($typeid)=='') $typeid=0;
if( !empty($refObj->Fields['typeid']) && $typeid==0) $typeid = $refObj->Fields['typeid'];
$typesql = $row = '';
$row1=$dsql->GetOne("select topid from dede_arctype where id=$typeid");
$topid=$row1["topid"];
if($topid!=0){
$typeid=$topid;
}
if($typeid > 0) $typesql = " And typeid=$typeid";
$row = $dsql->GetOne("SELECT * FROM dede_myad WHERE tagname = '$tagname' AND typeid in (0,$typeid)");
if(!is_array($row)) return '';
//echo " Select * From dede_myad where tagname like '$tagname' $typesql";
$nowtime = time();
$body = $row['normbody'];
return $body;
}
?>
哎呀,我的17fenx-减肥十万个为什么,就有问题,一直弄不明白呢。
这是由于新版本的一个bug,在广告标签模块无法获取上级栏目id,所以掉不出来
自己倒是没碰到这个问题
是前段时间更新的一个版本的bug
文章真不错,学习了!
看着挺不错的
没碰到这个问题
没遇到过这个情况