dede channelartlist 中引用channel 并且设置当前选择类的样式,暂时没有效果.特发求助!!!!

在dede中需要达到当前选择了该类,样式不同的话.如果是channelartlist 的话. 可以使用下面的情况:

1 {dede:channelartlist typeid=‘6‘ row=‘3‘ currentstyle=‘current‘}
2     <li class=‘{dede:field.currentstyle/}‘>
3         <a href=‘{dede:field name=‘typeurl‘/}‘>
4             {dede:field name=‘typename‘/}
5         </a>
6     </li>
7 {/dede:channelartlist}

这个默认没有效果.需要在channelartlist.lib.php中做下面的步骤:

在这行的下面添加

1 $pv->Fields[‘typeurl‘] = GetOneTypeUrlA($typeids[$i]);
 1         ##########################################################
 2
 3          if($typeids[$i][‘id‘] == $refObj->TypeLink->TypeInfos[‘id‘] || $typeids[$i][‘id‘] == $refObj->TypeLink->TypeInfos[‘topid‘] ){
 4             $pv->Fields[‘currentstyle‘] = $currentstyle ? $currentstyle : ‘current‘;
 5         }
 6         else{
 7             $pv->Fields[‘currentstyle‘] = ‘‘;
 8         }
 9
10         ###########################################################

添加上面的代码才可以.

如果只是使用channel的话. 可以使用下面来实现. 在此引用 "元曦" 的图. 也谢谢"元曦"的帮助.

但是.如果两个套一起. 就实现不了.以下帖上我的代码.

 1 {dede:channelartlist typeid=‘6‘ row=‘3‘ currentstyle=‘current‘}
 2     <li class=‘{dede:field.currentstyle/}‘>
 3         <a href=‘{dede:field name=‘typeurl‘/}‘>
 4             {dede:field name=‘typename‘/}
 5         </a>
 6         <ul class="faq_ul2">
 7             {dede:channel type=‘son‘ noself=‘yes‘ currentstyle="
 8                 <li class=‘testclass‘>
 9                     <a href=‘~typelink~‘ title="~typename~">~typename~</a>
10                 </li>
11             "}
12                 <li>
13                     <a title="[field:typename/]" href="[field:typelink/]">--[field:typename/]</a>
14                 </li>
15              {/dede:channel}
16         </ul>
17     </li>
18 {/dede:channelartlist}

这样channelartlist 会有class的样式. 但是内部 channel 并不会有class="testclass" ,甚是不解。

于是决定至底层的php文件中查看一下。在channel.lib.php中输出测试一下。

 1                 //处理同级栏目中,当前栏目的样式
 2                 if( ($row[‘id‘]==$typeid || ($topid==$row[‘id‘] && $type==‘top‘) ) && $currentstyle!=‘‘ )
 3                 {
 4                     print ‘test_4‘;  //测试输出
 5                     $linkOkstr = $currentstyle;
 6                     $row[‘typelink‘] = GetOneTypeUrlA($row);
 7                     $linkOkstr = str_replace("~rel~",$row[‘rel‘],$linkOkstr);
 8                     $linkOkstr = str_replace("~id~",$row[‘id‘],$linkOkstr);
 9                     $linkOkstr = str_replace("~typelink~",$row[‘typelink‘],$linkOkstr);
10                     $linkOkstr = str_replace("~typename~",$row[‘typename‘],$linkOkstr);
11                     $likeType .= $linkOkstr;
12                 }
13                 else
14                 {
15                     print ‘test_5‘; //测试输出
16                     $row[‘typelink‘] = $row[‘typeurl‘] = GetOneTypeUrlA($row);
17                     if(is_array($dtp2->CTags))
18                     {
19                         foreach($dtp2->CTags as $tagid=>$ctag)
20                         {
21                             if(isset($row[$ctag->GetName()])) $dtp2->Assign($tagid,$row[$ctag->GetName()]);
22                         }
23                     }
24                     $likeType .= $dtp2->GetResult();
25
26                 }

看是输出的test_5. 不解. 暂做记录.也希望大家给上上课.

不要单个效果的.已经实现 .或者小弟那里有理解不对的地方. 请指出.

主要是需要

11111111111111111

1-2

1-3

22222222222222222

2-1

2-2

如果上面有选择2-1的时候.2-1的样式发生变化 .

时间: 2024-11-25 04:44:12

dede channelartlist 中引用channel 并且设置当前选择类的样式,暂时没有效果.特发求助!!!!的相关文章

PHP中引用类的属性

在一个类中,可以访问一个特殊的指针--$this.如果当前类的一个属性为$attribute,则当在该类中通过一个操作设置或访问该变量时,可以使用$this->attribute来引用. class classname { public $attribute; function operation($param) { $this->attibute = $param echo $this->attribute; } }

关于wamp5中(apache)设置虚拟主机

找了很多文章,但是很多对于最新的apache都已经过时无法生效了. http://blog.csdn.net/yuluo727282752/article/details/6944359 这篇文章写得非常好,记录下来,下面为全文引用. 完成一个项目,总要进行一些测试,但是在自己本上测试或许有一些自己想不到的BUG出现,于是配置一个虚拟主机可以为自己更方便的解决BUG,也可以方便演示时大家测试 以下是我在网上寻到的一些方法,分享给大家 开发环境:WAMP 实例一,Apaceh配置localhost

Windows Store App 全球化:在后台代码中引用字符串资源

上文提到了引用字符串资源具有两种方式,分别是在XAML元素中和在后台代码中引用资源文件中的字符串资源.在第一小节已经介绍了如何在XAML元素中引用字符串资源,本小节将讲解在后台代码中引用字符串资源的相关知识点. 下面通过一个示例直接讲述如何在后台代码中引用资源文件中的字符串资源.新建一个Windows应用商店的空白应用程序项目,并命名为StringResourcesInCode.在项目中新建一个名为"Strings"的文件夹,在"Strings"文件夹下新建名为&q

Java中引用类 strong reference .SoftReference 、 WeakReference 和 PhantomReference的区别

当在 Java 2 平台中首次引入 java.lang.ref 包,其中包含 SoftReference . WeakReference 和 PhantomReference 三个引用类,引用类的主要功能就是能够引用仍可以被垃圾收集器回收的对象.在引入引用类之前,我们只能使用强引用(strong reference).举例来说,下面一行代码显示的就是强引用 obj : Object obj = new Object(); obj 这个引用将引用堆中存储的一个对象.只要 obj 引用还存在,垃圾收

Windows Store App 全球化:在XAML元素中引用字符串资源

在应用程序中可以通过XAML元素和后台代码两种方式引用资源文件中的字符串资源.本小节先讲述如何在XAML元素中引用字符串资源的相关知识点. 在XAML元素中可以通过使用x:Uid属性来引用资源文件中的字符串资源,这些字符串资源存储在资源文件中,下面介绍如何在项目中新建资源文件.添加字符串资源以及在XAML元素中通过x:Uid属性引用资源文件中的字符串资源. 在Visual Studio 2012中新建一个Windows应用商店的空白应用程序项目,并命名为StringResourcesInXaml

Quartz中时间表达式的设置-----corn表达式 (转)(http://www.cnblogs.com/GarfieldTom/p/3746290.html)

Quartz中时间表达式的设置-----corn表达式 (注:这是让我看比较明白的一个博文,但是抱歉,没有找到原作者,如有侵犯,请告知) 时间格式: <!-- s m h d m w(?) y(?) -->,   分别对应: 秒>分>小时>日>月>周>年, 举例: 1.每天什么时候执行: <value>0 59 23 * * ?</value>: 如下为每天23:59:00开始执行 <value>0 1,2,3 11,12

织梦dede:channelartlist 标签在列表页没法调用软件下载地址softlinks

dede:channelartlist 虽然比较好用,但只可嵌套dede:arclist 标签,如果dede:arclist 标签中还有{dede:link islocal='1' text='本地下载'} ,则没法解析.需要在列表页单独用dede:arclist 标签,而不可再嵌套在dede:channelartlist 标签之内.

IOS 编程中引用第三方的方类库的方法及常见问题(转载)

//原文:http://www.th7.cn/Program/IOS/201407/244585.shtml 方法一:直接复制所有源文件到项目中 这种方法就是把第三方类库的所有源文件复制到项目中,直接把所有.h和.m文件拖到XCode项目中即可. 注意: 1. 如果第三方类库引用了一些系统自带类库,那么在项目中还需要额外引用那些类库. 2. 如果当前的项目启用了ARC,而引用的第三方类库未使用ARC,那还需要在项目信息的Targets – Build Parses 里找到第三方类库的.m文件,并

设置项目中控件的样式:webconfig中system.web下的Pages节点

关于system.web下面的Pages节点的详细说明,MSDN上面有,看这里. 这个Pages节点下的theme属性可以设置项目中控件的样式,直接引用skin文件来设置样式,不用在每个页面中添加,可以保证页面风格的一致性: <pages theme= "defaultTheme" /> 关于theme的添加: 创建主题完毕之后,在App_Themes文件夹下创建自己的样式,pages里面就可以直接使用了. 当然,如果要在某个页面中添加自定义的样式,可以在aspx中指定pa