function get_article_labels($link, $id, $owner_uid = false)
{
    $rv = array();
    if (!$owner_uid) {
        $owner_uid = $_SESSION["uid"];
    }
    $result = db_query($link, "SELECT label_cache FROM\n\t\t\tttrss_user_entries WHERE ref_id = '{$id}' AND owner_uid = " . $owner_uid);
    if (db_num_rows($result) > 0) {
        $label_cache = db_fetch_result($result, 0, "label_cache");
        if ($label_cache) {
            $label_cache = json_decode($label_cache, true);
            if ($label_cache["no-labels"] == 1) {
                return $rv;
            } else {
                return $label_cache;
            }
        }
    }
    $result = db_query($link, "SELECT DISTINCT label_id,caption,fg_color,bg_color\n\t\t\t\tFROM ttrss_labels2, ttrss_user_labels2\n\t\t\tWHERE id = label_id\n\t\t\t\tAND article_id = '{$id}'\n\t\t\t\tAND owner_uid = " . $owner_uid . "\n\t\t\tORDER BY caption");
    while ($line = db_fetch_assoc($result)) {
        $rk = array($line["label_id"], $line["caption"], $line["fg_color"], $line["bg_color"]);
        array_push($rv, $rk);
    }
    if (count($rv) > 0) {
        label_update_cache($link, $owner_uid, $id, $rv);
    } else {
        label_update_cache($link, $owner_uid, $id, array("no-labels" => 1));
    }
    return $rv;
}
Ejemplo n.º 2
0
function get_article_labels($link, $id)
{
    global $memcache;
    $obj_id = md5("LABELS:{$id}:" . $_SESSION["uid"]);
    $rv = array();
    if ($memcache && ($obj = $memcache->get($obj_id))) {
        return $obj;
    } else {
        $result = db_query($link, "SELECT label_cache FROM\n\t\t\t\tttrss_user_entries WHERE ref_id = '{$id}' AND owner_uid = " . $_SESSION["uid"]);
        $label_cache = db_fetch_result($result, 0, "label_cache");
        if ($label_cache) {
            $label_cache = json_decode($label_cache, true);
            if ($label_cache["no-labels"] == 1) {
                return $rv;
            } else {
                return $label_cache;
            }
        }
        $result = db_query($link, "SELECT DISTINCT label_id,caption,fg_color,bg_color\n\t\t\t\t\tFROM ttrss_labels2, ttrss_user_labels2\n\t\t\t\tWHERE id = label_id\n\t\t\t\t\tAND article_id = '{$id}'\n\t\t\t\t\tAND owner_uid = " . $_SESSION["uid"] . "\n\t\t\t\tORDER BY caption");
        while ($line = db_fetch_assoc($result)) {
            $rk = array($line["label_id"], $line["caption"], $line["fg_color"], $line["bg_color"]);
            array_push($rv, $rk);
        }
        if ($memcache) {
            $memcache->add($obj_id, $rv, 0, 3600);
        }
        if (count($rv) > 0) {
            label_update_cache($link, $id, $rv);
        } else {
            label_update_cache($link, $id, array("no-labels" => 1));
        }
    }
    return $rv;
}