コード例 #1
0
ファイル: feeds.php プロジェクト: 4iji/Tiny-Tiny-RSS
 private function feedlist_init_cat($cat_id, $hidden = false)
 {
     $obj = array();
     $cat_id = (int) $cat_id;
     if ($cat_id > 0) {
         $cat_unread = ccache_find($this->link, $cat_id, $_SESSION["uid"], true);
     } else {
         if ($cat_id == 0 || $cat_id == -2) {
             $cat_unread = getCategoryUnread($this->link, $cat_id);
         }
     }
     $obj['id'] = 'CAT:' . $cat_id;
     $obj['items'] = array();
     $obj['name'] = getCategoryTitle($this->link, $cat_id);
     $obj['type'] = 'feed';
     $obj['unread'] = (int) $cat_unread;
     $obj['hidden'] = $hidden;
     $obj['bare_id'] = $cat_id;
     return $obj;
 }
コード例 #2
0
ファイル: functions.php プロジェクト: nota-ja/tt-rss
function getFeedArticles($feed, $is_cat = false, $unread_only = false, $owner_uid = false)
{
    $n_feed = (int) $feed;
    $need_entries = false;
    if (!$owner_uid) {
        $owner_uid = $_SESSION["uid"];
    }
    if ($unread_only) {
        $unread_qpart = "unread = true";
    } else {
        $unread_qpart = "true";
    }
    if ($is_cat) {
        return getCategoryUnread($n_feed, $owner_uid);
    } else {
        if ($n_feed == -6) {
            return 0;
        } else {
            if ($feed != "0" && $n_feed == 0) {
                $feed = db_escape_string($feed);
                $result = db_query("SELECT SUM((SELECT COUNT(int_id)\n\t\t\t\tFROM ttrss_user_entries,ttrss_entries WHERE int_id = post_int_id\n\t\t\t\t\tAND ref_id = id AND {$unread_qpart})) AS count FROM ttrss_tags\n\t\t\t\tWHERE owner_uid = {$owner_uid} AND tag_name = '{$feed}'");
                return db_fetch_result($result, 0, "count");
            } else {
                if ($n_feed == -1) {
                    $match_part = "marked = true";
                } else {
                    if ($n_feed == -2) {
                        $match_part = "published = true";
                    } else {
                        if ($n_feed == -3) {
                            $match_part = "unread = true AND score >= 0";
                            $intl = get_pref("FRESH_ARTICLE_MAX_AGE", $owner_uid);
                            if (DB_TYPE == "pgsql") {
                                $match_part .= " AND date_entered > NOW() - INTERVAL '{$intl} hour' ";
                            } else {
                                $match_part .= " AND date_entered > DATE_SUB(NOW(), INTERVAL {$intl} HOUR) ";
                            }
                            $need_entries = true;
                        } else {
                            if ($n_feed == -4) {
                                $match_part = "true";
                            } else {
                                if ($n_feed >= 0) {
                                    if ($n_feed != 0) {
                                        $match_part = "feed_id = '{$n_feed}'";
                                    } else {
                                        $match_part = "feed_id IS NULL";
                                    }
                                } else {
                                    if ($feed < LABEL_BASE_INDEX) {
                                        $label_id = feed_to_label_id($feed);
                                        return getLabelUnread($label_id, $owner_uid);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if ($match_part) {
        if ($need_entries) {
            $from_qpart = "ttrss_user_entries,ttrss_entries";
            $from_where = "ttrss_entries.id = ttrss_user_entries.ref_id AND";
        } else {
            $from_qpart = "ttrss_user_entries";
            $from_where = "";
        }
        $query = "SELECT count(int_id) AS unread\n\t\t\t\tFROM {$from_qpart} WHERE\n\t\t\t\t{$unread_qpart} AND {$from_where} ({$match_part}) AND ttrss_user_entries.owner_uid = {$owner_uid}";
        //echo "[$feed/$query]\n";
        $result = db_query($query);
    } else {
        $result = db_query("SELECT COUNT(post_int_id) AS unread\n\t\t\t\tFROM ttrss_tags,ttrss_user_entries,ttrss_entries\n\t\t\t\tWHERE tag_name = '{$feed}' AND post_int_id = int_id AND ref_id = ttrss_entries.id\n\t\t\t\tAND {$unread_qpart} AND ttrss_tags.owner_uid = " . $owner_uid);
    }
    $unread = db_fetch_result($result, 0, "unread");
    return $unread;
}
コード例 #3
0
ファイル: functions.php プロジェクト: wangroot/Tiny-Tiny-RSS
function printCategoryHeader($link, $cat_id, $hidden = false, $can_browse = true)
{
    $tmp_category = getCategoryTitle($link, $cat_id);
    if ($cat_id > 0) {
        $cat_unread = ccache_find($link, $cat_id, $_SESSION["uid"], true);
    } else {
        if ($cat_id == 0 || $cat_id == -2) {
            $cat_unread = getCategoryUnread($link, $cat_id);
        }
    }
    if ($hidden) {
        $holder_style = "display:none;";
        $ellipsis = "…";
    } else {
        $holder_style = "";
        $ellipsis = "";
    }
    $catctr_class = $cat_unread > 0 ? "catCtrHasUnread" : "catCtrNoUnread";
    if ($can_browse) {
        $browse_cat_link = "onclick=\"javascript:viewCategory({$cat_id})\"";
        $inner_title_class = "catTitle";
    } else {
        $browse_cat_link = "";
        $inner_title_class = "catTitleNL";
    }
    $cat_class = "feedCat";
    print "<li class=\"{$cat_class}\" id=\"FCAT-{$cat_id}\">\n\t\t\t\t<img onclick=\"toggleCollapseCat({$cat_id})\" class=\"catCollapse\"\n\t\t\t\t\ttitle=\"" . __('Click to collapse category') . "\"\n\t\t\t\t\tsrc=\"images/cat-collapse.png\"><span class=\"{$inner_title_class}\" \n\t\t\t\t\tid=\"FCATN-{$cat_id}\" {$browse_cat_link}/>{$tmp_category}</span>";
    print "<span id=\"FCAP-{$cat_id}\">";
    print " <span id=\"FCATCTR-{$cat_id}\" \n\t\t\t\tclass=\"{$catctr_class}\">({$cat_unread})</span> {$ellipsis}";
    print "</span>";
    //print "</li>";
    print "<ul class=\"feedCatList\" id=\"FCATLIST-{$cat_id}\" style='{$holder_style}'>";
}
コード例 #4
0
ファイル: functions.php プロジェクト: nougad/Tiny-Tiny-RSS
function render_feeds_list($link)
{
    $tags = $_GET["tags"];
    print "<div id=\"heading\">";
    if ($tags) {
        print __("Tags") . "<span id=\"headingAddon\">\n\t\t\t\t(<a href=\"index.php\">" . __("View feeds") . "</a>, ";
    } else {
        print __("Feeds") . " <span id=\"headingAddon\">\n\t\t\t\t(<a href=\"index.php?tags=1\">" . __("View tags") . "</a>, ";
    }
    print "<a href=\"index.php?go=sform\">" . __("Search") . "</a>, ";
    print "<a href=\"logout.php\">" . __("Logout") . "</a>)</span>";
    print "</div>";
    print "<ul class=\"feedList\">";
    $owner_uid = $_SESSION["uid"];
    if (!$tags) {
        /* virtual feeds */
        if (get_pref($link, 'ENABLE_FEED_CATS')) {
            $collapsed = get_pref($link, "_COLLAPSED_SPECIAL");
            if ($collapsed == "t" || $collapsed == "1") {
                $holder_class = "invisible";
                $ellipsis = "...";
            } else {
                $holder_class = "feedCatHolder";
                $ellipsis = "";
            }
            $tmp_category = __("Special");
            print "<li class=\"feedCat\">\n\t\t\t\t\t<a href=\"?subop=tc&id=-1\">{$tmp_category}</a>{$ellipsis}\n\t\t\t\t\t\t</li>";
            print "<li class=\"{$holder_class}\"><ul class=\"feedCatList\">";
        }
        foreach (array(-4, -3, -1, -2, 0) as $i) {
            printMobileFeedEntry($i, "virt", false, false, false, $link);
        }
        if (get_pref($link, 'ENABLE_FEED_CATS')) {
            print "</ul>";
        }
        $result = db_query($link, "SELECT id,caption FROM\t\t\t\t\t\n\t\t\t\t\tttrss_labels2 WHERE owner_uid = '{$owner_uid}' ORDER by caption");
        if (db_num_rows($result) > 0) {
            if (get_pref($link, 'ENABLE_FEED_CATS')) {
                $collapsed = get_pref($link, "_COLLAPSED_LABELS");
                if ($collapsed == "t" || $collapsed == "1") {
                    $holder_class = "invisible";
                    $ellipsis = "...";
                } else {
                    $holder_class = "feedCatHolder";
                    $ellipsis = "";
                }
                $tmp_category = __("Labels");
                print "<li class=\"feedCat\">\n\t\t\t\t\t\t\t<a href=\"?subop=tc&id=-2\">{$tmp_category}</a>{$ellipsis}\n\t\t\t\t\t\t\t\t</li>";
                print "<li class=\"{$holder_class}\"><ul class=\"feedCatList\">";
            } else {
                //						print "<li><hr></li>";
            }
        }
        while ($line = db_fetch_assoc($result)) {
            $count = getFeedUnread($link, -$line["id"] - 11);
            $class = "label";
            printMobileFeedEntry(-$line["id"] - 11, $class, $line["caption"], $count, false, $link);
        }
        if (db_num_rows($result) > 0) {
            if (get_pref($link, 'ENABLE_FEED_CATS')) {
                print "</ul>";
            }
        }
        if (get_pref($link, 'ENABLE_FEED_CATS')) {
            $order_by_qpart = "category,title";
        } else {
            $order_by_qpart = "title";
        }
        $result = db_query($link, "SELECT ttrss_feeds.*,\n\t\t\t\t" . SUBSTRING_FOR_DATE . "(last_updated,1,19) AS last_updated_noms,\n\t\t\t\t(SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries\n\t\t\t\t\tWHERE feed_id = ttrss_feeds.id AND \n\t\t\t\t\tttrss_user_entries.ref_id = ttrss_entries.id AND\n\t\t\t\t\towner_uid = '{$owner_uid}') AS total,\n\t\t\t\t(SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries\n\t\t\t\t\tWHERE feed_id = ttrss_feeds.id AND unread = true\n\t\t\t\t\t\tAND ttrss_user_entries.ref_id = ttrss_entries.id\n\t\t\t\t\t\tAND owner_uid = '{$owner_uid}') as unread,\n\t\t\t\tcat_id,last_error,\n\t\t\t\tttrss_feed_categories.title AS category,\n\t\t\t\tttrss_feed_categories.collapsed\t\n\t\t\t\tFROM ttrss_feeds LEFT JOIN ttrss_feed_categories \n\t\t\t\t\tON (ttrss_feed_categories.id = cat_id)\t\t\t\t\n\t\t\t\tWHERE \n\t\t\t\t\tttrss_feeds.owner_uid = '{$owner_uid}'\n\t\t\t\tORDER BY {$order_by_qpart}");
        $actid = $_GET["actid"];
        /* real feeds */
        $lnum = 0;
        $category = "";
        while ($line = db_fetch_assoc($result)) {
            if (get_pref($link, 'HIDE_READ_FEEDS') && (int) $line['unread'] == 0) {
                continue;
            }
            $feed = db_unescape_string($line["title"]);
            $feed_id = $line["id"];
            $subop = $_GET["subop"];
            $total = $line["total"];
            $unread = $line["unread"];
            $rtl_content = sql_bool_to_bool($line["rtl_content"]);
            if ($rtl_content) {
                $rtl_tag = "dir=\"RTL\"";
            } else {
                $rtl_tag = "";
            }
            $cat_id = $line["cat_id"];
            $tmp_category = $line["category"];
            if (!$tmp_category) {
                $tmp_category = "Uncategorized";
            }
            //			$class = ($lnum % 2) ? "even" : "odd";
            if ($line["last_error"]) {
                $class = "error";
            } else {
                $class = "feed";
            }
            if ($category != $tmp_category && get_pref($link, 'ENABLE_FEED_CATS')) {
                if ($category) {
                    print "</ul></li>";
                }
                $category = $tmp_category;
                $collapsed = $line["collapsed"];
                // workaround for NULL category
                if ($category == "Uncategorized") {
                    $collapsed = get_pref($link, "_COLLAPSED_UNCAT");
                }
                if ($collapsed == "t" || $collapsed == "1") {
                    $holder_class = "invisible";
                    $ellipsis = "...";
                } else {
                    $holder_class = "feedCatHolder";
                    $ellipsis = "";
                }
                if ($cat_id) {
                    $cat_id_qpart = "cat_id = '{$cat_id}'";
                } else {
                    $cat_id_qpart = "cat_id IS NULL";
                }
                $cat_id = sprintf("%d", $cat_id);
                $cat_unread = getCategoryUnread($link, $cat_id);
                if ($cat_unread > 0) {
                    $catctr_class = "";
                } else {
                    $catctr_class = "invisible";
                }
                print "<li class=\"feedCat\">\n\t\t\t\t\t\t<a href=\"?subop=tc&id={$cat_id}\">{$tmp_category}</a>\n\t\t\t\t\t\t\t<a href=\"?go=vf&id={$cat_id}&cat=true\">\n\t\t\t\t\t\t\t\t<span class=\"{$catctr_class}\">({$cat_unread}){$ellipsis}</span>\n\t\t\t\t\t\t\t</a></li>";
                print "<li id=\"feedCatHolder\" class=\"{$holder_class}\">\n\t\t\t\t\t\t<ul class=\"feedCatList\">";
            }
            printMobileFeedEntry($feed_id, $class, $feed, $unread, false, $link, $rtl_content);
            ++$lnum;
        }
    } else {
        // tags
        $result = db_query($link, "SELECT tag_name,SUM((SELECT COUNT(int_id) \n\t\t\t\tFROM ttrss_user_entries WHERE int_id = post_int_id \n\t\t\t\t\tAND unread = true)) AS count FROM ttrss_tags \n\t\t\t\tWHERE owner_uid = '" . $_SESSION['uid'] . "' GROUP BY tag_name ORDER BY tag_name");
        $tags = array();
        while ($line = db_fetch_assoc($result)) {
            $tags[$line["tag_name"]] += $line["count"];
        }
        foreach (array_keys($tags) as $tag) {
            $unread = $tags[$tag];
            $class = "tag";
            printMobileFeedEntry($tag, $class, $tag, $unread, "../images/tag.png", $link);
        }
    }
}