日本精品视频-日本久久网-天天干天天摸-日本久久网站-欧美大片一区二区-日日操夜夜撸-www.国产91-日日夜夜精品免费-91国在线视频-蜜桃91麻豆精品一二三区-久久成人黄色-国产青草视频-国产精品区在线观看-怡红院国产-狠狠婷-韩日av一区二区-99热99精品-九九热在线视频免费观看-放荡的少妇2欧美版-钻石午夜影院

dedecms源碼分析之文章列表arclist_lib.php

更新時間:2020-05-19 編輯:未知 關注人次:0 云搜索


這個文件負責顯示文章的列表。
包括GetArclistCache(),lib_arclist(),lib_arclistDone(),lib_GetAutoChannelID(),list_sort_by()五個函數。
這五個函數的調用關系是
lib_arclist()->lib_GetAutoChannelID ;
lib_arclist()->lib_arclistDone();
lib_GetAutoChannelID ->GetArclistCache ();
lib_GetAutoChannelID ->list_sort_by();
整個文件中 lib_arclistDone()函數體的代碼最多最復雜,看起來很復雜,因為里面有很多的if語句。
lib_arclist()函數最先被調用,代碼比較少,主要是做一些基本參數的判斷和取值,為下面被調用的lib_arclistDone函數的形參列表做準備。這個函數里面有一個地方應該比較重要,可以決定什么時候調用什么模板。下面是代碼。
if(trim($ctag->GetInnerText()) != '')
$innertext = $ctag->GetInnerText();
else if($tagname=='imglist')
$innertext = GetSysTemplets('part_imglist.htm');
else if($tagname=='imginfolist')
$innertext = GetSysTemplets('part_imginfolist.htm');
else
$innertext = GetSysTemplets("part_arclist.htm");
GetSysTemplets()函數是其他地方的函數,通過它可以獲得相應的模板。這里只需知道它的功能,不去研究它怎么來的和具體怎么實現的。
 
需要的參數準備就緒以后,就開始調用lib_arclistDone函數了,lib_arclistDone函數做了絕大部分工作,最重要的是根據傳進來的參數構成sql語句,然后使用dedesqli的    SetQuery,Execute方法從數據庫里面取數據,然后根據調用的模板返回文章列表的字符串。這個文件也只有這個函數需要解釋的。
 
回到lib_arclist()調用lib_arclistDone()的地方。
 
lib_arclistDone
           (
             $refObj, $ctag, $typeid, $ctag->GetAtt('row'), $ctag->GetAtt('col'), $titlelen, $infolen,
             $ctag->GetAtt('imgwidth'), $ctag->GetAtt('imgheight'), $listtype, $orderby,
             $ctag->GetAtt('keyword'), $innertext, $envs['aid'], $ctag->GetAtt('idlist'), $channelid,
             $ctag->GetAtt('limit'), $flag,$ctag->GetAtt('orderway'), $ctag->GetAtt('subday'), $ctag->GetAtt('noflag'),
             $tagid,$pagesize,$isweight
           );
看到了吧,如此之多的參數,每個參數的具體含義我就不說了,源碼注釋里面有。
lib_arclistDone函數對這些參數進行了處理,比如$titlelen = AttDef($titlelen,30)是將標題限制在30 以內;$innertext = trim($innertext)是將顯示文章列表的字符串去掉首尾空白。
接下來是設定sql語句的查詢條件和排序方式。
此處省略若干字,實在沒什么好講的。我們直接看查詢數據庫的sql語句是什么樣子
    $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
        $addfieldsSql
        FROM `$maintable` arc LEFT JOIN `jcode_arctype` tp on arc.typeid=tp.id
        $addfieldsSqlJoin
        $orwhere $ordersql $limitsql";
其中maintable在這里一般是archives這個表
然后執行這個sql語句:
   $dsql->SetQuery($query);
    $dsql->Execute('al');
到了lib_arclistDone的最后一個步驟了,就是講文章列表結果保存在$artlist里面,我們只是研究代碼的大概執行過程,所以這里只抓住一條主線,那就是一般文章列表的顯示過程,artlist變量的賦值分為很多種情況,包括是否頁數大于0的情況,分兩欄顯示的情況等,一般情況下,直接跳到for($i=0; $i<$line; $i++)這個大循環里面。
找到
$liststr = $dtp2->GetResult();            
$artlist .= $liststr."\r\n";
GetResult()返回一篇文章的信息,具體內容跟你采用的模板有關。
 
到這一步,lib_arclistDone函數就基本結束了,后面的都是跟緩存什么的有關的。
本文地址: http://www.ofengzhuangshi.com.cn/a/xinwenguandian/xinwenzixun/2020/0519/32375.html ,轉載請注明出處。

服務支持

我們珍惜您每一次在線詢盤,有問必答,用專業的態度,貼心的服務。

讓您真正感受到我們的與眾不同!

主站蜘蛛池模板: 最近中文字幕在线中文视频 | 在线超碰91| 亚洲av人人夜夜澡人人 | 婷婷激情视频 | 国产男男网站 | 极品新婚夜少妇真紧 | 日本中文字幕一区二区 | 成人高潮片免费视频 | 丰满岳乱妇在线观看中字无码 | 狠狠干一区 | 成人激情视频在线 | 午夜视频在线免费看 | 亚洲综合色视频 | 男人的天堂网在线 | av伦理在线 | 欧美不卡在线视频 | 久久久久久影院 | 婷婷影院在线观看 | 日韩在线欧美 | 操操插插| 国产又白又嫩又爽又黄 | 中日韩在线观看视频 | 五月天婷婷影院 | 射婷婷 | 极品粉嫩小仙女高潮喷水久久 | 亚洲黄色三级 | 九色在线 | 亚洲天堂99 | 视频一区中文字幕 | 国产老肥熟 | 国产精品jizz在线观看老狼 | 播金莲一级淫片aaaaaaa | 香蕉影院在线观看 | 国产区高清 | 波多野结衣国产在线 | 国产一区二区免费 | 久久一区二区三区视频 | 日本www网站 | 美女av在线播放 | 欧美三级电影在线观看 | 亚洲中文字幕久久无码 | 国产网友自拍 | 五月天婷婷在线播放 | 在线黄网站| 青草视频在线观看视频 | 精品视频久久久久 | 免费视频一二三区 | 91学生片黄 | 黄色av软件 | 一本久草 | av操操| 韩国中文三级hd字幕 | 中日韩免费视频 | 成人av免费看| 亚洲女成人图区 | 午夜偷拍福利视频 | 欧美激情精品久久久久久蜜臀 | 国产97免费视频 | 久久老女人 | 天天爱夜夜爽 | 国产高潮久久久 | 伊人网在线视频观看 | 亚洲三级小视频 | 国产日本欧美一区二区 | 久久精品久久精品久久 | 涩涩视频网址 | 成人午夜一区 | 亚洲色图18p | 激情欧美一区二区 | 精品夜夜澡人妻无码av | 亚洲欧美日韩色 | 日韩九九九 | 欧美特级黄色录像 | 免费日韩在线视频 | 丰满岳乱妇国产精品一区 | 日韩欧美二区三区 | 中文在线а√在线8 | 国产亚洲一区二区三区 | 麻豆传媒网页 | 欧美日韩高清一区二区 | 男女一进一出视频 | 在线天堂中文 | 亚洲熟女一区二区三区 | 可以看的黄色网 | 91在线成人 | 蜜桃av免费看 | 亚洲国产精品久久久久久 | 婷婷色综合网 | 亚洲天堂手机在线观看 | 人人妻人人澡人人爽久久av | 亚洲欧洲一区二区在线观看 | 国产又爽又猛又粗的视频a片 | 黑人操日本女人视频 | 色播五月婷婷 | 苏晴忘穿内裤坐公交车被揉到视频 | 夫の上司に犯波多野结衣853 | 香蕉a视频 | 少妇被狂c下部羞羞漫画 | 国产一区视频免费观看 |