如果您对dedecms织梦点击数过千、万、亿的写法感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解dedecms织梦点击数过千、万、亿的写法的各种细节,此外还有关于Dedecms动态调用文章点击
如果您对dedecms织梦点击数过千、万、亿的写法感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解dedecms织梦点击数过千、万、亿的写法的各种细节,此外还有关于Dedecms动态调用文章点击数、dedecms织梦dede:channel里面调用文章列表、dedecms织梦{dede:loop}标签调用文章链接的方法、DedeCMS织梦{dede:sql}数据库标签实现分页的实用技巧。
本文目录一览:- dedecms织梦点击数过千、万、亿的写法
- Dedecms动态调用文章点击数
- dedecms织梦dede:channel里面调用文章列表
- dedecms织梦{dede:loop}标签调用文章链接的方法
- DedeCMS织梦{dede:sql}数据库标签实现分页
dedecms织梦点击数过千、万、亿的写法
在 include\extend.func.php *下面加个函数
function click_round_number( $number, $min_value = 1000, $decimal = 1 ) {
if( $number < $min_value ) {
return $number;
}
$alphabets = array( 100000000 => '亿', 10000 => '万', 1000 => '千' );
foreach( $alphabets as $key => $value )
if( $number >= $key ) {
return round( $number / $key, $decimal ) . '' . $value;
}
}
调用标签如下:
{dede:field.click function="click_round_number(@me)"/}
Dedecms动态调用文章点击数
代码:总结
以上是小编为你收集整理的Dedecms动态调用文章点击数全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
dedecms织梦dede:channel里面调用文章列表
{dede:channel type='son' noself='yes'} [field:id runPHP=yes] global $dsql; $sql = "SELECT arc.* FROM `mydiy_archives` arc where arc.arcrank>-1 AND arc.typeid = @me ORDER BY arc.id desc limit 10"; $dsql->SetQuery($sql); $dsql->Execute('t'); $result = ''; while($row = $dsql->GetArray('t')) { $arcurl = GetoneArchive($row['id']); $pubdate = MyDate('m-d',$row['pubdate']); $result .= <<< TPL |
dedecms织梦{dede:loop}标签调用文章链接的方法
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动态调用文章点击数、dedecms织梦dede:channel里面调用文章列表、dedecms织梦{dede:loop}标签调用文章链接的方法、DedeCMS织梦{dede:sql}数据库标签实现分页的相关信息,可以在本站进行搜索。
本文标签: