GVKun编程网logo

DedeCMS织梦增加TAG属性分类及调用(织梦tag标签怎么用)

10

对于DedeCMS织梦增加TAG属性分类及调用感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解织梦tag标签怎么用,并且为您提供关于dedecms织梦增加会员下载授权额度功能教程、DedeC

对于DedeCMS织梦增加TAG属性分类及调用感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解织梦tag标签怎么用,并且为您提供关于dedecms 织梦增加会员下载授权额度功能教程、DedeCMS增加TAG属性分类及调用、DEDECMS织梦dede:freelist标签增加排序方式、dedecms织梦tag keyword怎么调用相关文章的宝贵知识。

本文目录一览:

DedeCMS织梦增加TAG属性分类及调用(织梦tag标签怎么用)

DedeCMS织梦增加TAG属性分类及调用(织梦tag标签怎么用)

 

DedeCMS的TAG标签不是很灵活,有时候我们的标签需要进行一个分类,能不能像{dede:arclist}标签的自定义属性(如:flag='c,h'),这样全站调用的时候更灵活。

前面写过一篇新闻《DedeCMS织梦增加TAG标签描述》,再拓展一下就行,有看不懂的步骤那篇新闻写得详细些。

全站调用TAG标签办法一般是

{dede:tag row='100' sort='new' getall='1'} <a target="_blank" href='[field:link/]'>[field:tag /]</a> {/dede:tag}  

默认的只有以下参数

row:调用条数 sort:排序方式 month,rand,week getall:获取类型 0 为当前内容详细页TAG标记,1为获取全部TAG标记 数据库部分

用Navicat数据库管理工具打开dede_tagindex数据表(默认的表前缀),依次点击文件 -> 设计表。新增

字段:addtagtype 类型:int 长度:10

也可以用sql命令

alter table `dede_tagindex` add `addtagtype` int(10) NOT NULL default '';  
后台部分

打开后台/dede/tags_main.php,大概在27行找到

$dlist->SetParameter("tag", $tag);  

下面增加

$dlist->SetParameter("addtagtype", $addtagtype); //by  

大概在49行找到(下面红色的分隔符请去除)

$query = "UPDATE `#分隔符@__tagindex` SET `count`='$count' WHERE id='$tid' ";  

修改为

$query = "UPDATE `#分隔符@__tagindex` SET `count`='$count',`addtagtype`='$addtagtype' WHERE id='$tid' ";  

大概在147行找到

$query = " INSERT INTO `#分隔符@__tagindex`(`tag`,`count`,`total`,`weekcc`,`monthcc`,`weekup`,`monthup`,`addtime`) VALUES('$keyword','0','1','0','0','$timestamp','$timestamp','$timestamp');";  

修改为

$query = " INSERT INTO `#分隔符@__tagindex`(`tag`,`addtagtype`,`count`,`total`,`weekcc`,`monthcc`,`weekup`,`monthup`,`addtime`) VALUES('$keyword','$tagms','0','1','0','0','$timestamp','$timestamp','$timestamp');";  

打开/dede/templets/tags_main.htm,找到更新JS

function UpdateOne(tid) { location = "tags_main.php?action=update&count="+document.getElementById('count'+tid).value+"&tid="+tid;  

增加tagtype参数,代码修改为

function UpdateOne(tid) { location = "tags_main.php?action=update&count="+document.getElementById('count'+tid).value+"&addtagtype="+document.getElementById('tagtype'+tid).value+"&tid="+tid;  

找到

<td width="10%">标签</td>  

下面增加

<td width="10%">属性</td>  

找到

<td> <a href=http://www.dede58.com/a/dedejq/"../tags.php?/<?php echo urlencode($fields['tag']); ?>/" target="_blank">{dede:field.tag /}</a> </td>  

下面增加

<td> <input type='text' value='<?php echo $fields['addtagtype']; ?>' id='tagtype<?php echo $fields['id']; ?>' size='5'/> </td>  

DedeCMS增加tag属性调用

这里的TAG属性可以根据自己的需要填写任意数字,比如属性是0、1。如果你觉得不直观,那就换成a,b,c之类的,只需要修改dede_tagindex数据表addtagtype数据类型为varchar,长度为255即可,办法就不详述了,下面是调用办法。

前端源码调用 {dede:sql sql="select * from dede_tagindex where addtagtype='1'"} 属性是1的内容:<a href=http://www.dede58.com/a/dedejq/"/tags?php/[field:tag/]/">[field:tag/]</a> {/dede:sql} {dede:sql sql="select * from dede_tagindex where addtagtype='0'"} 属性是0的内容:<a href=http://www.dede58.com/a/dedejq/"/tags?php/[field:tag/]/">[field:tag/]</a> {/dede:sql}  

里面的网址路径是默认写法,请根据自己的实际情况修改。数据表前缀请自行修改。

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

dedecms 织梦增加会员下载授权额度功能教程

dedecms 织梦增加会员下载授权额度功能教程

客户有个 dede 制作的行业网站,提供相关资料下载,作为主要盈利手段的金币充值业务需要接入微信、支付宝等支付方式。但是如果每笔都单独进行支付的话手续费会比较高,因此采用充值某种会员来进行的话会更划算。
dede 本身提供了会员产品,可以通过购买会员产品来达到不同的用户级别。那么我们只需要给相应的用户等级设置对应的下载配额就可以控制这一等级的免费额度了。

业务逻辑上客户要求,用户购买的等级可以每月得到规定的授信次数,用完后继续和正常情况一样充值金币下载。到下个月又重新授信。


1、设置表结构

1.1、用户等级表增加 每月下载授信次数 字段:

1 ALTER TABLE `dede_arcrank` ADD `download_credit` INT(11) UNSIGNED NOT NULL DEFAULT ''0'' COMMENT ''每月下载授信次数'' AFTER `scores`;

1.2、 用户表增加当前月授信次数、更新月份、已用次数等字段

1 ALTER TABLE `dede_member`
2 ADD `download_month` INT UNSIGNED NOT NULL DEFAULT ''0'' COMMENT ''下载授信月份'' AFTER `checkmail`,
3 ADD `download_counter` INT UNSIGNED NOT NULL DEFAULT ''0'' COMMENT ''下载授信使用次数'' AFTER `download_month`,
4 ADD `download_credit` INT UNSIGNED NOT NULL DEFAULT ''0'' COMMENT ''下载授信次数''AFTER `download_counter`;

2、后台管理界面

后台主要在用户等级管理界面进行调整,增删改查的时候增加响应的界面和处理代码即可,这里贴出修改的上下文,可以自行对应修改

2.1、dede/member_rank.php

01 //保存更改
02  if($dopost==''save'')
03  {
04 @@ -25,11 +32,12 @@ if($dopost==''save'')
05          $rank = ${"rank_".$startID};
06          $money = ${"money_".$startID};
07          $scores = ${"scores_".$startID};
08 +        $download_credit = ${"download_credit_".$startID};
09          if(isset(${"check_".$startID}))
10          {
11              if($rank>0)
12              {
13 -                $query = "UPDATE `qm_arcrank` SET membername=''$name'',money=''$money'',rank=''$rank'',scores=''$scores'' WHERE id=''$id'' ";
14 +                $query = "UPDATE `qm_arcrank` SET membername=''$name'',money=''$money'',rank=''$rank'',scores=''$scores'',download_credit=''$download_credit'' WHERE id=''$id'' ";
15              }
16          }
17          else
18 @@ -42,7 +50,7 @@ if($dopost==''save'')
19      {
20          if($rank_new > 0 && $name_new != '''' && $rank_new > 10)
21          {
22 -            $inquery = "INSERT INTO `qm_arcrank`(`rank`,`membername`,`adminrank`,`money`,`scores`,`purviews`) VALUES(''$rank_new'',''$name_new'',''5'',''$money_new'',''$scores'',''''); ";
23 +            $inquery = "INSERT INTO `qm_arcrank`(`rank`,`membername`,`adminrank`,`money`,`scores`,`download_credit`,`purviews`) VALUES(''$rank_new'',''$name_new'',''5'',''$money_new'',''$scores'', ''$download_credit'',''''); ";
24              $dsql->ExecuteNoneQuery($inquery);
25          }
26      }

2.2、dede/templets/member_rank.htm

01 @@ -20,6 +20,7 @@
02        <td width="18%">会员等级值</td>
03        <td width="15%">默认金币</td>
04        <td width="15%">默认积分</td>
05 +      <td width="15%">月免费下载次数</td>
06        <td width="16%">类型</td>
07        <td width="16%">状态</td>
08      </tr>
09 @@ -29,12 +30,13 @@
10         {
11           $k++;
12         ?>
13 -
14      <tr align="center" bgcolor="#FFFFFF" height="24">
15        <td><input type="hidden" name="ID_<?php echo $k?>" value="<?php echo $row->id; ?>"><input name="name_<?php echo $k?>" value="<?php echo $row->membername; ?>" type="text" id="name_<?php echo $k?>" c
16 lass=''autoinput alltxt'' /></td>
17        <td><input name="rank_<?php echo $k?>" value="<?php echo $row->rank; ?>"  type="text" id="rank_<?php echo $k?>" class=''autoinput alltxt'' /></td>
18        <td><input name="money_<?php echo $k?>"  value="<?php echo $row->money; ?>"  type="text" id="money_<?php echo $k?>" class=''autoinput alltxt'' /></td>
19        <td><input name="scores_<?php echo $k?>"  value="<?php echo $row->scores; ?>"  type="text" id="scores_<?php echo $k?>" class=''autoinput alltxt'' /></td>
20 +      <td><input name="download_credit_<?php echo $k?>"  value="<?php echo $row->download_credit; ?>"  type="text" id="download_credit_<?php echo $k?>" class=''autoinput alltxt'' /></td>
21        <td align="center">
22        <?php
23           if($row->id<=5) { echo "系统"; }
24 @@ -55,6 +57,7 @@
25        <td> 级别值(待审为0,注册会员为10) </td>
26        <td> 默认金币 </td>
27        <td> 默认积分 </td>
28 +      <td>默认月免费下载次数</td>
29        <td> 操作设置 </td>
30        <td>&nbsp;</td>
31      </tr>
32 @@ -63,6 +66,7 @@
33        <td><input name="rank_new" type="text" id="rank_new" value=''20'' class=''autoinput alltxt''  /></td>
34        <td><input name="money_new" type="text" id="money_new" value=''0'' class=''autoinput alltxt'' /></td>
35        <td><input name="scores_new" type="text" id="scores_new" value=''100'' class=''autoinput alltxt''  /></td>
36 +      <td><input name="download_credit_new" type="text" id="download_credit_new" value=''0'' class=''autoinput alltxt''  /></td>
37        <td><input name="check_new" type="checkbox" id="check_new" class="np" value="1" checked />
38          增加等级 </td>
39        <td>&nbsp;</td>

3、前端功能调整

首先用户在自己的控制面板需要能够查看自己的剩余额度,然后在下载的时候优先使用授信额度,使用完毕后如果继续下载则继续充值金币。

3.1、include/memberlogin.class.php

每次实例化当前登录用户信息的时候,都检查以下是否需要更新授信额度,然后在展示用户等级的时候显示已用额度和总额度。

01 //间隔一小时更新一次用户登录时间
02                  if(time() - $this->M_LoginTime > 3600)
03                  {
04                      $dsql->ExecuteNoneQuery("update `qm_member` set logintime=''".time()."'',loginip=''".GetIP()."'' where mid=''".$this->fields[''mid'']."'';");
05                      PutCookie("DedeLoginTime",time(),$this->M_KeepTime);
06                  }
07 +                $this->updateDownloadCredit();
08  
09              if(!is_array($rs)){
10                  if($this->M_Rank>10 && $this->M_HasDay>0) $sta .= " 剩余天数: <font color=''red''>".$this->M_HasDay."</font>  天 ";
11                  elseif($this->M_Rank>10) $sta .= " <font color=''red''>会员升级已经到期</font> ";
12 +                $sta .= sprintf(''月免费下载次数 %d/%d'', $this->M_DownloadCounter, $this->M_DownloadCredit);
13 +
14            }
15          }
16          $sta .= " 拥有金币:{$this->M_Money} 个, 积分:{$this->M_Scores} 分。";
17          return $sta;
18      }
19 -
20 +    function updateDownloadCredit(){
21 +        global $dsql;
22 +        $dc_month = date(''Ym'');
23 +        $rank = $dsql->GetOne("Select membername,download_credit From `qm_arcrank` where rank=''".$this->M_Rank."''");
24 +        $this->M_DownloadCredit = $rank[''download_credit''];
25 +        $this->M_DownloadMonth = $this->fields[''download_month''];
26 +        if($this->M_DownloadMonth < $dc_month){
27 +            $dsql->ExecuteNoneQuery("UPDATE `qm_member`
28 +                SET download_month=$dc_month,
29 +                download_credit = {$rank[''download_credit'']}
30 +                download_counter = 0
31 +                WHERE mid=''".$this->M_ID."''");
32 +        }
33 +        $this->M_DownloadCounter = $this->fields[''download_counter''];
34 +        $this->M_DownloadMonth = $dc_month;
35 +    }
36  
37 ### 3.2、`plus/download.php`
38 下载时在扣除金币的时候和之前一样,如果已经购买不再重复购买和使用授信额度。当需要购买时,优先使用剩余的授信额度,如果授信额度用完才继续进入购买金币流程。
39  
40 ```diff
41 @@ -196,25 +196,40 @@ else if($open==2)
42              //未购买过此文章
43              if( !is_array($row) )
44              {
45 -                //没有足够的金币
46 -                if( $needMoney > $cfg_ml->M_Money || $cfg_ml->M_Money=='''')
47 -                {
48 -                    $msgtitle = "你没有权限下载软件:{$arctitle}!";
49 -                    $moremsg = "这个软件需要 <font color=''red''>".$needMoney." 金币</font> 才能下载,你目前拥有金币:<font color=''red''>".$cfg_ml->M_Money." 个</font> !";
50 -                    include_once(DEDETEMPLATE.''/plus/view_msg.htm'');
51 -                    exit(0);
52 +                // 会员等级有相应的下载授信额度,则直接扣减额度,扣减完毕后才需要购买
53 +                if($cfg_ml->M_Rank && $cfg_ml->M_DownloadCredit && $cfg_ml->M_DownloadCounter < $cfg_ml->M_DownloadCredit){
54 +                     $inquery = "INSERT INTO `qm_member_operation`(mid,oldinfo,money,mtime,buyid,product,pname,sta)
55 +                      VALUES (''".$cfg_ml->M_ID."'',''$arctitle'',''$needMoney'',''".time()."''''ARCHIVE".$id."''''archive'',''下载软件(授信)'', 2); ";
56 +                    //记录定单
57 +                    if( !$dsql->ExecuteNoneQuery($inquery) )
58 +                    {
59 +                        ShowMsg(''记录定单失败, 请返回''''-1'');
60 +                        exit(0);
61 +                    }
62 +                    //记录已用授信次数
63 +                    $dsql->ExecuteNoneQuery("UPDATE `qm_member` SET download_counter = download_counter + 1 WHERE mid=''".$cfg_ml->M_ID."''");
64                  }
65 -                //有足够金币,记录用户信息
66 -                $inquery = "INSERT INTO `qm_member_operation`(mid,oldinfo,money,mtime,buyid,product,pname,sta)
67 -                  VALUES (''".$cfg_ml->M_ID."'',''$arctitle'',''$needMoney'',''".time()."''''ARCHIVE".$id."''''archive'',''下载软件'', 2); ";
68 -                //记录定单
69 -                if( !$dsql->ExecuteNoneQuery($inquery) )
70 -                {
71 -                    ShowMsg(''记录定单失败, 请返回''''-1'');
72 -                    exit(0);
73 +                else{
74 +                    //没有足够的金币
75 +                    if( $needMoney > $cfg_ml->M_Money || $cfg_ml->M_Money=='''')
76 +                    {
77 +                        $msgtitle = "你没有权限下载软件:{$arctitle}!";
78 +                        $moremsg = "这个软件需要 <font color=''red''>".$needMoney." 金币</font> 才能下载,你目前拥有金币:<font color=''red''>".$cfg_ml->M_Money." 个</font> !";
79 +                        include_once(DEDETEMPLATE.''/plus/view_msg.htm'');
80 +                        exit(0);
81 +                    }
82 +                    //有足够金币,记录用户信息
83 +                    $inquery = "INSERT INTO `qm_member_operation`(mid,oldinfo,money,mtime,buyid,product,pname,sta)
84 +                      VALUES (''".$cfg_ml->M_ID."'',''$arctitle'',''$needMoney'',''".time()."''''ARCHIVE".$id."''''archive'',''下载软件'', 2); ";
85 +                    //记录定单
86 +                    if( !$dsql->ExecuteNoneQuery($inquery) )
87 +                    {
88 +                        ShowMsg(''记录定单失败, 请返回''''-1'');
89 +                        exit(0);
90 +                    }
91 +                    //扣除金币
92 +                    $dsql->ExecuteNoneQuery("UPDATE `qm_member` SET money = money - $needMoney WHERE mid=''".$cfg_ml->M_ID."''");
93                  }
94 -                //扣除金币
95 -                $dsql->ExecuteNoneQuery("UPDATE `qm_member` SET money = money - $needMoney WHERE mid=''".$cfg_ml->M_ID."''");
96              }
97          }
98      }

4、测试

  • 管理后台 -> 会员产品分类 -> 设置产品定价
  • 管理后台 -> 会员级别设置 -> 设置对应级别授信额度
  • 用户首页(http://mysite.com/member)-> 消费中心(http://mysite.com/member/buy.php)- 会员升级 完成后可以回到首页查看个人的授信额度使用和剩余情况
  • 下载付费资料看是否不在需要付费,并且出现授信额度使用记录

5、总结

从修改开始修改代码到最后完成真心没超过半小时,但是在这之前我就觉得这个授信额度的每月重置功能如何设计很是闹心。增加定时任务?会员升级后马上处理?总之会引入各种问题,在思前想后想了很久才有这个办法:月份不对马上更新,授信额度不对马上更新,记录使用次数,比对时比对授信额度和已用次数即可,简单实用。

DedeCMS增加TAG属性分类及调用

DedeCMS增加TAG属性分类及调用

 Dedecms的TAG标签不是很灵活,有时候我们的标签需要进行一个分类,能不能像{dede:arclist}标签的自定义属性(如:flag='c,h'),这样全站调用的时候更灵活。

前面写过一篇文章《Dedecms增加TAG标签描述》,再拓展一下就行,有看不懂的步骤那篇文章写得详细些。

全站调用TAG标签方法一般是

PHP">{dede:tag row='100' sort='new' getall='1'} [field:tag /] {/dede:tag}

 默认的只有以下参数

row:调用条数 sort:排序方式 month,rand,week getall:获取类型 0 为当前内容页TAG标记,1为获取全部TAG标记

数据库部分

用Navicat数据库管理工具打开dede_tagindex数据表(默认的表前缀),依次点击文件 -> 设计表。新增

字段:addtagtype 类型:int 长度:10

也可以用sql命令

PHP">alter table `dede_tagindex` add `addtagtype` int(10) NOT NULL default '';

后台部分

打开后台/dede/tags_main.PHP,大概在27行找到

SetParameter("tag",$tag); 下面增加

SetParameter("addtagtype",$addtagtype); 大概在49行找到(下面红色的分隔符请去除)

PHP">$query = "UPDATE `#分隔符@__tagindex` SET `count`='$count' WHERE id='$tid' ";

修改为

PHP">$query = "UPDATE `#分隔符@__tagindex` SET `count`='$count',`addtagtype`='$addtagtype' WHERE id='$tid' "; 大概在147行找到

PHP">$query = " INSERT INTO `#分隔符@__tagindex`(`tag`,`count`,`total`,`weekcc`,`monthcc`,`weekup`,`monthup`,`addtime`) VALUES('$keyword','0','1','$timestamp','$timestamp');";

修改为

PHP">$query = " INSERT INTO `#分隔符@__tagindex`(`tag`,`addtagtype`,'$tagms','$timestamp');"; 打开/dede/templets/tags_main.htm,找到更新JS

PHP?action=update&count="+document.getElementById('count'+tid).value+"&tid="+tid;

增加tagtype参数,代码修改为

PHP?action=update&count="+document.getElementById('count'+tid).value+"&addtagtype="+document.getElementById('tagtype'+tid).value+"&tid="+tid;

找到

标签

下面增加

属性

找到

下面增加

' id='tagtype' size='5'/>

DedeCMS增加TAG属性分类及调用

这里的TAG属性可以根据自己的需要填写任意数字,比如属性是0、1。如果你觉得不直观,那就换成a,b,c之类的,只需要修改dede_tagindex数据表addtagtype数据类型为varchar,长度为255即可,方法就不详述了,下面是调用方法。

前端模板调用

sql="select * from dede_tagindex where addtagtype='1'"} 属性是1的内容: {/dede:sql} {dede:sql sql="select * from dede_tagindex where addtagtype='0'"} 属性是0的内容: {/dede:sql}

里面的URL路径是默认写法,请根据自己的实际情况修改。数据表前缀请自行修改。

DEDECMS织梦dede:freelist标签增加排序方式

DEDECMS织梦dede:freelist标签增加排序方式

 

比如我所需要用到 随机排序”rank“和按得分排序”scores“这里就没有。当然这两个排序织梦DEDECMS是有的只是没有列出来,这样就简单了。

找到打开 dede/templets/freelist_add.htm ”添加自由列表源码“。

找到

<td height=”28″ align=”left”>排列顺序:

在这一行下面插入以下代码并保存:

<option value=”rand”>随机推荐</option>

<option value=”scores”>按照得分</option>

再找到打开 dede/templets/freelist_edit.htm ”修改自由列表源码“。

找到

$orderby = $ctag->GetAtt(‘orderby’);下面参数改为以下。

$sorta = “sortrank,置顶权限值;pubdate,发布时间;senddate,录入时间;click,点击量;id,文档ID,lastpost,Z后评论时间;postnum,评论总数;rand,随机推荐;scores,按照得分”;

再找到

<select name=”orderby” id=”orderby” style=”width:120″>

下面插入

<option value=”rand”>随机推荐</option>

<option value=”scores”>按照得分</option>

保存,退出,验证。

ok是不是很简单。。。

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

dedecms织梦tag keyword怎么调用相关文章

dedecms织梦tag keyword怎么调用相关文章

dedecms织梦tag keyword怎么调用相关文章

dedecms织梦tag keyword怎么调用相关文章?

DEDE官方的dede:likearticle是利用文章中输入的关键词或者自动分词形成的关键词来关联文章,但是有时候自动生成的关键词并不精确,造成关联不准,这里我们通过自定义一个类库文件来实现精准获取相关文章

推荐学习:织梦cms

可以单用tag来调用相关文章,也可用tag+keyword来调用相关文章(默认tag优先于keyword,可以自己排序)

在 \include\taglib\ 下添加一个liketags.lib.php 代码如下

<?php
if(!defined(&#39;DEDEINC&#39;)) exit(&#39;Request Error!&#39;);
function lib_liketags(&$ctag,&$refObj)
{
    global $dsql;
      
    //属性处理
    $attlist="row|12,titlelen|30,infolen|250,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|1,imgheight|90,flag|";
    FillAttsDefault($ctag->CAttribute->Items,$attlist);
    extract($ctag->CAttribute->Items, EXTR_SKIP);
    $revalue = &#39;&#39;;
      
    if(empty($tablewidth)) $tablewidth = 100;
    if(empty($col)) $col = 1;
    $colWidth = ceil(100/$col);
    $tablewidth = $tablewidth."%";
    $colWidth = $colWidth."%";
$orwheres = &#39;&#39;;
if($flag != &#39;&#39;) {
$flags = explode(&#39;,&#39;, $flag);
for($i=0; isset($flags[$i]); $i++) $orwheres .= " AND FIND_IN_SET(&#39;{$flags[$i]}&#39;, arc.flag)>0 ";
}
  
    $ids = array();
    $tids = array();
      
    if(!empty($refObj->Fields[&#39;tags&#39;])) {
        $keyword = $refObj->Fields[&#39;tags&#39;];
    }
    else {
        $keyword = ( !empty($refObj->Fields[&#39;keywords&#39;]) ? $refObj->Fields[&#39;keywords&#39;] : &#39;&#39; );
    }
      
    $typeid = ( !empty($mytypeid) ? $mytypeid : 0 );
    if(empty($typeid))
    {
        if(!empty($refObj->Typelink->TypeInfos[&#39;reid&#39;])) {
             $typeid = $refObj->Typelink->TypeInfos[&#39;reid&#39;];
        }
        else {
             if(!empty($refObj->Fields[&#39;typeid&#39;])) $typeid = $refObj->Fields[&#39;typeid&#39;];
        }
    }
      
    if( !empty($typeid) && !preg_match(&#39;#,#&#39;, $typeid) ) {
        $typeid = GetSonIds($typeid);
    }
      
if(!empty($refObj->Fields[&#39;tags&#39;]) && $eregtype != &#39;keyword&#39; )
{
$tags = explode(&#39;,&#39;, addslashes($refObj->Fields[&#39;tags&#39;]));
$getsql = " tag like &#39;".join("&#39; OR tag like &#39;", $tags)."&#39; ";
$dsql->Execute(&#39;me&#39;, "Select * From `dede_tagindex` where $getsql ");
while($arow = $dsql->GetArray(&#39;me&#39;))
{
$tids[] = $arow[&#39;id&#39;];
}
$tid = join(&#39;,&#39;, $tids);
if($tid!=&#39;&#39;)
{
061
$dsql->Execute("me", "Select aid From `dede_taglist` where tid in($tid) And arcrank > -1 group by aid order by aid desc");
while($arow = $dsql->GetArray("me"))
{
$ids[] = $arow[&#39;aid&#39;];
$arcid =  $refObj->Fields[&#39;aid&#39;];
}
}
}
if($eregtype == &#39;tag&#39; && count($ids) == 0 )
{
return;
}
else
{
if(count($ids) > 0)
{
if(!empty($typeid))
{
$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";
}
$idsStr = join(&#39;,&#39;, $ids);
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
from `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.id
where arc.arcrank>-1 and arc.id in($idsStr) $typeid order by arc.id desc limit 0, $row";
}
else
{
$limitRow = $row - count($ids);
$keyword = &#39;&#39;;
if(!empty($refObj->Fields[&#39;keywords&#39;]))
{
$keywords = explode(&#39;,&#39; , trim($refObj->Fields[&#39;keywords&#39;]));
$keyword = &#39;&#39;;
$n = 1;
foreach($keywords as $k)
{
if($n > 3)  break;
  
if(trim($k)==&#39;&#39;) continue;
else $k = addslashes($k);
  
$keyword .= ($keyword==&#39;&#39; ? " CONCAT(arc.keywords,&#39; &#39;,arc.title) like &#39;%$k%&#39; " : " OR CONCAT(arc.keywords,&#39; &#39;,arc.title) like &#39;%$k%&#39; ");
$n++;
}
}
$arcid = (!empty($refObj->Fields[&#39;id&#39;]) ? $refObj->Fields[&#39;aid&#39;] : 0);
if( empty($arcid) || $byabs==0 )
{
$orderquery = " order by arc.id desc ";
}
else
{
$orderquery = " order by ABS(arc.id - ".$arcid.") ";
}
if($keyword != &#39;&#39;)
{
if(!empty($typeid))
{
$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";
}
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
from `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.id
where arc.arcrank>-1 and ($keyword)  $typeid $orderquery limit 0, $row";
}
else
{
if(!empty($typeid))
{
$typeid = " arc.typeid in($typeid) And arc.id<>$arcid ";
}
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
from `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.id
where arc.arcrank>-1 and  $typeid $orderquery limit 0, $row";
}
}
}
  
    $innertext = trim( $ctag->GetInnerText() );
    if($innertext==&#39;&#39;) $innertext = GetSysTemplets(&#39;part_arclist.htm&#39;);
    $dsql->SetQuery($query);
    $dsql->Execute(&#39;al&#39;);
    $artlist = &#39;&#39;;
    if($col > 1){
        $artlist = "<table width=&#39;$tablewidth&#39; border=&#39;0&#39; cellspacing=&#39;0&#39; cellpadding=&#39;0&#39;>\r\n";
    }
    $dtp2 = new DedeTagParse();
    $dtp2->SetNameSpace(&#39;field&#39;, &#39;[&#39;, &#39;]&#39;);
    $dtp2->LoadString($innertext);
    $GLOBALS[&#39;autoindex&#39;] = 0;
    $line = $row;
    for($i=0; $i < $line; $i++)
    {
        if($col>1) $artlist .= "<tr>\r\n";
        for($j=0; $j < $col; $j++)
        {
            if($col>1) $artlist .= "    <td width=&#39;$colWidth&#39;>\r\n";
            if($row = $dsql->GetArray("al"))
            {
                $ids[] = $row[&#39;id&#39;];
                //处理一些特殊字段
                $row[&#39;info&#39;] = $row[&#39;infos&#39;] = cn_substr($row[&#39;description&#39;],$infolen);
                $row[&#39;id&#39;] =  $row[&#39;id&#39;];
  
                if($row[&#39;corank&#39;] > 0 && $row[&#39;arcrank&#39;]==0)
                {
                    $row[&#39;arcrank&#39;] = $row[&#39;corank&#39;];
                }
  
                $row[&#39;filename&#39;] = $row[&#39;arcurl&#39;] = GetFileUrl($row[&#39;id&#39;],$row[&#39;typeid&#39;],$row[&#39;senddate&#39;],$row[&#39;title&#39;],$row[&#39;ismake&#39;],
                $row[&#39;arcrank&#39;],$row[&#39;namerule&#39;],$row[&#39;typedir&#39;],$row[&#39;money&#39;],$row[&#39;filename&#39;],$row[&#39;moresite&#39;],$row[&#39;siteurl&#39;],$row[&#39;sitepath&#39;]);
  
                $row[&#39;typeurl&#39;] = GetTypeUrl($row[&#39;typeid&#39;],$row[&#39;typedir&#39;],$row[&#39;isdefault&#39;],$row[&#39;defaultname&#39;],$row[&#39;ispart&#39;],
                $row[&#39;namerule&#39;],$row[&#39;moresite&#39;],$row[&#39;siteurl&#39;],$row[&#39;sitepath&#39;]);
  
                if($row[&#39;litpic&#39;] == &#39;-&#39; || $row[&#39;litpic&#39;] == &#39;&#39;)
                {
                    $row[&#39;litpic&#39;] = $GLOBALS[&#39;cfg_cmspath&#39;].&#39;/images/defaultpic.gif&#39;;
                }
                if(!preg_match("#^http:\/\/#i", $row[&#39;litpic&#39;]) && $GLOBALS[&#39;cfg_multi_site&#39;] == &#39;Y&#39;)
                {
                    $row[&#39;litpic&#39;] = $GLOBALS[&#39;cfg_mainsite&#39;].$row[&#39;litpic&#39;];
                }
                $row[&#39;picname&#39;] = $row[&#39;litpic&#39;];
                $row[&#39;stime&#39;] = GetDateMK($row[&#39;pubdate&#39;]);
                $row[&#39;typelink&#39;] = "<a href=&#39;".$row[&#39;typeurl&#39;]."&#39;>".$row[&#39;typename&#39;]."</a>";
                $row[&#39;image&#39;] = "@@##@@<]#","",$row[&#39;title&#39;])."&#39;>";
                $row[&#39;imglink&#39;] = "<a href=&#39;".$row[&#39;filename&#39;]."&#39;>".$row[&#39;image&#39;]."</a>";
                $row[&#39;fulltitle&#39;] = $row[&#39;title&#39;];
                $row[&#39;title&#39;] = cn_substr($row[&#39;title&#39;], $titlelen);
                if($row[&#39;color&#39;]!=&#39;&#39;) $row[&#39;title&#39;] = "<font color=&#39;".$row[&#39;color&#39;]."&#39;>".$row[&#39;title&#39;]."</font>";
                if(preg_match(&#39;#b#&#39;, $row[&#39;flag&#39;])) $row[&#39;title&#39;] = "<strong>".$row[&#39;title&#39;]."</strong>";
                $row[&#39;textlink&#39;] = "<a href=&#39;".$row[&#39;filename&#39;]."&#39;>".$row[&#39;title&#39;]."</a>";
                $row[&#39;plusurl&#39;] = $row[&#39;phpurl&#39;] = $GLOBALS[&#39;cfg_phpurl&#39;];
                $row[&#39;memberurl&#39;] = $GLOBALS[&#39;cfg_memberurl&#39;];
                $row[&#39;templeturl&#39;] = $GLOBALS[&#39;cfg_templeturl&#39;];
                  
                if(is_array($dtp2->CTags))
                {
                    foreach($dtp2->CTags as $k=>$ctag)
                    {
                        if($ctag->GetName()==&#39;array&#39;) {
                            $dtp2->Assign($k,$row);
                        }
                        else {
                            if(isset($row[$ctag->GetName()])) $dtp2->Assign($k,$row[$ctag->GetName()]);
                            else $dtp2->Assign($k,&#39;&#39;);
                        }
                    }
                    $GLOBALS[&#39;autoindex&#39;]++;
                }
  
                $artlist .= $dtp2->GetResult()."\r\n";
            }
            //if hasRow
            else
            {
                $artlist .= &#39;&#39;;
            }
            if($col>1) $artlist .= "    </td>\r\n";
        }
        //Loop Col
        if($col>1) $i += $col - 1;
        if($col>1) $artlist .= "    </tr>\r\n";
    }
    //loop line
    if($col>1) $artlist .= "    </table>\r\n";
    $dsql->FreeResult("al");
    return $artlist;
}
登录后复制

前台模板调用

{dede:liketags row=&#39;3&#39; mytypeid=&#39;6&#39; eregtype=&#39;all|tag|keyword&#39; titlelen=&#39;250&#39; infolen=&#39;250&#39;}
<li>
<a href="[field:arcurl/]" title="[field:title/]" target="_blank">
<div>
@@##@@
</div>
<div>
<p>[field:title/]</p>
<p>[field:description /]</p>
</div>
</a>
</li>
{/dede:liketags}
登录后复制
dedecms织梦tag keyword怎么调用相关文章dedecms织梦tag keyword怎么调用相关文章

以上就是dedecms织梦tag keyword怎么调用相关文章的详细内容,更多请关注php中文网其它相关文章!

今天关于DedeCMS织梦增加TAG属性分类及调用织梦tag标签怎么用的讲解已经结束,谢谢您的阅读,如果想了解更多关于dedecms 织梦增加会员下载授权额度功能教程、DedeCMS增加TAG属性分类及调用、DEDECMS织梦dede:freelist标签增加排序方式、dedecms织梦tag keyword怎么调用相关文章的相关知识,请在本站搜索。

本文标签: