Example #1
0
                }
            }
        }
        $smarty->assign('anaphora', get_anaphora_by_book($book_id));
        $smarty->assign('book', $book);
        $smarty->assign('token_groups', $groups);
        $smarty->display('syntax/book.tpl');
    } else {
        throw new UnexpectedValueException();
    }
} elseif ($action == 'ner') {
    //check_permission(PERM_SYNTAX);
    check_logged();
    if (isset($_GET['book_id']) && ($book_id = $_GET['book_id'])) {
        $tagset_id = get_current_tagset();
        $is_book_moderator = is_user_book_moderator($book_id, $tagset_id);
        $book = get_book_page($book_id, TRUE, TRUE);
        // список из статусов => список id параграфов
        $paragraphs_status = get_ne_paragraph_status($book_id, $_SESSION['user_id'], $tagset_id);
        foreach ($book['paragraphs'] as &$paragraph) {
            // и для модератора, и для простого юзера забираем "свою" разметку
            $ne = get_ne_by_paragraph($paragraph['id'], $_SESSION['user_id'], $tagset_id);
            $mentions = get_ne_by_paragraph($paragraph['id'], $_SESSION['user_id'], $tagset_id, TRUE);
            $paragraph['named_entities'] = isset($ne['entities']) ? $ne['entities'] : array();
            $paragraph['mentions'] = isset($mentions['entities']) ? $mentions['entities'] : array();
            $paragraph['annotation_id'] = isset($ne['annot_id']) ? $ne['annot_id'] : 0;
            $paragraph['ne_by_token'] = get_ne_tokens_by_paragraph($paragraph['id'], $_SESSION['user_id'], $tagset_id);
            $paragraph['comments'] = get_comments_by_paragraph($paragraph['id'], $_SESSION['user_id'], $tagset_id);
            $paragraph['mine'] = false;
            if (in_array($paragraph['id'], $paragraphs_status['unavailable']) or in_array($paragraph['id'], $paragraphs_status['done_by_user'])) {
                $paragraph['disabled'] = true;
Example #2
0
function set_ne_book_status($book_id, $tagset_id, $status)
{
    if (!is_user_book_moderator($book_id, $tagset_id)) {
        throw new Exception("Permission missing for this book");
    }
    if (!in_array($status, array(NE_STATUS_IN_PROGRESS, NE_STATUS_FINISHED))) {
        throw new UnexpectedValueException();
    }
    sql_pe("\n        UPDATE ne_paragraphs\n            LEFT JOIN paragraphs USING (par_id)\n        SET status = ?\n        WHERE book_id = ? AND tagset_id = ?", array($status, $book_id, $tagset_id));
}