Example #1
0
function answers_get_sorted_question_answers($question, $sort = 'votes')
{
    $unsorted_answers = answers_get_question_answers($question);
    $unsorted_ratings = array();
    $unsorted_dates = array();
    $unsorted_actions = array();
    foreach ($unsorted_answers as $answer) {
        $unsorted_ratings[] = answers_overall_rating($answer);
        $unsorted_dates[] = $answer->time_created;
        $unsorted_actions[] = $answer->last_action;
    }
    if ($sort == 'oldest') {
        array_multisort($unsorted_dates, SORT_DESC, $unsorted_ratings, SORT_DESC, $unsorted_answers);
    } else {
        if ($sort == 'active') {
            array_multisort($unsorted_actions, SORT_DESC, $unsorted_ratings, SORT_DESC, $unsorted_answers);
        } else {
            array_multisort($unsorted_ratings, SORT_DESC, $unsorted_dates, SORT_ASC, $unsorted_answers);
        }
    }
    return $unsorted_answers;
}
Example #2
0
/**
 * Generic delete action for questions and answers
 */
$guid = (int) get_input('guid');
$entity = get_entity($guid);
if (!$entity->canEdit()) {
    // @todo
    register_error('answers:notdeleted');
    forward(REFERER);
}
$subtype = $entity->getSubtype();
elgg_load_library('answers:utilities');
if ($subtype == 'question') {
    $owner = $entity->getOwnerEntity();
    $forward_url = 'answers/owner/' . $owner->username;
    $answers = answers_get_question_answers($entity);
    if ($answers && is_array($answers)) {
        foreach ($answers as $answer) {
            $answer->delete();
            // @todo answer of another user seems not deleted. Access problem ?
        }
    }
} else {
    if ($subtype == 'answer') {
        $question = answers_get_question_for_answer($entity);
        $forward_url = $question->getURL();
    } else {
        register_error('answers:notdeleted');
        forward(REFERER);
    }
}