memo_view_admin_search に対応するプログラム
install.ini の search_action にて定義されたアクションである。
(1) view/admin/maple.ini[TokenExtra]
mode="nobuild"
(2) view/admin/search/maple.ini[AllowIdList]
target_room = "TARGET_ROOM_ID" ;ターゲットルームID指定あり
target_module = "TARGET_MODULE_ID" ;ターゲットモジュールID指定あり
block_id_arr = "ALLOW_BLOCK_ID"
[Action]
db = "ref:DbObject"
[View]
success = "main:rss_feed.xml"
count = "main:whatsnew_count.html"
[Search]
(3) view/admin/search/Search.class.php
<?php
class Memo_View_Admin_Search extends Action
{
var $limit = null;
var $offset = null;
var $only_count = null;
var $params = null;
var $sqlwhere = null;
var $count = 0;
var $results = null;
var $block_id_arr =null;
var $db = null;
function execute()
{
if ($this->block_id_arr) {
$sqlwhere = " WHERE block_id IN (".join(",", $this->block_id_arr).")";
} else {
return 'success';
}
$sqlwhere .= $this->sqlwhere;
$count_res =& $this->db->execute("SELECT COUNT(*) " .
" FROM {memo} " .
$sqlwhere ,$this->params, null ,null, false);
if($count_res !== false) $this->count = $count_res[0][0];
if ($this->only_count == _ON) {
return 'count';
}
if($this->count > 0) {
$sql = "SELECT * FROM {memo} " . $sqlwhere . " ORDER BY insert_time DESC";
$this->results =& $this->db->execute($sql ,$this->params, $this->limit, $this->offset, true, array($this, '_fetchcallback'));
}
return 'success';
}
function _fetchcallback($result) {
$ret = array();
$count = 0;
while ($row = $result->fetchRow()) {
$ret[$count] = array();
$ret[$count]['block_id'] = $row['block_id'];
$ret[$count]['pubDate'] = $row['insert_time'];
$ret[$count]['action'] = "memo_view_main_init";
$ret[$count]['description'] = $row['content'];
$ret[$count]['user_id'] = $row['insert_user_id'];
$ret[$count]['user_name'] = $row['insert_user_name'];
$count++;
}
return $ret;
}
}
?>
この手引きでの扱い変更しない。
TODO後で調べる