public static function getCommentListItem(&$comment) { $total = JComments::getCommentsCount($comment->object_id, $comment->object_group, 'parent = ' . $comment->parent); $tmpl = JCommentsFactory::getTemplate($comment->object_id, $comment->object_group); $tmpl->load('tpl_list'); $tmpl->addVar('tpl_list', 'comment-id', $comment->id); $tmpl->addVar('tpl_list', 'comment-item', JComments::getCommentItem($comment)); $tmpl->addVar('tpl_list', 'comment-modulo', $total % 2 ? 1 : 0); return $tmpl->renderTemplate('tpl_list'); }
public static function saveComment($values = array()) { if (JCommentsSecurity::badRequest() == 1) { JCommentsSecurity::notAuth(); } $db = JCommentsFactory::getDBO(); $config = JCommentsFactory::getConfig(); $response = JCommentsFactory::getAjaxResponse(); $values = self::prepareValues($_POST); $comment = new JCommentsTableComment($db); $id = (int) $values['id']; if ($comment->load($id)) { $acl = JCommentsFactory::getACL(); if ($acl->canEdit($comment)) { if ($values['comment'] == '') { self::showErrorMessage(JText::_('ERROR_EMPTY_COMMENT'), 'comment'); } else { if ($config->getInt('comment_maxlength') != 0 && $acl->check('enable_comment_length_check') == 1 && JCommentsText::strlen($values['comment']) > $config->getInt('comment_maxlength')) { self::showErrorMessage(JText::_('ERROR_TOO_LONG_COMMENT'), 'comment'); } else { if ($config->getInt('comment_minlength') != 0 && $acl->check('enable_comment_length_check') == 1 && JCommentsText::strlen($values['comment']) < $config->getInt('comment_minlength')) { self::showErrorMessage(JText::_('ERROR_YOUR_COMMENT_IS_TOO_SHORT'), 'comment'); } else { $bbcode = JCommentsFactory::getBBCode(); $comment->comment = $values['comment']; $comment->comment = $bbcode->filter($comment->comment); $comment->published = $acl->check('autopublish'); if ($config->getInt('comment_title') != 0 && isset($values['title'])) { $comment->title = stripslashes((string) $values['title']); } if ($config->getInt('author_homepage') == 1 && isset($values['homepage'])) { $comment->homepage = JCommentsText::url($values['homepage']); } else { $comment->homepage = ''; } $result = JCommentsEvent::trigger('onJCommentsCommentBeforeChange', array(&$comment)); if (in_array(false, $result, true)) { return $response; } $comment->store(); $comment->checkin(); JCommentsEvent::trigger('onJCommentsCommentAfterChange', array(&$comment)); if ($config->getInt('enable_notification') == 1) { if ($config->check('notification_type', 1) == true) { JComments::sendNotification($comment, false); } } $html = JCommentsText::jsEscape(JComments::getCommentItem($comment)); $response->addScript("jcomments.updateComment(" . $comment->id . ", '{$html}');"); } } } } else { $response->addAlert(JText::_('ERROR_CANT_EDIT')); } } return $response; }