]> git.wh0rd.org - tt-rss.git/blobdiff - functions.php
use JSON for init-params
[tt-rss.git] / functions.php
index bed8f23f10e63e747b08c983943a02ac641bef63..87a76e1dd50d36612698b2b9df32d18528cae027 100644 (file)
                                }
                        }
                }
-               return false;
+               return '';
        }
 
 
        function getAllCounters($link, $omode = "flc", $active_feed = false) {
 
                if (!$omode) $omode = "flc";
-       
-               getGlobalCounters($link);
-               getVirtCounters($link);
 
-               if (strchr($omode, "l")) getLabelCounters($link);
-               if (strchr($omode, "f")) getFeedCounters($link, $active_feed);
-               if (strchr($omode, "t")) getTagCounters($link);
+               $data = getGlobalCounters($link);
+               
+               $data = array_merge($data, getVirtCounters($link));
+
+               if (strchr($omode, "l")) $data = array_merge($data, getLabelCounters($link));
+               if (strchr($omode, "f")) $data = array_merge($data, getFeedCounters($link, $active_feed));
+               if (strchr($omode, "t")) $data = array_merge($data, getTagCounters($link));
                if (strchr($omode, "c")) {                      
                        if (get_pref($link, 'ENABLE_FEED_CATS')) {
-                               getCategoryCounters($link);
+                               $data = array_merge($data, getCategoryCounters($link));
                        }
                }
+
+               return $data;
        }       
 
        function getCategoryCounters($link) {
-               # two special categories are -1 and -2 (all virtuals; all labels)
-
-/*             $ctr = getCategoryUnread($link, -1);
+               $ret_arr = array();
 
-               print "<counter type=\"category\" id=\"-1\" counter=\"$ctr\"/>"; */
+               /* Labels category */
 
-               $ctr = getCategoryUnread($link, -2); 
+               $cv = array("id" => -2, "cat" => true,
+                       "counter" => getCategoryUnread($link, -2));
 
-               print "<counter type=\"category\" id=\"-2\" counter=\"$ctr\"/>";
+               array_push($ret_arr, $cv);
 
                $age_qpart = getMaxAgeSubquery();
 
                while ($line = db_fetch_assoc($result)) {
                        $line["cat_id"] = (int) $line["cat_id"];
 
-                       print "<counter type=\"category\" id=\"".$line["cat_id"]."\" counter=\"".
-                               $line["unread"]."\"/>";
+                       $cv = array("id" => $line["cat_id"], "cat" => true,
+                               "counter" => $line["unread"]);
+
+                       array_push($ret_arr, $cv);
                }
 
                /* Special case: NULL category doesn't actually exist in the DB */
 
-               print "<counter type=\"category\" id=\"0\" counter=\"".
-                       ccache_find($link, 0, $_SESSION["uid"], true)."\"/>";
+               $cv = array("id" => 0, "cat" => true,
+                       "counter" => ccache_find($link, 0, $_SESSION["uid"], true));
+
+               array_push($ret_arr, $cv);
 
+               return $ret_arr;
        }
 
        function getCategoryUnread($link, $cat, $owner_uid = false) {
        }
 
        function getGlobalCounters($link, $global_unread = -1) {
+               $ret_arr = array();
+
                if ($global_unread == -1) {     
                        $global_unread = getGlobalUnread($link);
                }
-               print "<counter type=\"global\" id='global-unread' 
-                       counter='$global_unread'/>";
+
+               $cv = array("id" => "global-unread", 
+                       "counter" => $global_unread);
+
+               array_push($ret_arr, $cv);
 
                $result = db_query($link, "SELECT COUNT(id) AS fn FROM 
                        ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]);
 
                $subscribed_feeds = db_fetch_result($result, 0, "fn");
 
-               print "<counter type=\"global\" id='subscribed-feeds' 
-                       counter='$subscribed_feeds'/>";
+               $cv = array("id" => "subscribed-feeds", 
+                       "counter" => $subscribed_feeds);
+
+               array_push($ret_arr, $cv);
 
+               return $ret_arr;
        }
 
        function getSubscribedFeeds($link) {
        }
 
        function getTagCounters($link) {
+               
+               $ret_arr = array();
 
                $age_qpart = getMaxAgeSubquery();
 
                foreach (array_keys($tags) as $tag) {
                        $unread = $tags[$tag];                  
                        $tag = htmlspecialchars($tag);
-                       print "<counter type=\"tag\" id=\"$tag\" counter=\"$unread\"/>";
-               } 
+
+                       $cv = array("id" => $tag,
+                               "tag" => true,
+                               "counter" => $unread);
+
+                       array_push($ret_arr, $cv);
+               }
+
+               return $ret_arr;        
        }
 
-       function getVirtCounters($link, $ret_mode = false) {
+       function getVirtCounters($link) {
 
                $ret_arr = array();
 
                for ($i = 0; $i >= -4; $i--) {
 
                        $count = getFeedUnread($link, $i);
+
+                       $cv = array("id" => $i,
+                               "counter" => $count,
+                               "description" => getFeedTitle($link, $i));
        
-                       if (!$ret_mode) {
-       
-                               if (get_pref($link, 'EXTENDED_FEEDLIST')) {
-                                       $xmsg_part = "xmsg=\"(" . getFeedArticles($link, $i) . " total)\"";
-                               } else {
-                                       $xmsg_part = "";
-                               }
+                       if (get_pref($link, 'EXTENDED_FEEDLIST'))
+                               $cv["xmsg"] = getFeedArticles($link, $i)." ".__("total");
 
-                               print "<counter type=\"label\" id=\"$i\" counter=\"$count\" $xmsg_part/>";
-                       } else {
-                               $ret_arr[$i]["counter"] = $count;
-                               $ret_arr[$i]["description"] = getFeedTitle($link, $i);
-                       }
+                       array_push($ret_arr, $cv);
                } 
 
                return $ret_arr;
        }
 
-       function getLabelCounters($link, $ret_mode = false) {
+       function getLabelCounters($link) {
+
+               $ret_arr = array();
 
                $age_qpart = getMaxAgeSubquery();
 
 
                        $label_name = $line["caption"];
                        $count = getFeedUnread($link, $id);
-       
-                       if (!$ret_mode) {
 
-                               if (get_pref($link, 'EXTENDED_FEEDLIST')) {
-                                       $xmsg_part = "xmsg=\"(" . getFeedArticles($link, $id) . " total)\"";
-                               } else {
-                                       $xmsg_part = "";
-                               }
+                       $cv = array("id" => $id,
+                               "counter" => $count,
+                               "description" => $label_name);
 
-                               print "<counter type=\"label\" id=\"$id\" counter=\"$count\" $xmsg_part/>";
+                       if (get_pref($link, 'EXTENDED_FEEDLIST'))
+                               $cv["xmsg"] = getFeedArticles($link, $id)." ".__("total");
 
-                       } else {
-                               $ret_arr[$id]["counter"] = $count;
-                               $ret_arr[$id]["description"] = $label_name;
-                       }
+                       array_push($ret_arr, $cv);
                }
        
                return $ret_arr;
 
        function getFeedCounters($link, $active_feed = false) {
 
+               $ret_arr = array();
+
                $age_qpart = getMaxAgeSubquery();
 
                $query = "SELECT ttrss_feeds.id,
                                $last_updated = date($short_date, strtotime($line["last_updated"]));
                        }                               
 
-                       $last_updated = htmlspecialchars($last_updated);
-
                        $has_img = feed_has_icon($id);
 
                        $tmp_result = db_query($link,
 
                        $count += db_fetch_result($tmp_result, 0, "unread");
 
-                       if ($last_error) {
-                               $error_part = "error=\"$last_error\"";
-                       } else {
-                               $error_part = "";
-                       }
+                       $cv = array("id" => $id,
+                               "updated" => $last_updated,
+                               "counter" => $count,
+                               "has_img" => (int) $has_img);
 
-                       if ($has_img) {
-                               $has_img_part = "hi=\"$has_img\"";
-                       } else {
-                               $has_img_part = "";
-                       }                               
+                       if ($last_error)
+                               $cv["error"] = $last_error;
 
-                       if ($active_feed && $id == $active_feed) {
-                               $has_title_part = "title=\"" . htmlspecialchars($line["title"]) . "\"";
-                       } else {
-                               $has_title_part = "";
-                       }
+                       if (get_pref($link, 'EXTENDED_FEEDLIST'))
+                               $cv["xmsg"] = getFeedArticles($link, $id)." ".__("total");
 
-                       if (get_pref($link, 'EXTENDED_FEEDLIST')) {
-                               $xmsg_part = "xmsg=\"(" . getFeedArticles($link, $id) . " total)\"";
-                       }
+                       if ($active_feed && $id == $active_feed)
+                               $cv["title"] = $line["title"];
+
+                       array_push($ret_arr, $cv);
 
-                       print "<counter type=\"feed\" id=\"$id\" counter=\"$count\" $has_img_part $error_part updated=\"$last_updated\" $xmsg_part $has_title_part/>";
                }
+
+               return $ret_arr;
        }
 
        function get_script_dt_add() {
-/*             if (strpos(VERSION, ".99") === false) {
-                       return VERSION;
-               } else {
-                       return time();
-               } */
                return time();
        }
 
                return ((!defined('TTRSS_SESSION_NAME')) ? "ttrss_sid" : TTRSS_SESSION_NAME);
        }
 
