在这篇文章中,我们将为您详细介绍DedeCms常用函数参考:动态分页类的内容,并且讨论关于说明动态分页系统中的“抖动”的起因和现象的相关问题。此外,我们还会涉及一些关于DedeCMS5.7标签tag长
在这篇文章中,我们将为您详细介绍DedeCms 常用函数参考:动态分页类的内容,并且讨论关于说明动态分页系统中的“抖动”的起因和现象的相关问题。此外,我们还会涉及一些关于DedeCMS 5.7 标签tag长度限制的修改办法、DEDECMS JSON数据生成 DEDECMS JSON接口制作、dedecms list 判断 每隔3次输出内容、dedecms sql标签中调用其它变量值功能修改的知识,以帮助您更全面地了解这个主题。
本文目录一览:- DedeCms 常用函数参考:动态分页类(说明动态分页系统中的“抖动”的起因和现象)
- DedeCMS 5.7 标签tag长度限制的修改办法
- DEDECMS JSON数据生成 DEDECMS JSON接口制作
- dedecms list 判断 每隔3次输出内容
- dedecms sql标签中调用其它变量值功能修改
DedeCms 常用函数参考:动态分页类(说明动态分页系统中的“抖动”的起因和现象)
DedeCms V5.3 常用函数参考:动态分页类
类文件
include/datalistcp.class.php
适用范围:数据量不大的数据分页
使用办法:
$dl = new DataListCP();
$dl->pageSize = 25; //设定每页显示记录数(默认25条)
$dl->SetParameter($key,$value); //设定get字符串的变量
//这两句的顺序不能更换
$dl->SetTemplate($tplfile); //载入源码
$dl->SetSource($sql); //设定查询SQL
$dl->Display(); //显示
源码
listitem、listsize 是可选属性
如果需要自定义 datalist 相关属性,可以继续本类来创建一个新类,只需改变 GetArcList($atts,$refObj='',$fields=array()) 办法即可。
DedeCMS 5.7 标签tag长度限制的修改办法
大家都知道默认情况下,dedecms的标签tag长度是12个字节,也就是6个汉字,哪知道在织梦5.7中,也没有改掉这个烦恼的事,可能这个设定是基于效率问题考虑的,如果更新的时候设置的长度超过这个字符,系统就会不显示这个tag。有时候需要根据实际情况修改tag的长度,下面是办法,测试可用。
1.修改数据库中表dede_tagindex 和dede_taglist的tag字段属性:varchar(12)修改为varchar(255) 。
这个步骤需要直接操作数据库。
2.修改文件:/include/helpers/archive.helper.php
查找:if(isset($tag[12]) 修改为:if(isset($tag[255]) ;
再将if(isset($tag[20]) 修改为:if(isset($tag[255]) 。
本文章网址:http://www.ppssdd.com/code/13690.html。转载请保留出处,谢谢合作!DEDECMS JSON数据生成 DEDECMS JSON接口制作
json数据格式可以方便不同站点之间进行数据调用引用,当然我们的DEDECMS也可以实现全站数据生成JSON供其他站点调用,代码很简单,主要用到include/json.class.php。
织梦本身是自带json标签的,调用办法:
{dede:json url='' cache=300}
[field:id/]-[field:title/]<br/>
{/dede:json}
这个标签调用例子在织梦手册里已经给我们提供了,url是一个远程json接口地址,这个接口文件json.php代码 里面,*后的返回必须是把数据通过json_encode($feeds)系统函数,进行json编码后,通过echo或print()函数来打印出来,这二点是必须的,然后,在前台我们就可以通过$.ajax()或$.getjson()来获取数据。织梦系统给我们提供了一个json类,在include/json.class.php文件里面,也就是是说,我们在对php文件转换json编码,就有了二种办法:
1.直接用php系统给我们提供的系统函数,json_encode(),我建立大家用这个,即简单又省事,既然,php系统给我们提供了,我们可以不用织梦系统提供的。
2.就是用织梦系统提供的,encode(),在使用前,首先引入json.class.php,即:
require_once(DEDEINC.'/json.class.php');
$json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);
echo $json->encode($reval);
$reval这个变量是我们从数据库或其它地方得到的,一般是一个二维数组,例如下:
Array (
[0] => Array ( [id] => 95 [title] => 原图设计)
[1] => Array ( [id] => 113 [title] => ssssssssssss)
[2] => Array ( [id] => 111 [title] => hjhj )
[3] => Array ( [id] => 110 [title] => ssssssssssss)
)
经echo 以后,显示的内容如下所示。
[
{"id":"95","title":"\u539f\u521b"},
{"id":"113","title":"ssssssssssss"},
{"id":"111","title":"hjhj"},
{"id":"110","title":"ssssssssssss"}
]
这是经过encode()或用json_encode()后,显示的内容。即,用中括号括起来的,几个json数据,这个数据回给请求的$.ajax()或$.getjson(),并由其对这个数据进行处理,显示我们相要的结果。
知道了原理,接下来就是详细实现办法,如下:
首先新建一个PHP文件,命名为json.php(也可以新建个文件夹命名为api,然后PHP命名为index.php,这样调用的时候就只需要你的域名/api这样的方式调用),用于作为被调用的API接口,代码如下:
<?php
$cfg_NotPrintHead = false;
header("Content-Type: text/html; charset=utf-8");
include_once (dirname(__FILE__)."/../include/common.inc.php");
error_reporting(E_ALL || ~E_NOTICE);
require_once(DEDEINC.'/json.class.php');
$reval = array();
$dsql->SetQuery("SELECT id,title FROM `dede_archives` ORDER BY id DESC LIMIT 0,10");
$dsql->Execute('me');
while ($row = $dsql->GetArray('me')) {
$row['title'] = gb2utf8($row['title']);
$reval[] = $row;
}
$json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);
echo $json->encode($reval);
?>
这里代码有进行了GBK转UTF8的操作,所以兼容GBK版的DEDECMS
调用办法:
{dede:json url='域名/json.php' cache=300}
[field:id/]-[field:title/]<br/>
{/dede:json}
把调用代码放到你你需要的地方就行
本文章网址:http://www.ppssdd.com/code/10237.html。转载请保留出处,谢谢合作!dedecms list 判断 每隔3次输出内容
{dede:list pagesize='12' runphp='yes'} [field:global name=autoindex runphp="yes"](@me%3==0)? @me='输出':@me='';[/field:global] {/dede:list}
花了好几个小时才解决,简直坑T,T
本文章网址:http://www.ppssdd.com/code/12681.html。转载请保留出处,谢谢合作!dedecms sql标签中调用其它变量值功能修改
织梦cms的代码除了自身的功能以外在源码标签调用以及自定义模型等方面确实很差,下面是是用sql标签调用匹配其他参数的代码修改:
一般在新闻页使用sql标签匹配另外一个参数我们会按照以下这样写,但结果输出为空:
{dede:sql sql="select title from `dede_archives` where `title` like '%~pername~%'" db='default'}
<li><a href='[field:arcurl/]'>[field:title/]</a> </li>
{/dede:sql}
dedecms源码标签默认编译的结果就是select title from `dede_archives` where `title` like '~%pername%~' 并没有传递进来pername的参数。
此时我们需要对织梦cms的函数进行以下修改:
$sql = str_replace($conditions[0][$key], "'".addslashes($refObj->Fields[$value])."'", $sql);
修改为:(只需把引号去掉就可以实现了)
$sql = str_replace($conditions[0][$key], addslashes($refObj->Fields[$value]), $sql);
或者我们可以复制一份include/taglib/sql.lib.php重命名为likesql.lib.php并将对应代码修改,这样我们可以不影响{dede:sql sql=""}标签而用新的{dede:likesql sql=""}来实现模糊搜索。
本文章网址:http://www.ppssdd.com/code/13636.html。转载请保留出处,谢谢合作!我们今天的关于DedeCms 常用函数参考:动态分页类和说明动态分页系统中的“抖动”的起因和现象的分享已经告一段落,感谢您的关注,如果您想了解更多关于DedeCMS 5.7 标签tag长度限制的修改办法、DEDECMS JSON数据生成 DEDECMS JSON接口制作、dedecms list 判断 每隔3次输出内容、dedecms sql标签中调用其它变量值功能修改的相关信息,请在本站查询。
本文标签: