« [TeraTerm] SSHで自動ログインするマクロ | トップページ | XOOPSメモ:d3forumの新着リストと未承認投稿 »

2009.06.24

XOOPSメモ:d3forumでフォーラム毎の承認待ち件数

d3forumモジュールの承認待ち件数取得プラグインwaiting.plugin.php (XOOPS_TRUST_PATHのmodules/d3forum/include内。拡張承認待ちコンテンツwaitingモジュールから呼び出される)。XOOPSを初めてもうすぐ3週間、d3forumと格闘し敗れ再びインストールして2日。試行錯誤の末作成。なくなったら嫌だからメモ。

データ件数が少ない時しかだめだろうなぁ。

  • forumタイトルを別の手段で表示するなら2つめのJOINは不要
  • forumリストで回してSQLを発行する方が良いと思う

……だけどよくわからないからSQL1回でごりおししました。ご了承ください。

ダウンロード waiting.plugin.php (1.1K)

<?php

function b_waiting_d3forum( $mydirname )
{
$db =& Database::getInstance();
$ret = array();

$sql = "SELECT ".$db->prefix($mydirname."_topics").".forum_id, forum_title, ".
   " COUNT( ".$db->prefix($mydirname."_topics").".forum_id ) AS waiting_count ,MIN( post_id ) AS post_id".
   " FROM (".$db->prefix($mydirname."_posts")." LEFT JOIN ".$db->prefix($mydirname."_topics").
   " ON ".$db->prefix($mydirname."_posts").".topic_id = ".$db->prefix($mydirname."_topics").".topic_id)".
   " INNER JOIN ".$db->prefix($mydirname."_forums").
   " ON ".$db->prefix($mydirname."_topics").".forum_id = ".$db->prefix($mydirname."_forums").".forum_id".
   " WHERE ".$db->prefix($mydirname."_posts").".approval = 0".
   " GROUP BY ".$db->prefix($mydirname."_topics").".forum_id";

if ($recs = $db->query($sql)){
while ($result = $db->fetchArray($recs)){
$ret[] = array(
'adminlink' => XOOPS_URL.'/modules/'.$mydirname.'/index.php?post_id='.intval($result['post_id']) ,
'pendingnum' => intval($result['waiting_count']) ,
'lang_linkname' => $result['forum_title'] //._PI_WAITING_WAITINGS ,
) ;
}
}

return $ret ;
}
?>

|

« [TeraTerm] SSHで自動ログインするマクロ | トップページ | XOOPSメモ:d3forumの新着リストと未承認投稿 »