今日看到有人提出想要按文章来源统计文章数量的功能,好长时间没人答复和解决,我也需要这个模块,所以拿[落梦天蝎(beluckly)]的文档统计插件自己搞了一个,请高手指点!
-------------------------------------------------------------------------------------------
以下是List_by_source_count.php内容:
<?php
/***************************************
*织梦模板文档统计插件(按文章来源统计)
*编写:wenchang(文昌)
*原作:落梦天蝎(beluckly)
*邮箱&MSN:lwc@tom.com
*完成时间:2007-9-15
*插件功能:按照文章来源统计频道栏目的文档总数
*使用方法:
设置$reID(就是你想要统计的栏目id)的值,可以在本文档设置,也可以用list_by_source_count.php?reID=你想要统计的栏目id 这种格式
可以使用输出js格式调用,也可以直接自己定义输出格式
***************************************/
require_once(dirname(__FILE__)."/../include/config_base.php");
//只在后台用,请注释上面的使用下面的语句,并把此文件放到你的后台管理文件下
//require_once(dirname(__FILE__)."/config.php");
$dsql = new DedeSql(false);
if(empty($reID))
{
$reID=0; //你想要统计的主频道id
}
//从文本文件中读取文章来源列表
{
$m_file = dirname(__FILE__)."/inc/source.txt";
$allsources = file($m_file);
foreach($allsources as $v){
$source = trim($v);
if($source!="")
ListCount($reID,$source);
//格式自己定义
echo "$source ----- ".$countall."<br>";
//echo "documnet.write(\"本频道文档总数:".$countall."<br>\");\r\n";
$countall=0;}
}
//递归获取下级所有总数
function ListCount($ID,$source)
{
global $dsql,$countall;
$fid = $ID;
$dsql->SetQuery("Select ID,reID,typedir,typename,ispart,sortrank,ishidden From xkzzz_arctype where reID='".$ID."' order by sortrank");
$dsql->Execute($fid);
if($dsql->GetTotalRow($fid)>0)
{
while($row=$dsql->GetObject($fid))
{
$ID = $row->ID;
$ispart = $row->ispart;
//隐藏栏目就跳过,不统计
if($row->ishidden=='1')
continue;
//是列表栏目就进行累加
if($ispart==0)
{
$dsql1=new DedeSql(false);
$row = $dsql1->GetOne("Select count(ID) as dd From xkzzz_archives where typeid='".$ID."' and source='$source' ");
$fcount=$row['dd'];
$countall+=$fcount;
}
else
{
ListCount($ID);
}
}
}
else
{
//是列表栏目就进行累加
if($ispart==0)
{
$dsql1=new DedeSql(false);
$row = $dsql1->GetOne("Select count(ID) as dd From xkzzz_archives where typeid='".$ID."' and source='$source' ");
$fcount=$row['dd'];
$countall+=$fcount;
}
}
}
?>[/post]
|