XCL 2.1 と仮定しての hack です。
「最近のコメント」ブロックで、コメントを表示するモジュールの指定 (ブロックの編集でディレクトリ名をカンマ区切りで並べる) ができるようになります。
--- modules/legacy/blocks/legacy_comments.php~ 2007-06-24 23:58:46.000000000 +0900
+++ modules/legacy/blocks/legacy_comments.php 2008-10-24 16:02:55.317793487 +0900
@@ -24,13 +24,25 @@
include_once XOOPS_ROOT_PATH.'/include/comment_constants.php';
$comment_handler =& xoops_gethandler('comment');
$criteria = new CriteriaCompo(new Criteria('com_status', XOOPS_COMMENT_ACTIVE));
+ $module_handler =& xoops_gethandler('module');
+ $modules =& $module_handler->getObjects(new Criteria('hascomments', 1), true);
+ if (!empty($options[1])) {
+ $accept = explode(',', $options[1]);
+ $mids = array();
+ foreach ($modules as $module) {
+ if (in_array($module->getVar('dirname'), $accept)) {
+ $mids[] = $module->getVar('mid');
+ }
+ }
+ if ($mids) {
+ $criteria->add(new Criteria('com_modid', '('.join(',', $mids).')', 'IN'));
+ }
+ }
$criteria->setLimit(intval($options[0]));
$criteria->setSort('com_created');
$criteria->setOrder('DESC');
$comments =& $comment_handler->getObjects($criteria, true);
$member_handler =& xoops_gethandler('member');
- $module_handler =& xoops_gethandler('module');
- $modules =& $module_handler->getObjects(new Criteria('hascomments', 1), true);
$comment_config = array();
foreach (array_keys($comments) as $i) {
$mid = $comments[$i]->getVar('com_modid');
@@ -61,7 +73,9 @@
function b_legacy_comments_edit($options) {
$inputtag = "<input type='text' name='options[]' value='".intval($options[0])."' />";
- $form = sprintf(_MB_LEGACY_DISPLAYC, $inputtag);
+ $inputmod = "<input type='text' name='options[]' value=\"".htmlspecialchars($options[1])."\" />";
+ $form = sprintf(_MB_LEGACY_DISPLAYC, $inputtag)."<br/>".
+ sprintf(_MB_LEGACY_DISPLAYMOD, $inputmod);
return $form;
}
?>
--- modules/legacy/language/japanese/blocks.php 2007-05-25 15:05:02.000000000 +0900
+++ modules/legacy/language/japanese/blocks.php 2008-10-24 15:40:17.201485967 +0900
@@ -26,6 +26,7 @@
define("_MB_LEGACY_LOGO", "%s ディレクトリ内のロゴファイル名"); // %s is your root image directory name
define("_MB_LEGACY_SADMIN", "管理者グループを表示する");
define("_MB_LEGACY_DISPLAYC","%s 件表示する");
+define("_MB_LEGACY_DISPLAYMOD","表示モジュール %s");
define("_MB_LEGACY_LANG_NUMTHEME", "%s テーマ");
define("_MB_LEGACY_LANG_THSHOW", "スクリーンショット画像の表示");
まあ、設定ミスもあり得るので、あまりお勧めしませんが。
お勧めは、一般モジュールのコメントは d3forum のコメント統合にしてしまい、xoopsのコメント機能は ccenter 専用にしてしまう方法。