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; }
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; }