Example #1
0
$ajax = get_input('ajax', false);
if ($answer = get_entity($answer_id)) {
    $owns_answer = $answer->getOwnerGUID() == $_SESSION['guid'];
    if ($owns_answer) {
        if ($ajax) {
            echo elgg_view("answers/rating_block", array('entity' => $answer));
            exit;
        } else {
            register_error(elgg_echo("answers:liked:failure"));
            forward($answer->getURL());
        }
    }
    $action_result = false;
    switch ($action) {
        case "answer/like":
            $action_result = answers_like($answer, $_SESSION['guid']);
            break;
        case "answer/dislike":
            $action_result = answers_dislike($answer, $_SESSION['guid']);
            break;
        case "answer/unlike":
            $action_result = answers_unlike($answer, $_SESSION['guid']);
            break;
    }
    if ($action_result) {
        if ($ajax) {
            echo elgg_view("answers/rating_block", array('entity' => $answer));
            exit;
        } else {
            forward($answer->getURL());
        }
Example #2
0
 */
// Get input
$entity_guid = (int) get_input('answer_guid');
$user_guid = elgg_get_logged_in_user_guid();
if ($entity = get_entity($entity_guid)) {
    $container = get_entity($entity->container_guid);
    // check if the user voted to an owned entity
    if ($entity->getOwnerGUID() == $user_guid) {
        register_error(elgg_echo('answers:vote:failure:owner'));
        return true;
    }
    // check if user can vote on this group
    if (!$container->canWriteToContainer()) {
        register_error(elgg_echo('answers:vote:failure'));
        return true;
    }
    elgg_load_library('answers:utilities');
    // check the actual user opinion
    if (answers_does_user_like_answer($entity, $user_guid)) {
        $action_result = answers_unlike($entity, $user_guid);
    } else {
        $action_result = answers_like($entity, $user_guid);
    }
    if ($action_result) {
        echo json_encode(array('score' => answers_overall_rating($entity), 'like_dislike' => answers_get_like_dislike($entity, $user_guid)));
    } else {
        register_error(elgg_echo('answers:vote:failure'));
    }
} else {
    register_error(elgg_echo('answers:notfound'));
}