本篇文章给大家谈谈织梦让channelartlist标签里的channel支持currentstyle,以及织梦标签调用的知识点,同时本文还将给你拓展dedechannelartlist中引用chan
本篇文章给大家谈谈织梦让channelartlist标签里的channel支持currentstyle,以及织梦标签调用的知识点,同时本文还将给你拓展dede channelartlist 中引用channel 并且设置当前选择类的样式,currentstyle暂时没有效果.特发求助!!!! - samcao、dede(织梦)CMS:channelArtlist标签应用、DedeCMS让channelartlist支持currentstyle属性、dede让channelartlist标签支持currentstyle属性 完美解决等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- 织梦让channelartlist标签里的channel支持currentstyle(织梦标签调用)
- dede channelartlist 中引用channel 并且设置当前选择类的样式,currentstyle暂时没有效果.特发求助!!!! - samcao
- dede(织梦)CMS:channelArtlist标签应用
- DedeCMS让channelartlist支持currentstyle属性
- dede让channelartlist标签支持currentstyle属性 完美解决
织梦让channelartlist标签里的channel支持currentstyle(织梦标签调用)
织梦标签channelartlist默认是不支持多层嵌套后使用currentstyle高亮,修改一个文件可以实现
嵌套标签
<div> <ul> {dede:channelartlist row=7 typeid=top currentstyle=current} <li> <a href=http://www.dede58.com/a/dedejq/"{dede:field.typeurl/}">{dede:field.typename/}</a> <ul> {dede:channel type='son' noself='yes' row='10' current} <li><a href=http://www.dede58.com/a/dedejq/"[field:typeurl/]">[field:typename/]</a></li> {/dede:channel} </ul> </li> {/dede:channelartlist} </ul> </div>实现教程
1、打开 \include\taglib\channel.lib.php 找到
global $dsql;
改成
global $dsql,$_sys_globals;
继续找到
$row['id']==$typeid
改成
$row['id']==$typeid || $row['id']==$_sys_globals['typeid']
本文章网址:http://www.ppssdd.com/code/11416.html。转载请保留出处,谢谢合作!dede channelartlist 中引用channel 并且设置当前选择类的样式,currentstyle暂时没有效果.特发求助!!!! - samcao
在dede中需要达到当前选择了该类,样式不同的话.如果是channelartlist 的话. 可以使用下面的情况:
<span>1</span> {dede:channelartlist typeid=''6'' row=''3'' currentcurrent''<span>} </span><span>2</span>
这个默认没有效果.需要在channelartlist.lib.php中做下面的步骤:
在这行的下面添加
<span>1</span> <span>$pv</span>->Fields[''typeurl''] = GetOneTypeUrlA(<span>$typeids</span>[<span>$i</span>]);
<span> 1</span> <span>#</span><span>#########################################################</span> <span> 2</span> <span> 3</span> <span>if</span>(<span>$typeids</span>[<span>$i</span>][''id''] == <span>$refObj</span>->TypeLink->TypeInfos[''id''] || <span>$typeids</span>[<span>$i</span>][''id''] == <span>$refObj</span>->TypeLink->TypeInfos[''topid''<span>] ){ </span><span> 4</span> <span>$pv</span>->Fields[''currentstyle''] = <span>$currentstyle</span> ? <span>$currentstyle</span> : ''current''<span>; </span><span> 5</span> <span> } </span><span> 6</span> <span>else</span><span>{ </span><span> 7</span> <span>$pv</span>->Fields[''currentstyle''] = ''''<span>; </span><span> 8</span> <span> } </span><span> 9</span> <span>10</span> <span>#</span><span>##########################################################</span>
添加上面的代码才可以.
如果只是使用channel的话. 可以使用下面来实现. 在此引用 "元曦" 的图. 也谢谢"元曦"的帮助.

<span> 1</span> {dede:channelartlist typeid=''6'' row=''3'' currentcurrent''<span>} </span><span> 2</span>
- >
7 {dede:channel type=''son'' noself=''yes'' currentcolor: #008080;"> 8
- 9 >~typename~ 10
这样channelartlist 会有class的样式. 但是内部 channel 并不会有,甚是不解。
于是决定至底层的php文件中查看一下。在channel.lib.php中输出测试一下。
<span> 1</span> <span>//</span><span>处理同级栏目中,当前栏目的样式</span> <span> 2</span> <span>if</span>( (<span>$row</span>[''id'']==<span>$typeid</span> || (<span>$topid</span>==<span>$row</span>[''id''] && <span>$type</span>==''top'') ) && <span>$currentstyle</span>!=''''<span> ) </span><span> 3</span> <span> { </span><span> 4</span> <span>print</span> ''test_4''; <span>//</span><span>测试输出</span> <span> 5</span> <span>$linkOkstr</span> = <span>$currentstyle</span><span>; </span><span> 6</span> <span>$row</span>[''typelink''] = GetOneTypeUrlA(<span>$row</span><span>); </span><span> 7</span> <span>$linkOkstr</span> = <span>str_replace</span>("~rel~",<span>$row</span>[''rel''],<span>$linkOkstr</span><span>); </span><span> 8</span> <span>$linkOkstr</span> = <span>str_replace</span>("~id~",<span>$row</span>[''id''],<span>$linkOkstr</span><span>); </span><span> 9</span> <span>$linkOkstr</span> = <span>str_replace</span>("~typelink~",<span>$row</span>[''typelink''],<span>$linkOkstr</span><span>); </span><span>10</span> <span>$linkOkstr</span> = <span>str_replace</span>("~typename~",<span>$row</span>[''typename''],<span>$linkOkstr</span><span>); </span><span>11</span> <span>$likeType</span> .= <span>$linkOkstr</span><span>; </span><span>12</span> <span> } </span><span>13</span> <span>else</span> <span>14</span> <span> { </span><span>15</span> <span>print</span> ''test_5''; <span>//</span><span>测试输出</span> <span>16</span> <span>$row</span>[''typelink''] = <span>$row</span>[''typeurl''] = GetOneTypeUrlA(<span>$row</span><span>); </span><span>17</span> <span>if</span>(<span>is_array</span>(<span>$dtp2</span>-><span>CTags)) </span><span>18</span> <span> { </span><span>19</span> <span>foreach</span>(<span>$dtp2</span>->CTags <span>as</span> <span>$tagid</span>=><span>$ctag</span><span>) </span><span>20</span> <span> { </span><span>21</span> <span>if</span>(<span>isset</span>(<span>$row</span>[<span>$ctag</span>->GetName()])) <span>$dtp2</span>->Assign(<span>$tagid</span>,<span>$row</span>[<span>$ctag</span>-><span>GetName()]); </span><span>22</span> <span> } </span><span>23</span> <span> } </span><span>24</span> <span>$likeType</span> .= <span>$dtp2</span>-><span>GetResult(); </span><span>25</span> <span>26</span> }
看是输出的test_5. 不解. 暂做记录.也希望大家给上上课.
不要单个效果的.已经实现 .或者小弟那里有理解不对的地方. 请指出.
主要是需要
11111111111111111
1-2
1-3
dede(织梦)CMS:channelArtlist标签应用
个性的dede,在制作多级菜单的时候很无奈,当时以为在保证尽量不动源码的情况下,很难完成二级导航的功能,没想到channelArtlist这个函数,这唯一能嵌套的函数。太爽了。用着
例子1:读取指定菜单项
2
3
{/dede:channelArtlist}
例子2: 读取二级菜单(在这里发现个很郁闷的bug dede读取子菜单竟然是用sun 和son都行。 不知道是那个程序员写错还是故意的。)
2
3
4
5
6
7
8
9
10
{dede:field name='typename'/}
- {dede:channel type='sun'}
{/dede:channel}
{/dede:channelArtlist}
例子3:读取指定菜单项下几条内容。
2
3
4
5
6
7
8
9
10
11
12
13
{dede:type}
[field:typename/]
- display:none;">
{/dede:type}
{dede:arclist row="5"}
{/dede:arclist}
{/dede:channelArtlist}
总结
以上是小编为你收集整理的dede(织梦)CMS:channelArtlist标签应用全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Dedecms相关文章
- • 织梦系统 dedecms pagelist标签使用修改
- • 织梦网站怎么搬家?dede系统网站迁移数
- • 织梦网站安全设置方法 dede系统网站如何
- • 织梦自动生成网站地图sitemap代码 dede
- • dede织梦纯代码制作网站地图 dede网站地
- • 织梦dede自定义表单添加全选功能 dede自
- • dede cms如何定时主动推送文章 dede实现
- • 织梦dede发布文章实时api主动推送
- • 织梦dedecms当前位置标签代码的5种写法
- • 织梦DEDECMS文章、栏目页获取当前页面顶
DedeCMS让channelartlist支持currentstyle属性
dedecms默认源码的channelartlist是不支持currentstyle属性的。currentstyle属性在导航中应用的比较多,可以实现循环调用栏目后,当前页<li>标签获得一个的属性,具体作用就不做说明了,需要修改文件。
打开include\taglib\channelartlist.lib.php找到:
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]); 在此行代码下方增加以下代码: //让channelarclist支持currentstyle属性 if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){ $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'nLi on'; } else{ $pv->Fields['currentstyle'] = 'nLi'; } //让channelarclist支持currentstyle属性end网上找到的一般没有加$typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['topid']
添加这个后才能对二级栏目也起作用。
调用办法: {dede:channelartlist typeid='2' current} <li> <a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a> </li> {/dede:channelartlist}如果是当前栏目则 li的class属性显示current,否则显示,也可以修改current。
导航用channelartlist调用子栏目办法 <div> <li {dede:field name=typeid runphp="yes"}(@me=="")? @me="":@me="";{/dede:field}> <a href='{dede:global.cfg_basehost/}'>首页</a> </li> <!-- 首页判断是否添加class --> {dede:channelartlist typeid='top' current} <li> <a href=http://www.dede58.com/a/dedejq/"{dede:field name='typeurl'/}">{dede:field name='typename'/}</a> <ul> {dede:channel type='son' noself='yes'} <li><a href=http://www.dede58.com/a/dedejq/"[field:typelink/]">[field:typename/]</a></li> {/dede:channel} </ul> </li> {/dede:channelartlist} </div>循环调用出的栏目<li>会有一个class=“navOn”属性。
配合使用 SuperSlide可以构建美观的下拉菜单功能具体的办法可以参考官方的使用办法,我使用的时候发现,“手动或后台程序添加titOnClassName类名(默认是'on'),相当于设置参数defaultIndex:2。若同时设置参数returnDefault:true,则鼠标移走后返回当前频道。 ”这个功能失效,更新后才能正常使用,但是一定要按照以上步骤进行修改才能让channelartlist支持currentstyle属性。下面附修改办法:
include\taglib\channelartlist.lib.php部分修改为
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){ $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'nLi on'; } else{ $pv->Fields['currentstyle'] = 'nLi';后台调用部分修改为:
<div> <li {dede:field name=typeid runphp="yes"}(@me=="")? @me="":@me="";{/dede:field}> <a href='{dede:global.cfg_basehost/}'>首页</a> </li> <!-- 当前栏目输出<li>,非当前栏目输出<li> --> {dede:channelartlist typeid='top' current} <li> <a href=http://www.dede58.com/a/dedejq/"{dede:field name='typeurl'/}">{dede:field name='typename'/}</a> <ul> {dede:channel type='son' noself='yes'} <li><a href=http://www.dede58.com/a/dedejq/"[field:typelink/]">[field:typename/]</a></li> {/dede:channel} </ul> </li> {/dede:channelartlist} </div> 本文章网址:http://www.ppssdd.com/code/14353.html。转载请保留出处,谢谢合作!dede让channelartlist标签支持currentstyle属性 完美解决
打开include\taglib\channelartlist.lib.PHP
找到
在此行代码下方增加以下代码: