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; } } }