PHP Classes

File: htdocs/include/comment_view.php

Recommend this page to a friend!
  Classes of Michael Beck   Xoops 2.5   htdocs/include/comment_view.php   Download  
File: htdocs/include/comment_view.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Xoops 2.5
Modular content management publication system
Author: By
Last change: non-canonical order

In docblock var tags, use "type variableName" more consistently
Date: 5 years ago
Size: 17,005 bytes
 

Contents

Class file image Download
<?php /** * XOOPS comment view * * You may not change or alter any portion of this comment or credits * of supporting developers from this source code or any supporting source code * which is considered copyrighted (c) material of the original comment or credit authors. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * @copyright (c) 2000-2016 XOOPS Project (www.xoops.org) * @license GNU GPL 2 (http://www.gnu.org/licenses/gpl-2.0.html) * @package kernel * @since 2.0.0 * @author Kazumi Ono (AKA onokazu) http://www.myweb.ne.jp/, http://jp.xoops.org/ */ /* @var XoopsUser $xoopsUser */ /* @var XoopsConfigItem $xoopsConfig */ if (!defined('XOOPS_ROOT_PATH') || !is_object($xoopsModule)) { die('Restricted access'); } include_once $GLOBALS['xoops']->path('include/comment_constants.php'); if (XOOPS_COMMENT_APPROVENONE != $xoopsModuleConfig['com_rule']) { xoops_load('XoopsLists'); xoops_load('XoopsFormLoader'); include_once $GLOBALS['xoops']->path('modules/system/constants.php'); /* @var XoopsGroupPermHandler $gperm_handler */ $gperm_handler = xoops_getHandler('groupperm'); $groups = $xoopsUser ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS; $xoopsTpl->assign('xoops_iscommentadmin', $gperm_handler->checkRight('system_admin', XOOPS_SYSTEM_COMMENT, $groups)); xoops_loadLanguage('comment'); $comment_config = $xoopsModule->getInfo('comments'); $com_itemid = (trim($comment_config['itemName']) != '' && isset($_GET[$comment_config['itemName']])) ? (int)$_GET[$comment_config['itemName']] : 0; if ($com_itemid > 0) { $com_mode = isset($_GET['com_mode']) ? htmlspecialchars(trim($_GET['com_mode']), ENT_QUOTES) : ''; if ($com_mode == '') { if (is_object($xoopsUser)) { $com_mode = $xoopsUser->getVar('umode'); } $com_mode = empty($com_mode) ? $xoopsConfig['com_mode'] : $com_mode; } $xoopsTpl->assign('comment_mode', $com_mode); if (!isset($_GET['com_order'])) { if (is_object($xoopsUser)) { $com_order = $xoopsUser->getVar('uorder'); } else { $com_order = $xoopsConfig['com_order']; } } else { $com_order = (int)$_GET['com_order']; } if ($com_order != XOOPS_COMMENT_OLD1ST) { $xoopsTpl->assign(array( 'comment_order' => XOOPS_COMMENT_NEW1ST, 'order_other' => XOOPS_COMMENT_OLD1ST)); $com_dborder = 'DESC'; } else { $xoopsTpl->assign(array( 'comment_order' => XOOPS_COMMENT_OLD1ST, 'order_other' => XOOPS_COMMENT_NEW1ST)); $com_dborder = 'ASC'; } // admins can view all comments and IPs, others can only view approved(active) comments $admin_view = false; if (is_object($xoopsUser) && $xoopsUser->isAdmin($xoopsModule->getVar('mid'))) { $admin_view = true; } $com_id = isset($_GET['com_id']) ? (int)$_GET['com_id'] : 0; $com_rootid = isset($_GET['com_rootid']) ? (int)$_GET['com_rootid'] : 0; /* @var XoopsCommentHandler $comment_handler */ $comment_handler = xoops_getHandler('comment'); if ($com_mode === 'flat') { $comments = $comment_handler->getByItemId($xoopsModule->getVar('mid'), $com_itemid, $com_dborder); include_once $GLOBALS['xoops']->path('class/commentrenderer.php'); $renderer = XoopsCommentRenderer::instance($xoopsTpl); $renderer->setComments($comments); $renderer->renderFlatView($admin_view); } elseif ($com_mode === 'thread') { // RMV-FIX... added extraParam stuff here $comment_url = $comment_config['pageName'] . '?'; if (isset($comment_config['extraParams']) && is_array($comment_config['extraParams'])) { $extra_params = ''; foreach ($comment_config['extraParams'] as $extra_param) { // This page is included in the module hosting page -- param could be from anywhere if (isset(${$extra_param})) { $extra_params .= $extra_param . '=' . ${$extra_param} . '&amp;'; } elseif (isset($_POST[$extra_param])) { $extra_params .= $extra_param . '=' . $_POST[$extra_param] . '&amp;'; } elseif (isset($_GET[$extra_param])) { $extra_params .= $extra_param . '=' . $_GET[$extra_param] . '&amp;'; } else { $extra_params .= $extra_param . '=&amp;'; } //$extra_params .= isset(${$extra_param}) ? $extra_param .'='.${$extra_param}.'&amp;' : $extra_param .'=&amp;'; } $comment_url .= $extra_params; } $xoopsTpl->assign('comment_url', $comment_url . $comment_config['itemName'] . '=' . $com_itemid . '&amp;com_mode=thread&amp;com_order=' . $com_order); if (!empty($com_id) && !empty($com_rootid) && ($com_id != $com_rootid)) { // Show specific thread tree $comments = $comment_handler->getThread($com_rootid, $com_id); // if (false != $comments) { if (!empty($comments)) { // getThread always returns array - changed in 2.5.9 include_once $GLOBALS['xoops']->path('class/commentrenderer.php'); $renderer = XoopsCommentRenderer::instance($xoopsTpl); $renderer->setComments($comments); $renderer->renderThreadView($com_id, $admin_view); } } else { // Show all threads $top_comments = $comment_handler->getTopComments($xoopsModule->getVar('mid'), $com_itemid, $com_dborder); $c_count = count($top_comments); if ($c_count > 0) { for ($i = 0; $i < $c_count; ++$i) { $comments = $comment_handler->getThread($top_comments[$i]->getVar('com_rootid'), $top_comments[$i]->getVar('com_id')); // if (false != $comments) { if (!empty($comments)) { // $getThread always returns array - changed in 2.5.9 include_once $GLOBALS['xoops']->path('class/commentrenderer.php'); $renderer = XoopsCommentRenderer::instance($xoopsTpl); $renderer->setComments($comments); $renderer->renderThreadView($top_comments[$i]->getVar('com_id'), $admin_view); } unset($comments); } } } } else { // Show all threads $top_comments = $comment_handler->getTopComments($xoopsModule->getVar('mid'), $com_itemid, $com_dborder); $c_count = count($top_comments); if ($c_count > 0) { for ($i = 0; $i < $c_count; ++$i) { $comments = $comment_handler->getThread($top_comments[$i]->getVar('com_rootid'), $top_comments[$i]->getVar('com_id')); include_once $GLOBALS['xoops']->path('class/commentrenderer.php'); $renderer = XoopsCommentRenderer::instance($xoopsTpl); $renderer->setComments($comments); $renderer->renderNestView($top_comments[$i]->getVar('com_id'), $admin_view); } } } $commentTpl = new \XoopsTpl(); //$commentTpl->template = "db:system_comment_controls.tpl"; //$commentTpl->init(); $commentTpl->assign('pageName', $comment_config['pageName']); $commentModeSelect = new XoopsFormSelect('', 'com_mode', $com_mode); $commentModeSelect->addOption('flat', _FLAT); $commentModeSelect->addOption('thread', _THREADED); $commentModeSelect->addOption('nest', _NESTED); $commentTpl->assign('commentModeSelect', $commentModeSelect); $commentOrderSelect = new XoopsFormSelect('', 'com_order', $com_order); $commentOrderSelect->addOption(XOOPS_COMMENT_OLD1ST, _OLDESTFIRST); $commentOrderSelect->addOption(XOOPS_COMMENT_NEW1ST, _NEWESTFIRST); $commentTpl->assign('commentOrderSelect', $commentOrderSelect); $commentRefreshButton = new XoopsFormButton('', 'com_refresh', _CM_REFRESH, 'submit'); $commentTpl->assign('commentRefreshButton', $commentRefreshButton); unset($postcomment_link); if (!empty($xoopsModuleConfig['com_anonpost']) || is_object($xoopsUser)) { $postcomment_link = 'comment_new.php?com_itemid=' . $com_itemid . '&amp;com_order=' . $com_order . '&amp;com_mode=' . $com_mode; $xoopsTpl->assign('anon_canpost', true); // to main template } $commentBarHidden = ''; $commentBarHidden .= '<input type="hidden" name="' . $comment_config['itemName'] . '" value="' . $com_itemid . '" />'; $link_extra = ''; if (isset($comment_config['extraParams']) && is_array($comment_config['extraParams'])) { foreach ($comment_config['extraParams'] as $extra_param) { if (isset(${$extra_param})) { $link_extra .= '&amp;' . $extra_param . '=' . ${$extra_param}; $hidden_value = htmlspecialchars(${$extra_param}, ENT_QUOTES); $extra_param_val = ${$extra_param}; } elseif (isset($_POST[$extra_param])) { $extra_param_val = $_POST[$extra_param]; } elseif (isset($_GET[$extra_param])) { $extra_param_val = $_GET[$extra_param]; } if (isset($extra_param_val)) { $link_extra .= '&amp;' . $extra_param . '=' . $extra_param_val; $hidden_value = htmlspecialchars($extra_param_val, ENT_QUOTES); $commentBarHidden .= '<input type="hidden" name="' . $extra_param . '" value="' . $hidden_value . '" />'; } } } $commentPostButton = false; if (!empty($xoopsModuleConfig['com_anonpost']) || is_object($xoopsUser)) { $commentPostButton = new XoopsFormButton('', 'com_post', _CM_POSTCOMMENT, 'button'); $commentPostButton->setExtra(' onclick="self.location.href=\'' . $postcomment_link . $link_extra . '\'"'); } $commentTpl->assign('commentPostButton', $commentPostButton); $commentTpl->assign('commentPostHidden', $commentBarHidden); $navbar = $commentTpl->fetch('db:system_comments_controls.tpl'); if (!empty($xoopsModuleConfig['com_anonpost']) || is_object($xoopsUser)) { if (file_exists($GLOBALS['xoops']->path('modules/' . $xoopsModule->getVar('dirname') . '/comment_fast.php'))) { include_once $GLOBALS['xoops']->path('modules/' . $xoopsModule->getVar('dirname') . '/comment_fast.php'); } if (isset($com_replytitle)) { $myts = MyTextSanitizer::getInstance(); $com_title = $myts->htmlSpecialChars($com_replytitle); if (!preg_match('/^' . _RE . '/i', $com_title)) { $com_title = _RE . ' ' . xoops_substr($com_title, 0, 56); } } else { $com_title = ''; } // set form $cform = new XoopsThemeForm(_CM_POSTCOMMENT, 'commentfastform', 'comment_post.php', 'post', true); $cform->addElement(new XoopsFormElementTray('')); if (isset($xoopsModuleConfig['com_rule'])) { include_once $GLOBALS['xoops']->path('include/comment_constants.php'); switch ($xoopsModuleConfig['com_rule']) { case XOOPS_COMMENT_APPROVEALL: $rule_text = _CM_COMAPPROVEALL; break; case XOOPS_COMMENT_APPROVEUSER: $rule_text = _CM_COMAPPROVEUSER; break; case XOOPS_COMMENT_APPROVEADMIN: default: $rule_text = _CM_COMAPPROVEADMIN; break; } $cform->addElement(new XoopsFormLabel(_CM_COMRULES, $rule_text)); } $cform->addElement(new XoopsFormText(_CM_TITLE, 'com_title', 50, 255, $com_title), true); if (!$xoopsUser) { $cform->addElement(new XoopsFormText(_CM_USER, 'com_user', 50, 60, ''), true); $cform->addElement(new XoopsFormText(_CM_EMAIL, 'com_email', 50, 60, ''), true); $cform->addElement(new XoopsFormText(_CM_URL, 'com_url', 50, 60, ''), false); } $cform->addElement(new XoopsFormTextArea(_CM_MESSAGE, 'com_text', '', 10, 65), true); if (!$xoopsUser) { $cform->addElement(new XoopsFormCaptcha()); } $cform->addElement(new XoopsFormHidden('com_id', 0)); $cform->addElement(new XoopsFormHidden('com_pid', 0)); $cform->addElement(new XoopsFormHidden('com_rootid', 0)); $cform->addElement(new XoopsFormHidden('com_order', 0)); $cform->addElement(new XoopsFormHidden('com_itemid', $com_itemid)); $cform->addElement(new XoopsFormHidden('com_mode', $com_mode)); $cform->addElement(new xoopsFormHidden('dohtml', 0)); $cform->addElement(new xoopsFormHidden('dobr', 0)); $cform->addElement(new xoopsFormHidden('dosmiley', 0)); $cform->addElement(new xoopsFormHidden('doxcode', 0)); // add module specific extra params if ('system' !== $xoopsModule->getVar('dirname')) { $comment_config = $xoopsModule->getInfo('comments'); if (isset($comment_config['extraParams']) && is_array($comment_config['extraParams'])) { $myts = MyTextSanitizer::getInstance(); foreach ($comment_config['extraParams'] as $extra_param) { // This routine is included from forms accessed via both GET and POST $hidden_value = ''; if (isset($_POST[$extra_param])) { $hidden_value = $myts->stripSlashesGPC($_POST[$extra_param]); } elseif (isset($_GET[$extra_param])) { $hidden_value = $myts->stripSlashesGPC($_GET[$extra_param]); } $cform->addElement(new XoopsFormHidden($extra_param, $hidden_value)); } } } $button_tray = new XoopsFormElementTray('', '&nbsp;'); $button_tray->addElement(new XoopsFormButton('', 'com_dopost', _CM_POSTCOMMENT, 'submit')); $cform->addElement($button_tray); $xoopsTpl->assign('commentform', $cform->render()); } else { $xoopsTpl->assign('commentform', ''); } // End add by voltan $xoopsTpl->assign(array( 'commentsnav' => $navbar, 'editcomment_link' => 'comment_edit.php?com_itemid=' . $com_itemid . '&amp;com_order=' . $com_order . '&amp;com_mode=' . $com_mode . '' . $link_extra, 'deletecomment_link' => 'comment_delete.php?com_itemid=' . $com_itemid . '&amp;com_order=' . $com_order . '&amp;com_mode=' . $com_mode . '' . $link_extra, 'replycomment_link' => 'comment_reply.php?com_itemid=' . $com_itemid . '&amp;com_order=' . $com_order . '&amp;com_mode=' . $com_mode . '' . $link_extra)); // assign some lang variables $xoopsTpl->assign(array( 'lang_from' => _CM_FROM, 'lang_joined' => _CM_JOINED, 'lang_posts' => _CM_POSTS, 'lang_poster' => _CM_POSTER, 'lang_thread' => _CM_THREAD, 'lang_edit' => _EDIT, 'lang_delete' => _DELETE, 'lang_reply' => _REPLY, 'lang_subject' => _CM_REPLIES, 'lang_posted' => _CM_POSTED, 'lang_updated' => _CM_UPDATED, 'lang_notice' => _CM_NOTICE)); } }