和DEDECMS专题模板的解决方案中的应用分析

和DEDECMS专题模板的解决方案中的应用分析
评论:DeDeCms的主题相关的信息,论坛是比较小的,而且很多信息没有被发现之前,找到自己的解决方案。
没有奈就只能靠自己的双手丰衣足食了;有这么几句话在官方版本中:
1。文章列表的ID1,ID2和ID3,分离,并且系统会自动排除相同的文章从不同的节点。
2、在{单场记录:字段名/ }标记模板的使用,请参考一个关于arclist标签帮助系统;
3,ID是唯一的节点标识,允许{ DEDE专用模板:specnote ID = 'logo ' / }所以代表一个节点。
4、在正常情况下,每个节点显示节点文章列表;文档在泳道中,如果您指定自动获取模式,则必须指定密钥和列ID。

但测试{迪迪:specnote ID = 'logo ' / }这不上升;因此,为了解决这个问题,代替原来的刚性{迪迪:字段名称= 'note ' / }标签;

例子如下:

我要两个小节显示不同的文章节点,目前注不能实现,只有一个节点有列,难免出现八个左右的扭曲,不够灵活。

在这里,我把自己的方案写参考的学生,首先必须明确,不仅是功能的实现,该算法可以不是最好的,因为我不熟悉dedecms的代码并没有认真的学习,我希望你原谅!

步骤1:

文件位置:{包括 / inc_archives_view php }。

复制代码代码如下所示:
广告符号
/ / -----------------------
如果($标签-> getName)(= = MyAD){
美元->排版->分配(tagid美元,美元-> partview -> getmyad($ typeid,$标签-> getatt(名称))));
}
特殊标志
/ / phpfans
如果($标签-> getName)(= = specnote){
美元->排版->分配(tagid美元,美元-> channelunit -> getspeclist(',这channelunit美元-> -> -> getatt美元specrule,标签(ID))))
}
简介:特殊标志{ }文章列表页增加在广告标签可以识别specnote标签。
步骤2:

文件位置:{包括 / inc_channel_unit php }。
VaR specrule美元;
/ / -------------
/ / PHP5的构造函数
/ / -------------
简介:添加到pecrule美元变量的定义
步骤3:

文件位置:{包括 / inc_channel_unit php }。

复制代码代码如下所示:
如果($ FTYPE = =专题){
美元-> specrule = $;
美元:美元= -> getspeclist($名,$:);
}
简介:这里是美元-> specrule = $可以添加;这句话得到了addonspec表注场数据;

步骤4:

文件位置:{包括 / inc_channel_unit php }。

复制代码代码如下所示:
获取一个特性文章列表
/ / --------------------------------
功能getspeclist($名、noteinfo美元,美元noteid = )
{
如果(!isset($ = { '__spgetarclist ' }))require_once(dirname(__file__)。 /公司/ inc_fun_spgetarclist .php);
如果($ noteinfo = =)返回;
= $ 右值;
tempstr美元= getsystemplets(信 / channel_spec_note .htm);
美元=新dedetagparse(DTP);

$ DTP -> LoadSource($ noteinfo);
如果(is_array($ DTP -> CTags))
{
foreach($ DTP ->标签为$ K = > $ CTAg){
notename美元=美元标签-> getatt(名称);
如果(noteid美元!=标签->美元getatt (noteid )!= $ noteid){继续}; / /指定的特殊节点的名称
如果(noteid美元!=$标签-> getatt(noteid )= = = $ noteid){
isauto美元=美元标签-> getatt(isauto );
idlist美元=装饰($标签-> getatt(idlist ));
$ rownum =装饰($标签-> getatt(行号));
如果(空($行号))rownum = 40美元;
= $关键字;
stypeid = 0美元;
如果($ isauto = = 1){
= $ idlist;
关键词=装饰($标签-> getatt(关键词));
stypeid美元=美元标签-> getatt(运行);
}
如果(TRIM($标签-> getinnertext())!= )listtemplet美元=美元标签-> getinnertext();
其他listtemplet美元= getsystemplets(spec_arclist .htm);
择美元= spgetarclist(美元-> DSQL,
stypeid美元美元美元,行号,标签-> getatt(关口),
$标签-> getatt(titlelen ),$标签-> getatt(infolen ),
$标签-> getatt(imgwidth ),$标签-> getatt(imgheight ),
所有
notestr美元= str_replace(~ notename ~
notestr美元= str_replace(~ spec_arclist ~
右值= notestr美元美元;
如果(noteid美元!=$标签-> getatt(noteid )= = $ noteid){ break;}
}
}
}
DTP ->明确(美元);
返回的值;
}
简介:一些小的变化,对比鲜明,这里不再颤抖。

步骤5:
描述:原{迪迪:字段名称= 'note ' / }标签已经失败,如果你想使用的朋友,请改变自己的步骤四部分。

很简单的;

要结束uff01
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部