if ($threadId) {
		// If the samely titled comment already
		// exists, go straight to it.
		$url = 'tiki-view_forum_thread.php?comments_parentId=' . urlencode($threadId) . '&forumId=' . urlencode($_REQUEST["forumId"]);
		header('location: ' . $url);
		exit;
	}
}

if ($tiki_p_admin_forum == 'y' || $tiki_p_forum_vote == 'y') {
	// Process a vote here
	if (isset($_REQUEST['comments_vote']) && isset($_REQUEST['comments_threadId'])) {
		check_ticket('view-forum');
		$comments_show = 'y';
		if ($tikilib->register_user_vote($user, 'comment' . $_REQUEST['comments_threadId'], $_REQUEST['comments_vote'], range(1, 5))) {
			$commentslib->vote_comment($_REQUEST['comments_threadId'], $user, $_REQUEST['comments_vote']);
		}
		$_REQUEST['comments_threadId'] = 0;
		$smarty->assign('comments_threadId', 0);
	}
}

if ($user) {
	$userinfo = $userlib->get_user_info($user);
	$smarty->assign_by_ref('userinfo', $userinfo);
}

if (isset($_REQUEST['comments_remove']) && isset($_REQUEST['comments_threadId'])) {
	if ($tiki_p_admin_forum == 'y' 
			|| ($commentslib->user_can_edit_post($user, $_REQUEST['comments_threadId']) && $tiki_p_forum_post_topic == 'y')
	) {
示例#2
0
    $smarty->display("error.tpl");
    die;
}
// $end_time = microtime(true);
// print "TIME2 in comments.php: ".($end_time - $start_time)."\n";
if ($tiki_p_vote_comments == 'y' && (!isset($forum_mode) || $forum_mode == 'n') || $tiki_p_forum_vote == 'y' && isset($forum_mode) && $forum_mode == 'y') {
    // Process a vote here
    if (isset($_REQUEST["comments_vote"]) && isset($_REQUEST["comments_threadId"])) {
        if (!$user && !isset($_COOKIE['PHPSESSID'])) {
            $smarty->assign_by_ref('msg', tra('Cookies must be allowed to vote'));
            $smarty->display("error.tpl");
            die;
        }
        $comments_show = 'y';
        if (!$tikilib->user_has_voted($user, 'comment' . $_REQUEST["comments_threadId"])) {
            $commentslib->vote_comment($_REQUEST["comments_threadId"], $user, $_REQUEST["comments_vote"]);
            $tikilib->register_user_vote($user, 'comment' . $_REQUEST["comments_threadId"]);
        }
        $_REQUEST["comments_threadId"] = 0;
        $smarty->assign('comments_threadId', 0);
    }
}
if ($tiki_p_remove_comments == 'y' && (!isset($forum_mode) || $forum_mode == 'n') || isset($forum_mode) && $forum_mode == 'y' && $tiki_p_admin_forum == 'y') {
    if (isset($_REQUEST["comments_remove"]) && isset($_REQUEST["comments_threadId"])) {
        $area = 'delcomment';
        if ($prefs['feature_ticketlib2'] != 'y' or isset($_POST['daconfirm']) and isset($_SESSION["ticket_{$area}"])) {
            key_check($area);
            $comments_show = 'y';
            $commentslib->remove_comment($_REQUEST["comments_threadId"]);
            $_REQUEST["comments_threadId"] = 0;
            $smarty->assign('comments_threadId', 0);
示例#3
0
function smarty_function_rating($params, $smarty)
{
    global $prefs, $ratinglib;
    require_once 'lib/rating/ratinglib.php';
    if (!isset($params['type'], $params['id'])) {
        return tra('No object information provided for rating.');
    }
    $type = $params['type'];
    $id = $params['id'];
    if (isset($params['changemandated']) && $params['changemandated'] == 'y') {
        $changemandated = true;
        // needed to fix multiple submission problem in comments
    } else {
        $changemandated = false;
    }
    if (isset($_REQUEST['rating_value'][$type][$id], $_REQUEST['rating_prev'][$type][$id])) {
        $value = $_REQUEST['rating_value'][$type][$id];
        $prev = $_REQUEST['rating_prev'][$type][$id];
        if ((!$changemandated || $value != $prev) && $ratinglib->record_vote($type, $id, $value)) {
            // Handle type-specific actions
            if ($type == 'comment') {
                global $user;
                require_once 'lib/comments/commentslib.php';
                if ($user) {
                    $commentslib = new Comments();
                    $commentslib->vote_comment($id, $user, $value);
                }
            } elseif ($type == 'article') {
                global $artlib, $user;
                require_once 'lib/articles/artlib.php';
                if ($user) {
                    $artlib->vote_comment($id, $user, $value);
                }
            }
            if ($prefs['feature_score'] == 'y' && $id) {
                global $tikilib;
                if ($type == 'comment') {
                    $forum_id = $commentslib->get_comment_forum_id($id);
                    $forum_info = $commentslib->get_forum($forum_id);
                    $thread_info = $commentslib->get_comment($id, null, $forum_info);
                    $item_user = $thread_info['userName'];
                } elseif ($type == 'article') {
                    require_once 'lib/articles/artlib.php';
                    $artlib = new ArtLib();
                    $res = $artlib->get_article($id);
                    $item_user = $res['author'];
                }
                if ($value == '1') {
                    $tikilib->score_event($item_user, 'item_is_rated', "{$user}:{$type}:{$id}");
                } elseif ($value == '2') {
                    $tikilib->score_event($item_user, 'item_is_unrated', "{$user}:{$type}:{$id}");
                }
            }
        } elseif ($value != $prev) {
            return tra('An error occurred.');
        }
    }
    $vote = $ratinglib->get_vote($type, $id);
    $options = $ratinglib->get_options($type, $id);
    if ($prefs['rating_smileys'] == 'y') {
        $smiles = $ratinglib->get_options_smiles($type, $id);
        $smarty->assign('rating_smiles', $smiles);
    }
    $smarty->assign('rating_type', $type);
    $smarty->assign('rating_id', $id);
    $smarty->assign('rating_options', $options);
    $smarty->assign('current_rating', $vote);
    return $smarty->fetch('rating.tpl');
}