手把手教你制作DedeCMS自定义公告模板
发布时间:2020-12-14 04:02:24 所属栏目:Dedecms 来源:网络整理
导读:织梦CMS很强大,用过的人惊叹,织梦开发团队产品开源后就已为我们设计了一套模板,看起来还不错,但是用久了就发现很丑,很难看,并且也不是很完善,因此我们就有想自已DIY的想法,? ? 比喻站点的最新公告显示位就没有,在网上找了好久,没有发现相关的信息,可能是我没
织梦CMS很强大,用过的人惊叹,织梦开发团队产品开源后就已为我们设计了一套模板,看起来还不错,但是用久了就发现很丑,很难看,并且也不是很完善,因此我们就有想自已DIY的想法,?
?
比喻站点的最新公告显示位就没有,在网上找了好久,没有发现相关的信息,可能是我没有找到,所以就花了几个小时研究了一下DEDECMS的部分源码,试想,何不自已写呢?
?
好吧,想法有了,开始形动吧,跟我来,让狼人教你DIY一个自定义的模块.?
?
在这里我就给大家举一个实例<<站点公告信息的模板>>?
?
主要有:<<首页显示最新公告>>,<<公告详细显示页面>>,<<公告列表页面>>?
?
好的,我们一个个的来?
?
一.<<首页显示最新公告>>首先是在首页显示最新公告<在index.htm页面添加代码>?
代码标签是:------------------------------------------------------------------------------?
?
begin:?
?
{dede:mynews row='1' titlelen='20'}最新公告:[field:title /]
?
end;?
?
二.<<公告详细显示页面>>新建文件show-mynews.php?
代码如下:
?
begin:?
?
require_once (dirname(__FILE__) . "/include/common.inc.php");?
require_once DEDEINC."/arc.partview.class.php";?
?>?
?
$pv = new PartView();?
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/head.htm");?
$pv->Display();?
?>?
?
if (! is_numeric($aid))?
{?
echo "浏览页面参数不正确";?
exit;?
}?
global $dsql;?
$row = $dsql->GetOne("Select * from dede_mynews where aid=$aid");?
if(!is_array($row))?
{?
echo "对不起,没有找到您所查找到的公告信息";?
exit;?
}?
?>?
?
echo "
?>?
?
$pv = new PartView();?
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/footer.htm");?
$pv->Display();?
?>?
?
end;?
?
三.<<公告列表页面>>改显示所有公告列表,不分页<公告本来就不是很多所以这里我们不分页显示列表了>在includetaglib目录下面找到文件(mynews.lib.php)?
代码标签是:------------------------------------------------------------------------------?
?
begin:?
?
function lib_mynews(&$ctag,&$refObj)?
{?
global $dsql,$envs;?
//属性处理?
$attlist="row|1,titlelen|24";?
FillAttsDefault($ctag->CAttribute->Items,$attlist);?
extract($ctag->CAttribute->Items,EXTR_SKIP);?
?
$innertext = trim($ctag->GetInnerText());?
if(empty($row)) $row=1;?
if(empty($titlelen)) $titlelen=30;?
if(empty($innertext)) $innertext = GetSysTemplets('mynews.htm');?
?
$idsql = '';?
if($envs['typeid'] > 0) $idsql = " where typeid='".GetTopid($this->TypeID)."' ";?
$dsql->SetQuery("Select * from dede_mynews $idsql order by senddate desc limit 0,$row");?
?
if($row == -1) $dsql->SetQuery("Select * from dede_mynews $idsql order by senddate desc");//狼人(QQ:459094521)加,如果设置为-1,就显示所有文章?
?
$dsql->Execute();?
$ctp = new DedeTagParse();?
$ctp->SetNameSpace('field','[',']');?
$ctp->LoadSource($innertext);?
$revalue = '';?
while($row = $dsql->GetArray())?
{?
foreach($ctp->CTags as $tagid=>$ctag){?
@$ctp->Assign($tagid,$row[$ctag->GetName()]);?
}?
$revalue .= $ctp->GetResult();?
}?
return $revalue;?
}?
?>?
?
end;?
?
在站点根目录新建list-mynews.php里面写代码:?
?
begin:/*用于调用/default/list-mynews.htm页面的标签来显示*/?
?
require_once (dirname(__FILE__) . "/include/common.inc.php");?
require_once DEDEINC."/arc.partview.class.php";?
$pv = new PartView();?
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/list-mynews.htm");?
$pv->Display();?
?>?
?
end;?
?
在templetsdefault目录下面新建文件list-mynews.htm,并写代码如下:?
?
begin:?
?
{dede:mynews row='-1' titlelen='20'}
编号:[field:aid /],
{/dede:mynews}?
?
end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |