GVKun编程网logo

DedeCMS调用相关新闻likearticle附加自定义字段

28

在本文中,我们将为您详细介绍DedeCMS调用相关新闻likearticle附加自定义字段的相关知识,此外,我们还会提供一些关于dedecmslikearticle怎么增加addfields、dede

在本文中,我们将为您详细介绍DedeCMS调用相关新闻likearticle附加自定义字段的相关知识,此外,我们还会提供一些关于dedecms likearticle 怎么增加 addfields、dedecms likearticle 效率问题、DedeCMS使likearticle标签支持排序orderby、dedecms列表dede:arclist调用自定义字段内容的有用信息。

本文目录一览:

DedeCMS调用相关新闻likearticle附加自定义字段

DedeCMS调用相关新闻likearticle附加自定义字段

 

DedeCMS特别灵活,可以根据Keywords、新闻标题调用新闻,以提高内容之间的相关度,提高页面权重。实现这个功能主要用likearticle标签,该标签只能用在内容详细页,默认不能调用自定义附加字段,但经常会用到调用附加表字段功能,修改办法如下:

 

打开/include/taglib/likearticle.lib.php,找到

$row['templeturl'] = $GLOBALS['cfg_templeturl'];

下面增加代码

$addfile = $refObj->ChannelUnit->ChannelInfos["listfields"]; //获取新闻模型的自定义字段列表

if($addfile){

  $addfiles = explode(",",$addfile);  //拆分成数组

  $len = count($addfiles);

  for($j=0;$j<$len;$j++){    //循环处理每一个数组元素

    $fname = $addfiles[$j];

    //获取每一个元素对应的值,并将元素名作为用于显示的$row数组的ID键,并赋值。

    $row[''.$fname.''] = $refObj->Fields[''.$fname.''];

  }

}

调用自定义附加字段的其他修改办法

{dede:likeartlist row='10'}

<a href='[field:arturl/]'>

 <p>

  [field:id runphp='yes']

  $aid = @me;

  $row = $GLOBALS['dsql']->GetOne("Select 字段名 From `dede_addon11` where aid='$aid' "); //根据实际需要修改附加表

  @me = cn_substr(strip_tags("{$row['字段名']}"),600);

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

dedecms likearticle 怎么增加 addfields

dedecms likearticle 怎么增加 addfields

OSC 请你来轰趴啦!1028 苏州源创会,一起寻宝 AI 时代

 DedeCMS 的 likearticle.lib.php 文件并且添加了 addfields

源码如下
    //获取附加表信息
    $addfield = trim($ctag->GetAtt(''addfields''));
    $addfieldsSql = '''';
    $addfieldsSqlJoin = '''';
    if($addfield != '''' && !empty($channelid))
    {
        $row = $dsql->GetOne("SELECT addtable FROM `#@__channeltype` WHERE id=''$channelid'' ");
        if(isset($row[''addtable'']) && trim($row[''addtable'']) != '''')
        {
            $addtable = trim($row[''addtable'']);
            $addfields = explode('','', $addfield);
            $row[''addtable''] = trim($row[''addtable'']);
            $addfieldsSql = ",addf.".join('',addf.'', $addfields);
            $addfieldsSqlJoin = " LEFT JOIN `$addtable` addf ON addf.aid = arc.id ";
        }
    }
请问还需修改什么吗

dedecms likearticle 效率问题

dedecms likearticle 效率问题

OSC 请你来轰趴啦!1028 苏州源创会,一起寻宝 AI 时代

在使用 dedecms 发布文章 站内文章到达近 30w 的时候出现问题,发布新闻后有个相关新闻的需求,需要用到 likearticle 标签,仔细看了一下 dedecms 的 taglib 发现时这么调取的

if(!empty($refObj->Fields[''keywords'']))
    {
            $keywords = explode('','' , trim($refObj->Fields[''keywords'']));
            $keyword = '''';
            $n = 1;
            foreach($keywords as $k)
            {
                if($n > 3)  break;
                 
                if(trim($k)=='''') continue;
                else $k = addslashes($k);
                 
                $keyword .= ($keyword=='''' ? " CONCAT(arc.keywords,'' '',arc.title) LIKE ''%$k%'' " : " OR CONCAT(arc.keywords,'' '',arc.title) LIKE ''%$k%'' ");
                $n++;
            }
    }

也就是如果我设置了 a,b,c 3 个关键词为文档关键词,最后生成的 sql 语句片段为

 and ( 
    CONCAT(arc.keywords,'' '',arc.title) like ''%a%''  
 OR CONCAT(arc.keywords,'' '',arc.title) like ''%b%''  
 OR CONCAT(arc.keywords,'' '',arc.title) like ''%c%'' 
)

不知哪位大侠使用过有优化的经验

 

DedeCMS使likearticle标签支持排序orderby

DedeCMS使likearticle标签支持排序orderby

我们在使用Dedecms用于图片站WEB开发时,需要随机调用文章、图集和关联文章、图集功能,以增加用户黏度,这个也属于站内优化重要一部分。

DedeCMS使likearticle标签支持排序orderby

一般用标签调用都有排序orderby,默认的排序主要有:


orderby='sortrank' 文档排序方式
orderby='hot' 或 orderby='click' 表示按点击数排列
orderby='sortrank' 或 orderby='pubdate' 按出版时间排列
orderby='near'
orderby='lastpost' 按最后评论时间
orderby='scores' 按得分排序
orderby='id' 按文章ID排序
orderby='rand' 随机获得指定条件的文档列表
 

但是调用文章相关文章标签{dede:likearticle}却没有orderby这个功能。今天我们想给likearticle也增加一个排序功能.

方法也很简单,打开/include/taglib/likearticle.lib.PHP,找到以下代码(大概在第97行):


if( empty($arcid) || $byabs==) {
      $orderquery = " order by arc.id desc ";
}
else {
      $orderquery = " order by ABS(arc.id - ".$arcid.") ";
}
 

修改为:


if($orderby=='hot' || $orderby=='click') $orderquery = " order by arc.click $orderWay";
else if($orderby == 'sortrank' || $orderby=='pubdate') $orderquery = " orderby arc.sortrank $orderWay";
else if($orderby == 'id') $orderquery = " order by arc.id $orderWay";
else if($orderby == 'near') $orderquery = ")";
else if($orderby == 'lastpost') $orderquery = " order by arc.lastpost $orderWay";
else if($orderby == 'scores') $orderquery = " order by arc.scores $orderWay";
else if($orderby == 'rand') $orderquery = " order by rand()";
else if($orderby == 'weight') $orderquery = " order by arc.weight asc";
else $orderquery = " order by arc.sortrank $orderWay";
 

保存后,再在{dede:likearticle}标签中增加orderby的值即可实现按增加需要的方式进行排序

dedecms列表dede:arclist调用自定义字段内容

dedecms列表dede:arclist调用自定义字段内容

Dedecms列表dede:arclist调用自定义字段内容有2种办法。

1、调用channelid属性及addfields字段。举例:

{dede:arclist addfields=’video_description,video_id’ row=’8′ channelid=’3′} 
[field:video_description /] – [field:video_id /] - <a href="https://www.360muye.cn/">[field:title /]</a>
{/dede:arclist}

 

2、通过PHP代码实现。举例:

{dede:arclist titlelen='26' row='20' orderby='id'} 
[field:id runPHP="yes"] 
$dsql = new Dedesql(false); 
$a="SELECT * FROM dede_addongame_tg where aid=@me"; 
$arcRow = $dsql->Getone($a); 
@me='url="'.$arcRow[sptype].'" leixing="'.$arcRow[model]; 
[/field:id] 
{/dede:arclist}

 

通过上面的两种方法均可调用织梦dede:arclist的自定义字段内容。转载请注明:木业网

今天关于DedeCMS调用相关新闻likearticle附加自定义字段的介绍到此结束,谢谢您的阅读,有关dedecms likearticle 怎么增加 addfields、dedecms likearticle 效率问题、DedeCMS使likearticle标签支持排序orderby、dedecms列表dede:arclist调用自定义字段内容等更多相关知识的信息可以在本站进行查询。

本文标签: