91豆麻精品91久久久久久,中文在线资源,国产精品女视频,yw.139尤物在线精品视频

?
  歡迎訪問全國企業網站設計NO.1網站開發商平臺 付款方式
主頁 > 網站建設 > 建站知識 > dedecms織夢tag+keyword調用相關文章

dedecms織夢tag+keyword調用相關文章

POST TIME:2020-10-09

官方的dede:likearticle并沒有那么精準的輸出相關文章,下面我們自定義一個類庫文件來實現精準獲取相關文章

單用tag來調用相關文章,也可用tag+keyword來調用相關文章(默認tag優先于keyword,可以自己排序)非常適合SEO

在 \include\taglib\ 下添加一個liketags.lib.php 代碼如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
<?phpif(!defined('DEDEINC')) exit('Request Error!');function lib_liketags(&$ctag,&$refObj){
    global $dsql;
     
    //屬性處理
    $attlist="row|12,titlelen|30,infolen|250,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|120,imgheight|90,flag|";
    FillAttsDefault($ctag->CAttribute->Items,$attlist);
    extract($ctag->CAttribute->Items, EXTR_SKIP);
    $revalue = '';
     
    if(empty($tablewidth)) $tablewidth = 100;
    if(empty($col)) $col = 1;
    $colWidth = ceil(100/$col);
    $tablewidth = $tablewidth."%";
    $colWidth = $colWidth."%";
    $orwheres = '';
    if($flag != '') {
        $flags = explode(',', $flag);
        for($i=0; isset($flags[$i]); $i++) $orwheres .= " AND FIND_IN_SET('{$flags[$i]}', arc.flag)>0 ";
    }
     
    $ids = array();
    $tids = array();
     
    if(!empty($refObj->Fields['tags'])) {
        $keyword = $refObj->Fields['tags'];
    }
    else {
        $keyword = ( !empty($refObj->Fields['keywords']) ? $refObj->Fields['keywords'] : '' );
    }
     
    $typeid = ( !empty($mytypeid) ? $mytypeid : 0 );
    if(empty($typeid))
    {
        if(!empty($refObj->Typelink->TypeInfos['reid'])) {
             $typeid = $refObj->Typelink->TypeInfos['reid'];
        }
        else {
             if(!empty($refObj->Fields['typeid'])) $typeid = $refObj->Fields['typeid'];
        }
    }
     
    if( !empty($typeid) && !preg_match('#,#', $typeid) ) {
        $typeid = GetSonIds($typeid);
    }
     
    if(!empty($refObj->Fields['tags']) && $eregtype != 'keyword' ) 
    {
        $tags = explode(',', addslashes($refObj->Fields['tags']));
        $getsql = " tag like '".join("' OR tag like '", $tags)."' ";
        $dsql->Execute('me', "Select * From `dede_tagindex` where $getsql ");
        while($arow = $dsql->GetArray('me'))
        {
            $tids[] = $arow['id'];
        }
        $tid = join(',', $tids);
        if($tid!='')
        {
            $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['aid'];
                $arcid =  $refObj->Fields['aid'];
            }
        } 
    }
    if($eregtype == 'tag' && count($ids) == 0 )
    {
        return;
    }
    else
    {
        if(count($ids) > 0)
        {
            if(!empty($typeid))
            {
                $typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";
            } 
            $idsStr = join(',', $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.id in($idsStr) $typeid order by arc.id desc limit 0, $row";
        }
        else
        {
            $limitRow = $row - count($ids); 
            $keyword = ''; 
            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++;
                }
            } 
            $arcid = (!empty($refObj->Fields['id']) ? $refObj->Fields['aid'] : 0); 
            if( empty($arcid) || $byabs==0 )
            {
                $orderquery = " order by arc.id desc ";
            }
            else
            { 
                $orderquery = " order by ABS(arc.id - ".$arcid.") ";
            } 
            if($keyword != '') 
            {
                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=='') $innertext = GetSysTemplets('part_arclist.htm');
    $dsql->SetQuery($query);
    $dsql->Execute('al');
    $artlist = '';
    if($col > 1){
        $artlist = "<table width='$tablewidth' border='0' cellspacing='0' cellpadding='0'>\r\n";
    }
    $dtp2 = new DedeTagParse();
    $dtp2->SetNameSpace('field', '[', ']');
    $dtp2->LoadString($innertext);
    $GLOBALS['autoindex'] = 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='$colWidth'>\r\n";
            if($row = $dsql->GetArray("al"))
            {
                $ids[] = $row['id'];
                //處理一些特殊字段 www.dede58.com
                $row['info'] = $row['infos'] = cn_substr($row['description'],$infolen);
                $row['id'] =  $row['id'];
 
                if($row['corank'] > 0 && $row['arcrank']==0)
                {
                    $row['arcrank'] = $row['corank'];
                }
 
                $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
                $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
 
                $row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],$row['isdefault'],$row['defaultname'],$row['ispart'],
                $row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);
 
                if($row['litpic'] == '-' || $row['litpic'] == '')
                {
                    $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
                }
                if(!preg_match("#^http:\/\/#i", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y')
                {
                    $row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];
                }
                $row['picname'] = $row['litpic'];
                $row['stime'] = GetDateMK($row['pubdate']);
                $row['typelink'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";
                $row['image'] = "<img src='".$row['picname']."' border='0' width='$imgwidth' height='$imgheight' alt='".preg_replace("#['><]#","",$row['title'])."'>";
                $row['imglink'] = "<a href='".$row['filename']."'>".$row['image']."</a>";
                $row['fulltitle'] = $row['title'];
                $row['title'] = cn_substr($row['title'], $titlelen);
                if($row['color']!='') $row['title'] = "<font color='".$row['color']."'>".$row['title']."</font>";
                if(preg_match('#b#', $row['flag'])) $row['title'] = "<strong>".$row['title']."</strong>";
                $row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";
                $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];
                $row['memberurl'] = $GLOBALS['cfg_memberurl'];
                $row['templeturl'] = $GLOBALS['cfg_templeturl'];
                 
                if(is_array($dtp2->CTags))
                {
                    foreach($dtp2->CTags as $k=>$ctag)
                    {
                        if($ctag->GetName()=='array') {
                            $dtp2->Assign($k,$row);
                        }
                        else {
                            if(isset($row[$ctag->GetName()])) $dtp2->Assign($k,$row[$ctag->GetName()]);
                            else $dtp2->Assign($k,'');
                        }
                    }
                    $GLOBALS['autoindex']++;
                }
 
                $artlist .= $dtp2->GetResult()."\r\n";
            }
            //if hasRow
            else
            {
                $artlist .= '';
            }
            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;}

 

 

前臺模板調用

1
2
3
4
5
6
7
8
9
10
11
12
13
{dede:liketags row='3' mytypeid='6' eregtype='all|tag|keyword' titlelen='250' infolen='250'}
<li>
<a href="[field:arcurl/]" title="[field:title/]" target="_blank">
<div>
<img src="[field:litpic/]" alt="[field:title/]"/>
</div>
<div>
<p>[field:title/]</p>
<p>[field:description /]</p>
</div>
</a>
</li>
{/dede:liketags}

? 主站蜘蛛池模板: 潍坊市| 林西县| 沙湾县| 双流县| 永和县| 孝义市| 老河口市| 垣曲县| 察隅县| 郁南县| 丰原市| 宣城市| 瑞昌市| 上栗县| 胶州市| 济阳县| 杭锦后旗| 乌拉特前旗| 晋州市| 沧州市| 江油市| 连云港市| 高碑店市| 宁明县| 永新县| 临邑县| 出国| 梓潼县| 道孚县| 湄潭县| 徐水县| 汤原县| 临清市| 诸暨市| 驻马店市| 开平市| 太康县| 富阳市| 固原市| 铅山县| 阿图什市|