get('exclude'));
if ($exclude) {
if (preg_match("/(^|
){$option_reg}(
|$)/", $exclude)) {
return;
}
if ($task_reg) {
if (preg_match("/(^|
){$option_reg},{$task_reg}(
|$)/", $exclude)) {
return;
}
}
}
/* 表示チェック */
$include = preg_replace("/\s/", '', $params->get('include'));
if ($include) {
if (!preg_match("/(^|
){$option_reg}(,|
|$)/", $include)) {
return;
}
if ($task_reg) {
if (!preg_match("/(^|
){$option_reg}(|,|,{$task_reg})(
|$)/", $include)) {
return;
}
}
}
$group_key = $params->get('group_key');
if (!$group_key) {
return;
}
$target_key = $params->get('target_key');
if (!$target_key) {
return;
}
$module = new MOD_kingyoya_comment();
$module->orderby_sec = $params->get('orderby_sec');
$module->limit = $params->get('limit', 0);
$module->group = mosGetParam($_REQUEST, $group_key);
if (!$module->group) { return; }
$module->target = mosGetParam($_REQUEST, $target_key);
if (!$module->target) { return; }
$module->template_list = str_replace('
', '', $params->get('template_list'));
if (!$module->template_list) { return; }
$module->template_item = str_replace('
', '', $params->get('template_item'));
$module->date_format = $params->get('date_format');
$module->date_format or $module->date_format = 'Y-m-d H:i:s';
$module->message = $params->get('message');
$module->message_type = $params->get('message_type');
$module->name_error = $params->get('name_error');
$module->comment_error = $params->get('comment_error');
$module->return = $params->get('return');
$module->return_error = $params->get('return_error');
$module->Itemid = $params->get('Itemid');
$module->show();
}
/** @param string of orderby section */
var $orderby_sec = '';
/** @param int of list limit */
var $limit = 0;
/** @param string of group */
var $group = '';
/** @param string of target */
var $target = '';
/** @param string of template list */
var $template_list = '';
/** @param string of template item */
var $template_item = '';
/** @param string of date format */
var $date_format = '';
/** @param string of message */
var $message = '';
/** @param string of message type */
var $message_type = '';
/** @param string of name error message */
var $name_error = '';
/** @param string of comment error message */
var $comment_error = '';
/** @var boolean of return url */
var $return = '';
/** @var boolean of return error url */
var $return_error = '';
/** @var int of Itemid */
var $Itemid = '';
/**
* 表示処理
*/
function show() {
if (!$this->group) return;
if (!$this->target) return;
global $mainframe;
global $mosConfig_absolute_path;
global $database;
global $my;
global $_MAMBOTS;
require_once "{$mosConfig_absolute_path}/includes/patTemplate/patTemplate.php";
/* @var patTemplate */
$template =& patFactory::createTemplate();
$template->addGlobalVar('br', '
');
$_MAMBOTS->loadBotGroup('Kingyoya');
require_once $mainframe->getPath('class', 'com_kingyoya_comment');
$comment = new mosKingyoyaComment($database);
$comment->group = $this->group;
$comment->target = $this->target;
$comment->publish = true;
$result = $comment->find();
if (!$result) {
trigger_error(
"Failed find: ".$comment->getError()
, E_USER_WARNING
);
return;
}
$total = $comment->count();
$items = '';
if ($this->template_item) {
$comment = new mosKingyoyaComment($database);
$comment->group = $this->group;
$comment->target = $this->target;
$comment->publish = true;
if ($this->orderby_sec === 'rdate') {
$comment->appendOrderBy('created', false);
} else {
$comment->appendOrderBy('created', true);
}
$result = $comment->find(0, ($this->limit ? $this->limit : 0));
if (!$result) {
trigger_error(
"Failed find: ".$comment->getError()
, E_USER_WARNING
);
return;
}
while ($comment->next()) {
$template->addVar('main', 'id', $comment->id);
$template->addVar('main', 'name', htmlspecialchars($comment->name, ENT_QUOTES));
$template->addVar('main', 'comment', htmlspecialchars($comment->comment, ENT_QUOTES));
$template->addVar('main', 'created',
date($this->date_format, $comment->created));
$template_item = "{$this->template_item}";
$template->readTemplatesFromInput($template_item, 'String');
$result = $template->getParsedTemplate('main');
if (patErrorManager::isError($result)) {
trigger_error("Failed parse template item", E_USER_WARNING);
return;
}
$items .= $result;
$template->freeTemplate('main');
}
}
$template_list = "{$this->template_list}";
$template->addVar('main', 'items', $items);
$template->addVar('main', 'total', $total);
$escaped_group = htmlspecialchars($this->group, ENT_QUOTES);
$escaped_target = htmlspecialchars($this->target, ENT_QUOTES);
$hidden = <<<__HTML__
__HTML__;
if ($this->message && $this->message_type) {
$message = htmlspecialchars($this->message, ENT_QUOTES);
if ($this->message_type === 'module') {
$hidden .= <<<__HTML__
__HTML__;
} else if ($this->message_type === 'mosmsg') {
$hidden .= <<<__HTML__
__HTML__;
}
}
if ($this->return) {
$return = htmlspecialchars($this->return, ENT_QUOTES);
$hidden .= <<<__HTML__
__HTML__;
}
if ($this->return_error) {
$return_error = htmlspecialchars($this->return_error, ENT_QUOTES);
$hidden .= <<<__HTML__
__HTML__;
}
if ($this->Itemid) {
$Itemid = htmlspecialchars($this->Itemid, ENT_QUOTES);
$hidden .= <<<__HTML__
__HTML__;
}
$template->addVar('main', 'hiddens', $hidden);
if (isset($_REQUEST['mod_kingyoya_comment'])) {
$param =& $_REQUEST['mod_kingyoya_comment'];
if (isset($param['error'])) {
$error = '';
if ($this->name_error && preg_match('/^name(,|$)/', $param['error'])) {
$error = $this->name_error;
}
if ($this->comment_error && preg_match('/(^|,)comment$/', $param['error'])) {
$error .= $this->comment_error;
}
$template->addVar('main', 'error', $error);
} else {
$template->addVar('main', 'error', '');
}
if (isset($param['message']) && $this->message_type === 'module') {
$template->addVar('main', 'message', $param['message']);
} else {
$template->addVar('main', 'message', '');
}
} else {
$template->addVar('main', 'error', '');
$template->addVar('main', 'message', '');
}
$template->readTemplatesFromInput($template_list, 'String');
$result = $template->displayParsedTemplate('main');
if (patErrorManager::isError($result)) {
trigger_error("Failed parse template list", E_USER_WARNING);
return;
}
}
}