dedecms随机调用文章数据方法汇总
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>本文实例总结了dedecms随机调用文章数据方法。分享给大家供大家参考。具体分析如下:</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
有时我们为了网站优化都会对网站最后一些文章进行随机读取显示,这样可以提高网站对搜索引擎的体验,下面我们就来分析总结一下dedecms随机调用文章数据方法.</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
方法一,直接利用artlist中的orderyb=rand 即可实例,代码如下:<br>
</p>
<div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
<div class="right">
<span><u>复制代码</u></span>
</div>
代码如下:</div>
<div class="msgborder" id="phpcode19" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
{dede:arclist row=10 orderby=rand} <br>
<li><a href="" target="_blank"></a></li>{/dede:arclist}</div>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>方法二,利用自定做法</span>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
1.增加以下dedecms自定义标签 randarc,代码如下:<br>
</p>
<div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
<div class="right">
<span><u>复制代码</u></span>
</div>
代码如下:</div>
<div class="msgborder" id="phpcode20" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
function lib_randarc(&$ctag , &$refObj){ <br>
global $dsql; <br>
FillAttsDefault($ctag->CAttribute->Items ,"limit|1"); <br>
extract($ctag->CAttribute->Items); <br>
$s = ''; <br>
$tcp = new DedeTagParse(); <br>
$tcp->SetNameSpace("field",'[',']'); <br>
$tcp->LoadSource($ctag->GetInnerText()); <br>
$sql = $query = "SELECT se.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath <br>
FROM `dede_archives` se LEFT JOIN `dede_arctype` tp ON se.typeid=tp.id WHERE 1 order by rand() limit $limit"; <br>
$dsql->Execute("f",$sql); <br>
while($row1 = $dsql->GetArray("f")){ <br>
$row1['arcurl'] = GetFileUrl($row1['id'],$row1['typeid'],$row1['senddate'],$row1['title'], <br>
$row1['ismake'], <br>
$row1['arcrank'],$row1['namerule'],$row1['typedir'],$row1['money'], <br>
$row1['filename'],$row1['moresite'],$row1['siteurl'],$row1['sitepath']); <br>
foreach($tcp->CTags as $k => $v ){ <br><br>
$tcp->Assign($k , $row1[$v->GetName()]); <br>
} <br>
$s.=$tcp->GetResult(); <br>
} <br>
return $s; <br>
}</div>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>2.在dedecms文章模板中调用,代码如下:</span><br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
<div class="right">
<span><u>复制代码</u></span>
</div>
代码如下:</div>
<div class="msgborder" id="phpcode21" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
{dede:randarc limit=1}<a href=></a>{/dede:randarc}</div>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
这样很简单的就完成了dedecms文章页面随机调用一篇文章的功能</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
首页随机调用文章并定时自动更新</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
要实现DEDE首页自动更新的前提是网站首页必须有随机文章,对于随机文章不懂的朋友看这里实现DEDE首页内页随机文章列表代码,熟悉的直接跳过,代码如下:</p>
<blockquote>
<ol class="dp-xml">
<li class="alt">
<span><span>{dede:arclist </span><span class="attribute">sort</span><span>=</span><span class="attribute-value">'rand'</span><span> </span><span class="attribute">titlelen</span><span>=</span><span class="attribute-value">48</span><span> </span><span class="attribute">row</span><span>=</span><span class="attribute-value">16</span><span>} </span></span>
</li>
<li>
<span><span class="tag"><</span><span class="tag-name">li</span><span class="tag">></span><span class="tag"><</span><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">""</span><span> </span><span class="attribute">title</span><span>=</span><span class="attribute-value">""</span><span> </span><span class="attribute">target</span><span>=</span><span class="attribute-value">"_blank"</span><span class="tag">></span><span></span><span class="tag"></</span><span class="tag-name">a</span><span class="tag">></span><span class="tag"></</span><span class="tag-name">li</span><span class="tag">></span><span> </span></span>
</li>
<li class="alt">
<span>{/dede:arclist} </span>
</li>
</ol>
</blockquote>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>这时首页每次更新的内容来源就有了,只是还不会自动生成更新的html文件,下面来说让dede自动生成首页的具体方法.</span>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
把下面的代码复制下来新建一个文本文档粘贴保存,然后把文件名改为rrsc_cn.php中的,上传到根目录,修改首页模板,在网站首页的<head></head>这部分加入这段代码,然后更新首页,代码如下:</p>
<blockquote>
<ol class="dp-c">
<li class="alt">
<span><span><?php </span></span>
</li>
<li>
<span><span class="keyword">function</span><span> sp_input( </span><span class="vars">$text</span><span> ) </span></span>
</li>
<li class="alt">
<span>{ </span>
</li>
<li>
<span><span class="vars">$text</span><span> = trim( </span><span class="vars">$text</span><span> ); </span></span>
</li>
<li class="alt">
<span><span class="vars">$text</span><span> = htmlspecialchars( </span><span class="vars">$text</span><span> ); </span></span>
</li>
<li>
<span><span class="keyword">if</span><span> ( !get_magic_quotes_gpc() ) </span></span>
</li>
<li class="alt">
<span><span class="keyword">return</span><span> </span><span class="func">addslashes</span><span>( </span><span class="vars">$text</span><span> ); </span></span>
</li>
<li>
<span><span class="keyword">else</span><span> </span></span>
</li>
<li class="alt">
<span><span class="keyword">return</span><span> </span><span class="vars">$text</span><span>; </span></span>
</li>
<li>
<span>} </span>
</li>
<li class="alt">
<span><span class="vars">$autotime</span><span> = 300;</span><span class="comment">//自动更新时间,单位为秒,这里我设为5分钟,大家可以自行更改。 </span><span> </span></span>
</li>
<li>
<span><span class="vars">$fpath</span><span> = </span><span class="string">"../data/last_time.inc"</span><span>;</span><span class="comment">//记录更新时间文件,如果不能达到目的,请检查是否有读取权限。 </span><span> </span></span>
</li>
<li class="alt">
<span><span class="keyword">include</span><span>( </span><span class="vars">$fpath</span><span> ); </span></span>
</li>
<li>
<span><span class="keyword">if</span><span>( emptyempty(</span><span class="vars">$last_time</span><span>) ) </span></span>
</li>
<li class="alt">
<span><span class="vars">$last_time</span><span> = 0; </span></span>
</li>
<li>
<span><span class="keyword">if</span><span>( sp_input(</span><span class="vars">$_GET</span><span>[</span><span class="string">'renew'</span><span>])==</span><span class="string">"now"</span><span> ) </span></span>
</li>
<li class="alt">
<span><span class="vars">$last_time</span><span> = 0; </span></span>
</li>
<li>
<span><span class="keyword">if</span><span>( (time()-</span><span class="vars">$last_time</span><span>)>=</span><span class="vars">$autotime</span><span> ) </span></span>
</li>
<li class="alt">
<span>{ </span>
</li>
<li>
<span>define(<span class="string">'DEDEADMIN'</span><span>, </span><span class="func">ereg_replace</span><span>(</span><span class="string">"[/]{1,}"</span><span>,</span><span class="string">'/'</span><span>,dirname(</span><span class="keyword">__FILE__</span><span>) ) ); </span></span>
</li>
<li class="alt">
<span><span class="keyword">require_once</span><span>(DEDEADMIN.</span><span class="string">"/../include/common.inc.php"</span><span>); </span></span>
</li>
<li>
<span><span class="keyword">require_once</span><span>(DEDEINC.</span><span class="string">"/arc.partview.class.php"</span><span>); </span></span>
</li>
<li class="alt">
<span><span class="comment">/* </span> </span>
</li>
<li>
<span><span class="comment">$row = $dsql->GetOne("Select * From dede_homepageset"); </span> </span>
</li>
<li class="alt">
<span><span class="comment">$dsql->Close(); </span> </span>
</li>
<li>
<span><span class="comment">$templet=$row['templet']; </span> </span>
</li>
<li class="alt">
<span><span class="comment">$position=$row['position']; </span> </span>
</li>
<li>
<span><span class="comment">*/</span><span> </span></span>
</li>
<li class="alt">
<span><span class="vars">$templet</span><span> = </span><span class="string">"default/index.htm"</span><span>;</span><span class="comment">//这里是首页模板位置,当前是dede默认首面位置。 </span><span> </span></span>
</li>
<li>
<span><span class="vars">$position</span><span> = </span><span class="string">"../index.html"</span><span>; </span></span>
</li>
<li class="alt">
<span><span class="vars">$homeFile</span><span> = dirname(</span><span class="keyword">__FILE__</span><span>).</span><span class="string">"/"</span><span>.</span><span class="vars">$position</span><span>; </span></span>
</li>
<li>
<span><span class="vars">$homeFile</span><span> = </span><span class="func">str_replace</span><span>( </span><span class="string">""</span><span>, </span><span class="string">"/"</span><span>, </span><span class="vars">$homeFile</span><span> ); </span></span>
</li>
<li class="alt">
<span><span class="vars">$homeFile</span><span> = </span><span class="func">str_replace</span><span>( </span><span class="string">"//"</span><span>, </span><span class="string">"/"</span><span>, </span><span class="vars">$homeFile</span><span> ); </span></span>
</li>
<li>
<span><span class="vars">$pv</span><span> = </span><span class="keyword">new</span><span> PartView(); </span></span>
</li>
<li class="alt">
<span><span class="vars">$pv</span><span> -> SetTemplet( </span><span class="vars">$cfg_basedir</span><span>.</span><span class="vars">$cfg_templets_dir</span><span>.</span><span class="string">"/"</span><span>.</span><span class="vars">$templet</span><span> ); </span></span>
</li>
<li>
<span><span class="vars">$pv</span><span> -> SaveToHtml( </span><span class="vars">$homeFile</span><span> ); </span></span>
</li>
<li class="alt">
<span><span class="vars">$pv</span><span> -> Close(); </span></span>
</li>
<li>
<span><span class="vars">$file</span><span> = </span><span class="func">fopen</span><span>( </span><span class="vars">$fpath</span><span>, </span><span class="string">"w"</span><span> ); </span></span>
</li>
<li class="alt">
<span>fwrite( <span class="vars">$file</span><span>, </span><span class="string">"<?phpn"</span><span> ); </span></span>
</li>
<li>
<span>fwrite( <span class="vars">$file</span><span>, </span><span class="string">"$last_time="</span><span>.time().</span><span class="string">";n"</span><span> ); </span></span>
</li>
<li class="alt">
<span>fwrite( <span class="vars">$file</span><span>, </span><span class="string">'?>'</span><span> ); </span></span>
</li>
<li>
<span>fclose( <span class="vars">$file</span><span> ); </span></span>
</li>
<li class="alt">
<span>} </span>
</li>
<li>
<span>?> </span>
</li>
</ol>
</blockquote>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
希望本文所述对大家的dedecms建站有所帮助。</p>
頁:
[1]