Wie rufe ich verwandte Artikel mit dem Schlüsselwort dedecms dreamweaver tag auf?
Der offizielle dede:likearticle verwendet Schlüsselwörter, die im Artikel eingegeben wurden, oder Schlüsselwörter, die durch automatische Wortsegmentierung gebildet wurden, um Artikel zu verknüpfen. Manchmal sind die automatisch generierten Schlüsselwörter jedoch nicht korrekt, was zu einer ungenauen Zuordnung führt Passen Sie eine Klassenbibliotheksdatei an, um verwandte Artikel genau zu erhalten.
Empfohlenes Lernen: Dreamweaver cms
Sie können Tags allein verwenden, um verwandte Artikel aufzurufen, oder Tag + Schlüsselwort können verwendet werden um verwandte Artikel aufzurufen (Standard-Tag hat Vorrang vor Schlüsselwort, Sie können selbst sortieren)
Fügen Sie eine liketags.lib.php unter includetaglib hinzu und der Code lautet wie folgt
<?php if(!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|1,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!='') { 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['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.arcrank>-1 and 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']; //处理一些特殊字段 $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['namerule'],$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='' 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; }
Front-End-Vorlage ruf an
{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 class="list-img"> <img src="[field:litpic/]" alt="[field:title/]"/> </div> <div class="list-info"> <p class="title">[field:title/]</p> <p class="meta">[field:description /]</p> </div> </a> </li> {/dede:liketags}
Das obige ist der detaillierte Inhalt vonVerwandte Artikel zum Aufrufen des Dreamweaver-Tag-Schlüsselworts von dedecms. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!