-       function print_init_params($link) {
-               print "<init-params>";
-               if ($_SESSION["stored-params"]) {
-                       foreach (array_keys($_SESSION["stored-params"]) as $key) {
-                               if ($key) {
-                                       $value = htmlspecialchars($_SESSION["stored-params"][$key]);
-                                       print "<param key=\"$key\" value=\"$value\"/>";
-                               }
-                       }
-               }
-
-               print "<param key=\"theme\" value=\"".get_user_theme($link)."\"/>";
-               print "<param key=\"theme_options\" value=\"".get_user_theme_options($link)."\"/>";
-               print "<param key=\"daemon_enabled\" value=\"" . ENABLE_UPDATE_DAEMON . "\"/>";
-               print "<param key=\"feeds_frame_refresh\" value=\"" . FEEDS_FRAME_REFRESH . "\"/>";
-               print "<param key=\"daemon_refresh_only\" value=\"true\"/>";
-
-               print "<param key=\"sign_progress\" value=\"".
-                       theme_image($link, "images/indicator_white.gif")."\"/>";
-
-               print "<param key=\"sign_progress_tiny\" value=\"".
-                       theme_image($link, "images/indicator_tiny.gif")."\"/>";
-
-               print "<param key=\"sign_excl\" value=\"".
-                       theme_image($link, "images/sign_excl.png")."\"/>";
-
-               print "<param key=\"sign_info\" value=\"".
-                       theme_image($link, "images/sign_info.png")."\"/>";
-
-               print "<param key=\"on_catchup_show_next_feed\" value=\"" . 
-                       get_pref($link, "ON_CATCHUP_SHOW_NEXT_FEED") . "\"/>";
-
-               print "<param key=\"hide_read_feeds\" value=\"" . 
-                       (int) get_pref($link, "HIDE_READ_FEEDS") . "\"/>";
+       function make_init_param($param, $value) {
+               return array("param" => $param, "value" => $value);
+       }
 
-               print "<param key=\"enable_feed_cats\" value=\"" . 
-                       (int) get_pref($link, "ENABLE_FEED_CATS") . "\"/>";
+       function print_init_params($link) {
+               print "<init-params><![CDATA[";
 
-               print "<param key=\"feeds_sort_by_unread\" value=\"" . 
-                       (int) get_pref($link, "FEEDS_SORT_BY_UNREAD") . "\"/>";
+               $params = array();
 
-               print "<param key=\"confirm_feed_catchup\" value=\"" . 
-                       (int) get_pref($link, "CONFIRM_FEED_CATCHUP") . "\"/>";
+               array_push($params, make_init_param("theme", get_user_theme($link)));
+               array_push($params, make_init_param("theme_options", get_user_theme_options($link)));
+               array_push($params, make_init_param("daemon_enabled", ENABLE_UPDATE_DAEMON));
+               array_push($params, make_init_param("feeds_frame_refresh", FEEDS_FRAME_REFRESH));
+               array_push($params, make_init_param("daemon_refresh_only", true));
 
-               print "<param key=\"cdm_auto_catchup\" value=\"" . 
-                       (int) get_pref($link, "CDM_AUTO_CATCHUP") . "\"/>";
+               array_push($params, make_init_param("sign_progress", 
+                       theme_image($link, "images/indicator_white.gif")));
 
-               print "<param key=\"fresh_article_max_age\" value=\"" . 
-                       (int) get_pref($link, "FRESH_ARTICLE_MAX_AGE") . "\"/>";
+               array_push($params, make_init_param("sign_progress_tiny", 
+                       theme_image($link, "images/indicator_white.gif")));
 
-               print "<param key=\"icons_url\" value=\"" . ICONS_URL . "\"/>";
+               array_push($params, make_init_param("sign_excl", 
+                       theme_image($link, "images/sign_excl.png")));
 
-               print "<param key=\"cookie_lifetime\" value=\"" . SESSION_COOKIE_LIFETIME . "\"/>";
+               array_push($params, make_init_param("sign_info", 
+                       theme_image($link, "images/sign_info.png")));
 
-               print "<param key=\"default_view_mode\" value=\"" . 
-                       get_pref($link, "_DEFAULT_VIEW_MODE") . "\"/>";
+               foreach (array("ON_CATCHUP_SHOW_NEXT_FEED", "HIDE_READ_FEEDS",
+                       "ENABLE_FEED_CATS", "FEEDS_SORT_BY_UNREAD", "CONFIRM_FEED_CATCHUP",
+                       "CDM_AUTO_CATCHUP", "FRESH_ARTICLE_MAX_AGE", 
+                       "HIDE_READ_SHOWS_SPECIAL", "HIDE_FEEDLIST") as $param) {
 
-               print "<param key=\"default_view_limit\" value=\"" . 
-                       (int) get_pref($link, "_DEFAULT_VIEW_LIMIT") . "\"/>";
+                                array_push($params, make_init_param(strtolower($param), 
+                                        (int) get_pref($link, $param)));
+                }
 
-               print "<param key=\"default_view_order_by\" value=\"" . 
-                       get_pref($link, "_DEFAULT_VIEW_ORDER_BY") . "\"/>";
+               array_push($params, make_init_param("icons_url", ICONS_URL));
 
-               print "<param key=\"prefs_active_tab\" value=\"" . 
-                       get_pref($link, "_PREFS_ACTIVE_TAB") . "\"/>";
+               array_push($params, make_init_param("cookie_lifetime", SESSION_COOKIE_LIFETIME));
 
-               print "<param key=\"infobox_disable_overlay\" value=\"" . 
-                       get_pref($link, "_INFOBOX_DISABLE_OVERLAY") . "\"/>";
+               array_push($params, make_init_param("default_view_mode", 
+                       get_pref($link, "_DEFAULT_VIEW_MODE")));
 
-               print "<param key=\"icons_location\" value=\"" . 
-                       ICONS_URL . "\"/>";
+               array_push($params, make_init_param("default_view_limit", 
+                       (int) get_pref($link, "_DEFAULT_VIEW_LIMIT")));
 
-               print "<param key=\"hide_read_shows_special\" value=\"" . 
-                       (int) get_pref($link, "HIDE_READ_SHOWS_SPECIAL") . "\"/>";
+               array_push($params, make_init_param("default_view_order_by", 
+                       get_pref($link, "_DEFAULT_VIEW_ORDER_BY")));
 
-               print "<param key=\"hide_feedlist\" value=\"" .
-                       (int) get_pref($link, "HIDE_FEEDLIST") . "\"/>";
+               array_push($params, make_init_param("prefs_active_tab", 
+                       get_pref($link, "_PREFS_ACTIVE_TAB")));
 
-               print "<param key=\"bw_limit\" value=\"".
-                       (int) $_SESSION["bw_limit"]."\"/>";
+               array_push($params, make_init_param("infobox_disable_overlay", 
+                       get_pref($link, "_INFOBOX_DISABLE_OVERLAY")));
 
-//             print "<param key=\"sync_counters\" value=\"" . 
-//                     (int) get_pref($link, "SYNC_COUNTERS") . "\"/>";
+               array_push($params, make_init_param("bw_limit", 
+                       (int) $_SESSION["bw_limit"]));
 
-               print "<param key=\"sync_counters\" value=\"1\"/>";
+               array_push($params, make_init_param("sync_counters", 1));
 
-               print "<param key=\"offline_enabled\" value=\"".
-                       (int) get_pref($link, "ENABLE_OFFLINE_READING") . "\"/>";
+               array_push($params, make_init_param("offline_enabled", 
+                       (int) get_pref($link, "ENABLE_OFFLINE_READING")));
 
                $result = db_query($link, "SELECT COUNT(*) AS cf FROM
                        ttrss_feeds WHERE owner_uid = " . $_SESSION["uid"]);
 
                $num_feeds = db_fetch_result($result, 0, "cf");
 
-               print "<param key=\"num_feeds\" value=\"".
-                       (int)$num_feeds. "\"/>";
+               array_push($params, make_init_param("num_feeds", 
+                       (int) $num_feeds));
+
+               array_push($params, make_init_param("collapsed_feedlist", 
+                       (int) get_pref($link, "_COLLAPSED_FEEDLIST")));
 
-               print "<param key=\"collapsed_feedlist\" value=\"" . 
-                       (int) get_pref($link, "_COLLAPSED_FEEDLIST") . "\"/>";
+               print json_encode($params);
 
-               print "</init-params>";
+               print "]]></init-params>";
        }
 
        function print_runtime_info($link) {