GVKun编程网logo

dedecms织梦实现样式奇偶循环

9

在本文中,我们将给您介绍关于dedecms织梦实现样式奇偶循环的详细内容,此外,我们还将为您提供关于dedecms织梦loop循环调用自定义表单的留言内容、DedeCMS织梦{dede:sql}数据库

在本文中,我们将给您介绍关于dedecms织梦实现样式奇偶循环的详细内容,此外,我们还将为您提供关于dedecms织梦loop循环调用自定义表单的留言内容、DedeCMS织梦{dede:sql}数据库标签实现分页、dedecms织梦不同栏目导航显示不同样式的办法、dedecms织梦不同栏目导航显示不同样式的方法的知识。

本文目录一览:

dedecms织梦实现样式奇偶循环

dedecms织梦实现样式奇偶循环

 
我们在用织梦dedecms建站时,经常碰到需要奇偶循环的样式,来实现网页的排版。直接上代码:
 
[field:global name='autoindex' runphp='yes']@me=(@me%2==0)?'样式2':'样式1';[/field:global]
本文章网址:http://www.ppssdd.com/code/1271.html。转载请保留出处,谢谢合作!

dedecms织梦loop循环调用自定义表单的留言内容

dedecms织梦loop循环调用自定义表单的留言内容

 
今天,郑州蝶动网络给大家带来一个织梦用loop循环调用自定义表单的留言内容技巧写法
          {dede:loop table='dede_ppssdd' sort='id' row='30' if='ifcheck=1'}
            <dl>
              <dt><span>[field:id/]<sup>#</sup></span><span>[field:name/]</span><span>[field:shijian/]</span></dt>
              <dd><span>留言内容</span><span>[field:content/]...</span></dd>
            </dl>
            {/dede:loop}
 
在这其中,dede_ppssdd 指的是 自定义表单的表名。sort='id' 按id排列 调用30条
本文章网址:http://www.ppssdd.com/code/955.html。转载请保留出处,谢谢合作!

DedeCMS织梦{dede:sql}数据库标签实现分页

DedeCMS织梦{dede:sql}数据库标签实现分页

下面是小编 jb51.cc 通过网络收集整理的代码片段。小编小编现在分享给大家,也给大家做个参考。

近研究了一下织梦 CMS 系统,看到一篇关于 sql 标签调用数据列表如何翻页的文章,感觉不错,贴出来大家分享一下。相信很多使用 Dedecms 的朋友在网上查找关于 dede:sql 标签进行分页的解决方案时都不尽如人意,尤其是在列表页使用 dede:sql 调用外部数据(所谓调用外部数据就是指在后台只是创建个空栏目,然后对应的列表模板文件中使用 dede:sql 指定自定义的数据源,数据源与该栏目本身是没有逻辑关系的,目的是为了让织梦能按照它的规则来帮我们将数据源生成静态文件予以展示)时,我本人也搜索了很多资料,网上的答案都不够完美,有的是直接在模板文件中执行 PHP 代码来实现分页,显然此方法无法生成静态文件,有的直接在 sql 里面指定 limit 参数,但又无法实现智能分页,织梦官方也没有给出具体的解决方案,在 dede 论坛有看到织梦核心人物天涯给出的回复是采用自由列表的方法,显然自由列表无法指定外部数据源,最后实在没办法只能自己动手了,首先想到的思路是将 dede:list 标签进行改造了,熟悉 dede 的朋友应该知道这个列表页专用标签的工作原理大致是先通过栏目变量 id 获取到对应的数据源再呈现到页面上来,那么我们就可以让它不仅仅通过栏目变量 id 还可以通过指定的 sql 语句来获取数据源了,比如我们可以另外嵌入一个类似{dede:listsql sql='select * from wp_posts' pagesize='10'}的标签来使用。

OK,思路已经有了,接下来我们打开 include/arc.listview.class.PHP 这个文件来给它动个小手术吧!

找到:

if(!is_object($ctag))

{

$ctag = $this->dtp->GetTag("list");

}

这一段,在其后添加如下代码:

if(!is_object($ctag))

{

$ctag = $this->dtp->GetTag("listsql");

if (is_object($ctag))

{

$cquery = $ctag->GetAtt("sql");

$cquery = preg_replace("/SELECT(.*?)FROM/is"," SELECT count(*) as dd FROM ",$cquery);

$cquery = preg_replace("/ORDER(.*?)SC/is","",$cquery);

$row = $this->dsql->Getone($cquery);

if(is_array($row))

{

$this->TotalResult = $row['dd'];

}

else

{

$this->TotalResult = 0;

}

}

}

//end

然后找到:

if($ctag->GetName()=="list")

{

$limitstart = ($this->PageNo-1) * $this->PageSize;

$row = $this->PageSize;

if(trim($ctag->GetInnerText())=="")

{

$InnerText = GetSystemplets("list_fulllist.htm");

}

else

{

$InnerText = trim($ctag->GetInnerText());

}

$this->dtp->Assign($tagid,

$this->GetArcList(

$limitstart,

$row,

$ctag->GetAtt("col"),

$ctag->GetAtt("titlelen"),

$ctag->GetAtt("infolen"),

$ctag->GetAtt("imgwidth"),

$ctag->GetAtt("imgheight"),

$ctag->GetAtt("listtype"),

$ctag->GetAtt("orderby"),

$InnerText,

$ctag->GetAtt("tablewidth"),

$ismake,

$ctag->GetAtt("orderway")

)

);

}

这一段,在其后添加如下代码:

else if($ctag->GetName()=="listsql")

{

$limitstart = ($this->PageNo-1) * $this->PageSize;

$row = $this->PageSize;

if(trim($ctag->GetInnerText())=="")

{

$InnerText = GetSystemplets("list_fulllist.htm");

}

else

{

$InnerText = trim($ctag->GetInnerText());

}

$this->dtp->Assign($tagid,

$this->GetsqlList(

$limitstart,

$ctag->GetAtt("sql"),

$InnerText

)

);

}

//end

最后找到 function GetArcList 这个方法,在其后添加一个可以通过传入 sql 参数获取指定数据源的方法,代码如下:

/**

 * 通过listsql标签中sql属性传入的参数来获得一个单列的文档列表

 * */

function GetsqlList($limitstart = 0,$row = 10,$sql = '',$innertext){

 

global $cfg_list_son;

$innertext = trim($innertext);

 

if ($innertext == '') {

$innertext = GetSystemplets('list_fulllist.htm');

}

//处理sql语句

$limitStr = " LIMIT {$limitstart},{$row}";

 

$this->dsql->SetQuery($sql . $limitStr);

$this->dsql->Execute('al');

$t2 = ExecTime();

 

//echo $t2-$t1;

$sqllist = '';

$this->dtp2->LoadSource($innertext);

$GLOBALS['autoindex'] = 0;

 

//获取字段

while($row = $this->dsql->GetArray("al")) {

 

$GLOBALS['autoindex']++;

 

if(is_array($this->dtp2->CTags))

{

foreach($this->dtp2->CTags as $k=>$ctag)

{

if($ctag->GetName()=='array')

{

//传递整个数组,在runPHP模式中有特殊作用

$this->dtp2->Assign($k,$row);

}

else

{

if(isset($row[$ctag->GetName()]))

{

$this->dtp2->Assign($k,$row[$ctag->GetName()]);

}

else

{

$this->dtp2->Assign($k,'');

}

}

}

}

 

$sqllist .= $this->dtp2->GetResult();

 

}//while

 

$t3 = ExecTime();

//echo ($t3-$t2);

$this->dsql->FreeResult('al');

 

return $sqllist;

}

//end

总共就添加三段代码,每一段代码基本都参考它紧接着的上面那段原始代码,而无需改变它原来任何一个地方的代码,应该算是比较完美了,接下来在模板文件中的使用方法就跟一开始思路中所提到的那样,分页标签依旧沿用原来的,调用范例:

{dede:listsql sql='select ID,post_title from wp_posts' pagesize='10'}

<li><a href="[field:ID /].html">[field:post_title /]</a></li>

{/dede:listsql}

<!--分页-->

{dede:Pagelist listsize='2' listitem='index pre pageno next end '/}

注:以上解决方案适用于 Dedecms5.6-5.7 版本。

以上是小编(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得小编网站内容还不错,欢迎将小编网站推荐给程序员好友。

dedecms织梦不同栏目导航显示不同样式的办法

dedecms织梦不同栏目导航显示不同样式的办法

 

织梦CMS实现当前栏目显示不同的样式,例如 id 是 6 的栏目:      

{dede:field runphp='yes' name = 'typeid'}   @me= (@me==6 ? 'class=on' : '');   {/dede:field}  

  解析:

  此办法就是读取当前栏目的 id ,然后在生成的时候添加 class 属性

  扩展:

  当栏目ID为1或2时显示一种样式,其余栏目显示其他样式      

{dede:field runphp='yes' name = 'typeid'}   if(@me==1||@me==2){   @me="织梦源码网";   }else{   @me=www.dede58.com;   }   {/dede:field}  

本文章网址:http://www.ppssdd.com/code/11419.html。转载请保留出处,谢谢合作!

dedecms织梦不同栏目导航显示不同样式的方法

dedecms织梦不同栏目导航显示不同样式的方法

织梦dedecms实现当前栏目显示不同的样式,例如 id 是 6 的栏目:      

{dede:field runPHP='yes' name = 'typeid'}

      @me= (@me==6 ? 'class=on' : '');

      {/dede:field}

 

  解析:

  此方法就是读取当前栏目的 id ,然后在生成的时候添加 class 属性

  扩展:

  当栏目ID为1或2时显示一种样式,其余栏目显示其他样式      

{dede:field runPHP='yes' name = 'typeid'}

      if(@me==1||@me==2){

      @me="织梦模板网";

      }else{

      @me=www.dede58.com;

      }

  {/dede:field}

今天关于dedecms织梦实现样式奇偶循环的分享就到这里,希望大家有所收获,若想了解更多关于dedecms织梦loop循环调用自定义表单的留言内容、DedeCMS织梦{dede:sql}数据库标签实现分页、dedecms织梦不同栏目导航显示不同样式的办法、dedecms织梦不同栏目导航显示不同样式的方法等相关知识,可以在本站进行查询。

本文标签: