"en_US" => "English",
"fr_FR" => "Français",
"hu_HU" => "Magyar (Hungarian)",
+ "it_IT" => "Italiano",
+ "ja_JP" => "日本語 (Japanese)",
"nb_NO" => "Norwegian bokmål",
"ru_RU" => "Русский",
"pt_BR" => "Portuguese/Brazil",
define('MAGPIE_USER_AGENT_EXT', ' (Tiny Tiny RSS/' . VERSION . ')');
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
+ define('MAGPIE_CACHE_AGE', 60*15); // 15 minutes
require_once "simplepie/simplepie.inc";
require_once "magpierss/rss_fetch.inc";
}
// <media:content>
- // can there be many of those? -fox
+ // can there be many of those? yes -fox
$m_ctr = $item['media']['content#'];
$item['media']['content@length']);
array_push($enclosures, $e_item);
- }
- // FIXME: parse more of those, if needed.
+ for ($i = 0; $i <= $m_ctr; $i++ ) {
+
+ if ($item["media"]["content#$i@url"]) {
+ $e_item = array($item["media"]["content#$i@url"],
+ $item["media"]["content#$i@medium"],
+ $item["media"]["content#$i@length"]);
+ array_push($enclosures, $e_item);
+ }
+ }
+
+ }
}
# sanitize content
print "<select name=\"$id\" id='$id' $attributes>";
foreach (array_keys($values) as $v) {
if ($v == $default)
- $sel = "selected";
+ $sel = 'selected="selected"';
else
$sel = "";
setcookie("ttrss_lang", $_SESSION["language"],
time() + SESSION_COOKIE_LIFETIME);
}
+
+ /* bump counters stamp since we're getting reloaded anyway */
+
+ $_SESSION["get_all_counters_stamp"] = time();
}
} else {
}
}
+ if (db_escape_string("testTEST") != "testTEST") {
+ $error_code = 12;
+ }
+
error_reporting (DEFAULT_ERROR_LEVEL);
if ($error_code != 0) {
$last_updated = htmlspecialchars($last_updated);
- $has_img = is_file(ICONS_DIR . "/$id.ico");
+ $has_img = feed_has_icon($id);
$tmp_result = db_query($link,
"SELECT ttrss_feeds.id,COUNT(unread) AS unread
print "<param key=\"default_view_limit\" value=\"" .
(int) get_pref($link, "_DEFAULT_VIEW_LIMIT") . "\"/>";
+ print "<param key=\"default_view_order_by\" value=\"" .
+ get_pref($link, "_DEFAULT_VIEW_ORDER_BY") . "\"/>";
+
print "<param key=\"prefs_active_tab\" value=\"" .
get_pref($link, "_PREFS_ACTIVE_TAB") . "\"/>";
if (CHECK_FOR_NEW_VERSION && $_SESSION["access_level"] >= 10) {
- if ($_SESSION["last_version_check"] + 7200 < time()) {
+ if ($_SESSION["last_version_check"] + 86400 < time()) {
$new_version_details = check_for_update($link);
print "<param key=\"new_version_available\" value=\"".
$view_query_part = "";
- if ($view_mode == "adaptive") {
+ if ($view_mode == "adaptive" || $view_query_part == "noscores") {
if ($search) {
$view_query_part = " ";
} else if ($feed != -1) {
$tmp_result = db_query($link, "SELECT sql_exp FROM ttrss_labels
WHERE id = '$label_id'");
- $query_strategy_part = db_fetch_result($tmp_result, 0, "sql_exp");
+ $query_strategy_part = "(" . db_fetch_result($tmp_result, 0, "sql_exp") . ")";
if (!$query_strategy_part) {
return false;
$order_by = "updated DESC";
}
- $order_by = "score DESC, $order_by";
+ if ($view_mode != "noscores") {
+ $order_by = "score DESC, $order_by";
+ }
if ($override_order) {
$order_by = $override_order;
$view_query_part
$query_strategy_part ORDER BY $order_by
$limit_query_part $offset_query_part";
-
- $result = db_query($link, $query);
-
+
if ($_GET["debug"]) print $query;
+
+ $result = db_query($link, $query);
} else {
// browsing by tag
$tid = "headlineActionsBottom";
}
- print "<table class=\"$class\" id=\"$tid\"
+ print "<nobr><table class=\"$class\" id=\"$tid\"
width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
if ($rtl_content) {
print "</span>";
print "</td>";
- print "</tr></table>";
+ print "</tr></table></nobr>";
}
return vsprintf(__(array_shift($args)), $args);
}
- function outputArticleXML($link, $id, $feed_id, $mark_as_read = true) {
+ function outputArticleXML($link, $id, $feed_id, $mark_as_read = true,
+ $zoom_mode = false) {
/* we can figure out feed_id from article id anyway, why do we
* pass feed_id here? */
$feed_id = db_fetch_result($result, 0, "feed_id");
- print "<article id='$id'><![CDATA[";
+ if (!$zoom_mode) { print "<article id='$id'><![CDATA["; };
$result = db_query($link, "SELECT rtl_content FROM ttrss_feeds
WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
}
}
+ if ($zoom_mode) {
+ header("Content-Type: text/html");
+ print "<html><head>
+ <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
+ <title>Tiny Tiny RSS - ".$line["title"]."</title>
+ <link rel=\"stylesheet\" type=\"text/css\" href=\"tt-rss.css\">
+ </head><body>";
+ }
+
+
print "<div class=\"postReply\">";
print "<div class=\"postHeader\" onmouseover=\"enable_resize(true)\"
$tags = get_article_tags($link, $id);
$tags_str = "";
+ $tags_nolinks_str = "";
$f_tags_str = "";
$num_tags = 0;
if ($num_tags == $tag_limit) {
$tags_str .= "…";
+ $tags_nolinks_str .= "…";
} else if ($num_tags < $tag_limit) {
$tags_str .= $tag_str;
+ $tags_nolinks_str .= "$tag, ";
}
$f_tags_str .= $tag_str;
}
$tags_str = preg_replace("/, $/", "", $tags_str);
+ $tags_nolinks_str = preg_replace("/, $/", "", $tags_nolinks_str);
$f_tags_str = preg_replace("/, $/", "", $f_tags_str);
$all_tags_div = "<span class='cdmAllTagsCtr'>…<div class='cdmAllTags'>All Tags: $f_tags_str</div></span>";
if (!$entry_comments) $entry_comments = " "; # placeholder
if (!$tags_str) $tags_str = '<span class="tagList">'.__('no tags').'</span>';
+ if (!$tags_nolinks_str) $tags_nolinks_str = '<span class="tagList">'.__('no tags').'</span>';
print "<div style='float : right'>
- <img src='images/tag.png' class='tagsPic' alt='Tags' title='Tags'>
- $tags_str
- <a title=\"Edit tags for this article\"
- href=\"javascript:editArticleTags($id, $feed_id)\">(+)</a></div>
- <div clear='both'>$entry_comments</div>";
+ <img src='images/tag.png' class='tagsPic' alt='Tags' title='Tags'>";
+
+ if (!$zoom_mode) {
+ print "$tags_str
+ <a title=\"".__('Edit tags for this article')."\"
+ href=\"javascript:editArticleTags($id, $feed_id)\">(+)</a>";
+
+ if (defined('_ENABLE_INLINE_VIEW')) {
+
+ print "<img src=\"images/art-inline.png\" class='tagsPic'
+ style=\"cursor : pointer\" style=\"cursor : pointer\"
+ onclick=\"showOriginalArticleInline($id)\"
+ alt='Inline' title='".__('Display original article content')."'>";
+
+ }
+
+ print "<img src=\"images/art-zoom.png\" class='tagsPic'
+ style=\"cursor : pointer\" style=\"cursor : pointer\"
+ onclick=\"zoomToArticle($id)\"
+ alt='Zoom' title='".__('Show article summary in new window')."'>";
+ } else {
+ print "$tags_nolinks_str";
+ }
+ print "</div>";
+ print "<div clear='both'>$entry_comments</div>";
print "</div>";
post_id = '$id' AND content_url != ''");
if (db_num_rows($result) > 0) {
- print "<div class=\"postEnclosures\">";
-
- if (db_num_rows($result) == 1) {
- print __("Attachment:") . " ";
- } else {
- print __("Attachments:") . " ";
- }
+ $entries_html = array();
$entries = array();
while ($line = db_fetch_assoc($result)) {
$entry .= "<a target=\"_blank\" href=\"" . htmlspecialchars($url) . "\">" .
$filename . " (" . $ctype . ")" . "</a>";
+ array_push($entries_html, $entry);
+
+ $entry = array();
+
+ $entry["type"] = $ctype;
+ $entry["filename"] = $filename;
+ $entry["url"] = $url;
+
array_push($entries, $entry);
}
- print join(", ", $entries);
+ if (!preg_match("/img/i", $line["content"]) &&
+ preg_match("/image/", $entries[0]["type"])) {
+
+ }
+
+ print "<div class=\"postEnclosures\">";
+
+ if (!preg_match("/img/i", $line["content"])) {
+ foreach ($entries as $entry) {
+ if (preg_match("/image/", $entry["type"])) {
+ print "<p><img
+ alt=\"".htmlspecialchars($entry["filename"])."\"
+ src=\"" .htmlspecialchars($entry["url"]) . "\"></p>";
+ }
+ }
+ }
+
+ print "<div class=\"postEnclosures\">";
+
+ if (db_num_rows($result) == 1) {
+ print __("Attachment:") . " ";
+ } else {
+ print __("Attachments:") . " ";
+ }
+
+ print join(", ", $entries_html);
print "</div>";
}
}
- print "]]></article>";
+ if (!$zoom_mode) {
+ print "]]></article>";
+ } else {
+ print "
+ <div style=\"text-align : center\">
+ <input type=\"submit\" onclick=\"return window.close()\"
+ value=\"".__("Close this window")."\"></div>";
+ print "</body></html>";
+
+ }
}
function outputHeadlinesList($link, $feed, $subop, $view_mode, $limit, $cat_view,
- $next_unread_feed, $offset, $vgr_last_feed = false) {
+ $next_unread_feed, $offset, $vgr_last_feed = false,
+ $override_order = false) {
$disable_cache = false;
if ($_GET["debug"]) $timing_info = print_checkpoint("H0", $timing_info);
$qfh_ret = queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view,
- $search, $search_mode, $match_on, false, $real_offset);
+ $search, $search_mode, $match_on, $override_order, $real_offset);
if ($_GET["debug"]) $timing_info = print_checkpoint("H1", $timing_info);
$entry_author = " - $entry_author";
}
- $has_feed_icon = is_file(ICONS_DIR . "/$feed_id.ico");
+ $has_feed_icon = feed_has_icon($feed_id);
if ($has_feed_icon) {
$feed_icon_img = "<img class=\"tinyFeedIcon\" src=\"".ICONS_URL."/$feed_id.ico\" alt=\"\">";
} else {
//$feed_icon_img = "<img class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\" alt=\"\">";
+ $feed_icon_img = "";
}
if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) {
$vf_catchup_link = "(<a onclick='javascript:catchupFeedInGroup($feed_id);' href='#'>mark as read</a>)";
- $has_feed_icon = is_file(ICONS_DIR . "/$feed_id.ico");
+ $has_feed_icon = feed_has_icon($feed_id);
if ($has_feed_icon) {
$feed_icon_img = "<img class=\"tinyFeedIcon\" src=\"".ICONS_URL."/$feed_id.ico\" alt=\"\">";
post_id = '$id' AND content_url != ''");
if (db_num_rows($e_result) > 0) {
- print "<div class=\"cdmEnclosures\">";
-
- if (db_num_rows($e_result) == 1) {
- print __("Attachment:") . " ";
- } else {
- print __("Attachments:") . " ";
- }
+ $entries_html = array();
$entries = array();
while ($e_line = db_fetch_assoc($e_result)) {
$entry .= "<a target=\"_blank\" href=\"" . htmlspecialchars($url) . "\">" .
$filename . " (" . $ctype . ")" . "</a>";
+ array_push($entries_html, $entry);
+
+ $entry = array();
+
+ $entry["type"] = $ctype;
+ $entry["filename"] = $filename;
+ $entry["url"] = $url;
+
array_push($entries, $entry);
}
- print join(", ", $entries);
+ if (!preg_match("/img/i", $line["content"])) {
+ foreach ($entries as $entry) {
+ if (preg_match("/image/", $entry["type"])) {
+ print "<p><img
+ alt=\"".htmlspecialchars($entry["filename"])."\"
+ src=\"" .htmlspecialchars($entry["url"]) . "\"></p>";
+ }
+ }
+ }
+
+ print "<div class=\"cdmEnclosures\">";
+
+ if (db_num_rows($e_result) == 1) {
+ print __("Attachment:") . " ";
+ } else {
+ print __("Attachments:") . " ";
+ }
+
+ print join(", ", $entries_html);
print "</div>";
}
+
print "<br clear='both'>";
// print "</div>";
print "</span><span class='s1'>$marked_pic</span> ";
print "<span class='s1'>$published_pic</span> ";
+ print "<span class='s1'><img src=\"images/art-zoom.png\" class='tagsPic'
+ onclick=\"zoomToArticle($id)\"
+ style=\"cursor : pointer\"
+ alt='Zoom'
+ title='".__('Show article summary in new window')."'></span>";
$tags = get_article_tags($link, $id);
function rounded_table_start($classname, $header = " ") {
print "<table width='100%' class='$classname' cellspacing='0' cellpadding='0'>";
- print "<tr><td class='c1'> </td><td class='top'>$header</td><td class='c2'> </tr>";
+ print "<tr><td class='c1'> </td><td class='top'>$header</td><td class='c2'> </td></tr>";
print "<tr><td class='left'> </td><td class='content'>";
}
function rounded_table_end($footer = " ") {
print "</td><td class='right'> </td></tr>";
- print "<tr><td class='c4'> </td><td class='bottom'>$footer</td><td class='c3'> </tr>";
+ print "<tr><td class='c4'> </td><td class='bottom'>$footer</td><td class='c3'> </td></tr>";
print "</table>";
}
onclick=\"return addLabelExample()\"
value=\"".__("Add")."\">";
}
+
+ function feed_has_icon($id) {
+ return is_file(ICONS_DIR . "/$id.ico") && filesize(ICONS_DIR . "/$id.ico") > 0;
+ }
+
+ function init_connection($link) {
+ if (DB_TYPE == "pgsql") {
+ pg_query("set client_encoding = 'UTF-8'");
+ pg_set_client_encoding("UNICODE");
+ } else {
+ if (defined('MYSQL_CHARSET') && MYSQL_CHARSET) {
+ db_query($link, "SET NAMES " . MYSQL_CHARSET);
+ // db_query($link, "SET CHARACTER SET " . MYSQL_CHARSET);
+ }
+ }
+ }
?>