diff options
54 files changed, 3891 insertions, 501 deletions
@@ -132,6 +132,10 @@ div.cdm.expanded.Unread.Selected div.cdmHeader, div.cdm.expanded.Selected div.cd background : #FFEA9E; } +div.cdm.active.Selected div.cdmHeader { + background : #FFEA9E; +} + div.cdm.expanded.even.Unread, div.cdm.expanded.odd.Unread { background : white; } @@ -159,3 +163,13 @@ div.cdmContentInner p { div.cdmContentInner iframe { min-width : 50%; } + +div.cdmHeader span.author { + color : gray; + font-size : 11px; +} + +div.cdm.expanded div.cdmHeader a.title, div.cdm.active div.cdmHeader a.title { + font-size : 13px; +} + diff --git a/classes/api.php b/classes/api.php index b9168cf93..3ec218671 100644 --- a/classes/api.php +++ b/classes/api.php @@ -47,7 +47,7 @@ class API extends Handler { } function login() { - $login = db_escape_string($_REQUEST["user"]); + $login = db_escape_string($this->link, $_REQUEST["user"]); $password = $_REQUEST["password"]; $password_base64 = base64_decode($_REQUEST["password"]); @@ -92,8 +92,8 @@ class API extends Handler { } function getUnread() { - $feed_id = db_escape_string($_REQUEST["feed_id"]); - $is_cat = db_escape_string($_REQUEST["is_cat"]); + $feed_id = db_escape_string($this->link, $_REQUEST["feed_id"]); + $is_cat = db_escape_string($this->link, $_REQUEST["is_cat"]); if ($feed_id) { print $this->wrap(self::STATUS_OK, array("unread" => getFeedUnread($this->link, $feed_id, $is_cat))); @@ -108,10 +108,10 @@ class API extends Handler { } function getFeeds() { - $cat_id = db_escape_string($_REQUEST["cat_id"]); + $cat_id = db_escape_string($this->link, $_REQUEST["cat_id"]); $unread_only = sql_bool_to_bool($_REQUEST["unread_only"]); - $limit = (int) db_escape_string($_REQUEST["limit"]); - $offset = (int) db_escape_string($_REQUEST["offset"]); + $limit = (int) db_escape_string($this->link, $_REQUEST["limit"]); + $offset = (int) db_escape_string($this->link, $_REQUEST["offset"]); $include_nested = sql_bool_to_bool($_REQUEST["include_nested"]); $feeds = $this->api_get_feeds($this->link, $cat_id, $unread_only, $limit, $offset, $include_nested); @@ -171,29 +171,29 @@ class API extends Handler { } function getHeadlines() { - $feed_id = db_escape_string($_REQUEST["feed_id"]); + $feed_id = db_escape_string($this->link, $_REQUEST["feed_id"]); if ($feed_id != "") { - $limit = (int)db_escape_string($_REQUEST["limit"]); + $limit = (int)db_escape_string($this->link, $_REQUEST["limit"]); if (!$limit || $limit >= 60) $limit = 60; - $offset = (int)db_escape_string($_REQUEST["skip"]); - $filter = db_escape_string($_REQUEST["filter"]); + $offset = (int)db_escape_string($this->link, $_REQUEST["skip"]); + $filter = db_escape_string($this->link, $_REQUEST["filter"]); $is_cat = sql_bool_to_bool($_REQUEST["is_cat"]); $show_excerpt = sql_bool_to_bool($_REQUEST["show_excerpt"]); $show_content = sql_bool_to_bool($_REQUEST["show_content"]); /* all_articles, unread, adaptive, marked, updated */ - $view_mode = db_escape_string($_REQUEST["view_mode"]); + $view_mode = db_escape_string($this->link, $_REQUEST["view_mode"]); $include_attachments = sql_bool_to_bool($_REQUEST["include_attachments"]); - $since_id = (int)db_escape_string($_REQUEST["since_id"]); + $since_id = (int)db_escape_string($this->link, $_REQUEST["since_id"]); $include_nested = sql_bool_to_bool($_REQUEST["include_nested"]); $sanitize_content = true; /* do not rely on params below */ - $search = db_escape_string($_REQUEST["search"]); - $search_mode = db_escape_string($_REQUEST["search_mode"]); + $search = db_escape_string($this->link, $_REQUEST["search"]); + $search_mode = db_escape_string($this->link, $_REQUEST["search_mode"]); $headlines = $this->api_get_headlines($this->link, $feed_id, $limit, $offset, $filter, $is_cat, $show_excerpt, $show_content, $view_mode, false, @@ -207,10 +207,10 @@ class API extends Handler { } function updateArticle() { - $article_ids = array_filter(explode(",", db_escape_string($_REQUEST["article_ids"])), is_numeric); - $mode = (int) db_escape_string($_REQUEST["mode"]); - $data = db_escape_string($_REQUEST["data"]); - $field_raw = (int)db_escape_string($_REQUEST["field"]); + $article_ids = array_filter(explode(",", db_escape_string($this->link, $_REQUEST["article_ids"])), is_numeric); + $mode = (int) db_escape_string($this->link, $_REQUEST["mode"]); + $data = db_escape_string($this->link, $_REQUEST["data"]); + $field_raw = (int)db_escape_string($this->link, $_REQUEST["field"]); $field = ""; $set_to = ""; @@ -285,7 +285,7 @@ class API extends Handler { function getArticle() { - $article_id = join(",", array_filter(explode(",", db_escape_string($_REQUEST["article_id"])), is_numeric)); + $article_id = join(",", array_filter(explode(",", db_escape_string($this->link, $_REQUEST["article_id"])), is_numeric)); $query = "SELECT id,title,link,content,cached_content,feed_id,comments,int_id, marked,unread,published, @@ -348,7 +348,7 @@ class API extends Handler { } function updateFeed() { - $feed_id = db_escape_string($_REQUEST["feed_id"]); + $feed_id = db_escape_string($this->link, $_REQUEST["feed_id"]); update_rss_feed($this->link, $feed_id, true); @@ -356,8 +356,8 @@ class API extends Handler { } function catchupFeed() { - $feed_id = db_escape_string($_REQUEST["feed_id"]); - $is_cat = db_escape_string($_REQUEST["is_cat"]); + $feed_id = db_escape_string($this->link, $_REQUEST["feed_id"]); + $is_cat = db_escape_string($this->link, $_REQUEST["is_cat"]); catchup_feed($this->link, $feed_id, $is_cat); @@ -365,13 +365,13 @@ class API extends Handler { } function getPref() { - $pref_name = db_escape_string($_REQUEST["pref_name"]); + $pref_name = db_escape_string($this->link, $_REQUEST["pref_name"]); print $this->wrap(self::STATUS_OK, array("value" => get_pref($this->link, $pref_name))); } function getLabels() { - //$article_ids = array_filter(explode(",", db_escape_string($_REQUEST["article_ids"])), is_numeric); + //$article_ids = array_filter(explode(",", db_escape_string($this->link, $_REQUEST["article_ids"])), is_numeric); $article_id = (int)$_REQUEST['article_id']; @@ -409,11 +409,11 @@ class API extends Handler { function setArticleLabel() { - $article_ids = array_filter(explode(",", db_escape_string($_REQUEST["article_ids"])), is_numeric); - $label_id = (int) db_escape_string($_REQUEST['label_id']); - $assign = (bool) db_escape_string($_REQUEST['assign']) == "true"; + $article_ids = array_filter(explode(",", db_escape_string($this->link, $_REQUEST["article_ids"])), is_numeric); + $label_id = (int) db_escape_string($this->link, $_REQUEST['label_id']); + $assign = (bool) db_escape_string($this->link, $_REQUEST['assign']) == "true"; - $label = db_escape_string(label_find_caption($this->link, + $label = db_escape_string($this->link, label_find_caption($this->link, $label_id, $_SESSION["uid"])); $num_updated = 0; @@ -442,9 +442,9 @@ class API extends Handler { } function shareToPublished() { - $title = db_escape_string(strip_tags($_REQUEST["title"])); - $url = db_escape_string(strip_tags($_REQUEST["url"])); - $content = db_escape_string(strip_tags($_REQUEST["content"])); + $title = db_escape_string($this->link, strip_tags($_REQUEST["title"])); + $url = db_escape_string($this->link, strip_tags($_REQUEST["url"])); + $content = db_escape_string($this->link, strip_tags($_REQUEST["content"])); if (Article::create_published_article($this->link, $title, $url, $content, "", $_SESSION["uid"])) { print $this->wrap(self::STATUS_OK, array("status" => 'OK')); diff --git a/classes/article.php b/classes/article.php index 2f49b1827..595c6c432 100644 --- a/classes/article.php +++ b/classes/article.php @@ -8,7 +8,7 @@ class Article extends Handler_Protected { } function redirect() { - $id = db_escape_string($_REQUEST['id']); + $id = db_escape_string($this->link, $_REQUEST['id']); $result = db_query($this->link, "SELECT link FROM ttrss_entries, ttrss_user_entries WHERE id = '$id' AND id = ref_id AND owner_uid = '".$_SESSION['uid']."' @@ -27,10 +27,10 @@ class Article extends Handler_Protected { } function view() { - $id = db_escape_string($_REQUEST["id"]); - $cids = explode(",", db_escape_string($_REQUEST["cids"])); - $mode = db_escape_string($_REQUEST["mode"]); - $omode = db_escape_string($_REQUEST["omode"]); + $id = db_escape_string($this->link, $_REQUEST["id"]); + $cids = explode(",", db_escape_string($this->link, $_REQUEST["cids"])); + $mode = db_escape_string($this->link, $_REQUEST["mode"]); + $omode = db_escape_string($this->link, $_REQUEST["omode"]); // in prefetch mode we only output requested cids, main article // just gets marked as read (it already exists in client cache) diff --git a/classes/auth/base.php b/classes/auth/base.php index aa9d657a4..ad7ff3646 100644 --- a/classes/auth/base.php +++ b/classes/auth/base.php @@ -21,7 +21,7 @@ class Auth_Base { $user_id = $this->find_user_by_login($login); if (!$user_id) { - $login = db_escape_string($login); + $login = db_escape_string($this->link, $login); $salt = substr(bin2hex(get_random_bytes(125)), 0, 250); $pwd_hash = encrypt_password($password, $salt, true); @@ -42,7 +42,7 @@ class Auth_Base { } function find_user_by_login($login) { - $login = db_escape_string($login); + $login = db_escape_string($this->link, $login); $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE login = '$login'"); diff --git a/classes/dlg.php b/classes/dlg.php index 3bb2caba4..5789af684 100644 --- a/classes/dlg.php +++ b/classes/dlg.php @@ -5,7 +5,7 @@ class Dlg extends Handler_Protected { function before($method) { if (parent::before($method)) { header("Content-Type: text/xml; charset=utf-8"); - $this->param = db_escape_string($_REQUEST["param"]); + $this->param = db_escape_string($this->link, $_REQUEST["param"]); print "<dlg>"; return true; } @@ -302,7 +302,7 @@ class Dlg extends Handler_Protected { function feedBrowser() { if (defined('_DISABLE_FEED_BROWSER') && _DISABLE_FEED_BROWSER) return; - $browser_search = db_escape_string($_REQUEST["search"]); + $browser_search = db_escape_string($this->link, $_REQUEST["search"]); print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">"; print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"updateFeedBrowser\">"; @@ -350,7 +350,7 @@ class Dlg extends Handler_Protected { } function search() { - $this->params = explode(":", db_escape_string($_REQUEST["param"]), 2); + $this->params = explode(":", db_escape_string($this->link, $_REQUEST["param"]), 2); $active_feed_id = sprintf("%d", $this->params[0]); $is_cat = $this->params[1] != "false"; @@ -550,7 +550,7 @@ class Dlg extends Handler_Protected { print "<content><![CDATA["; $this->params = explode(":", $this->param, 3); - $feed_id = db_escape_string($this->params[0]); + $feed_id = db_escape_string($this->link, $this->params[0]); $is_cat = (bool) $this->params[1]; $key = get_feed_access_key($this->link, $feed_id, $is_cat); diff --git a/classes/feeds.php b/classes/feeds.php index 779614dce..3657a0564 100644 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -202,13 +202,13 @@ class Feeds extends Handler_Protected { } } - @$search = db_escape_string($_REQUEST["query"]); + @$search = db_escape_string($this->link, $_REQUEST["query"]); if ($search) { $disable_cache = true; } - @$search_mode = db_escape_string($_REQUEST["search_mode"]); + @$search_mode = db_escape_string($this->link, $_REQUEST["search_mode"]); if ($_REQUEST["debug"]) $timing_info = print_checkpoint("H0", $timing_info); @@ -533,9 +533,6 @@ class Feeds extends Handler_Protected { $reply['content'] .= "</div>"; - $reply['content'] .= "<div id=\"PTITLE-FULL-$id\" style=\"display : none\">" . - htmlspecialchars(strip_tags($line['title'])) . "</div>"; - $reply['content'] .= "<span id=\"RTITLE-$id\" onclick=\"return cdmClicked(event, $id);\" class=\"titleWrap$hlc_suffix\"> @@ -757,17 +754,17 @@ class Feeds extends Handler_Protected { if ($_REQUEST["debug"]) $timing_info = print_checkpoint("0", $timing_info); - $omode = db_escape_string($_REQUEST["omode"]); + $omode = db_escape_string($this->link, $_REQUEST["omode"]); - $feed = db_escape_string($_REQUEST["feed"]); - $method = db_escape_string($_REQUEST["m"]); - $view_mode = db_escape_string($_REQUEST["view_mode"]); + $feed = db_escape_string($this->link, $_REQUEST["feed"]); + $method = db_escape_string($this->link, $_REQUEST["m"]); + $view_mode = db_escape_string($this->link, $_REQUEST["view_mode"]); $limit = (int) get_pref($this->link, "DEFAULT_ARTICLE_LIMIT"); @$cat_view = $_REQUEST["cat"] == "true"; - @$next_unread_feed = db_escape_string($_REQUEST["nuf"]); - @$offset = db_escape_string($_REQUEST["skip"]); - @$vgroup_last_feed = db_escape_string($_REQUEST["vgrlf"]); - $order_by = db_escape_string($_REQUEST["order_by"]); + @$next_unread_feed = db_escape_string($this->link, $_REQUEST["nuf"]); + @$offset = db_escape_string($this->link, $_REQUEST["skip"]); + @$vgroup_last_feed = db_escape_string($this->link, $_REQUEST["vgrlf"]); + $order_by = db_escape_string($this->link, $_REQUEST["order_by"]); if (is_numeric($feed)) $feed = (int) $feed; @@ -809,6 +806,13 @@ class Feeds extends Handler_Protected { set_pref($this->link, "_DEFAULT_VIEW_LIMIT", $limit); set_pref($this->link, "_DEFAULT_VIEW_ORDER_BY", $order_by); + /* bump login timestamp if needed */ + if (time() - $_SESSION["last_login_update"] > 3600) { + db_query($this->link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . + $_SESSION["uid"]); + $_SESSION["last_login_update"] = time(); + } + if (!$cat_view && is_numeric($feed) && $feed > 0) { db_query($this->link, "UPDATE ttrss_feeds SET last_viewed = NOW() WHERE id = '$feed' AND owner_uid = ".$_SESSION["uid"]); diff --git a/classes/handler/public.php b/classes/handler/public.php index dc1e10049..53051a1f8 100644 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -21,7 +21,9 @@ class Handler_Public extends Handler { } if ($feed == -2) - $date_sort_field = "last_read"; + $date_sort_field = "last_published"; + else if ($feed == -1) + $date_sort_field = "last_marked"; $qfh_ret = queryFeedHeadlines($this->link, $feed, $limit, $view_mode, $is_cat, $search, $search_mode, @@ -180,7 +182,7 @@ class Handler_Public extends Handler { } function getUnread() { - $login = db_escape_string($_REQUEST["login"]); + $login = db_escape_string($this->link, $_REQUEST["login"]); $fresh = $_REQUEST["fresh"] == "1"; $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE login = '$login'"); @@ -202,7 +204,7 @@ class Handler_Public extends Handler { } function getProfiles() { - $login = db_escape_string($_REQUEST["login"]); + $login = db_escape_string($this->link, $_REQUEST["login"]); $result = db_query($this->link, "SELECT * FROM ttrss_settings_profiles,ttrss_users WHERE ttrss_users.id = ttrss_settings_profiles.owner_uid AND login = '$login' ORDER BY title"); @@ -222,9 +224,9 @@ class Handler_Public extends Handler { } function pubsub() { - $mode = db_escape_string($_REQUEST['hub_mode']); - $feed_id = (int) db_escape_string($_REQUEST['id']); - $feed_url = db_escape_string($_REQUEST['hub_topic']); + $mode = db_escape_string($this->link, $_REQUEST['hub_mode']); + $feed_id = (int) db_escape_string($this->link, $_REQUEST['id']); + $feed_url = db_escape_string($this->link, $_REQUEST['hub_topic']); if (!PUBSUBHUBBUB_ENABLED) { header('HTTP/1.0 404 Not Found'); @@ -285,7 +287,7 @@ class Handler_Public extends Handler { } function share() { - $uuid = db_escape_string($_REQUEST["key"]); + $uuid = db_escape_string($this->link, $_REQUEST["key"]); $result = db_query($this->link, "SELECT ref_id, owner_uid FROM ttrss_user_entries WHERE uuid = '$uuid'"); @@ -307,17 +309,17 @@ class Handler_Public extends Handler { } function rss() { - $feed = db_escape_string($_REQUEST["id"]); - $key = db_escape_string($_REQUEST["key"]); + $feed = db_escape_string($this->link, $_REQUEST["id"]); + $key = db_escape_string($this->link, $_REQUEST["key"]); $is_cat = $_REQUEST["is_cat"] != false; - $limit = (int)db_escape_string($_REQUEST["limit"]); - $offset = (int)db_escape_string($_REQUEST["offset"]); + $limit = (int)db_escape_string($this->link, $_REQUEST["limit"]); + $offset = (int)db_escape_string($this->link, $_REQUEST["offset"]); - $search = db_escape_string($_REQUEST["q"]); - $search_mode = db_escape_string($_REQUEST["smode"]); - $view_mode = db_escape_string($_REQUEST["view-mode"]); + $search = db_escape_string($this->link, $_REQUEST["q"]); + $search_mode = db_escape_string($this->link, $_REQUEST["smode"]); + $view_mode = db_escape_string($this->link, $_REQUEST["view-mode"]); - $format = db_escape_string($_REQUEST['format']); + $format = db_escape_string($this->link, $_REQUEST['format']); if (!$format) $format = 'atom'; @@ -371,10 +373,10 @@ class Handler_Public extends Handler { if ($action == 'share') { - $title = db_escape_string(strip_tags($_REQUEST["title"])); - $url = db_escape_string(strip_tags($_REQUEST["url"])); - $content = db_escape_string(strip_tags($_REQUEST["content"])); - $labels = db_escape_string(strip_tags($_REQUEST["labels"])); + $title = db_escape_string($this->link, strip_tags($_REQUEST["title"])); + $url = db_escape_string($this->link, strip_tags($_REQUEST["url"])); + $content = db_escape_string($this->link, strip_tags($_REQUEST["content"])); + $labels = db_escape_string($this->link, strip_tags($_REQUEST["labels"])); Article::create_published_article($this->link, $title, $url, $content, $labels, $_SESSION["uid"]); @@ -483,7 +485,7 @@ class Handler_Public extends Handler { if (!SINGLE_USER_MODE) { - $login = db_escape_string($_POST["login"]); + $login = db_escape_string($this->link, $_POST["login"]); $password = $_POST["password"]; $remember_me = $_POST["remember_me"]; @@ -496,7 +498,7 @@ class Handler_Public extends Handler { if ($_POST["profile"]) { - $profile = db_escape_string($_POST["profile"]); + $profile = db_escape_string($this->link, $_POST["profile"]); $result = db_query($this->link, "SELECT id FROM ttrss_settings_profiles WHERE id = '$profile' AND owner_uid = " . $_SESSION["uid"]); @@ -525,7 +527,7 @@ class Handler_Public extends Handler { if ($_SESSION["uid"]) { - $feed_url = db_escape_string(trim($_REQUEST["feed_url"])); + $feed_url = db_escape_string($this->link, trim($_REQUEST["feed_url"])); header('Content-Type: text/html; charset=utf-8'); print "<html> @@ -618,14 +620,14 @@ class Handler_Public extends Handler { } function subscribe2() { - $feed_url = db_escape_string(trim($_REQUEST["feed_url"])); - $cat_id = db_escape_string($_REQUEST["cat_id"]); - $from = db_escape_string($_REQUEST["from"]); + $feed_url = db_escape_string($this->link, trim($_REQUEST["feed_url"])); + $cat_id = db_escape_string($this->link, $_REQUEST["cat_id"]); + $from = db_escape_string($this->link, $_REQUEST["from"]); /* only read authentication information from POST */ - $auth_login = db_escape_string(trim($_POST["auth_login"])); - $auth_pass = db_escape_string(trim($_POST["auth_pass"])); + $auth_login = db_escape_string($this->link, trim($_POST["auth_login"])); + $auth_pass = db_escape_string($this->link, trim($_POST["auth_pass"])); $rc = subscribe_to_feed($this->link, $feed_url, $cat_id, $auth_login, $auth_pass); @@ -706,5 +708,92 @@ class Handler_Public extends Handler { print json_encode(array("error" => array("code" => 7))); } + function forgotpass() { + header('Content-Type: text/html; charset=utf-8'); + print "<html> + <head> + <title>Tiny Tiny RSS</title> + <link rel=\"stylesheet\" type=\"text/css\" href=\"utility.css\"> + <script type=\"text/javascript\" src=\"lib/prototype.js\"></script> + <script type=\"text/javascript\" src=\"lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls\"></script> + <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/> + </head> + <body id='forgotpass'>"; + + print '<div class="floatingLogo"><img src="images/logo_wide.png"></div>'; + print "<h1>".__("Reset password")."</h1>"; + + @$method = $_POST['method']; + + if (!$method) { + $secretkey = uniqid(); + $_SESSION["secretkey"] = $secretkey; + + print "<form method='POST' action='public.php'>"; + print "<input type='hidden' name='secretkey' value='$secretkey'>"; + print "<input type='hidden' name='method' value='do'>"; + print "<input type='hidden' name='op' value='forgotpass'>"; + + print "<fieldset>"; + print "<label>".__("Login:")."</label>"; + print "<input type='text' name='login' value='' required>"; + print "</fieldset>"; + + print "<fieldset>"; + print "<label>".__("Email:")."</label>"; + print "<input type='email' name='email' value='' required>"; + print "</fieldset>"; + + print "<fieldset>"; + print "<label>".__("How much is two plus two:")."</label>"; + print "<input type='text' name='test' value='' required>"; + print "</fieldset>"; + + print "<p/>"; + print "<button type='submit'>".__("Reset password")."</button>"; + + print "</form>"; + } else if ($method == 'do') { + + $secretkey = $_POST["secretkey"]; + $login = db_escape_string($this->link, $_POST["login"]); + $email = db_escape_string($this->link, $_POST["email"]); + $test = db_escape_string($this->link, $_POST["test"]); + + if (($test != 4 && $test != 'four') || !$email || !$login) { + print_error(__('Some of the required form parameters are missing or incorrect.')); + + print "<p><a href=\"public.php?op=forgotpass\">".__("Go back")."</a></p>"; + + } else if ($_SESSION["secretkey"] == $secretkey) { + + $result = db_query($this->link, "SELECT id FROM ttrss_users + WHERE login = '$login' AND email = '$email'"); + + if (db_num_rows($result) != 0) { + $id = db_fetch_result($result, 0, "id"); + + Pref_Users::resetUserPassword($this->link, $id, false); + + print "<p>".__("Completed.")."</p>"; + + } else { + print_error(__("Sorry, login and email combination not found.")); + print "<p><a href=\"public.php?op=forgotpass\">".__("Go back")."</a></p>"; + } + + } else { + print_error(__("Form secret key incorrect. Please enable cookies and try again.")); + print "<p><a href=\"public.php?op=forgotpass\">".__("Go back")."</a></p>"; + + } + + } + + print "</body>"; + print "</html>"; + + } + } ?> diff --git a/classes/opml.php b/classes/opml.php index 34067e017..d4a0e9875 100644 --- a/classes/opml.php +++ b/classes/opml.php @@ -253,13 +253,13 @@ class Opml extends Handler_Protected { private function opml_import_feed($doc, $node, $cat_id, $owner_uid) { $attrs = $node->attributes; - $feed_title = db_escape_string($attrs->getNamedItem('text')->nodeValue); - if (!$feed_title) $feed_title = db_escape_string($attrs->getNamedItem('title')->nodeValue); + $feed_title = db_escape_string($this->link, $attrs->getNamedItem('text')->nodeValue); + if (!$feed_title) $feed_title = db_escape_string($this->link, $attrs->getNamedItem('title')->nodeValue); - $feed_url = db_escape_string($attrs->getNamedItem('xmlUrl')->nodeValue); - if (!$feed_url) $feed_url = db_escape_string($attrs->getNamedItem('xmlURL')->nodeValue); + $feed_url = db_escape_string($this->link, $attrs->getNamedItem('xmlUrl')->nodeValue); + if (!$feed_url) $feed_url = db_escape_string($this->link, $attrs->getNamedItem('xmlURL')->nodeValue); - $site_url = db_escape_string($attrs->getNamedItem('htmlUrl')->nodeValue); + $site_url = db_escape_string($this->link, $attrs->getNamedItem('htmlUrl')->nodeValue); if ($feed_url && $feed_title) { $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE @@ -285,11 +285,11 @@ class Opml extends Handler_Protected { private function opml_import_label($doc, $node, $owner_uid) { $attrs = $node->attributes; - $label_name = db_escape_string($attrs->getNamedItem('label-name')->nodeValue); + $label_name = db_escape_string($this->link, $attrs->getNamedItem('label-name')->nodeValue); if ($label_name) { - $fg_color = db_escape_string($attrs->getNamedItem('label-fg-color')->nodeValue); - $bg_color = db_escape_string($attrs->getNamedItem('label-bg-color')->nodeValue); + $fg_color = db_escape_string($this->link, $attrs->getNamedItem('label-fg-color')->nodeValue); + $bg_color = db_escape_string($this->link, $attrs->getNamedItem('label-bg-color')->nodeValue); if (!label_find_id($this->link, $label_name, $_SESSION['uid'])) { $this->opml_notice(T_sprintf("Adding label %s", htmlspecialchars($label_name))); @@ -302,10 +302,10 @@ class Opml extends Handler_Protected { private function opml_import_preference($doc, $node, $owner_uid) { $attrs = $node->attributes; - $pref_name = db_escape_string($attrs->getNamedItem('pref-name')->nodeValue); + $pref_name = db_escape_string($this->link, $attrs->getNamedItem('pref-name')->nodeValue); if ($pref_name) { - $pref_value = db_escape_string($attrs->getNamedItem('value')->nodeValue); + $pref_value = db_escape_string($this->link, $attrs->getNamedItem('value')->nodeValue); $this->opml_notice(T_sprintf("Setting preference key %s to %s", $pref_name, $pref_value)); @@ -317,7 +317,7 @@ class Opml extends Handler_Protected { private function opml_import_filter($doc, $node, $owner_uid) { $attrs = $node->attributes; - $filter_type = db_escape_string($attrs->getNamedItem('filter-type')->nodeValue); + $filter_type = db_escape_string($this->link, $attrs->getNamedItem('filter-type')->nodeValue); if ($filter_type == '2') { $filter = json_decode($node->nodeValue, true); @@ -344,13 +344,13 @@ class Opml extends Handler_Protected { if (!$rule["cat_filter"]) { $tmp_result = db_query($this->link, "SELECT id FROM ttrss_feeds - WHERE title = '".db_escape_string($rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]); + WHERE title = '".db_escape_string($this->link, $rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]); if (db_num_rows($tmp_result) > 0) { $feed_id = db_fetch_result($tmp_result, 0, "id"); } } else { $tmp_result = db_query($this->link, "SELECT id FROM ttrss_feed_categories - WHERE title = '".db_escape_string($rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]); + WHERE title = '".db_escape_string($this->link, $rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]); if (db_num_rows($tmp_result) > 0) { $cat_id = db_fetch_result($tmp_result, 0, "id"); @@ -358,7 +358,7 @@ class Opml extends Handler_Protected { } $cat_filter = bool_to_sql_bool($rule["cat_filter"]); - $reg_exp = db_escape_string($rule["reg_exp"]); + $reg_exp = db_escape_string($this->link, $rule["reg_exp"]); $filter_type = (int)$rule["filter_type"]; db_query($this->link, "INSERT INTO ttrss_filters2_rules (feed_id,cat_id,filter_id,filter_type,reg_exp,cat_filter) @@ -368,7 +368,7 @@ class Opml extends Handler_Protected { foreach ($filter["actions"] as $action) { $action_id = (int)$action["action_id"]; - $action_param = db_escape_string($action["action_param"]); + $action_param = db_escape_string($this->link, $action["action_param"]); db_query($this->link, "INSERT INTO ttrss_filters2_actions (filter_id,action_id,action_param) VALUES ($filter_id, $action_id, '$action_param')"); @@ -386,10 +386,10 @@ class Opml extends Handler_Protected { $default_cat_id = (int) get_feed_category($this->link, 'Imported feeds', false); if ($root_node) { - $cat_title = db_escape_string($root_node->attributes->getNamedItem('text')->nodeValue); + $cat_title = db_escape_string($this->link, $root_node->attributes->getNamedItem('text')->nodeValue); if (!$cat_title) - $cat_title = db_escape_string($root_node->attributes->getNamedItem('title')->nodeValue); + $cat_title = db_escape_string($this->link, $root_node->attributes->getNamedItem('title')->nodeValue); if (!in_array($cat_title, array("tt-rss-filters", "tt-rss-labels", "tt-rss-prefs"))) { $cat_id = get_feed_category($this->link, $cat_title, $parent_id); @@ -418,12 +418,12 @@ class Opml extends Handler_Protected { foreach ($outlines as $node) { if ($node->hasAttributes() && strtolower($node->tagName) == "outline") { $attrs = $node->attributes; - $node_cat_title = db_escape_string($attrs->getNamedItem('text')->nodeValue); + $node_cat_title = db_escape_string($this->link, $attrs->getNamedItem('text')->nodeValue); if (!$node_cat_title) - $node_cat_title = db_escape_string($attrs->getNamedItem('title')->nodeValue); + $node_cat_title = db_escape_string($this->link, $attrs->getNamedItem('title')->nodeValue); - $node_feed_url = db_escape_string($attrs->getNamedItem('xmlUrl')->nodeValue); + $node_feed_url = db_escape_string($this->link, $attrs->getNamedItem('xmlUrl')->nodeValue); if ($node_cat_title && !$node_feed_url) { $this->opml_import_category($doc, $node, $owner_uid, $cat_id); diff --git a/classes/pluginhost.php b/classes/pluginhost.php index 7dabd42a8..0ef17b77e 100644 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -211,7 +211,7 @@ class PluginHost { function load_data($force = false) { if ($this->owner_uid && (!$_SESSION["plugin_storage"] || $force)) { - $plugin = db_escape_string($plugin); + $plugin = db_escape_string($this->link, $plugin); $result = db_query($this->link, "SELECT name, content FROM ttrss_plugin_storage WHERE owner_uid = '".$this->owner_uid."'"); @@ -226,7 +226,7 @@ class PluginHost { private function save_data($plugin) { if ($this->owner_uid) { - $plugin = db_escape_string($plugin); + $plugin = db_escape_string($this->link, $plugin); db_query($this->link, "BEGIN"); @@ -236,7 +236,7 @@ class PluginHost { if (!isset($this->storage[$plugin])) $this->storage[$plugin] = array(); - $content = db_escape_string(serialize($this->storage[$plugin])); + $content = db_escape_string($this->link, serialize($this->storage[$plugin])); if (db_num_rows($result) != 0) { db_query($this->link, "UPDATE ttrss_plugin_storage SET content = '$content' diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index 285995dfc..ceda13374 100644 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -14,8 +14,8 @@ class Pref_Feeds extends Handler_Protected { } function renamecat() { - $title = db_escape_string($_REQUEST['title']); - $id = db_escape_string($_REQUEST['id']); + $title = db_escape_string($this->link, $_REQUEST['title']); + $id = db_escape_string($this->link, $_REQUEST['id']); if ($title) { db_query($this->link, "UPDATE ttrss_feed_categories SET @@ -293,7 +293,7 @@ class Pref_Feeds extends Handler_Protected { if ($item_id != 'root') { if ($parent_id && $parent_id != 'root') { $parent_bare_id = substr($parent_id, strpos($parent_id, ':')+1); - $parent_qpart = db_escape_string($parent_bare_id); + $parent_qpart = db_escape_string($this->link, $parent_bare_id); } else { $parent_qpart = 'NULL'; } @@ -319,7 +319,7 @@ class Pref_Feeds extends Handler_Protected { if (strpos($id, "FEED") === 0) { $cat_id = ($item_id != "root") ? - db_escape_string($bare_item_id) : "NULL"; + db_escape_string($this->link, $bare_item_id) : "NULL"; $cat_qpart = ($cat_id != 0) ? "cat_id = '$cat_id'" : "cat_id = NULL"; @@ -334,7 +334,7 @@ class Pref_Feeds extends Handler_Protected { $nest_level+1); if ($item_id != 'root') { - $parent_qpart = db_escape_string($bare_id); + $parent_qpart = db_escape_string($this->link, $bare_id); } else { $parent_qpart = 'NULL'; } @@ -424,7 +424,7 @@ class Pref_Feeds extends Handler_Protected { } function removeicon() { - $feed_id = db_escape_string($_REQUEST["feed_id"]); + $feed_id = db_escape_string($this->link, $_REQUEST["feed_id"]); $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE id = '$feed_id' AND owner_uid = ". $_SESSION["uid"]); @@ -440,7 +440,7 @@ class Pref_Feeds extends Handler_Protected { header("Content-type: text/html"); $icon_file = $_FILES['icon_file']['tmp_name']; - $feed_id = db_escape_string($_REQUEST["feed_id"]); + $feed_id = db_escape_string($this->link, $_REQUEST["feed_id"]); if (is_file($icon_file) && $feed_id) { if (filesize($icon_file) < 20000) { @@ -472,7 +472,7 @@ class Pref_Feeds extends Handler_Protected { global $purge_intervals; global $update_intervals; - $feed_id = db_escape_string($_REQUEST["id"]); + $feed_id = db_escape_string($this->link, $_REQUEST["id"]); $result = db_query($this->link, "SELECT * FROM ttrss_feeds WHERE id = '$feed_id' AND @@ -708,7 +708,7 @@ class Pref_Feeds extends Handler_Protected { global $purge_intervals; global $update_intervals; - $feed_ids = db_escape_string($_REQUEST["ids"]); + $feed_ids = db_escape_string($this->link, $_REQUEST["ids"]); print "<div class=\"dialogNotice\">" . __("Enable the options you wish to apply using checkboxes on the right:") . "</div>"; @@ -862,27 +862,27 @@ class Pref_Feeds extends Handler_Protected { function editsaveops($batch) { - $feed_title = db_escape_string(trim($_POST["title"])); - $feed_link = db_escape_string(trim($_POST["feed_url"])); - $upd_intl = (int) db_escape_string($_POST["update_interval"]); - $purge_intl = (int) db_escape_string($_POST["purge_interval"]); - $feed_id = (int) db_escape_string($_POST["id"]); /* editSave */ - $feed_ids = db_escape_string($_POST["ids"]); /* batchEditSave */ - $cat_id = (int) db_escape_string($_POST["cat_id"]); - $auth_login = db_escape_string(trim($_POST["auth_login"])); - $auth_pass = db_escape_string(trim($_POST["auth_pass"])); - $private = checkbox_to_sql_bool(db_escape_string($_POST["private"])); + $feed_title = db_escape_string($this->link, trim($_POST["title"])); + $feed_link = db_escape_string($this->link, trim($_POST["feed_url"])); + $upd_intl = (int) db_escape_string($this->link, $_POST["update_interval"]); + $purge_intl = (int) db_escape_string($this->link, $_POST["purge_interval"]); + $feed_id = (int) db_escape_string($this->link, $_POST["id"]); /* editSave */ + $feed_ids = db_escape_string($this->link, $_POST["ids"]); /* batchEditSave */ + $cat_id = (int) db_escape_string($this->link, $_POST["cat_id"]); + $auth_login = db_escape_string($this->link, trim($_POST["auth_login"])); + $auth_pass = db_escape_string($this->link, trim($_POST["auth_pass"])); + $private = checkbox_to_sql_bool(db_escape_string($this->link, $_POST["private"])); $include_in_digest = checkbox_to_sql_bool( - db_escape_string($_POST["include_in_digest"])); + db_escape_string($this->link, $_POST["include_in_digest"])); $cache_images = checkbox_to_sql_bool( - db_escape_string($_POST["cache_images"])); + db_escape_string($this->link, $_POST["cache_images"])); $hide_images = checkbox_to_sql_bool( - db_escape_string($_POST["hide_images"])); + db_escape_string($this->link, $_POST["hide_images"])); $always_display_enclosures = checkbox_to_sql_bool( - db_escape_string($_POST["always_display_enclosures"])); + db_escape_string($this->link, $_POST["always_display_enclosures"])); $mark_unread_on_update = checkbox_to_sql_bool( - db_escape_string($_POST["mark_unread_on_update"])); + db_escape_string($this->link, $_POST["mark_unread_on_update"])); if (get_pref($this->link, 'ENABLE_FEED_CATS')) { if ($cat_id && $cat_id != 0) { @@ -999,7 +999,7 @@ class Pref_Feeds extends Handler_Protected { function resetPubSub() { - $ids = db_escape_string($_REQUEST["ids"]); + $ids = db_escape_string($this->link, $_REQUEST["ids"]); db_query($this->link, "UPDATE ttrss_feeds SET pubsub_state = 0 WHERE id IN ($ids) AND owner_uid = " . $_SESSION["uid"]); @@ -1009,7 +1009,7 @@ class Pref_Feeds extends Handler_Protected { function remove() { - $ids = split(",", db_escape_string($_REQUEST["ids"])); + $ids = split(",", db_escape_string($this->link, $_REQUEST["ids"])); foreach ($ids as $id) { $this->remove_feed($this->link, $id, $_SESSION["uid"]); @@ -1019,14 +1019,14 @@ class Pref_Feeds extends Handler_Protected { } function clear() { - $id = db_escape_string($_REQUEST["id"]); + $id = db_escape_string($this->link, $_REQUEST["id"]); $this->clear_feed_articles($this->link, $id); } function rescore() { require_once "rssfuncs.php"; - $ids = split(",", db_escape_string($_REQUEST["ids"])); + $ids = split(",", db_escape_string($this->link, $_REQUEST["ids"])); foreach ($ids as $id) { @@ -1132,9 +1132,9 @@ class Pref_Feeds extends Handler_Protected { } function categorize() { - $ids = split(",", db_escape_string($_REQUEST["ids"])); + $ids = split(",", db_escape_string($this->link, $_REQUEST["ids"])); - $cat_id = db_escape_string($_REQUEST["cat_id"]); + $cat_id = db_escape_string($this->link, $_REQUEST["cat_id"]); if ($cat_id == 0) { $cat_id_qpart = 'NULL'; @@ -1156,14 +1156,14 @@ class Pref_Feeds extends Handler_Protected { } function removeCat() { - $ids = split(",", db_escape_string($_REQUEST["ids"])); + $ids = split(",", db_escape_string($this->link, $_REQUEST["ids"])); foreach ($ids as $id) { $this->remove_feed_category($this->link, $id, $_SESSION["uid"]); } } function addCat() { - $feed_cat = db_escape_string(trim($_REQUEST["cat"])); + $feed_cat = db_escape_string($this->link, trim($_REQUEST["cat"])); add_feed_category($this->link, $feed_cat); } @@ -1205,7 +1205,7 @@ class Pref_Feeds extends Handler_Protected { __("Inactive feeds") . "</button>"; } - $feed_search = db_escape_string($_REQUEST["search"]); + $feed_search = db_escape_string($this->link, $_REQUEST["search"]); if (array_key_exists("search", $_REQUEST)) { $_SESSION["prefs_feed_search"] = $feed_search; diff --git a/classes/pref/filters.php b/classes/pref/filters.php index 1921f2b97..c97628e51 100644 --- a/classes/pref/filters.php +++ b/classes/pref/filters.php @@ -13,7 +13,7 @@ class Pref_Filters extends Handler_Protected { $filter["enabled"] = true; $filter["match_any_rule"] = sql_bool_to_bool( - checkbox_to_sql_bool(db_escape_string($_REQUEST["match_any_rule"]))); + checkbox_to_sql_bool(db_escape_string($this->link, $_REQUEST["match_any_rule"]))); $filter["rules"] = array(); $result = db_query($this->link, "SELECT id,name FROM ttrss_filter_types"); @@ -168,7 +168,7 @@ class Pref_Filters extends Handler_Protected { if ($line['action_id'] == 7) { $label_result = db_query($this->link, "SELECT fg_color, bg_color - FROM ttrss_labels2 WHERE caption = '".db_escape_string($line['action_param'])."' AND + FROM ttrss_labels2 WHERE caption = '".db_escape_string($this->link, $line['action_param'])."' AND owner_uid = " . $_SESSION["uid"]); if (db_num_rows($label_result) > 0) { @@ -207,7 +207,7 @@ class Pref_Filters extends Handler_Protected { function edit() { - $filter_id = db_escape_string($_REQUEST["id"]); + $filter_id = db_escape_string($this->link, $_REQUEST["id"]); $result = db_query($this->link, "SELECT * FROM ttrss_filters2 WHERE id = '$filter_id' AND owner_uid = " . $_SESSION["uid"]); @@ -403,9 +403,9 @@ class Pref_Filters extends Handler_Protected { # print_r($_REQUEST); - $filter_id = db_escape_string($_REQUEST["id"]); - $enabled = checkbox_to_sql_bool(db_escape_string($_REQUEST["enabled"])); - $match_any_rule = checkbox_to_sql_bool(db_escape_string($_REQUEST["match_any_rule"])); + $filter_id = db_escape_string($this->link, $_REQUEST["id"]); + $enabled = checkbox_to_sql_bool(db_escape_string($this->link, $_REQUEST["enabled"])); + $match_any_rule = checkbox_to_sql_bool(db_escape_string($this->link, $_REQUEST["match_any_rule"])); $result = db_query($this->link, "UPDATE ttrss_filters2 SET enabled = $enabled, match_any_rule = $match_any_rule @@ -418,7 +418,7 @@ class Pref_Filters extends Handler_Protected { function remove() { - $ids = split(",", db_escape_string($_REQUEST["ids"])); + $ids = split(",", db_escape_string($this->link, $_REQUEST["ids"])); foreach ($ids as $id) { db_query($this->link, "DELETE FROM ttrss_filters2 WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]); @@ -457,9 +457,9 @@ class Pref_Filters extends Handler_Protected { foreach ($rules as $rule) { if ($rule) { - $reg_exp = strip_tags(db_escape_string(trim($rule["reg_exp"]))); - $filter_type = (int) db_escape_string(trim($rule["filter_type"])); - $feed_id = db_escape_string(trim($rule["feed_id"])); + $reg_exp = strip_tags(db_escape_string($this->link, trim($rule["reg_exp"]))); + $filter_type = (int) db_escape_string($this->link, trim($rule["filter_type"])); + $feed_id = db_escape_string($this->link, trim($rule["feed_id"])); if (strpos($feed_id, "CAT:") === 0) { @@ -487,9 +487,9 @@ class Pref_Filters extends Handler_Protected { foreach ($actions as $action) { if ($action) { - $action_id = (int) db_escape_string($action["action_id"]); - $action_param = db_escape_string($action["action_param"]); - $action_param_label = db_escape_string($action["action_param_label"]); + $action_id = (int) db_escape_string($this->link, $action["action_id"]); + $action_param = db_escape_string($this->link, $action["action_param"]); + $action_param_label = db_escape_string($this->link, $action["action_param_label"]); if ($action_id == 7) { $action_param = $action_param_label; @@ -541,13 +541,13 @@ class Pref_Filters extends Handler_Protected { function index() { - $sort = db_escape_string($_REQUEST["sort"]); + $sort = db_escape_string($this->link, $_REQUEST["sort"]); if (!$sort || $sort == "undefined") { $sort = "reg_exp"; } - $filter_search = db_escape_string($_REQUEST["search"]); + $filter_search = db_escape_string($this->link, $_REQUEST["search"]); if (array_key_exists("search", $_REQUEST)) { $_SESSION["prefs_filter_search"] = $filter_search; @@ -559,7 +559,7 @@ class Pref_Filters extends Handler_Protected { print "<div id=\"pref-filter-header\" dojoType=\"dijit.layout.ContentPane\" region=\"top\">"; print "<div id=\"pref-filter-toolbar\" dojoType=\"dijit.Toolbar\">"; - $filter_search = db_escape_string($_REQUEST["search"]); + $filter_search = db_escape_string($this->link, $_REQUEST["search"]); if (array_key_exists("search", $_REQUEST)) { $_SESSION["prefs_filter_search"] = $filter_search; @@ -806,7 +806,7 @@ class Pref_Filters extends Handler_Protected { $action = json_decode($_REQUEST["action"], true); if ($action) { - $action_param = db_escape_string($action["action_param"]); + $action_param = db_escape_string($this->link, $action["action_param"]); $action_id = (int)$action["action_id"]; } else { $action_param = ""; @@ -914,7 +914,7 @@ class Pref_Filters extends Handler_Protected { } function join() { - $ids = explode(",", db_escape_string($_REQUEST["ids"])); + $ids = explode(",", db_escape_string($this->link, $_REQUEST["ids"])); if (count($ids) > 1) { $base_id = array_shift($ids); diff --git a/classes/pref/labels.php b/classes/pref/labels.php index e63a0cfc2..b45354c94 100644 --- a/classes/pref/labels.php +++ b/classes/pref/labels.php @@ -8,7 +8,7 @@ class Pref_Labels extends Handler_Protected { } function edit() { - $label_id = db_escape_string($_REQUEST['id']); + $label_id = db_escape_string($this->link, $_REQUEST['id']); $result = db_query($this->link, "SELECT * FROM ttrss_labels2 WHERE id = '$label_id' AND owner_uid = " . $_SESSION["uid"]); @@ -118,11 +118,11 @@ class Pref_Labels extends Handler_Protected { } function colorset() { - $kind = db_escape_string($_REQUEST["kind"]); - $ids = split(',', db_escape_string($_REQUEST["ids"])); - $color = db_escape_string($_REQUEST["color"]); - $fg = db_escape_string($_REQUEST["fg"]); - $bg = db_escape_string($_REQUEST["bg"]); + $kind = db_escape_string($this->link, $_REQUEST["kind"]); + $ids = split(',', db_escape_string($this->link, $_REQUEST["ids"])); + $color = db_escape_string($this->link, $_REQUEST["color"]); + $fg = db_escape_string($this->link, $_REQUEST["fg"]); + $bg = db_escape_string($this->link, $_REQUEST["bg"]); foreach ($ids as $id) { @@ -136,7 +136,7 @@ class Pref_Labels extends Handler_Protected { AND owner_uid = " . $_SESSION["uid"]); } - $caption = db_escape_string(label_find_caption($this->link, $id, $_SESSION["uid"])); + $caption = db_escape_string($this->link, label_find_caption($this->link, $id, $_SESSION["uid"])); /* Remove cached data */ @@ -149,14 +149,14 @@ class Pref_Labels extends Handler_Protected { } function colorreset() { - $ids = split(',', db_escape_string($_REQUEST["ids"])); + $ids = split(',', db_escape_string($this->link, $_REQUEST["ids"])); foreach ($ids as $id) { db_query($this->link, "UPDATE ttrss_labels2 SET fg_color = '', bg_color = '' WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"]); - $caption = db_escape_string(label_find_caption($this->link, $id, $_SESSION["uid"])); + $caption = db_escape_string($this->link, label_find_caption($this->link, $id, $_SESSION["uid"])); /* Remove cached data */ @@ -168,8 +168,8 @@ class Pref_Labels extends Handler_Protected { function save() { - $id = db_escape_string($_REQUEST["id"]); - $caption = db_escape_string(trim($_REQUEST["caption"])); + $id = db_escape_string($this->link, $_REQUEST["id"]); + $caption = db_escape_string($this->link, trim($_REQUEST["caption"])); db_query($this->link, "BEGIN"); @@ -190,7 +190,7 @@ class Pref_Labels extends Handler_Protected { /* Update filters that reference label being renamed */ - $old_caption = db_escape_string($old_caption); + $old_caption = db_escape_string($this->link, $old_caption); db_query($this->link, "UPDATE ttrss_filters2_actions SET action_param = '$caption' WHERE action_param = '$old_caption' @@ -213,7 +213,7 @@ class Pref_Labels extends Handler_Protected { function remove() { - $ids = split(",", db_escape_string($_REQUEST["ids"])); + $ids = split(",", db_escape_string($this->link, $_REQUEST["ids"])); foreach ($ids as $id) { label_remove($this->link, $id, $_SESSION["uid"]); @@ -222,8 +222,8 @@ class Pref_Labels extends Handler_Protected { } function add() { - $caption = db_escape_string($_REQUEST["caption"]); - $output = db_escape_string($_REQUEST["output"]); + $caption = db_escape_string($this->link, $_REQUEST["caption"]); + $output = db_escape_string($this->link, $_REQUEST["output"]); if ($caption) { @@ -250,13 +250,13 @@ class Pref_Labels extends Handler_Protected { function index() { - $sort = db_escape_string($_REQUEST["sort"]); + $sort = db_escape_string($this->link, $_REQUEST["sort"]); if (!$sort || $sort == "undefined") { $sort = "caption"; } - $label_search = db_escape_string($_REQUEST["search"]); + $label_search = db_escape_string($this->link, $_REQUEST["search"]); if (array_key_exists("search", $_REQUEST)) { $_SESSION["prefs_label_search"] = $label_search; diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php index 8b8630c82..4fb8650a2 100644 --- a/classes/pref/prefs.php +++ b/classes/pref/prefs.php @@ -50,8 +50,8 @@ class Pref_Prefs extends Handler_Protected { foreach (array_keys($_POST) as $pref_name) { - $pref_name = db_escape_string($pref_name); - $value = db_escape_string($_POST[$pref_name]); + $pref_name = db_escape_string($this->link, $pref_name); + $value = db_escape_string($this->link, $_POST[$pref_name]); if ($pref_name == 'DIGEST_PREFERRED_TIME') { if (get_pref($this->link, 'DIGEST_PREFERRED_TIME') != $value) { @@ -71,7 +71,7 @@ class Pref_Prefs extends Handler_Protected { function getHelp() { - $pref_name = db_escape_string($_REQUEST["pn"]); + $pref_name = db_escape_string($this->link, $_REQUEST["pn"]); $result = db_query($this->link, "SELECT help_text FROM ttrss_prefs WHERE pref_name = '$pref_name'"); @@ -86,8 +86,8 @@ class Pref_Prefs extends Handler_Protected { function changeemail() { - $email = db_escape_string($_POST["email"]); - $full_name = db_escape_string($_POST["full_name"]); + $email = db_escape_string($this->link, $_POST["email"]); + $full_name = db_escape_string($this->link, $_POST["full_name"]); $active_uid = $_SESSION["uid"]; @@ -798,7 +798,7 @@ class Pref_Prefs extends Handler_Protected { } function otpenable() { - $password = db_escape_string($_REQUEST["password"]); + $password = db_escape_string($this->link, $_REQUEST["password"]); $enable_otp = $_REQUEST["enable_otp"] == "on"; global $pluginhost; @@ -819,7 +819,7 @@ class Pref_Prefs extends Handler_Protected { } function otpdisable() { - $password = db_escape_string($_REQUEST["password"]); + $password = db_escape_string($this->link, $_REQUEST["password"]); global $pluginhost; $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]); @@ -846,7 +846,7 @@ class Pref_Prefs extends Handler_Protected { } function clearplugindata() { - $name = db_escape_string($_REQUEST["name"]); + $name = db_escape_string($this->link, $_REQUEST["name"]); global $pluginhost; $pluginhost->clear_data($pluginhost->get_plugin($name)); diff --git a/classes/pref/users.php b/classes/pref/users.php index d36ed29f7..b4f043775 100644 --- a/classes/pref/users.php +++ b/classes/pref/users.php @@ -116,7 +116,7 @@ class Pref_Users extends Handler_Protected { header("Content-Type: text/xml"); - $id = db_escape_string($_REQUEST["id"]); + $id = db_escape_string($this->link, $_REQUEST["id"]); print "<dlg id=\"$method\">"; print "<title>".__('User Editor')."</title>"; @@ -199,11 +199,11 @@ class Pref_Users extends Handler_Protected { } function editSave() { - $login = db_escape_string(trim($_REQUEST["login"])); - $uid = db_escape_string($_REQUEST["id"]); + $login = db_escape_string($this->link, trim($_REQUEST["login"])); + $uid = db_escape_string($this->link, $_REQUEST["id"]); $access_level = (int) $_REQUEST["access_level"]; - $email = db_escape_string(trim($_REQUEST["email"])); - $password = db_escape_string(trim($_REQUEST["password"])); + $email = db_escape_string($this->link, trim($_REQUEST["email"])); + $password = db_escape_string($this->link, trim($_REQUEST["password"])); if ($password) { $salt = substr(bin2hex(get_random_bytes(125)), 0, 250); @@ -220,7 +220,7 @@ class Pref_Users extends Handler_Protected { } function remove() { - $ids = split(",", db_escape_string($_REQUEST["ids"])); + $ids = split(",", db_escape_string($this->link, $_REQUEST["ids"])); foreach ($ids as $id) { if ($id != $_SESSION["uid"] && $id != 1) { @@ -233,7 +233,7 @@ class Pref_Users extends Handler_Protected { function add() { - $login = db_escape_string(trim($_REQUEST["login"])); + $login = db_escape_string($this->link, trim($_REQUEST["login"])); $tmp_user_pwd = make_password(8); $salt = substr(bin2hex(get_random_bytes(125)), 0, 250); $pwd_hash = encrypt_password($tmp_user_pwd, $salt, true); @@ -270,11 +270,9 @@ class Pref_Users extends Handler_Protected { } } - function resetPass() { - - $uid = db_escape_string($_REQUEST["id"]); + static function resetUserPassword($link, $uid, $show_password) { - $result = db_query($this->link, "SELECT login,email + $result = db_query($link, "SELECT login,email FROM ttrss_users WHERE id = '$uid'"); $login = db_fetch_result($result, 0, "login"); @@ -286,18 +284,20 @@ class Pref_Users extends Handler_Protected { $pwd_hash = encrypt_password($tmp_user_pwd, $new_salt, true); - db_query($this->link, "UPDATE ttrss_users SET pwd_hash = '$pwd_hash', salt = '$new_salt' + db_query($link, "UPDATE ttrss_users SET pwd_hash = '$pwd_hash', salt = '$new_salt' WHERE id = '$uid'"); - print T_sprintf("Changed password of user <b>%s</b> - to <b>%s</b>", $login, $tmp_user_pwd); + if ($show_password) { + print T_sprintf("Changed password of user <b>%s</b> + to <b>%s</b>", $login, $tmp_user_pwd); + } else { + print T_sprintf("Sending new password of user <b>%s</b> + to <b>%s</b>", $login, $email); + } require_once 'lib/phpmailer/class.phpmailer.php'; if ($email) { - print " "; - print T_sprintf("Notifying <b>%s</b>.", $email); - require_once "lib/MiniTemplator.class.php"; $tpl = new MiniTemplator; @@ -340,8 +340,11 @@ class Pref_Users extends Handler_Protected { if (!$rc) print_error($mail->ErrorInfo); } + } - print "</div>"; + function resetPass() { + $uid = db_escape_string($this->link, $_REQUEST["id"]); + Pref_Users::resetUserPassword($this->link, $uid, true); } function index() { @@ -353,7 +356,7 @@ class Pref_Users extends Handler_Protected { print "<div id=\"pref-user-toolbar\" dojoType=\"dijit.Toolbar\">"; - $user_search = db_escape_string($_REQUEST["search"]); + $user_search = db_escape_string($this->link, $_REQUEST["search"]); if (array_key_exists("search", $_REQUEST)) { $_SESSION["prefs_user_search"] = $user_search; @@ -368,7 +371,7 @@ class Pref_Users extends Handler_Protected { __('Search')."</button> </div>"; - $sort = db_escape_string($_REQUEST["sort"]); + $sort = db_escape_string($this->link, $_REQUEST["sort"]); if (!$sort || $sort == "undefined") { $sort = "login"; diff --git a/classes/rpc.php b/classes/rpc.php index 8144f6b97..ee5a9e68a 100644 --- a/classes/rpc.php +++ b/classes/rpc.php @@ -8,14 +8,14 @@ class RPC extends Handler_Protected { } function setprofile() { - $id = db_escape_string($_REQUEST["id"]); + $id = db_escape_string($this->link, $_REQUEST["id"]); $_SESSION["profile"] = $id; $_SESSION["prefs_cache"] = array(); } function remprofiles() { - $ids = explode(",", db_escape_string(trim($_REQUEST["ids"]))); + $ids = explode(",", db_escape_string($this->link, trim($_REQUEST["ids"]))); foreach ($ids as $id) { if ($_SESSION["profile"] != $id) { @@ -27,7 +27,7 @@ class RPC extends Handler_Protected { // Silent function addprofile() { - $title = db_escape_string(trim($_REQUEST["title"])); + $title = db_escape_string($this->link, trim($_REQUEST["title"])); if ($title) { db_query($this->link, "BEGIN"); @@ -57,8 +57,8 @@ class RPC extends Handler_Protected { // Silent function saveprofile() { - $id = db_escape_string($_REQUEST["id"]); - $title = db_escape_string(trim($_REQUEST["value"])); + $id = db_escape_string($this->link, $_REQUEST["id"]); + $title = db_escape_string($this->link, trim($_REQUEST["value"])); if ($id == 0) { print __("Default profile"); @@ -88,7 +88,7 @@ class RPC extends Handler_Protected { // Silent function remarchive() { - $ids = explode(",", db_escape_string($_REQUEST["ids"])); + $ids = explode(",", db_escape_string($this->link, $_REQUEST["ids"])); foreach ($ids as $id) { $result = db_query($this->link, "DELETE FROM ttrss_archived_feeds WHERE @@ -101,11 +101,11 @@ class RPC extends Handler_Protected { } function addfeed() { - $feed = db_escape_string($_REQUEST['feed']); - $cat = db_escape_string($_REQUEST['cat']); - $login = db_escape_string($_REQUEST['login']); - $pass = db_escape_string($_REQUEST['pass']); - $need_auth = db_escape_string($_REQUEST['need_auth']) != ""; + $feed = db_escape_string($this->link, $_REQUEST['feed']); + $cat = db_escape_string($this->link, $_REQUEST['cat']); + $login = db_escape_string($this->link, $_REQUEST['login']); + $pass = db_escape_string($this->link, $_REQUEST['pass']); + $need_auth = db_escape_string($this->link, $_REQUEST['need_auth']) != ""; $rc = subscribe_to_feed($this->link, $feed, $cat, $login, $pass, $need_auth); @@ -113,7 +113,7 @@ class RPC extends Handler_Protected { } function togglepref() { - $key = db_escape_string($_REQUEST["key"]); + $key = db_escape_string($this->link, $_REQUEST["key"]); set_pref($this->link, $key, !get_pref($this->link, $key)); $value = get_pref($this->link, $key); @@ -132,7 +132,7 @@ class RPC extends Handler_Protected { function mark() { $mark = $_REQUEST["mark"]; - $id = db_escape_string($_REQUEST["id"]); + $id = db_escape_string($this->link, $_REQUEST["id"]); if ($mark == "1") { $mark = "true"; @@ -148,7 +148,7 @@ class RPC extends Handler_Protected { } function delete() { - $ids = db_escape_string($_REQUEST["ids"]); + $ids = db_escape_string($this->link, $_REQUEST["ids"]); $result = db_query($this->link, "DELETE FROM ttrss_user_entries WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]); @@ -157,7 +157,7 @@ class RPC extends Handler_Protected { } function unarchive() { - $ids = db_escape_string($_REQUEST["ids"]); + $ids = db_escape_string($this->link, $_REQUEST["ids"]); $result = db_query($this->link, "UPDATE ttrss_user_entries SET feed_id = orig_feed_id, orig_feed_id = NULL @@ -167,7 +167,7 @@ class RPC extends Handler_Protected { } function archive() { - $ids = explode(",", db_escape_string($_REQUEST["ids"])); + $ids = explode(",", db_escape_string($this->link, $_REQUEST["ids"])); foreach ($ids as $id) { $this->archive_article($this->link, $id, $_SESSION["uid"]); @@ -210,8 +210,8 @@ class RPC extends Handler_Protected { function publ() { $pub = $_REQUEST["pub"]; - $id = db_escape_string($_REQUEST["id"]); - $note = trim(strip_tags(db_escape_string($_REQUEST["note"]))); + $id = db_escape_string($this->link, $_REQUEST["id"]); + $note = trim(strip_tags(db_escape_string($this->link, $_REQUEST["note"]))); if ($pub == "1") { $pub = "true"; @@ -257,7 +257,7 @@ class RPC extends Handler_Protected { /* GET["cmode"] = 0 - mark as read, 1 - as unread, 2 - toggle */ function catchupSelected() { - $ids = explode(",", db_escape_string($_REQUEST["ids"])); + $ids = explode(",", db_escape_string($this->link, $_REQUEST["ids"])); $cmode = sprintf("%d", $_REQUEST["cmode"]); catchupArticlesById($this->link, $ids, $cmode); @@ -266,7 +266,7 @@ class RPC extends Handler_Protected { } function markSelected() { - $ids = explode(",", db_escape_string($_REQUEST["ids"])); + $ids = explode(",", db_escape_string($this->link, $_REQUEST["ids"])); $cmode = sprintf("%d", $_REQUEST["cmode"]); $this->markArticlesById($this->link, $ids, $cmode); @@ -275,7 +275,7 @@ class RPC extends Handler_Protected { } function publishSelected() { - $ids = explode(",", db_escape_string($_REQUEST["ids"])); + $ids = explode(",", db_escape_string($this->link, $_REQUEST["ids"])); $cmode = sprintf("%d", $_REQUEST["cmode"]); $this->publishArticlesById($this->link, $ids, $cmode); @@ -301,9 +301,9 @@ class RPC extends Handler_Protected { function setArticleTags() { - $id = db_escape_string($_REQUEST["id"]); + $id = db_escape_string($this->link, $_REQUEST["id"]); - $tags_str = db_escape_string($_REQUEST["tags_str"]); + $tags_str = db_escape_string($this->link, $_REQUEST["tags_str"]); $tags = array_unique(trim_array(explode(",", $tags_str))); db_query($this->link, "BEGIN"); @@ -373,7 +373,7 @@ class RPC extends Handler_Protected { } function completeLabels() { - $search = db_escape_string($_REQUEST["search"]); + $search = db_escape_string($this->link, $_REQUEST["search"]); $result = db_query($this->link, "SELECT DISTINCT caption FROM ttrss_labels2 @@ -390,7 +390,7 @@ class RPC extends Handler_Protected { function completeTags() { - $search = db_escape_string($_REQUEST["search"]); + $search = db_escape_string($this->link, $_REQUEST["search"]); $result = db_query($this->link, "SELECT DISTINCT tag_name FROM ttrss_tags WHERE owner_uid = '".$_SESSION["uid"]."' AND @@ -405,7 +405,7 @@ class RPC extends Handler_Protected { } function purge() { - $ids = explode(",", db_escape_string($_REQUEST["ids"])); + $ids = explode(",", db_escape_string($this->link, $_REQUEST["ids"])); $days = sprintf("%d", $_REQUEST["days"]); foreach ($ids as $id) { @@ -420,7 +420,7 @@ class RPC extends Handler_Protected { } function getArticles() { - $ids = explode(",", db_escape_string($_REQUEST["ids"])); + $ids = explode(",", db_escape_string($this->link, $_REQUEST["ids"])); $articles = array(); foreach ($ids as $id) { @@ -433,7 +433,7 @@ class RPC extends Handler_Protected { } function checkDate() { - $date = db_escape_string($_REQUEST["date"]); + $date = db_escape_string($this->link, $_REQUEST["date"]); $date_parsed = strtotime($date); print json_encode(array("result" => (bool)$date_parsed, @@ -451,10 +451,10 @@ class RPC extends Handler_Protected { function labelops($assign) { $reply = array(); - $ids = explode(",", db_escape_string($_REQUEST["ids"])); - $label_id = db_escape_string($_REQUEST["lid"]); + $ids = explode(",", db_escape_string($this->link, $_REQUEST["ids"])); + $label_id = db_escape_string($this->link, $_REQUEST["lid"]); - $label = db_escape_string(label_find_caption($this->link, $label_id, + $label = db_escape_string($this->link, label_find_caption($this->link, $label_id, $_SESSION["uid"])); $reply["info-for-headlines"] = array(); @@ -482,9 +482,9 @@ class RPC extends Handler_Protected { } function updateFeedBrowser() { - $search = db_escape_string($_REQUEST["search"]); - $limit = db_escape_string($_REQUEST["limit"]); - $mode = (int) db_escape_string($_REQUEST["mode"]); + $search = db_escape_string($this->link, $_REQUEST["search"]); + $limit = db_escape_string($this->link, $_REQUEST["limit"]); + $mode = (int) db_escape_string($this->link, $_REQUEST["mode"]); require_once "feedbrowser.php"; @@ -504,8 +504,8 @@ class RPC extends Handler_Protected { if ($mode == 1) { foreach ($payload as $feed) { - $title = db_escape_string($feed[0]); - $feed_url = db_escape_string($feed[1]); + $title = db_escape_string($this->link, $feed[0]); + $feed_url = db_escape_string($this->link, $feed[1]); $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]); @@ -524,9 +524,9 @@ class RPC extends Handler_Protected { WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"]); if (db_num_rows($result) != 0) { - $site_url = db_escape_string(db_fetch_result($result, 0, "site_url")); - $feed_url = db_escape_string(db_fetch_result($result, 0, "feed_url")); - $title = db_escape_string(db_fetch_result($result, 0, "title")); + $site_url = db_escape_string($this->link, db_fetch_result($result, 0, "site_url")); + $feed_url = db_escape_string($this->link, db_fetch_result($result, 0, "feed_url")); + $title = db_escape_string($this->link, db_fetch_result($result, 0, "title")); $result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]); @@ -543,9 +543,9 @@ class RPC extends Handler_Protected { } function catchupFeed() { - $feed_id = db_escape_string($_REQUEST['feed_id']); - $is_cat = db_escape_string($_REQUEST['is_cat']) == "true"; - $max_id = (int) db_escape_string($_REQUEST['max_id']); + $feed_id = db_escape_string($this->link, $_REQUEST['feed_id']); + $is_cat = db_escape_string($this->link, $_REQUEST['is_cat']) == "true"; + $max_id = (int) db_escape_string($this->link, $_REQUEST['max_id']); catchup_feed($this->link, $feed_id, $is_cat, false, $max_id); @@ -553,7 +553,7 @@ class RPC extends Handler_Protected { } function quickAddCat() { - $cat = db_escape_string($_REQUEST["cat"]); + $cat = db_escape_string($this->link, $_REQUEST["cat"]); add_feed_category($this->link, $cat); @@ -570,8 +570,8 @@ class RPC extends Handler_Protected { } function regenFeedKey() { - $feed_id = db_escape_string($_REQUEST['id']); - $is_cat = db_escape_string($_REQUEST['is_cat']) == "true"; + $feed_id = db_escape_string($this->link, $_REQUEST['id']); + $is_cat = db_escape_string($this->link, $_REQUEST['is_cat']) == "true"; $new_key = $this->update_feed_access_key($this->link, $feed_id, $is_cat); @@ -619,11 +619,11 @@ class RPC extends Handler_Protected { } function batchAddFeeds() { - $cat_id = db_escape_string($_REQUEST['cat']); - $feeds = explode("\n", db_escape_string($_REQUEST['feeds'])); - $login = db_escape_string($_REQUEST['login']); - $pass = db_escape_string($_REQUEST['pass']); - $need_auth = db_escape_string($_REQUEST['need_auth']) != ""; + $cat_id = db_escape_string($this->link, $_REQUEST['cat']); + $feeds = explode("\n", db_escape_string($this->link, $_REQUEST['feeds'])); + $login = db_escape_string($this->link, $_REQUEST['login']); + $pass = db_escape_string($this->link, $_REQUEST['pass']); + $need_auth = db_escape_string($this->link, $_REQUEST['need_auth']) != ""; foreach ($feeds as $feed) { $feed = trim($feed); @@ -656,8 +656,8 @@ class RPC extends Handler_Protected { } function setScore() { - $ids = db_escape_string($_REQUEST['id']); - $score = (int)db_escape_string($_REQUEST['score']); + $ids = db_escape_string($this->link, $_REQUEST['id']); + $score = (int)db_escape_string($this->link, $_REQUEST['score']); db_query($this->link, "UPDATE ttrss_user_entries SET score = '$score' WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]); @@ -756,7 +756,7 @@ class RPC extends Handler_Protected { AND owner_uid = " . $owner_uid); if (db_num_rows($result) == 1) { - $key = db_escape_string(sha1(uniqid(rand(), true))); + $key = db_escape_string($this->link, sha1(uniqid(rand(), true))); db_query($link, "UPDATE ttrss_access_keys SET access_key = '$key' WHERE feed_id = '$feed_id' AND is_cat = $sql_is_cat @@ -829,16 +829,17 @@ class RPC extends Handler_Protected { } } - function getlinkbyid() { - $id = db_escape_string($_REQUEST['id']); + function getlinktitlebyid() { + $id = db_escape_string($this->link, $_REQUEST['id']); - $result = db_query($this->link, "SELECT link FROM ttrss_entries, ttrss_user_entries + $result = db_query($this->link, "SELECT link, title FROM ttrss_entries, ttrss_user_entries WHERE ref_id = '$id' AND ref_id = id AND owner_uid = ". $_SESSION["uid"]); if (db_num_rows($result) != 0) { $link = db_fetch_result($result, 0, "link"); + $title = db_fetch_result($result, 0, "title"); - echo json_encode(array("link" => $link)); + echo json_encode(array("link" => $link, "title" => $title)); } else { echo json_encode(array("error" => "ARTICLE_NOT_FOUND")); } diff --git a/include/db-prefs.php b/include/db-prefs.php index 641e9d1dd..f6a78939b 100644 --- a/include/db-prefs.php +++ b/include/db-prefs.php @@ -44,7 +44,7 @@ function get_pref($link, $pref_name, $user_id = false, $die_on_error = false) { - $pref_name = db_escape_string($pref_name); + $pref_name = db_escape_string($link, $pref_name); $prefs_cache = true; $profile = false; @@ -115,8 +115,8 @@ } function set_pref($link, $pref_name, $value, $user_id = false, $strip_tags = true) { - $pref_name = db_escape_string($pref_name); - $value = db_escape_string($value, $strip_tags); + $pref_name = db_escape_string($link, $pref_name); + $value = db_escape_string($link, $value, $strip_tags); if (!$user_id) { $user_id = $_SESSION["uid"]; diff --git a/include/db.php b/include/db.php index 0f4bf3708..0479df6a9 100644 --- a/include/db.php +++ b/include/db.php @@ -41,21 +41,13 @@ function db_connect($host, $user, $pass, $db) { } } -function db_escape_string($s, $strip_tags = true, $link = NULL) { +function db_escape_string($link, $s, $strip_tags = true) { if ($strip_tags) $s = strip_tags($s); if (DB_TYPE == "pgsql") { - if ($link) { - return pg_escape_string($link, $s); - } else { - return pg_escape_string($s); - } + return pg_escape_string($link, $s); } else { - if ($link) { - return mysql_real_escape_string($s, $link); - } else { - return mysql_real_escape_string($s); - } + return mysql_real_escape_string($s, $link); } } diff --git a/include/functions.php b/include/functions.php index 5d5550059..56bc66b6c 100644 --- a/include/functions.php +++ b/include/functions.php @@ -54,6 +54,7 @@ "ja_JP" => "日本語 (Japanese)", "lv_LV" => "Latviešu", "nb_NO" => "Norwegian bokmål", + "nl_NL" => "Dutch", "pl_PL" => "Polski", "ru_RU" => "Русский", "pt_BR" => "Portuguese/Brazil", @@ -516,7 +517,7 @@ function initialize_user_prefs($link, $uid, $profile = false) { - $uid = db_escape_string($uid); + $uid = db_escape_string($link, $uid); if (!$profile) { $profile = "NULL"; @@ -768,6 +769,7 @@ /* bump login timestamp */ db_query($link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . $_SESSION["uid"]); + $_SESSION["last_login_update"] = time(); } if ($_SESSION["uid"] && $_SESSION["language"] && SESSION_COOKIE_LIFETIME > 0) { @@ -778,7 +780,21 @@ if ($_SESSION["uid"]) { cache_prefs($link); load_user_plugins($link, $_SESSION["uid"]); + + /* cleanup ccache */ + + db_query($link, "DELETE FROM ttrss_counters_cache WHERE owner_uid = ". + $_SESSION["uid"] . " AND + (SELECT COUNT(id) FROM ttrss_feeds WHERE + ttrss_feeds.id = feed_id) = 0"); + + db_query($link, "DELETE FROM ttrss_cat_counters_cache WHERE owner_uid = ". + $_SESSION["uid"] . " AND + (SELECT COUNT(id) FROM ttrss_feed_categories WHERE + ttrss_feed_categories.id = feed_id) = 0"); + } + } } @@ -911,7 +927,7 @@ } } - if (db_escape_string("testTEST") != "testTEST") { + if (db_escape_string($link, "testTEST") != "testTEST") { $error_code = 12; } @@ -1086,7 +1102,7 @@ } else { // tag db_query($link, "BEGIN"); - $tag_name = db_escape_string($feed); + $tag_name = db_escape_string($link, $feed); $result = db_query($link, "SELECT post_int_id FROM ttrss_tags WHERE tag_name = '$tag_name' AND owner_uid = $owner_uid"); @@ -1283,7 +1299,7 @@ return 0; } else if ($feed != "0" && $n_feed == 0) { - $feed = db_escape_string($feed); + $feed = db_escape_string($link, $feed); $result = db_query($link, "SELECT SUM((SELECT COUNT(int_id) FROM ttrss_user_entries,ttrss_entries WHERE int_id = post_int_id @@ -2744,7 +2760,7 @@ function get_article_tags($link, $id, $owner_uid = 0, $tag_cache = false) { - $a_id = db_escape_string($id); + $a_id = db_escape_string($link, $id); if (!$owner_uid) $owner_uid = $_SESSION["uid"]; @@ -2779,7 +2795,7 @@ /* update the cache */ - $tags_str = db_escape_string(join(",", $tags)); + $tags_str = db_escape_string($link, join(",", $tags)); db_query($link, "UPDATE ttrss_user_entries SET tag_cache = '$tags_str' WHERE ref_id = '$id' @@ -2989,11 +3005,6 @@ </head><body>"; } - $title_escaped = htmlspecialchars($line['title']); - - $rv['content'] .= "<div id=\"PTITLE-FULL-$id\" style=\"display : none\">" . - strip_tags($line['title']) . "</div>"; - $rv['content'] .= "<div class=\"postReply\" id=\"POST-$id\">"; $rv['content'] .= "<div class=\"postHeader\" id=\"POSTHDR-$id\">"; @@ -3014,8 +3025,8 @@ title=\"".htmlspecialchars($line['title'])."\" href=\"" . htmlspecialchars($line["link"]) . "\">" . - $line["title"] . - "<span class='author'>$entry_author</span></a></div>"; + $line["title"] . "</a>" . + "<span class='author'>$entry_author</span></div>"; } else { $rv['content'] .= "<div class='postTitle'>" . $line["title"] . "$entry_author</div>"; } @@ -3091,31 +3102,6 @@ $rv['content'] .= "<div class=\"postContent\">"; - // N-grams - - if (DB_TYPE == "pgsql" and defined('_NGRAM_TITLE_RELATED_THRESHOLD')) { - - $ngram_result = db_query($link, "SELECT id,title FROM - ttrss_entries,ttrss_user_entries - WHERE ref_id = id AND updated >= NOW() - INTERVAL '7 day' - AND similarity(title, '$title_escaped') >= "._NGRAM_TITLE_RELATED_THRESHOLD." - AND title != '$title_escaped' - AND owner_uid = $owner_uid"); - - if (db_num_rows($ngram_result) > 0) { - $rv['content'] .= "<div dojoType=\"dijit.form.DropDownButton\">". - "<span>" . __('Related')."</span>"; - $rv['content'] .= "<div dojoType=\"dijit.Menu\" style=\"display: none;\">"; - - while ($nline = db_fetch_assoc($ngram_result)) { - $rv['content'] .= "<div onclick=\"hlOpenInNewTab(null,".$nline['id'].")\" - dojoType=\"dijit.MenuItem\">".$nline['title']."</div>"; - - } - $rv['content'] .= "</div></div><br/"; - } - } - $rv['content'] .= $line["content"]; $rv['content'] .= format_article_enclosures($link, $id, @@ -3511,7 +3497,7 @@ if (db_num_rows($result) == 1) { return db_fetch_result($result, 0, "access_key"); } else { - $key = db_escape_string(sha1(uniqid(rand(), true))); + $key = db_escape_string($link, sha1(uniqid(rand(), true))); $result = db_query($link, "INSERT INTO ttrss_access_keys (access_key, feed_id, is_cat, owner_uid) @@ -3865,7 +3851,7 @@ if ($regexp_valid) { - $rule['reg_exp'] = db_escape_string($rule['reg_exp']); + $rule['reg_exp'] = db_escape_string($link, $rule['reg_exp']); switch ($rule["type"]) { case "title": @@ -3896,7 +3882,7 @@ } if (isset($rule["feed_id"]) && $rule["feed_id"] > 0) { - $qpart .= " AND feed_id = " . db_escape_string($rule["feed_id"]); + $qpart .= " AND feed_id = " . db_escape_string($link, $rule["feed_id"]); } if (isset($rule["cat_id"])) { @@ -4098,4 +4084,11 @@ return $max_ts; } + function get_site_title() { + if (defined("_SITE_TITLE")) { + return _SITE_TITLE; + } else { + return "Tiny Tiny RSS"; + } + } ?> diff --git a/include/labels.php b/include/labels.php index da7e3f97b..e45a38622 100644 --- a/include/labels.php +++ b/include/labels.php @@ -88,7 +88,7 @@ if (!$labels) $labels = get_article_labels($link, $id); - $labels = db_escape_string(json_encode($labels)); + $labels = db_escape_string($link, json_encode($labels)); db_query($link, "UPDATE ttrss_user_entries SET label_cache = '$labels' WHERE ref_id = '$id' AND owner_uid = '$owner_uid'"); diff --git a/include/login_form.php b/include/login_form.php index 68df544e3..af451239d 100644 --- a/include/login_form.php +++ b/include/login_form.php @@ -65,6 +65,20 @@ font-size : 12px; } + a.forgotpass { + text-align : right; + font-size : 11px; + display : inline-block; + } + + a { + color : #4684ff; + } + + a:hover { + color : black; + } + div.footer a { color : gray; } @@ -179,6 +193,8 @@ function bwLimitChange(elem) { <input type="password" name="password" required="1" style="width : 220px" class="input" value="<?php echo $_SESSION["fake_password"] ?>"/> + <label></label> + <a class='forgotpass' href="public.php?op=forgotpass"><?php echo __("I forgot my password") ?></a> </div> <div class="row"> diff --git a/include/rssfuncs.php b/include/rssfuncs.php index df1d16986..55c0baa4f 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -18,10 +18,10 @@ $count = 0; while ($line = db_fetch_assoc($result)) { - $subscribers = db_escape_string($line["subscribers"]); - $feed_url = db_escape_string($line["feed_url"]); - $title = db_escape_string($line["title"]); - $site_url = db_escape_string($line["site_url"]); + $subscribers = db_escape_string($link, $line["subscribers"]); + $feed_url = db_escape_string($link, $line["feed_url"]); + $title = db_escape_string($link, $line["title"]); + $site_url = db_escape_string($link, $line["site_url"]); $tmp_result = db_query($link, "SELECT subscribers FROM ttrss_feedbrowser_cache WHERE feed_url = '$feed_url'"); @@ -200,7 +200,7 @@ $cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images")); $fetch_url = db_fetch_result($result, 0, "feed_url"); - $feed = db_escape_string($feed); + $feed = db_escape_string($link, $feed); /* if ($auth_login && $auth_pass ){ $url_parts = array(); @@ -238,7 +238,7 @@ _debug("update_rss_feed: unable to fetch: $fetch_last_error"); } - $error_escaped = db_escape_string($fetch_last_error); + $error_escaped = db_escape_string($link, $fetch_last_error); db_query($link, "UPDATE ttrss_feeds SET last_error = '$error_escaped', @@ -287,7 +287,7 @@ // print_r($rss); - $feed = db_escape_string($feed); + $feed = db_escape_string($link, $feed); if (!$rss->error()) { @@ -318,7 +318,7 @@ $owner_uid = db_fetch_result($result, 0, "owner_uid"); - $site_url = db_escape_string(mb_substr(rewrite_relative_url($fetch_url, $rss->get_link()), 0, 245)); + $site_url = db_escape_string($link, mb_substr(rewrite_relative_url($fetch_url, $rss->get_link()), 0, 245)); if ($debug_enabled) { _debug("update_rss_feed: checking favicon..."); @@ -333,7 +333,7 @@ if (!$registered_title || $registered_title == "[Unknown]") { - $feed_title = db_escape_string($rss->get_title()); + $feed_title = db_escape_string($link, $rss->get_title()); if ($debug_enabled) { _debug("update_rss_feed: registering title: $feed_title"); @@ -475,13 +475,13 @@ $entry_author = $entry_author_item->get_name(); if (!$entry_author) $entry_author = $entry_author_item->get_email(); - $entry_author = db_escape_string($entry_author); + $entry_author = db_escape_string($link, $entry_author); } - $entry_guid = db_escape_string(mb_substr($entry_guid, 0, 245)); + $entry_guid = db_escape_string($link, mb_substr($entry_guid, 0, 245)); - $entry_comments = db_escape_string(mb_substr($entry_comments, 0, 245)); - $entry_author = db_escape_string(mb_substr($entry_author, 0, 245)); + $entry_comments = db_escape_string($link, mb_substr($entry_comments, 0, 245)); + $entry_author = db_escape_string($link, mb_substr($entry_author, 0, 245)); $num_comments = $item->get_item_tags('http://purl.org/rss/1.0/modules/slash/', 'comments'); @@ -539,7 +539,7 @@ // FIXME not sure if owner_uid is a good idea here, we may have a base entry without user entry (?) $result = db_query($link, "SELECT plugin_data,title,content,link,tag_cache,author FROM ttrss_entries, ttrss_user_entries - WHERE ref_id = id AND guid = '".db_escape_string($entry_guid)."' AND owner_uid = $owner_uid"); + WHERE ref_id = id AND guid = '".db_escape_string($link, $entry_guid)."' AND owner_uid = $owner_uid"); if (db_num_rows($result) != 0) { $entry_plugin_data = db_fetch_result($result, 0, "plugin_data"); @@ -568,11 +568,11 @@ } $entry_tags = $article["tags"]; - $entry_guid = db_escape_string($entry_guid); - $entry_title = db_escape_string($article["title"]); - $entry_author = db_escape_string($article["author"]); - $entry_link = db_escape_string($article["link"]); - $entry_plugin_data = db_escape_string($article["plugin_data"]); + $entry_guid = db_escape_string($link, $entry_guid); + $entry_title = db_escape_string($link, $article["title"]); + $entry_author = db_escape_string($link, $article["author"]); + $entry_link = db_escape_string($link, $article["link"]); + $entry_plugin_data = db_escape_string($link, $article["plugin_data"]); $entry_content = $article["content"]; // escaped below @@ -583,7 +583,7 @@ if ($cache_images && is_writable(CACHE_DIR . '/images')) cache_images($entry_content, $site_url, $debug_enabled); - $entry_content = db_escape_string($entry_content, false); + $entry_content = db_escape_string($link, $entry_content, false); $content_hash = "SHA1:" . sha1($entry_content); @@ -829,7 +829,7 @@ $update_insignificant = false; } - if (db_escape_string($orig_title) != $entry_title) { + if (db_escape_string($link, $orig_title) != $entry_title) { $post_needs_update = true; $update_insignificant = false; } @@ -896,9 +896,9 @@ db_query($link, "BEGIN"); foreach ($enclosures as $enc) { - $enc_url = db_escape_string($enc[0]); - $enc_type = db_escape_string($enc[1]); - $enc_dur = db_escape_string($enc[2]); + $enc_url = db_escape_string($link, $enc[0]); + $enc_type = db_escape_string($link, $enc[1]); + $enc_dur = db_escape_string($link, $enc[2]); $result = db_query($link, "SELECT id FROM ttrss_enclosures WHERE content_url = '$enc_url' AND post_id = '$entry_ref_id'"); @@ -959,7 +959,7 @@ foreach ($filtered_tags as $tag) { $tag = sanitize_tag($tag); - $tag = db_escape_string($tag); + $tag = db_escape_string($link, $tag); if (!tag_is_valid($tag)) continue; @@ -981,7 +981,7 @@ $tags_to_cache = array_unique($tags_to_cache); - $tags_str = db_escape_string(join(",", $tags_to_cache)); + $tags_str = db_escape_string($link, join(",", $tags_to_cache)); db_query($link, "UPDATE ttrss_user_entries SET tag_cache = '$tags_str' WHERE ref_id = '$entry_ref_id' @@ -1031,7 +1031,7 @@ } else { - $error_msg = db_escape_string(mb_substr($rss->error(), 0, 245)); + $error_msg = db_escape_string($link, mb_substr($rss->error(), 0, 245)); if ($debug_enabled) { _debug("update_rss_feed: error fetching feed: $error_msg"); diff --git a/include/sessions.php b/include/sessions.php index 92e346afe..3355ec49e 100644 --- a/include/sessions.php +++ b/include/sessions.php @@ -53,7 +53,7 @@ $expire = time() + $session_expire; - $data = db_escape_string(base64_encode($data), false, $session_connection); + $data = db_escape_string($session_connection, base64_encode($data), false); if ($session_read) { $query = "UPDATE ttrss_sessions SET data='$data', @@ -71,7 +71,7 @@ global $session_connection; - db_close($session_connection); + //db_close($session_connection); return true; } @@ -53,7 +53,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> - <title>Tiny Tiny RSS</title> + <title><?php echo get_site_title() ?></title> <?php echo stylesheet_tag("lib/dijit/themes/claro/claro.css"); ?> <?php echo stylesheet_tag("tt-rss.css"); ?> diff --git a/js/functions.js b/js/functions.js index db4fedcd5..a9367da60 100644 --- a/js/functions.js +++ b/js/functions.js @@ -1216,20 +1216,31 @@ function quickAddFilter() { var lh = dojo.connect(dialog, "onLoad", function(){ dojo.disconnect(lh); - var title = $("PTITLE-FULL-" + getActiveArticleId()); + var query = "op=rpc&method=getlinktitlebyid&id=" + getActiveArticleId(); - if (title || getActiveFeedId() || activeFeedIsCat()) { - if (title) title = title.innerHTML; + new Ajax.Request("backend.php", { + parameters: query, + onComplete: function(transport) { + var reply = JSON.parse(transport.responseText); - console.log(title + " " + getActiveFeedId()); + var title = false; - var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) : - getActiveFeedId(); + if (reply && reply) title = reply.title; - var rule = { reg_exp: title, feed_id: feed_id, filter_type: 1 }; + if (title || getActiveFeedId() || activeFeedIsCat()) { + + console.log(title + " " + getActiveFeedId()); + + var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) : + getActiveFeedId(); + + var rule = { reg_exp: title, feed_id: feed_id, filter_type: 1 }; + + addFilterRule(null, dojo.toJson(rule)); + } + + } }); - addFilterRule(null, dojo.toJson(rule)); - } }); } diff --git a/js/tt-rss.js b/js/tt-rss.js index eaa1f3daf..b7bb9319b 100644 --- a/js/tt-rss.js +++ b/js/tt-rss.js @@ -178,7 +178,11 @@ function search() { } function updateTitle() { - var tmp = "Tiny Tiny RSS"; + var tmp = document.title; + + if (tmp.indexOf(")") > 0) { + tmp = tmp.substr(tmp.indexOf(")") + 1); + } if (global_unread > 0) { tmp = "(" + global_unread + ") " + tmp; diff --git a/js/viewfeed.js b/js/viewfeed.js index 35c9c12a7..e32d3a990 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -1392,6 +1392,7 @@ function cdmExpandArticle(id) { Element.hide(elem); Element.show("CEXC-" + getActiveArticleId()); Element.hide(collapse); + $("RROW-" + getActiveArticleId()).removeClassName("active"); } setActiveArticleId(id); @@ -1413,6 +1414,7 @@ function cdmExpandArticle(id) { Element.show(elem); Element.hide("CEXC-" + id); Element.show(collapse); + $("RROW-" + id).addClassName("active"); } var new_offset = $("RROW-" + id).offsetTop; @@ -2044,7 +2046,7 @@ function changeScore(id, pic) { function displayArticleUrl(id) { try { - var query = "op=rpc&method=getlinkbyid&id=" + param_escape(id); + var query = "op=rpc&method=getlinktitlebyid&id=" + param_escape(id); new Ajax.Request("backend.php", { parameters: query, diff --git a/locale/cs_CZ/LC_MESSAGES/messages.po b/locale/cs_CZ/LC_MESSAGES/messages.po index d468c7f58..35b2df428 100644 --- a/locale/cs_CZ/LC_MESSAGES/messages.po +++ b/locale/cs_CZ/LC_MESSAGES/messages.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# Michal Stanke <[email protected]>, 2013. # #, fuzzy msgid "" @@ -9,10 +9,10 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-03-21 23:29+0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2013-03-22 14:50+0100\n" +"Last-Translator: Michal Stanke <[email protected]>\n" "Language-Team: LANGUAGE <[email protected]>\n" -"Language: \n" +"Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -27,27 +27,27 @@ msgstr "Nikdy nečistit" #: backend.php:73 msgid "1 week old" -msgstr "starší 1 týdne" +msgstr "starší než týden" #: backend.php:74 msgid "2 weeks old" -msgstr "starší 2 týdnů" +msgstr "starší než 2 týdny" #: backend.php:75 msgid "1 month old" -msgstr "starší 1 měsíce" +msgstr "starší než měsíc" #: backend.php:76 msgid "2 months old" -msgstr "starší 2 měsíců" +msgstr "starší než 2 měsíce" #: backend.php:77 msgid "3 months old" -msgstr "starší 3 měsíců" +msgstr "starší než 3 měsíce" #: backend.php:80 msgid "Default interval" -msgstr "Výchozí časový interval" +msgstr "Výchozí interval" #: backend.php:81 backend.php:91 msgid "Disable updates" @@ -95,7 +95,7 @@ msgstr "Administrátor" #: db-updater.php:19 msgid "Your access level is insufficient to run this script." -msgstr "Vaše úroveň přístupu není dostatečná pro spuštění skriptu." +msgstr "Vaše přístupová práva nejsou dostatečná pro spuštění tohoto skriptu." #: db-updater.php:44 msgid "Database Updater" @@ -107,7 +107,7 @@ msgstr "Nelze aktualizovat databázi" #: db-updater.php:88 msgid "Could not find necessary schema file, need version:" -msgstr "Nelze nalézt potřebný soubor schéma, požadovaná verze:" +msgstr "Nelze nalézt potřebný soubor schématu, požadovaná verze:" #: db-updater.php:89 msgid ", found: " @@ -122,11 +122,11 @@ msgstr "Databáze Tiny Tiny RSS je aktuální." #: register.php:371 register.php:381 register.php:393 #: classes/handler/public.php:610 classes/handler/public.php:698 msgid "Return to Tiny Tiny RSS" -msgstr "Zpět do Tiny TIny RSS" +msgstr "Zpět do Tiny Tiny RSS" #: db-updater.php:100 msgid "Please backup your database before proceeding." -msgstr "Před pokračováním proveďte prosím zálohu databáze." +msgstr "Před pokračováním prosím zazálohujte databázi." #: db-updater.php:102 #, php-format @@ -160,7 +160,7 @@ msgstr "OK" #: db-updater.php:150 msgid "ERROR!" -msgstr "CHYBA" +msgstr "CHYBA!" #: db-updater.php:158 #, php-format @@ -168,7 +168,7 @@ msgid "" "Finished. Performed <b>%d</b> update(s) up to schema\n" "\t\t\tversion <b>%d</b>." msgstr "" -"Dokončeno. Vykonáno <b>%d</b> aktualizací na schéma\n" +"Dokončeno. Provedeno <b>%d</b> aktualizací na schéma\n" "\t\t\tverze <b>%d</b>." #: db-updater.php:168 @@ -185,73 +185,83 @@ msgid "" "Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer " "version and continue." msgstr "" -"Aktualizace schéma není možná. Aktualizujte Tiny Tiny RSS na novější verzi a " -"pokračujte." +"Aktualizace schématu není možná. Aktualizujte Tiny Tiny RSS na novější " +"verzi a pokračujte." #: errors.php:9 msgid "" "This program requires XmlHttpRequest to function properly. Your browser " "doesn't seem to support it." msgstr "" +"Tento program vyžaduje pro správnou funkci XmlHttpRequest. Váš prohlížeč " +"ji zřejmě nepodporuje." #: errors.php:12 msgid "" "This program requires cookies to function properly. Your browser doesn't " "seem to support them." msgstr "" +"Tento program vyžaduje pro správnou funkci povolené cookies. Váš prohlížeš " +"je zřejmě nepodporuje." #: errors.php:15 msgid "Backend sanity check failed" -msgstr "" +msgstr "Kontrola na pozadí selhala" #: errors.php:17 msgid "Frontend sanity check failed." -msgstr "" +msgstr "Kontrola selhala" #: errors.php:19 msgid "" "Incorrect database schema version. <a href='db-updater.php'>Please " "update</a>." msgstr "" +"Nesprávná verze schámatu databáze. <a href='db-updater.php'>Prosím " +"aktualizujte</a>." #: errors.php:21 msgid "Request not authorized." -msgstr "" +msgstr "Požadavek nebyl ověřen" #: errors.php:23 msgid "No operation to perform." -msgstr "" +msgstr "Nic k provedení." #: errors.php:25 msgid "" "Could not display feed: query failed. Please check label match syntax or " "local configuration." msgstr "" +"Zdroj nelze zobrazit: dotaz selhal. Zkontrolujte syntaxi label match a " +"místní konfiguraci." #: errors.php:27 msgid "Denied. Your access level is insufficient to access this page." -msgstr "" +msgstr "Nedovoleno. Vaše práva nejsou dostatečná pro přístup na tuto stránku." #: errors.php:29 msgid "Configuration check failed" -msgstr "" +msgstr "Kontrola konfigurace selhala" #: errors.php:31 msgid "" "Your version of MySQL is not currently supported. Please see\n" "\t\tofficial site for more information." msgstr "" +"Vaše verze MySQL není podporována. Více informací\n" +"\t\tnajdete na oficiálních stránkách." #: errors.php:36 msgid "SQL escaping test failed, check your database and PHP configuration" -msgstr "" +msgstr "Test opuštění SQL selhal, zkontrolujte konfiguraci databáze a PHP" #: index.php:121 index.php:151 index.php:257 prefs.php:83 #: classes/backend.php:5 classes/pref/labels.php:296 #: classes/pref/filters.php:609 classes/pref/feeds.php:1296 #: plugins/digest/digest_body.php:49 js/viewfeed.js:1205 msgid "Loading, please wait..." -msgstr "Načítám, čekejte prosím..." +msgstr "Načítání, čekejte prosím..." #: index.php:131 index.php:203 msgid "Communication problem with server." @@ -259,15 +269,15 @@ msgstr "Chyba při komunikaci se serverem." #: index.php:137 index.php:211 msgid "New version of Tiny Tiny RSS is available!" -msgstr "Je dostupná nová verze TIny Tiny RSS." +msgstr "Je dostupná nová verze Tiny Tiny RSS!" #: index.php:165 msgid "Collapse feedlist" -msgstr "" +msgstr "Skrýt seznam zdrojů" #: index.php:168 msgid "Show articles" -msgstr "" +msgstr "Zobrazit články" #: index.php:171 msgid "Adaptive" @@ -291,7 +301,7 @@ msgstr "Nepřečteno" #: index.php:176 msgid "Ignore Scoring" -msgstr "" +msgstr "Ignorovat hodnocení" #: index.php:177 msgid "Updated" @@ -299,7 +309,7 @@ msgstr "Aktualizováno" #: index.php:180 msgid "Sort articles" -msgstr "" +msgstr "Seřadit články" #: index.php:183 msgid "Default" @@ -315,7 +325,7 @@ msgstr "Název" #: index.php:186 msgid "Score" -msgstr "Skóre" +msgstr "Hodnocení" #: index.php:192 classes/pref/feeds.php:535 classes/pref/feeds.php:758 msgid "Update" @@ -330,7 +340,7 @@ msgstr "Označit jako přečtené" #: index.php:216 msgid "Actions..." -msgstr "Činnosti..." +msgstr "Akce..." #: index.php:218 msgid "Preferences..." @@ -342,7 +352,7 @@ msgstr "Hledat..." #: index.php:220 msgid "Feed actions:" -msgstr "" +msgstr "Akce zdrojů:" #: index.php:221 classes/handler/public.php:540 msgid "Subscribe to feed..." @@ -350,36 +360,36 @@ msgstr "Přihlásit se k odběru..." #: index.php:222 msgid "Edit this feed..." -msgstr "Upravit kanál..." +msgstr "Upravit zdroj..." #: index.php:223 msgid "Rescore feed" -msgstr "" +msgstr "Znovu ohodnotit zdroj" #: index.php:224 classes/pref/feeds.php:684 classes/pref/feeds.php:1269 #: js/PrefFeedTree.js:73 msgid "Unsubscribe" -msgstr "Odhlásit se" +msgstr "Zrušit odběr" #: index.php:225 msgid "All feeds:" -msgstr "Všechny kanály:" +msgstr "Všechny zdroje:" #: index.php:227 msgid "(Un)hide read feeds" -msgstr "Zobrazit/Skrýt přečtené kanály" +msgstr "Zobrazit/Skrýt přečtené zdroje" #: index.php:228 msgid "Other actions:" -msgstr "Ostatní činnosti:" +msgstr "Ostatní akce:" #: index.php:230 msgid "Switch to digest..." -msgstr "" +msgstr "Přepnout na výběr..." #: index.php:232 msgid "Show tag cloud..." -msgstr "" +msgstr "Zobrazit seznam štítků..." #: index.php:234 include/functions.php:1894 msgid "Toggle widescreen mode" @@ -387,11 +397,11 @@ msgstr "Přepnout širokoúhlý režim" #: index.php:236 msgid "Select by tags..." -msgstr "" +msgstr "Výběr podle štítků..." #: index.php:237 msgid "Create label..." -msgstr "" +msgstr "Vytvořit štítek..." #: index.php:238 msgid "Create filter..." @@ -422,7 +432,7 @@ msgstr "Opustit nastavení" #: prefs.php:106 classes/pref/feeds.php:100 classes/pref/feeds.php:1174 #: classes/pref/feeds.php:1237 msgid "Feeds" -msgstr "Kanály" +msgstr "Zdroje" #: prefs.php:109 classes/pref/filters.php:117 msgid "Filters" @@ -451,10 +461,12 @@ msgid "" "were not logged in once, are erased automatically 24 hours after temporary " "password is sent." msgstr "" +"Vaše dočasné heslo bude odesláno na zadanou e-mailovou adresu. Účet, který " +"se do 24 hodin od odeslání dočasného hesla nepřihlásí, bude smazán." #: register.php:221 msgid "Desired login:" -msgstr "" +msgstr "Požadované jméno:" #: register.php:224 msgid "Check availability" @@ -490,11 +502,11 @@ msgstr "Účet byl úspěšně vytvořen." #: register.php:390 msgid "New user registrations are currently closed." -msgstr "Registrace nových uživatelů nejsou nyní povoleny." +msgstr "Registrace nových uživatelů nyní nejsou povoleny." #: update.php:55 msgid "Tiny Tiny RSS data update script." -msgstr "" +msgstr "Skript aktualizace dat Tiny Tiny RSS." #: mobile/login_form.php:28 include/login_form.php:209 #: classes/handler/public.php:468 @@ -513,7 +525,7 @@ msgstr "Heslo:" #: mobile/login_form.php:52 msgid "Open regular version" -msgstr "" +msgstr "Otevřít normální verzi" #: mobile/mobile-functions.php:68 mobile/mobile-functions.php:144 #: mobile/mobile-functions.php:180 mobile/mobile-functions.php:207 @@ -529,21 +541,21 @@ msgstr "Speciální" #: mobile/mobile-functions.php:416 msgid "Nothing found (click to reload feed)." -msgstr "" +msgstr "Nic nenalezeno (klikněte pro načtení zdroje)." #: mobile/prefs.php:24 msgid "Enable categories" -msgstr "" +msgstr "Povolit kategorie" #: mobile/prefs.php:25 mobile/prefs.php:30 mobile/prefs.php:36 #: mobile/prefs.php:41 mobile/prefs.php:46 mobile/prefs.php:51 msgid "ON" -msgstr "Zapnuto" +msgstr "Zap." #: mobile/prefs.php:25 mobile/prefs.php:30 mobile/prefs.php:36 #: mobile/prefs.php:41 mobile/prefs.php:46 mobile/prefs.php:51 msgid "OFF" -msgstr "Vypnuto" +msgstr "Vyp." #: mobile/prefs.php:29 msgid "Browse categories like folders" @@ -555,11 +567,11 @@ msgstr "Zobrazit obrázky v příspěvcích" #: mobile/prefs.php:40 msgid "Hide read articles and feeds" -msgstr "Skrýt přečtené články a kanály" +msgstr "Skrýt přečtené články a zdroje" #: mobile/prefs.php:45 msgid "Sort feeds by unread count" -msgstr "Řadit kanály podle počtu nepřečtených článků" +msgstr "Řadit zdroje podle počtu nepřečtených článků" #: mobile/prefs.php:50 include/localized_schema.php:45 msgid "Reverse headline order (oldest first)" @@ -578,15 +590,15 @@ msgstr "%d archivovaných článků" #: include/feedbrowser.php:107 msgid "No feeds found." -msgstr "Nenalezeny žádné kanály." +msgstr "Nenalezeny žádné zdroje." #: include/functions.php:712 msgid "Session failed to validate (incorrect IP)" -msgstr "Nezdařilo se ověřit sezení (neplatné IP)" +msgstr "Nezdařilo se ověřit relace (neplatné IP)" #: include/functions.php:1598 classes/dlg.php:369 classes/pref/filters.php:368 msgid "All feeds" -msgstr "Všechny kanály" +msgstr "Všechny zdroje" #: include/functions.php:1799 msgid "Starred articles" @@ -618,15 +630,15 @@ msgstr "Navigace" #: include/functions.php:1872 msgid "Open next feed" -msgstr "Otevřít následující kanál" +msgstr "Otevřít další zdroj" #: include/functions.php:1873 msgid "Open previous feed" -msgstr "Otevřít předchozí kanál" +msgstr "Otevřít předchozí zdroj" #: include/functions.php:1874 msgid "Open next article" -msgstr "Otevřít následující článek" +msgstr "Otevřít další článek" #: include/functions.php:1875 msgid "Open previous article" @@ -634,11 +646,11 @@ msgstr "Otevřít předchozí článek" #: include/functions.php:1876 msgid "Open next article (don't scroll long articles)" -msgstr "" +msgstr "Otevřít další článek (nerolovat dlouhé články)" #: include/functions.php:1877 msgid "Open previous article (don't scroll long articles)" -msgstr "" +msgstr "Otevřít předchozí článek (nerolovat dlouhé články)" #: include/functions.php:1878 msgid "Show search dialog" @@ -662,7 +674,7 @@ msgstr "Přepnout přečteno" #: include/functions.php:1883 msgid "Edit tags" -msgstr "Upravit značky" +msgstr "Upravit štítky" #: include/functions.php:1884 msgid "Dismiss selected" @@ -707,7 +719,7 @@ msgstr "Zavřít článek" #: include/functions.php:1895 plugins/embed_original/init.php:33 msgid "Toggle embed original" -msgstr "" +msgstr "Přepnout vložený originál" #: include/functions.php:1896 msgid "Article selection" @@ -740,15 +752,15 @@ msgstr "Zrušit výběr" #: include/functions.php:1903 classes/pref/feeds.php:488 #: classes/pref/feeds.php:719 msgid "Feed" -msgstr "Kanál" +msgstr "Zdroj" #: include/functions.php:1904 msgid "Refresh current feed" -msgstr "Obnovit současný kanál" +msgstr "Obnovit současný zdroj" #: include/functions.php:1905 msgid "Un/hide read feeds" -msgstr "Zobrazit/Skrýt přečtené kanály" +msgstr "Zobrazit/Skrýt přečtené zdroje" #: include/functions.php:1906 classes/pref/feeds.php:1240 msgid "Subscribe to feed" @@ -756,7 +768,7 @@ msgstr "Přihlásit se k odběru" #: include/functions.php:1907 js/FeedTree.js:135 js/PrefFeedTree.js:67 msgid "Edit feed" -msgstr "Upravit kanál" +msgstr "Upravit zdroj" #: include/functions.php:1909 msgid "Reverse headlines" @@ -764,19 +776,19 @@ msgstr "" #: include/functions.php:1910 msgid "Debug feed update" -msgstr "" +msgstr "Debug aktualizace zdrojů" #: include/functions.php:1911 js/FeedTree.js:178 msgid "Mark all feeds as read" -msgstr "Označit všechny kanály za přečtené" +msgstr "Označit všechny zdroje jako přečtené" #: include/functions.php:1912 msgid "Un/collapse current category" -msgstr "" +msgstr "Zobrazit/skrýt aktuální kategorii" #: include/functions.php:1913 msgid "Toggle combined mode" -msgstr "" +msgstr "Přepnout kombinovaný režim" #: include/functions.php:1914 msgid "Go to" @@ -784,19 +796,19 @@ msgstr "Přejít na" #: include/functions.php:1916 msgid "Fresh" -msgstr "" +msgstr "Nový" #: include/functions.php:1919 msgid "Tag cloud" -msgstr "" +msgstr "Seznam štítků" #: include/functions.php:1921 msgid "Other" -msgstr "Jiné" +msgstr "Ostatní" #: include/functions.php:1922 classes/pref/labels.php:281 msgid "Create label" -msgstr "" +msgstr "Vytvořit štítek" #: include/functions.php:1923 classes/pref/filters.php:587 msgid "Create filter" @@ -804,16 +816,16 @@ msgstr "Vytvořit filtr" #: include/functions.php:1924 msgid "Un/collapse sidebar" -msgstr "" +msgstr "Zobrazit/skrýt postranní panel" #: include/functions.php:1925 msgid "Show help dialog" -msgstr "" +msgstr "Zobrazit nápovědu" #: include/functions.php:2406 #, php-format msgid "Search results: %s" -msgstr "" +msgstr "Výslekdy vyhledávání: %s" #: include/functions.php:2895 js/viewfeed.js:1929 msgid "Click to play" @@ -829,11 +841,11 @@ msgstr " - " #: include/functions.php:3040 include/functions.php:3357 classes/rpc.php:360 msgid "no tags" -msgstr "žádné značky" +msgstr "žádné štítky" #: include/functions.php:3050 classes/feeds.php:650 msgid "Edit tags for this article" -msgstr "Upravit značky pro článek" +msgstr "Upravit štítky tohoto článku" #: include/functions.php:3079 classes/feeds.php:606 msgid "Originally from:" @@ -841,11 +853,11 @@ msgstr "Původně z:" #: include/functions.php:3092 classes/feeds.php:619 classes/pref/feeds.php:507 msgid "Feed URL" -msgstr "URL kanálu" +msgstr "URL zdroje" #: include/functions.php:3121 msgid "Related" -msgstr "" +msgstr "Podobné" #: include/functions.php:3148 classes/dlg.php:43 classes/dlg.php:162 #: classes/dlg.php:185 classes/dlg.php:222 classes/dlg.php:506 @@ -872,7 +884,7 @@ msgstr "Přílohy" #: include/localized_schema.php:4 msgid "Title or Content" -msgstr "" +msgstr "Nadpis nebo Obsah" #: include/localized_schema.php:5 msgid "Link" @@ -901,7 +913,7 @@ msgstr "Publikovat článek" #: include/localized_schema.php:13 msgid "Assign tags" -msgstr "Přiřadit značky" +msgstr "Přiřadit štítky" #: include/localized_schema.php:14 js/viewfeed.js:1893 msgid "Assign label" @@ -909,7 +921,7 @@ msgstr "" #: include/localized_schema.php:15 msgid "Modify score" -msgstr "" +msgstr "Změnit hodnocení" #: include/localized_schema.php:17 msgid "General" @@ -929,6 +941,9 @@ msgid "" "with partially colliding userbase. When disabled, it forces same posts from " "different feeds to appear only once." msgstr "" +"Tato volba je užitečná pro sledování několika agregátorů s částečně kolidující " +"databází uživatelů. Pokud je vypnuta, sloučí stejné příspěvky z různých zdrojů " +"pro zobrazení jako jeden." #: include/localized_schema.php:22 msgid "" diff --git a/locale/nl_NL/LC_MESSAGES/messages.mo b/locale/nl_NL/LC_MESSAGES/messages.mo Binary files differnew file mode 100644 index 000000000..95cd5ab45 --- /dev/null +++ b/locale/nl_NL/LC_MESSAGES/messages.mo diff --git a/locale/nl_NL/LC_MESSAGES/messages.po b/locale/nl_NL/LC_MESSAGES/messages.po new file mode 100644 index 000000000..e2775aabd --- /dev/null +++ b/locale/nl_NL/LC_MESSAGES/messages.po @@ -0,0 +1,3218 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: TT-RSS\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-03-21 15:10+0400\n" +"PO-Revision-Date: 2013-03-22 16:19+0100\n" +"Last-Translator: Dingoe <[email protected]>\n" +"Language-Team: translations <[email protected]>\n" +"Language: DUTCH\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.5\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-KeywordsList: _\n" +"X-Poedit-Basepath: .\n" + +#: backend.php:71 +msgid "Use default" +msgstr "Gebruik standaard" + +#: backend.php:72 +msgid "Never purge" +msgstr "Nooit opschonen" + +#: backend.php:73 +msgid "1 week old" +msgstr "1 week oud" + +#: backend.php:74 +msgid "2 weeks old" +msgstr "2 weken oud" + +#: backend.php:75 +msgid "1 month old" +msgstr "1 maand oud" + +#: backend.php:76 +msgid "2 months old" +msgstr "2 maanden oud" + +#: backend.php:77 +msgid "3 months old" +msgstr "3 maanden oud" + +#: backend.php:80 +msgid "Default interval" +msgstr "Standaard interval" + +#: backend.php:81 backend.php:91 +msgid "Disable updates" +msgstr "updates uitschakelen" + +#: backend.php:82 backend.php:92 +msgid "Each 15 minutes" +msgstr "Elke 15 minuten" + +#: backend.php:83 backend.php:93 +msgid "Each 30 minutes" +msgstr "Elke 30 minuten" + +#: backend.php:84 backend.php:94 +msgid "Hourly" +msgstr "Ieder uur" + +#: backend.php:85 backend.php:95 +msgid "Each 4 hours" +msgstr "Om de 4 uur" + +#: backend.php:86 backend.php:96 +msgid "Each 12 hours" +msgstr "Om de 12 uur" + +#: backend.php:87 backend.php:97 +msgid "Daily" +msgstr "Dagelijks" + +#: backend.php:88 backend.php:98 +msgid "Weekly" +msgstr "Wekelijks" + +#: backend.php:101 classes/pref/users.php:139 +msgid "User" +msgstr "Gebruiker" + +#: backend.php:102 +msgid "Power User" +msgstr "Hoofdgebruiker" + +#: backend.php:103 +msgid "Administrator" +msgstr "Beheerder" + +#: db-updater.php:19 +msgid "Your access level is insufficient to run this script." +msgstr "Uw toegangsrechten zijn niet voldoende om dit script uit te voeren." + +#: db-updater.php:44 +msgid "Database Updater" +msgstr "Database updater" + +#: db-updater.php:85 +msgid "Could not update database" +msgstr "Kon de database niet bijwerken" + +#: db-updater.php:88 +msgid "Could not find necessary schema file, need version:" +msgstr "Kon geen juist updateschemabestand vinden. Benodigde versie:" + +#: db-updater.php:89 +msgid ", found: " +msgstr ", gevonden: " + +#: db-updater.php:92 +msgid "Tiny Tiny RSS database is up to date." +msgstr "Tiny Tiny RSS database is bijgewerkt." + +#: db-updater.php:94 db-updater.php:163 db-updater.php:176 register.php:194 +#: register.php:239 register.php:252 register.php:267 register.php:286 +#: register.php:371 register.php:381 register.php:393 +#: classes/handler/public.php:610 classes/handler/public.php:698 +msgid "Return to Tiny Tiny RSS" +msgstr "Ga terug naar Tiny Tiny RSS" + +#: db-updater.php:100 +msgid "Please backup your database before proceeding." +msgstr "Maak aub een back-up van uw database voordat u verder gaat." + +#: db-updater.php:102 +#, php-format +msgid "" +"Your Tiny Tiny RSS database needs update to the latest version (<b>%d</b> to " +"<b>%d</b>)." +msgstr "" +"Uw Tiny Tiny RSS database moet worden geüpdate naar de laatste versie (<b>" +"%d</b> naar <b>%d</b>)." + +#: db-updater.php:116 +msgid "Perform updates" +msgstr "Voor de updates uit" + +#: db-updater.php:121 +msgid "Performing updates..." +msgstr "Uitvoeren van updates..." + +#: db-updater.php:127 +#, php-format +msgid "Updating to version %d..." +msgstr "Updaten naar versie %d..." + +#: db-updater.php:142 +msgid "Checking version... " +msgstr "Versie controleren..." + +#: db-updater.php:148 +msgid "OK!" +msgstr "OK!" + +#: db-updater.php:150 +msgid "ERROR!" +msgstr "FOUT!" + +#: db-updater.php:158 +#, php-format +msgid "" +"Finished. Performed <b>%d</b> update(s) up to schema\n" +"\t\t\tversion <b>%d</b>." +msgstr "" +"Klaar. <b>%d</b> update(s) uitgevoerd volgens schema naar\n" +"\t\t\tversie <b>%d</b>." + +#: db-updater.php:168 +msgid "Your database schema is from a newer version of Tiny Tiny RSS." +msgstr "Uw database schema is van een nieuwere versie van Tiny Tiny RSS." + +#: db-updater.php:170 +#, php-format +msgid "Found schema version: <b>%d</b>, required: <b>%d</b>." +msgstr "Versie schema gevonden: <b>%d</b>, vereist: <b>%d</b>." + +#: db-updater.php:172 +msgid "" +"Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer " +"version and continue." +msgstr "" +"Schema update onmogelijk. Update Tiny Tiny RSS bestanden naar de nieuwere " +"versie en gaan door." + +#: errors.php:9 +msgid "" +"This program requires XmlHttpRequest to function properly. Your browser " +"doesn't seem to support it." +msgstr "" +"Dit programma vereist XmlHttpRequest om goed te functioneren. Uw browser " +"lijkt dit niet te ondersteunen." + +#: errors.php:12 +msgid "" +"This program requires cookies to function properly. Your browser doesn't " +"seem to support them." +msgstr "" +"Dit programma vereist cookies om goed te functioneren. Uw browser lijkt dit " +"niet te ondersteunen." + +#: errors.php:15 +msgid "Backend sanity check failed" +msgstr "Gezondheidscontrole server mislukt" + +#: errors.php:17 +msgid "Frontend sanity check failed." +msgstr "Frontend gezondheidscontrole mislukt." + +#: errors.php:19 +msgid "" +"Incorrect database schema version. <a href='db-updater.php'>Please " +"update</a>." +msgstr "" +"Onjuiste database schema versie. <a href='db-updater.php'>Bijwerken " +"aub!</a>." + +#: errors.php:21 +msgid "Request not authorized." +msgstr "Verzoek niet toegestaan." + +#: errors.php:23 +msgid "No operation to perform." +msgstr "Geen uit te voeren opdracht." + +#: errors.php:25 +msgid "" +"Could not display feed: query failed. Please check label match syntax or " +"local configuration." +msgstr "" +"Kon feed niet weergeven: de zoekopdracht is mislukt. Controleer aub de " +"syntax van de labelzoektekst of de lokale configuratie. " + +#: errors.php:27 +msgid "Denied. Your access level is insufficient to access this page." +msgstr "Niet toegestaan. Uw toegangsniveau is onvoldoende voor deze pagina." + +#: errors.php:29 +msgid "Configuration check failed" +msgstr "Configuratiecontrole mislukt" + +#: errors.php:31 +msgid "" +"Your version of MySQL is not currently supported. Please see\n" +"\t\tofficial site for more information." +msgstr "" +"Uw versie van MySQL wordt niet ondersteund. Zie de\n" +"\t\tofficiële website voor meer informatie." + +#: errors.php:36 +msgid "SQL escaping test failed, check your database and PHP configuration" +msgstr "" +"SQL escaping test mislukt. Controleer uw database en de PHP configuratie" + +#: index.php:120 index.php:150 index.php:256 prefs.php:82 +#: classes/backend.php:5 classes/pref/labels.php:296 +#: classes/pref/filters.php:609 classes/pref/feeds.php:1296 +#: plugins/digest/digest_body.php:49 js/viewfeed.js:1205 +msgid "Loading, please wait..." +msgstr "Aan 't laden, even wachten aub..." + +#: index.php:130 index.php:202 +msgid "Communication problem with server." +msgstr "communicatieprobleem met de server." + +#: index.php:136 index.php:210 +msgid "New version of Tiny Tiny RSS is available!" +msgstr "Er is een nieuwe versie van Tiny Tiny RSS beschikbaar!" + +#: index.php:164 +msgid "Collapse feedlist" +msgstr "Feedlijst inklappen" + +#: index.php:167 +msgid "Show articles" +msgstr "Toon artikelen" + +#: index.php:170 +msgid "Adaptive" +msgstr "Aangepast" + +#: index.php:171 +msgid "All Articles" +msgstr "Alle artikelen" + +#: index.php:172 include/functions.php:1921 classes/feeds.php:106 +msgid "Starred" +msgstr "Met ster" + +#: index.php:173 include/functions.php:1922 classes/feeds.php:107 +msgid "Published" +msgstr "Gepubliceerd" + +#: index.php:174 classes/feeds.php:93 classes/feeds.php:105 +msgid "Unread" +msgstr "Ongelezen" + +#: index.php:175 +msgid "Ignore Scoring" +msgstr "Score negeren" + +#: index.php:176 +msgid "Updated" +msgstr "Bijgewerkt" + +#: index.php:179 +msgid "Sort articles" +msgstr "Artikelen sorteren" + +#: index.php:182 +msgid "Default" +msgstr "Standaard" + +#: index.php:183 +msgid "Date" +msgstr "Datum" + +#: index.php:184 include/localized_schema.php:3 +msgid "Title" +msgstr "Titel" + +#: index.php:185 +msgid "Score" +msgstr "Score" + +#: index.php:191 classes/pref/feeds.php:535 classes/pref/feeds.php:758 +msgid "Update" +msgstr "Bijwerken" + +#: index.php:195 index.php:225 include/functions.php:1912 +#: include/localized_schema.php:10 classes/feeds.php:111 classes/feeds.php:136 +#: classes/feeds.php:406 js/FeedTree.js:128 js/FeedTree.js:156 +#: plugins/digest/digest.js:630 +msgid "Mark as read" +msgstr "Markeren als gelezen" + +#: index.php:215 +msgid "Actions..." +msgstr "Acties..." + +#: index.php:217 +msgid "Preferences..." +msgstr "Voorkeuren…" + +#: index.php:218 +msgid "Search..." +msgstr "zoeken..." + +#: index.php:219 +msgid "Feed actions:" +msgstr "Feed acties:" + +#: index.php:220 classes/handler/public.php:540 +msgid "Subscribe to feed..." +msgstr "Abonneren op feed..." + +#: index.php:221 +msgid "Edit this feed..." +msgstr "Bewerk deze feed..." + +#: index.php:222 +msgid "Rescore feed" +msgstr "Feed opnieuw score geven" + +#: index.php:223 classes/pref/feeds.php:684 classes/pref/feeds.php:1269 +#: js/PrefFeedTree.js:73 +msgid "Unsubscribe" +msgstr "Abonnement opzeggen" + +#: index.php:224 +msgid "All feeds:" +msgstr "Alle feeds:" + +#: index.php:226 +msgid "(Un)hide read feeds" +msgstr "Toon/Verberg gelezen feeds" + +#: index.php:227 +msgid "Other actions:" +msgstr "andere acties:" + +#: index.php:229 +msgid "Switch to digest..." +msgstr "Omschakelen naar samenvatting…" + +#: index.php:231 +msgid "Show tag cloud..." +msgstr "Toon tagwolk..." + +#: index.php:233 include/functions.php:1899 +msgid "Toggle widescreen mode" +msgstr "Wisselen breedbeeld modus" + +#: index.php:235 +msgid "Select by tags..." +msgstr "Selectie met tags..." + +#: index.php:236 +msgid "Create label..." +msgstr "Aanmaken label…" + +#: index.php:237 +msgid "Create filter..." +msgstr "Aanmaken filter…" + +#: index.php:238 +msgid "Keyboard shortcuts help" +msgstr "Hulp bij sneltoetscombinaties" + +#: index.php:240 mobile/mobile-functions.php:69 +#: mobile/mobile-functions.php:244 plugins/digest/digest_body.php:63 +msgid "Logout" +msgstr "Afmelden" + +#: prefs.php:26 prefs.php:102 include/functions.php:1924 +#: classes/pref/prefs.php:377 +msgid "Preferences" +msgstr "Voorkeuren" + +#: prefs.php:93 +msgid "Keyboard shortcuts" +msgstr "Sneltoetscombinaties" + +#: prefs.php:94 +msgid "Exit preferences" +msgstr "Verlaat voorkeuren" + +#: prefs.php:105 classes/pref/feeds.php:100 classes/pref/feeds.php:1174 +#: classes/pref/feeds.php:1237 +msgid "Feeds" +msgstr "Feeds" + +#: prefs.php:108 classes/pref/filters.php:117 +msgid "Filters" +msgstr "Filters" + +#: prefs.php:111 mobile/mobile-functions.php:205 include/functions.php:1127 +#: include/functions.php:1748 classes/pref/labels.php:90 +msgid "Labels" +msgstr "Labels" + +#: prefs.php:115 +msgid "Users" +msgstr "Gebruikers" + +#: register.php:186 include/login_form.php:212 +msgid "Create new account" +msgstr "Aanmaken nieuw account" + +#: register.php:190 +msgid "New user registrations are administratively disabled." +msgstr "" +"Het registreren van nieuwe gebruikers is door de administrateur " +"uitgeschakeld." + +#: register.php:215 +msgid "" +"Your temporary password will be sent to the specified email. Accounts, which " +"were not logged in once, are erased automatically 24 hours after temporary " +"password is sent." +msgstr "" +"Uw tijdelijke wachtwoord wordt naar het vermelde e-mailadres verstuurd. " +"Accounts waarin niet wordt ingelogd, worden automatisch 24 uur na het " +"verzenden van het tijdelijk wachtwoord verwijderd." + +#: register.php:221 +msgid "Desired login:" +msgstr "Gewenst loginID:" + +#: register.php:224 +msgid "Check availability" +msgstr "controleer beschikbaarheid" + +#: register.php:226 +msgid "Email:" +msgstr "E-mail:" + +#: register.php:229 +msgid "How much is two plus two:" +msgstr "hoeveel is twee plus twee:" + +#: register.php:232 +msgid "Submit registration" +msgstr "Registratie indienen" + +#: register.php:250 +msgid "Your registration information is incomplete." +msgstr "Uw registratie informatie is incompleet." + +#: register.php:265 +msgid "Sorry, this username is already taken." +msgstr "Sorry, deze naam is al in gebruik." + +#: register.php:284 +msgid "Registration failed." +msgstr "de registratie is mislukt." + +#: register.php:368 +msgid "Account created successfully." +msgstr "Het account is met succes aangemaakt." + +#: register.php:390 +msgid "New user registrations are currently closed." +msgstr "Nieuwe gebruikersregistratie is op dit moment niet mogelijk." + +#: update.php:55 +msgid "Tiny Tiny RSS data update script." +msgstr "Tiny Tiny RSS data update script." + +#: mobile/login_form.php:28 include/login_form.php:209 +#: classes/handler/public.php:468 +msgid "Log in" +msgstr "Aanmelden" + +#: mobile/login_form.php:40 include/login_form.php:169 +#: classes/handler/public.php:452 +msgid "Login:" +msgstr "Aanmelden:" + +#: mobile/login_form.php:45 include/login_form.php:178 +#: classes/handler/public.php:455 +msgid "Password:" +msgstr "Wachtwoord:" + +#: mobile/login_form.php:52 +msgid "Open regular version" +msgstr "Open de reguliere versie" + +#: mobile/mobile-functions.php:68 mobile/mobile-functions.php:144 +#: mobile/mobile-functions.php:180 mobile/mobile-functions.php:207 +#: mobile/mobile-functions.php:243 mobile/mobile-functions.php:380 +#: mobile/prefs.php:19 +msgid "Home" +msgstr "Thuisbasis" + +#: mobile/mobile-functions.php:178 include/functions.php:1125 +#: include/functions.php:1746 +msgid "Special" +msgstr "Speciaal" + +#: mobile/mobile-functions.php:416 +msgid "Nothing found (click to reload feed)." +msgstr "Niets gevonden (klik om feed opnieuw te laden)." + +#: mobile/prefs.php:24 +msgid "Enable categories" +msgstr "Inschakelen categorieën" + +#: mobile/prefs.php:25 mobile/prefs.php:30 mobile/prefs.php:36 +#: mobile/prefs.php:41 mobile/prefs.php:46 mobile/prefs.php:51 +msgid "ON" +msgstr "AAN" + +#: mobile/prefs.php:25 mobile/prefs.php:30 mobile/prefs.php:36 +#: mobile/prefs.php:41 mobile/prefs.php:46 mobile/prefs.php:51 +msgid "OFF" +msgstr "UIT" + +#: mobile/prefs.php:29 +msgid "Browse categories like folders" +msgstr "Browse categorieën als mappen" + +#: mobile/prefs.php:35 +msgid "Show images in posts" +msgstr "Toon afbeeldingen in berichten" + +#: mobile/prefs.php:40 +msgid "Hide read articles and feeds" +msgstr "Verberg gelezen artikelen en feeds" + +#: mobile/prefs.php:45 +msgid "Sort feeds by unread count" +msgstr "sorteer feeds op ongelezen aantallen" + +#: mobile/prefs.php:50 include/localized_schema.php:45 +msgid "Reverse headline order (oldest first)" +msgstr "Draai de koptekst volgorde om (oudste eerst)" + +#: include/digest.php:131 include/functions.php:1136 +#: include/functions.php:1649 include/functions.php:1734 +#: include/functions.php:1756 classes/opml.php:416 classes/pref/feeds.php:188 +msgid "Uncategorized" +msgstr "Ongecategoriseerd" + +#: include/feedbrowser.php:83 +#, php-format +msgid "%d archived articles" +msgstr "%d gearchiveerde artikelen" + +#: include/feedbrowser.php:107 +msgid "No feeds found." +msgstr "Geen feeds gevonden." + +#: include/functions.php:712 +msgid "Session failed to validate (incorrect IP)" +msgstr "De sessie kon niet worden gevalideerd (onjuist IP)" + +#: include/functions.php:1598 classes/dlg.php:369 classes/pref/filters.php:368 +msgid "All feeds" +msgstr "Alle feeds" + +#: include/functions.php:1799 +msgid "Starred articles" +msgstr "Artikelen met ster" + +#: include/functions.php:1801 +msgid "Published articles" +msgstr "Gepubliceerde artikelen" + +#: include/functions.php:1803 +msgid "Fresh articles" +msgstr "Nieuwe artikelen" + +#: include/functions.php:1805 include/functions.php:1919 +msgid "All articles" +msgstr "Alle artikelen" + +#: include/functions.php:1807 +msgid "Archived articles" +msgstr "Gearchiveerde artikelen" + +#: include/functions.php:1809 +msgid "Recently read" +msgstr "Recent gelezen" + +#: include/functions.php:1876 +msgid "Navigation" +msgstr "Navigatie" + +#: include/functions.php:1877 +msgid "Open next feed" +msgstr "Open volgende feed" + +#: include/functions.php:1878 +msgid "Open previous feed" +msgstr "Open voorgaande feed" + +#: include/functions.php:1879 +msgid "Open next article" +msgstr "Open volgende artikel" + +#: include/functions.php:1880 +msgid "Open previous article" +msgstr "Open voorgaand artikel" + +#: include/functions.php:1881 +msgid "Open next article (don't scroll long articles)" +msgstr "Open volgend artikel (lange artikelen niet scrollen)" + +#: include/functions.php:1882 +msgid "Open previous article (don't scroll long articles)" +msgstr "Open vorig artikel (lange artikelen niet scrollen)" + +#: include/functions.php:1883 +msgid "Show search dialog" +msgstr "toon zoekdialoogvenster" + +#: include/functions.php:1884 +msgid "Article" +msgstr "Artikel" + +#: include/functions.php:1885 +msgid "Toggle starred" +msgstr "In/uitschakelen sterren" + +#: include/functions.php:1886 +msgid "Toggle published" +msgstr "In/uitschakelen gepubliceerd" + +#: include/functions.php:1887 +msgid "Toggle unread" +msgstr "In/uitschakelen gelezen" + +#: include/functions.php:1888 +msgid "Edit tags" +msgstr "Bewerk tags" + +#: include/functions.php:1889 +msgid "Dismiss selected" +msgstr "Geselecteerde negeren" + +#: include/functions.php:1890 +msgid "Dismiss read" +msgstr "Gelezene negeren" + +#: include/functions.php:1891 +msgid "Open in new window" +msgstr "open in nieuw venster" + +#: include/functions.php:1892 js/viewfeed.js:1836 +msgid "Mark below as read" +msgstr "Hieronder markeren als gelezen" + +#: include/functions.php:1893 js/viewfeed.js:1830 +msgid "Mark above as read" +msgstr "hierboven markeren als gelezen" + +#: include/functions.php:1894 +msgid "Scroll down" +msgstr "Omlaag scrollen" + +#: include/functions.php:1895 +msgid "Scroll up" +msgstr "Omhoog scrollen" + +#: include/functions.php:1896 +msgid "Select article under cursor" +msgstr "Selecteer artikel onder de cursor" + +#: include/functions.php:1897 +msgid "Email article" +msgstr "E-mail artikel" + +#: include/functions.php:1898 +msgid "Close/collapse article" +msgstr "Sluiten/inklappen artikel" + +#: include/functions.php:1900 +msgid "Article selection" +msgstr "Artikelselectie" + +#: include/functions.php:1901 +msgid "Select all articles" +msgstr "Selecteer alle artikelen" + +#: include/functions.php:1902 +msgid "Select unread" +msgstr "Selecteer ongelezen" + +#: include/functions.php:1903 +msgid "Select starred" +msgstr "Selecteer met ster" + +#: include/functions.php:1904 +msgid "Select published" +msgstr "Selecteer gepubliceerde" + +#: include/functions.php:1905 +msgid "Invert selection" +msgstr "Omdraaien selectie" + +#: include/functions.php:1906 +msgid "Deselect everything" +msgstr "Deselecteer alles" + +#: include/functions.php:1907 classes/pref/feeds.php:488 +#: classes/pref/feeds.php:719 +msgid "Feed" +msgstr "Feed" + +#: include/functions.php:1908 +msgid "Refresh current feed" +msgstr "Ververs huidige feed" + +#: include/functions.php:1909 +msgid "Un/hide read feeds" +msgstr "Toon/Verberg gelezen feeds" + +#: include/functions.php:1910 classes/pref/feeds.php:1240 +msgid "Subscribe to feed" +msgstr "Abonneer op feed" + +#: include/functions.php:1911 js/FeedTree.js:135 js/PrefFeedTree.js:67 +msgid "Edit feed" +msgstr "Bewerk feed" + +#: include/functions.php:1913 +msgid "Reverse headlines" +msgstr "Draai kopteksten om" + +#: include/functions.php:1914 +msgid "Debug feed update" +msgstr "Debug feed update" + +#: include/functions.php:1915 js/FeedTree.js:178 +msgid "Mark all feeds as read" +msgstr "Markeer alle feeds als gelezen" + +#: include/functions.php:1916 +msgid "Un/collapse current category" +msgstr "Uit/Inklappen huidige categorie" + +#: include/functions.php:1917 +msgid "Toggle combined mode" +msgstr "In/uitschakelen gecombineerde modus" + +#: include/functions.php:1918 +msgid "Go to" +msgstr "Ga naar" + +#: include/functions.php:1920 +msgid "Fresh" +msgstr "Nieuw" + +#: include/functions.php:1923 +msgid "Tag cloud" +msgstr "Tag wolk" + +#: include/functions.php:1925 +msgid "Other" +msgstr "Andere" + +#: include/functions.php:1926 classes/pref/labels.php:281 +msgid "Create label" +msgstr "Aanmaken label" + +#: include/functions.php:1927 classes/pref/filters.php:587 +msgid "Create filter" +msgstr "Aanmaken filter" + +#: include/functions.php:1928 +msgid "Un/collapse sidebar" +msgstr "Uit/Inklappen zijbalk" + +#: include/functions.php:1929 +msgid "Show help dialog" +msgstr "Toon helpdialoogvenster" + +#: include/functions.php:2407 +#, php-format +msgid "Search results: %s" +msgstr "zoekresultaten: %s" + +#: include/functions.php:2896 js/viewfeed.js:1923 +msgid "Click to play" +msgstr "Klik om af te spelen" + +#: include/functions.php:2897 js/viewfeed.js:1922 +msgid "Play" +msgstr "Afspelen" + +#: include/functions.php:3018 +msgid " - " +msgstr " - " + +#: include/functions.php:3040 include/functions.php:3357 classes/rpc.php:360 +msgid "no tags" +msgstr "geen tags" + +#: include/functions.php:3050 classes/feeds.php:651 +msgid "Edit tags for this article" +msgstr "Bewerk tags voor dit artikel" + +#: include/functions.php:3079 classes/feeds.php:606 +msgid "Originally from:" +msgstr "Oorspronkelijk uit:" + +#: include/functions.php:3092 classes/feeds.php:619 classes/pref/feeds.php:507 +msgid "Feed URL" +msgstr "Feed URL" + +#: include/functions.php:3121 +msgid "Related" +msgstr "Gerelateerd" + +#: include/functions.php:3148 classes/dlg.php:43 classes/dlg.php:162 +#: classes/dlg.php:185 classes/dlg.php:222 classes/dlg.php:506 +#: classes/dlg.php:541 classes/dlg.php:572 classes/dlg.php:606 +#: classes/dlg.php:618 classes/backend.php:105 classes/pref/users.php:106 +#: classes/pref/filters.php:108 classes/pref/feeds.php:1553 +#: classes/pref/feeds.php:1624 plugins/import_export/init.php:407 +#: plugins/import_export/init.php:431 plugins/share/init.php:67 +#: plugins/updater/init.php:330 +msgid "Close this window" +msgstr "Sluit dit venster" + +#: include/functions.php:3382 +msgid "(edit note)" +msgstr "(bewerk notitie)" + +#: include/functions.php:3615 +msgid "unknown type" +msgstr "Onbekend type" + +#: include/functions.php:3665 +msgid "Attachments" +msgstr "Bijlagen" + +#: include/localized_schema.php:4 +msgid "Title or Content" +msgstr "Titel of inhoud" + +#: include/localized_schema.php:5 +msgid "Link" +msgstr "Koppeling" + +#: include/localized_schema.php:6 +msgid "Content" +msgstr "Inhoud" + +#: include/localized_schema.php:7 +msgid "Article Date" +msgstr "Datum artikel" + +#: include/localized_schema.php:9 +msgid "Delete article" +msgstr "Verwijder artikel" + +#: include/localized_schema.php:11 +msgid "Set starred" +msgstr "Ster toevoegen" + +#: include/localized_schema.php:12 js/viewfeed.js:480 +#: plugins/digest/digest.js:264 plugins/digest/digest.js:734 +msgid "Publish article" +msgstr "Artikel publiceren" + +#: include/localized_schema.php:13 +msgid "Assign tags" +msgstr "Tags toevoegen" + +#: include/localized_schema.php:14 js/viewfeed.js:1887 +msgid "Assign label" +msgstr "Labels toevoegen" + +#: include/localized_schema.php:15 +msgid "Modify score" +msgstr "verander de score" + +#: include/localized_schema.php:17 +msgid "General" +msgstr "Algemeen" + +#: include/localized_schema.php:18 +msgid "Interface" +msgstr "Interface" + +#: include/localized_schema.php:19 +msgid "Advanced" +msgstr "Geavanceerd" + +#: include/localized_schema.php:21 +msgid "" +"This option is useful when you are reading several planet-type aggregators " +"with partially colliding userbase. When disabled, it forces same posts from " +"different feeds to appear only once." +msgstr "" +"Deze optie is nuttig als u verscheidene planet-type nieuws aggregators leest " +"met een ten dele overeenkomende gebruikersgroep. Indien uitgeschakeld " +"forceert het berichten van verschillende feeds slechts eenmaal te " +"verschijnen." + +#: include/localized_schema.php:22 +msgid "" +"Display expanded list of feed articles, instead of separate displays for " +"headlines and article content" +msgstr "" +"Uitgeklapte lijst van artikelen weergeven in plaats van afzonderlijke " +"weergave van kopteksten en artikelinhoud" + +#: include/localized_schema.php:23 +msgid "" +"Automatically open next feed with unread articles after marking one as read" +msgstr "" +"Automatisch volgende feed met ongelezen artikelen openen nadat er een is " +"gemarkeerd als gelezen" + +#: include/localized_schema.php:24 +msgid "" +"This option enables sending daily digest of new (and unread) headlines on " +"your configured e-mail address" +msgstr "" +"Deze optie schakelt het verzenden in van een dagelijkse samenvatting van " +"nieuwe (en ongelezen) kopteksten naar het door u ingestelde e-mailadres" + +#: include/localized_schema.php:25 +msgid "" +"This option enables marking articles as read automatically while you scroll " +"article list." +msgstr "" +"Deze optie schakelt het automatisch markeren als gelezen van artikelen in, " +"terwijl u door de artikellijst scrolt." + +#: include/localized_schema.php:26 +msgid "Strip all but most common HTML tags when reading articles." +msgstr "" +"Verwijder alles behalve de meest algemene HTML tags bij het lezen van " +"artikelen." + +#: include/localized_schema.php:27 +msgid "" +"When auto-detecting tags in articles these tags will not be applied (comma-" +"separated list)." +msgstr "" +"Wanneer tags automatisch worden gedetecteerd in artikelen, zullen deze tags " +"niet worden toegekend (komma-gescheiden lijst)." + +#: include/localized_schema.php:28 +msgid "" +"When this option is enabled, headlines in Special feeds and Labels are " +"grouped by feeds" +msgstr "" +"Als deze optie is ingeschakeld worden kopteksten in de Speciale feedsrubriek " +"en Labels gegroepeerd per feed" + +#: include/localized_schema.php:29 +msgid "Customize CSS stylesheet to your liking" +msgstr "Aanpassen CSS opmaakmodel aan uw voorkeur" + +#: include/localized_schema.php:30 +msgid "Use feed-specified date to sort headlines instead of local import date." +msgstr "" +"Door feed gespecificeerde data gebruiken om kopteksten te sorteren in plaats " +"van lokaal geïmporteerde data." + +#: include/localized_schema.php:31 +msgid "Click to register your SSL client certificate with tt-rss" +msgstr "Klik om uw SSL cliëntcertificaat te registreren bij tt-rss" + +#: include/localized_schema.php:32 +msgid "Uses UTC timezone" +msgstr "Gebruikt UTC tijdzone" + +#: include/localized_schema.php:33 +msgid "Purge articles after this number of days (0 - disables)" +msgstr "" +"Permanent verwijderen van artikelen na dit aantal dagen (0 - zet dit uit)" + +#: include/localized_schema.php:34 +msgid "Default interval between feed updates" +msgstr "Standaard interval voor feed updates" + +#: include/localized_schema.php:35 +msgid "Amount of articles to display at once" +msgstr "Aantal tegelijkertijd weer te geven artikelen " + +#: include/localized_schema.php:36 +msgid "Allow duplicate posts" +msgstr "toestaan dubbele berichten" + +#: include/localized_schema.php:37 +msgid "Enable feed categories" +msgstr "Inschakelen feed categorieën" + +#: include/localized_schema.php:38 +msgid "Show content preview in headlines list" +msgstr "toon voorbeeld van inhoud in lijst van kopteksten" + +#: include/localized_schema.php:39 +msgid "Short date format" +msgstr "Korte datumformaat" + +#: include/localized_schema.php:40 +msgid "Long date format" +msgstr "Lang datumformaat" + +#: include/localized_schema.php:41 +msgid "Combined feed display" +msgstr "Gecombineerde feed weergave" + +#: include/localized_schema.php:42 +msgid "Hide feeds with no unread messages" +msgstr "Feeds zonder ongelezen artikelen verbergen" + +#: include/localized_schema.php:43 +msgid "On catchup show next feed" +msgstr "toon volgende feed na bijwerken" + +#: include/localized_schema.php:44 +msgid "Sort feeds by unread articles count" +msgstr "Sorteer feeds op aantal ongelezen artikelen" + +#: include/localized_schema.php:46 +msgid "Enable e-mail digest" +msgstr "Inschakelen e-mail samenvatting" + +#: include/localized_schema.php:47 +msgid "Confirm marking feed as read" +msgstr "Bevestigen feed markeren als gelezen" + +#: include/localized_schema.php:48 +msgid "Automatically mark articles as read" +msgstr "Artikelen automatisch als gelezen markeren" + +#: include/localized_schema.php:49 +msgid "Strip unsafe tags from articles" +msgstr "Verwijder onveilige tags uit artikelen" + +#: include/localized_schema.php:50 +msgid "Blacklisted tags" +msgstr "Op de zwarte lijst geplaatste tags" + +#: include/localized_schema.php:51 +msgid "Maximum age of fresh articles (in hours)" +msgstr "Maximum leeftijd van nieuwe artikelen (uren) " + +#: include/localized_schema.php:52 +msgid "Mark articles in e-mail digest as read" +msgstr "Markeer artikelen in e-mail samenvatting als gelezen" + +#: include/localized_schema.php:53 +msgid "Automatically expand articles in combined mode" +msgstr "Artikelen automatisch uitklappen in gecombineerde modus" + +#: include/localized_schema.php:54 +msgid "Purge unread articles" +msgstr "Ongelezen artikelen permanent verwijderen" + +#: include/localized_schema.php:55 +msgid "Show special feeds when hiding read feeds" +msgstr "Toon speciale feeds bij verbergen gelezen feeds" + +#: include/localized_schema.php:56 +msgid "Group headlines in virtual feeds" +msgstr "Kopteksten in virtuele feeds groeperen" + +#: include/localized_schema.php:57 +msgid "Do not embed images in articles" +msgstr "Afbeeldingen niet insluiten in artikelen" + +#: include/localized_schema.php:58 +msgid "Enable external API" +msgstr "Inschakelen externe API" + +#: include/localized_schema.php:59 +msgid "User timezone" +msgstr "Gebruiker's tijdzone" + +#: include/localized_schema.php:60 js/prefs.js:1740 +msgid "Customize stylesheet" +msgstr "Aanpassen opmaakmodel" + +#: include/localized_schema.php:61 +msgid "Sort headlines by feed date" +msgstr "Sorteer kopteksten op feed datum" + +#: include/localized_schema.php:62 +msgid "Login with an SSL certificate" +msgstr "Aanmelden met een SSL-certificaat" + +#: include/localized_schema.php:63 +msgid "Try to send digests around specified time" +msgstr "Tracht samenvattingen te verzenden rond een bepaalde tijd" + +#: include/localized_schema.php:64 +msgid "Assign articles to labels automatically" +msgstr "Artikelen automatisch toekennen aan labels" + +#: include/login_form.php:185 classes/handler/public.php:458 +msgid "Language:" +msgstr "Taal:" + +#: include/login_form.php:193 +msgid "Profile:" +msgstr "Profiel:" + +#: include/login_form.php:197 classes/handler/public.php:212 +#: classes/rpc.php:64 classes/dlg.php:98 +msgid "Default profile" +msgstr "Standaard profiel" + +#: include/login_form.php:205 +msgid "Use less traffic" +msgstr "Gebruik minder dataverkeer" + +#: classes/article.php:25 +msgid "Article not found." +msgstr "Artikel niet gevonden." + +#: classes/handler/public.php:393 plugins/bookmarklets/init.php:38 +msgid "Share with Tiny Tiny RSS" +msgstr "Deel met Tiny Tiny RSS" + +#: classes/handler/public.php:401 +msgid "Title:" +msgstr "Titel:" + +#: classes/handler/public.php:403 classes/dlg.php:665 +#: classes/pref/feeds.php:505 classes/pref/feeds.php:734 +#: plugins/instances/init.php:215 +msgid "URL:" +msgstr "URL:" + +#: classes/handler/public.php:405 +msgid "Content:" +msgstr "Inhoud:" + +#: classes/handler/public.php:407 +msgid "Labels:" +msgstr "Labels:" + +#: classes/handler/public.php:426 +msgid "Shared article will appear in the Published feed." +msgstr "Gedeeld artikel zal verschijnen in de Gepubliceerd feed." + +#: classes/handler/public.php:428 +msgid "Share" +msgstr "Delen" + +#: classes/handler/public.php:429 classes/handler/public.php:471 +#: classes/dlg.php:296 classes/dlg.php:348 classes/dlg.php:408 +#: classes/dlg.php:439 classes/dlg.php:650 classes/dlg.php:700 +#: classes/dlg.php:749 classes/pref/users.php:194 classes/pref/labels.php:81 +#: classes/pref/filters.php:349 classes/pref/filters.php:729 +#: classes/pref/filters.php:798 classes/pref/filters.php:865 +#: classes/pref/feeds.php:701 classes/pref/feeds.php:849 +#: plugins/mail/init.php:131 plugins/note/init.php:55 +#: plugins/instances/init.php:251 +msgid "Cancel" +msgstr "Annuleren" + +#: classes/handler/public.php:450 +msgid "Not logged in" +msgstr "Niet ingelogd" + +#: classes/handler/public.php:510 +msgid "Incorrect username or password" +msgstr "Onjuiste gebruikersnaam of wachtwoord" + +#: classes/handler/public.php:546 classes/handler/public.php:643 +#, php-format +msgid "Already subscribed to <b>%s</b>." +msgstr "Reeds geabonneerd op <b>%s</b>." + +#: classes/handler/public.php:549 classes/handler/public.php:634 +#, php-format +msgid "Subscribed to <b>%s</b>." +msgstr "Geabonneerd op <b>%s</b>." + +#: classes/handler/public.php:552 classes/handler/public.php:637 +#, php-format +msgid "Could not subscribe to <b>%s</b>." +msgstr "Kon niet abonneren op <b>%s</b>." + +#: classes/handler/public.php:555 classes/handler/public.php:640 +#, php-format +msgid "No feeds found in <b>%s</b>." +msgstr "Geen feeds gevonden in <b>%s</b>." + +#: classes/handler/public.php:558 classes/handler/public.php:646 +msgid "Multiple feed URLs found." +msgstr "Meerdere feed-URL's gevonden." + +#: classes/handler/public.php:562 classes/handler/public.php:651 +#, php-format +msgid "Could not subscribe to <b>%s</b>.<br>Can't download the Feed URL." +msgstr "Kon niet abonneren op <b>%s</b>.<br>Kon de feed URL niet downloaden." + +#: classes/handler/public.php:580 classes/handler/public.php:669 +msgid "Subscribe to selected feed" +msgstr "Abonneren op de geselecteerde feed" + +#: classes/handler/public.php:605 classes/handler/public.php:693 +msgid "Edit subscription options" +msgstr "Bewerk abonnement opties" + +#: classes/dlg.php:22 +msgid "" +"If you have imported labels and/or filters, you might need to reload " +"preferences to see your new data." +msgstr "" +"Indien u labels en/of filters heeft geïmporteerd moet u waarschijnlijk te " +"voorkeuren herladen om uw bijgewerkte gegevens te zien." + +#: classes/dlg.php:55 classes/pref/users.php:378 classes/pref/labels.php:272 +#: classes/pref/filters.php:230 classes/pref/filters.php:277 +#: classes/pref/filters.php:578 classes/pref/filters.php:657 +#: classes/pref/filters.php:684 classes/pref/feeds.php:1228 +#: classes/pref/feeds.php:1498 classes/pref/feeds.php:1567 +#: plugins/instances/init.php:287 +msgid "Select" +msgstr "Selecteer" + +#: classes/dlg.php:58 classes/feeds.php:92 classes/pref/users.php:381 +#: classes/pref/labels.php:275 classes/pref/filters.php:233 +#: classes/pref/filters.php:280 classes/pref/filters.php:581 +#: classes/pref/filters.php:660 classes/pref/filters.php:687 +#: classes/pref/feeds.php:1231 classes/pref/feeds.php:1501 +#: classes/pref/feeds.php:1570 plugins/instances/init.php:290 +msgid "All" +msgstr "Alles" + +#: classes/dlg.php:60 classes/feeds.php:95 classes/pref/users.php:383 +#: classes/pref/labels.php:277 classes/pref/filters.php:235 +#: classes/pref/filters.php:282 classes/pref/filters.php:583 +#: classes/pref/filters.php:662 classes/pref/filters.php:689 +#: classes/pref/feeds.php:1233 classes/pref/feeds.php:1503 +#: classes/pref/feeds.php:1572 plugins/instances/init.php:292 +msgid "None" +msgstr "Niets" + +#: classes/dlg.php:69 +msgid "Create profile" +msgstr "Maak profiel" + +#: classes/dlg.php:92 classes/dlg.php:122 +msgid "(active)" +msgstr "(actief)" + +#: classes/dlg.php:156 +msgid "Remove selected profiles" +msgstr "Verwijder geselecteerde profielen" + +#: classes/dlg.php:158 +msgid "Activate profile" +msgstr "Activeer profiel" + +#: classes/dlg.php:168 +msgid "Public OPML URL" +msgstr "Publieke OPML URL" + +#: classes/dlg.php:173 +msgid "Your Public OPML URL is:" +msgstr "Uw publieke OPML URL is:" + +#: classes/dlg.php:182 classes/dlg.php:569 +msgid "Generate new URL" +msgstr "Genereer nieuwe URL" + +#: classes/dlg.php:194 +msgid "Notice" +msgstr "NB!" + +#: classes/dlg.php:200 +msgid "" +"Update daemon is enabled in configuration, but daemon process is not " +"running, which prevents all feeds from updating. Please start the daemon " +"process or contact instance owner." +msgstr "" +"De update deamon is ingeschakeld in de configuratie, maar het deamon proces " +"loopt niet. Dit voorkomt dat alle feeds wordt bijgewerkt. Start het deamon " +"proces of contacteer de eigenaar van deze instantie." + +#: classes/dlg.php:204 classes/dlg.php:213 +msgid "Last update:" +msgstr "Laatste update:" + +#: classes/dlg.php:209 +msgid "" +"Update daemon is taking too long to perform a feed update. This could " +"indicate a problem like crash or a hang. Please check the daemon process or " +"contact instance owner." +msgstr "" +"De update deamon neemt te veel tijd om een feed bij te werken. Dit kan " +"betekenen dat het proces is gescrashed of hangt. Controleer het deamon " +"proces of contacteer de eigenaar van deze instantie." + +#: classes/dlg.php:234 classes/dlg.php:242 +msgid "Feed or site URL" +msgstr "Feed of website URL" + +#: classes/dlg.php:248 classes/dlg.php:713 classes/pref/feeds.php:527 +#: classes/pref/feeds.php:747 +msgid "Place in category:" +msgstr "Plaats in categorie:" + +#: classes/dlg.php:256 +msgid "Available feeds" +msgstr "Beschikbare feeds" + +#: classes/dlg.php:268 classes/pref/users.php:155 classes/pref/feeds.php:557 +#: classes/pref/feeds.php:783 +msgid "Authentication" +msgstr "Authenticatie" + +#: classes/dlg.php:272 classes/dlg.php:727 classes/pref/users.php:438 +#: classes/pref/feeds.php:563 classes/pref/feeds.php:787 +msgid "Login" +msgstr "LoginID" + +#: classes/dlg.php:275 classes/dlg.php:730 classes/pref/prefs.php:202 +#: classes/pref/feeds.php:569 classes/pref/feeds.php:793 +msgid "Password" +msgstr "Wachtwoord" + +#: classes/dlg.php:285 +msgid "This feed requires authentication." +msgstr "Deze feed vereist authenticatie." + +#: classes/dlg.php:290 classes/dlg.php:346 classes/dlg.php:748 +msgid "Subscribe" +msgstr "Abonneren" + +#: classes/dlg.php:293 +msgid "More feeds" +msgstr "Meer feeds" + +#: classes/dlg.php:316 classes/dlg.php:407 classes/pref/users.php:368 +#: classes/pref/filters.php:574 classes/pref/feeds.php:1224 js/tt-rss.js:166 +msgid "Search" +msgstr "Zoeken" + +#: classes/dlg.php:320 +msgid "Popular feeds" +msgstr "Populaire feeds" + +#: classes/dlg.php:321 +msgid "Feed archive" +msgstr "Feed archief" + +#: classes/dlg.php:324 +msgid "limit:" +msgstr "Beperking:" + +#: classes/dlg.php:347 classes/pref/users.php:394 classes/pref/labels.php:284 +#: classes/pref/filters.php:339 classes/pref/filters.php:596 +#: classes/pref/feeds.php:674 plugins/instances/init.php:297 +msgid "Remove" +msgstr "Verwijderen" + +#: classes/dlg.php:358 +msgid "Look for" +msgstr "Zoek naar" + +#: classes/dlg.php:366 +msgid "Limit search to:" +msgstr "Beperk zoeken naar:" + +#: classes/dlg.php:382 +msgid "This feed" +msgstr "Deze feed" + +#: classes/dlg.php:414 +msgid "Tags for this article (separated by commas):" +msgstr "Tags voor dit artikel (komma gescheiden):" + +#: classes/dlg.php:437 classes/dlg.php:648 classes/pref/users.php:192 +#: classes/pref/labels.php:79 classes/pref/filters.php:346 +#: classes/pref/feeds.php:700 classes/pref/feeds.php:846 +#: plugins/nsfw/init.php:86 plugins/note/init.php:53 +#: plugins/owncloud/init.php:62 plugins/instances/init.php:248 +msgid "Save" +msgstr "Opslaan" + +#: classes/dlg.php:445 +msgid "Tag Cloud" +msgstr "Tag Wolk" + +#: classes/dlg.php:514 +msgid "Select item(s) by tags" +msgstr "Selecteer item(s) via tags" + +#: classes/dlg.php:517 +msgid "Match:" +msgstr "Match:" + +#: classes/dlg.php:519 +msgid "Any" +msgstr "Elke" + +#: classes/dlg.php:522 +msgid "All tags." +msgstr "Alle tags." + +#: classes/dlg.php:524 +msgid "Which Tags?" +msgstr "Welke tags?" + +#: classes/dlg.php:537 +msgid "Display entries" +msgstr "Items weergeven" + +#: classes/dlg.php:549 classes/feeds.php:138 +msgid "View as RSS" +msgstr "Toon als RSS" + +#: classes/dlg.php:560 +msgid "You can view this feed as RSS using the following URL:" +msgstr "u kunt deze feed bekijken als RSS via de volgende URL:" + +#: classes/dlg.php:589 plugins/updater/init.php:304 +#, php-format +msgid "New version of Tiny Tiny RSS is available (%s)." +msgstr "Nieuwe versie van Tiny Tiny RSS is beschikbaar (%s)." + +#: classes/dlg.php:597 +msgid "" +"You can update using built-in updater in the Preferences or by using update." +"php" +msgstr "" +"U kunt updaten met behulp van de ingebouwde updater in de Voorkeuren of via " +"update.php" + +#: classes/dlg.php:601 classes/pref/users.php:390 +msgid "Details" +msgstr "Details" + +#: classes/dlg.php:603 +msgid "Download" +msgstr "Downloaden" + +#: classes/dlg.php:611 +msgid "Error receiving version information or no new version available." +msgstr "" +"Fout bij verkrijgen van informatie over de versie, of geen nieuwe versie " +"beschikbaar." + +#: classes/dlg.php:632 +#, php-format +msgid "" +"You can override colors, fonts and layout of your currently selected theme " +"with custom CSS declarations here. <a target=\"_blank\" class=\"visibleLink" +"\" href=\"%s\">This file</a> can be used as a baseline." +msgstr "" +"U kunt door de CSS-declaraties aan te passen de kleuren, lettertypen en lay-" +"out van uw huidige thema hier aanpassen. <a target=\"_blank\" class=" +"\"visibleLink\" href=\"%s\">Dit bestand</a> kan als richtlijn worden " +"gebruikt." + +#: classes/dlg.php:659 plugins/instances/init.php:207 +msgid "Instance" +msgstr "Instantie" + +#: classes/dlg.php:668 plugins/instances/init.php:218 +#: plugins/instances/init.php:315 +msgid "Instance URL" +msgstr "instantie URL" + +#: classes/dlg.php:678 plugins/instances/init.php:229 +msgid "Access key:" +msgstr "Toegangssleutel:" + +#: classes/dlg.php:681 plugins/instances/init.php:232 +#: plugins/instances/init.php:316 +msgid "Access key" +msgstr "Toegangssleutel" + +#: classes/dlg.php:685 plugins/instances/init.php:236 +msgid "Use one access key for both linked instances." +msgstr "Gebruik één toegang-sleutel voor beide gekoppelde instanties." + +#: classes/dlg.php:693 plugins/instances/init.php:244 +msgid "Generate new key" +msgstr "Genereer nieuwe sleutel" + +#: classes/dlg.php:697 +msgid "Create link" +msgstr "Link aanmaken" + +#: classes/dlg.php:710 +msgid "Add one valid RSS feed per line (no feed detection is done)" +msgstr "" +"Een geldige RSS feed per regel toevoegen (geen feed detectie uitgevoerd)" + +#: classes/dlg.php:719 +msgid "Feeds to subscribe, One per line" +msgstr "Te abonneren feeds: één per regel" + +#: classes/dlg.php:741 +msgid "Feeds require authentication." +msgstr "Feeds vereisen authenticatie." + +#: classes/feeds.php:68 +msgid "Visit the website" +msgstr "Bezoek de website" + +#: classes/feeds.php:83 +msgid "View as RSS feed" +msgstr "Toon als RSS feed" + +#: classes/feeds.php:91 +msgid "Select:" +msgstr "Selecteer:" + +#: classes/feeds.php:94 +msgid "Invert" +msgstr "Omkeren" + +#: classes/feeds.php:101 +msgid "More..." +msgstr "Meer…" + +#: classes/feeds.php:103 +msgid "Selection toggle:" +msgstr "Selectie schakelaar:" + +#: classes/feeds.php:109 +msgid "Selection:" +msgstr "Selectie:" + +#: classes/feeds.php:112 +msgid "Set score" +msgstr "Geef score" + +#: classes/feeds.php:115 +msgid "Archive" +msgstr "Archief" + +#: classes/feeds.php:117 +msgid "Move back" +msgstr "Terugzetten" + +#: classes/feeds.php:118 classes/pref/filters.php:242 +#: classes/pref/filters.php:289 classes/pref/filters.php:669 +#: classes/pref/filters.php:696 +msgid "Delete" +msgstr "Verwijderen" + +#: classes/feeds.php:125 classes/feeds.php:130 plugins/mailto/init.php:28 +#: plugins/mail/init.php:28 +msgid "Forward by email" +msgstr "doorsturen per e-mail" + +#: classes/feeds.php:134 +msgid "Feed:" +msgstr "Feed:" + +#: classes/feeds.php:201 classes/feeds.php:796 +msgid "Feed not found." +msgstr "Feed niet gevonden." + +#: classes/feeds.php:496 +msgid "mark as read" +msgstr "Markeer als gelezen" + +#: classes/feeds.php:551 +msgid "Collapse article" +msgstr "Artikel inklappen" + +#: classes/feeds.php:697 +msgid "No unread articles found to display." +msgstr "Er zijn geen ongelezen artikelen gevonden om weer te geven." + +#: classes/feeds.php:700 +msgid "No updated articles found to display." +msgstr "Geen bijgewerkte artikelen gevonden om weer te geven." + +#: classes/feeds.php:703 +msgid "No starred articles found to display." +msgstr "Er zijn geen artikelen met ster gevonden om weer te geven." + +#: classes/feeds.php:707 +msgid "" +"No articles found to display. You can assign articles to labels manually " +"(see the Actions menu above) or use a filter." +msgstr "" +"Geen artikelen gevonden voor weergave. U kunt artikelen handmatig aan labels " +"toekennen (zie het Actie menu hierboven) of een filter gebruiken." + +#: classes/feeds.php:709 +msgid "No articles found to display." +msgstr "Geen artikelen gevonden om weer te geven." + +#: classes/feeds.php:724 classes/feeds.php:905 +#, php-format +msgid "Feeds last updated at %s" +msgstr "Feeds laatst bijgewerkt op %s" + +#: classes/feeds.php:734 classes/feeds.php:915 +msgid "Some feeds have update errors (click for details)" +msgstr "Sommige feeds hebben update fouten (klik voor details)" + +#: classes/feeds.php:895 +msgid "No feed selected." +msgstr "Geen feeds geselecteerd." + +#: classes/backend.php:34 +msgid "Keyboard Shortcuts" +msgstr "Sneltoetscombinaties" + +#: classes/backend.php:57 +msgid "Shift" +msgstr "Shift" + +#: classes/backend.php:60 +msgid "Ctrl" +msgstr "Ctrl" + +#: classes/backend.php:84 +msgid "Other interface tips are available in the Tiny Tiny RSS wiki." +msgstr "andere interface tips zijn te vinden in de Tiny Tiny RSS wiki." + +#: classes/backend.php:99 +msgid "Help topic not found." +msgstr "Help onderwerp niet gevonden." + +#: classes/opml.php:28 classes/opml.php:33 +msgid "OPML Utility" +msgstr "OPML hulpprogramma" + +#: classes/opml.php:37 +msgid "Importing OPML..." +msgstr "OPML aan 't importeren…" + +#: classes/opml.php:41 +msgid "Return to preferences" +msgstr "Terug naar voorkeuren" + +#: classes/opml.php:270 +#, php-format +msgid "Adding feed: %s" +msgstr "Feed toevoegen: %s" + +#: classes/opml.php:281 +#, php-format +msgid "Duplicate feed: %s" +msgstr "Dubbele feed: %s" + +#: classes/opml.php:295 +#, php-format +msgid "Adding label %s" +msgstr "Toevoegen label %s" + +#: classes/opml.php:298 +#, php-format +msgid "Duplicate label: %s" +msgstr "Dubbele label: %s" + +#: classes/opml.php:310 +#, php-format +msgid "Setting preference key %s to %s" +msgstr "Instellen voorkeursleutel %s op %s" + +#: classes/opml.php:339 +msgid "Adding filter..." +msgstr "filter toevoegen..." + +#: classes/opml.php:416 +#, php-format +msgid "Processing category: %s" +msgstr "Verwerken categorie: %s" + +#: classes/opml.php:468 +msgid "Error: please upload OPML file." +msgstr "Fout: OPML-bestand uploaden aub." + +#: classes/opml.php:475 +msgid "Error while parsing document." +msgstr "Fout bij het parseren van het document." + +#: classes/pref/users.php:6 plugins/instances/init.php:157 +msgid "Your access level is insufficient to open this tab." +msgstr "Uw toegangsniveau is niet toereikend om deze tab te openen." + +#: classes/pref/users.php:27 +msgid "User details" +msgstr "Gebruiker's details" + +#: classes/pref/users.php:41 +msgid "User not found" +msgstr "Gebruiker niet gevonden" + +#: classes/pref/users.php:60 classes/pref/users.php:440 +msgid "Registered" +msgstr "Geregistreerd" + +#: classes/pref/users.php:61 +msgid "Last logged in" +msgstr "Laatst ingelogd" + +#: classes/pref/users.php:68 +msgid "Subscribed feeds count" +msgstr "Aantal geabonneerde feeds" + +#: classes/pref/users.php:72 +msgid "Subscribed feeds" +msgstr "Geabonneerde feeds" + +#: classes/pref/users.php:122 +msgid "User Editor" +msgstr "Gebruiker's Editor" + +#: classes/pref/users.php:158 +msgid "Access level: " +msgstr "Toegangsniveau:" + +#: classes/pref/users.php:171 +msgid "Change password to" +msgstr "Wijzig wachtwoord naar" + +#: classes/pref/users.php:177 classes/pref/feeds.php:577 +#: classes/pref/feeds.php:799 +msgid "Options" +msgstr "Opties" + +#: classes/pref/users.php:180 +msgid "E-mail: " +msgstr "E-mail: " + +#: classes/pref/users.php:258 +#, php-format +msgid "Added user <b>%s</b> with password <b>%s</b>" +msgstr "Gebruiker <b>%s</b> toegevoegd met wachtwoord <b>%s</b>" + +#: classes/pref/users.php:265 +#, php-format +msgid "Could not create user <b>%s</b>" +msgstr "Kon gebruiker <b>%s</b> niet aanmaken" + +#: classes/pref/users.php:269 +#, php-format +msgid "User <b>%s</b> already exists." +msgstr "Gebruiker <b>%s</b> bestaat al." + +#: classes/pref/users.php:292 +#, php-format +msgid "" +"Changed password of user <b>%s</b>\n" +"\t\t\t\t to <b>%s</b>" +msgstr "" +"Wijzig wachtwoord van gebruiker<b>%s</b>\n" +"\t\t\t\t naar <b>%s</b>" + +#: classes/pref/users.php:299 +#, php-format +msgid "Notifying <b>%s</b>." +msgstr "Melden aan <b>%s</b>." + +#: classes/pref/users.php:336 +msgid "[tt-rss] Password change notification" +msgstr "[tt-rss] Melding verandering van wachtwoord" + +#: classes/pref/users.php:386 +msgid "Create user" +msgstr "Gebruiker aanmaken" + +#: classes/pref/users.php:392 classes/pref/filters.php:593 +#: plugins/instances/init.php:296 +msgid "Edit" +msgstr "Bewerken" + +#: classes/pref/users.php:396 +msgid "Reset password" +msgstr "Herstel wachtwoord" + +#: classes/pref/users.php:439 +msgid "Access Level" +msgstr "Toegangsniveau" + +#: classes/pref/users.php:441 +msgid "Last login" +msgstr "Laatste loginID" + +#: classes/pref/users.php:462 plugins/instances/init.php:337 +msgid "Click to edit" +msgstr "Klik voor bewerken" + +#: classes/pref/users.php:482 +msgid "No users defined." +msgstr "Geen gebruikers gedefinieerd." + +#: classes/pref/users.php:484 +msgid "No matching users found." +msgstr "geen overeenkomstige gebruikers gevonden." + +#: classes/pref/labels.php:22 +msgid "Caption" +msgstr "Onderschrift" + +#: classes/pref/labels.php:37 +msgid "Colors" +msgstr "Kleuren" + +#: classes/pref/labels.php:42 +msgid "Foreground:" +msgstr "Voorgrond:" + +#: classes/pref/labels.php:42 +msgid "Background:" +msgstr "Achtergrond:" + +#: classes/pref/labels.php:232 +#, php-format +msgid "Created label <b>%s</b>" +msgstr "aangemaakt label <b>%s</b>" + +#: classes/pref/labels.php:287 +msgid "Clear colors" +msgstr "Wis kleuren" + +#: classes/pref/filters.php:57 +msgid "Articles matching this filter:" +msgstr "Artikelen volgens dit filter:" + +#: classes/pref/filters.php:94 +msgid "No recent articles matching this filter have been found." +msgstr "" +"Er zijn geen recente artikelen die overeenkomen met dit filter gevonden." + +#: classes/pref/filters.php:98 +msgid "" +"Complex expressions might not give results while testing due to issues with " +"database server regexp implementation." +msgstr "" +"complexe expressies kunnen geen resultaat geven bij het testen, tengevolge " +"van problemen bij de database server's regexp implementatie." + +#: classes/pref/filters.php:225 classes/pref/filters.php:652 +#: classes/pref/filters.php:767 +msgid "Match" +msgstr "Match" + +#: classes/pref/filters.php:239 classes/pref/filters.php:286 +#: classes/pref/filters.php:666 classes/pref/filters.php:693 +msgid "Add" +msgstr "Toevoegen" + +#: classes/pref/filters.php:272 classes/pref/filters.php:679 +msgid "Apply actions" +msgstr "Acties toepassen" + +#: classes/pref/filters.php:322 classes/pref/filters.php:708 +msgid "Enabled" +msgstr "Ingeschakeld" + +#: classes/pref/filters.php:331 classes/pref/filters.php:711 +msgid "Match any rule" +msgstr "Match elke regel" + +#: classes/pref/filters.php:343 classes/pref/filters.php:723 +msgid "Test" +msgstr "Test" + +#: classes/pref/filters.php:375 +#, php-format +msgid "%s on %s in %s" +msgstr "%s op %s in %s" + +#: classes/pref/filters.php:590 +msgid "Combine" +msgstr "Combineren" + +#: classes/pref/filters.php:600 classes/pref/feeds.php:1283 +msgid "Rescore articles" +msgstr "Artikelen nieuwe score geven" + +#: classes/pref/filters.php:726 +msgid "Create" +msgstr "Aanmaken" + +#: classes/pref/filters.php:776 +msgid "on field" +msgstr "op veld" + +#: classes/pref/filters.php:782 js/PrefFilterTree.js:29 +#: plugins/digest/digest.js:241 +msgid "in" +msgstr "in" + +#: classes/pref/filters.php:795 +msgid "Save rule" +msgstr "Regel opslaan" + +#: classes/pref/filters.php:795 js/functions.js:1078 +msgid "Add rule" +msgstr "regel toevoegen" + +#: classes/pref/filters.php:818 +msgid "Perform Action" +msgstr "Actie doorvoeren" + +#: classes/pref/filters.php:844 +msgid "with parameters:" +msgstr "met parameters:" + +#: classes/pref/filters.php:862 +msgid "Save action" +msgstr "Actie opslaan" + +#: classes/pref/filters.php:862 js/functions.js:1104 +msgid "Add action" +msgstr "Actie toevoegen" + +#: classes/pref/prefs.php:17 +msgid "Old password cannot be blank." +msgstr "Oud wachtwoord kan niet leeg zijn." + +#: classes/pref/prefs.php:22 +msgid "New password cannot be blank." +msgstr "Nieuw wachtwoord kan niet leeg zijn." + +#: classes/pref/prefs.php:27 +msgid "Entered passwords do not match." +msgstr "Ingevulde wachtwoorden komen niet overeen." + +#: classes/pref/prefs.php:37 +msgid "Function not supported by authentication module." +msgstr "Functie niet ondersteund door authenticatiemodule." + +#: classes/pref/prefs.php:69 +msgid "The configuration was saved." +msgstr "De configuratie is opgeslagen." + +#: classes/pref/prefs.php:83 +#, php-format +msgid "Unknown option: %s" +msgstr "Onbekende optie: %s" + +#: classes/pref/prefs.php:97 +msgid "Your personal data has been saved." +msgstr "Uw persoonlijke gegevens zijn opgeslagen." + +#: classes/pref/prefs.php:137 +msgid "Personal data / Authentication" +msgstr "Persoonlijke gegevens / Authenticatie" + +#: classes/pref/prefs.php:157 +msgid "Personal data" +msgstr "Persoonlijke gegevens" + +#: classes/pref/prefs.php:167 +msgid "Full name" +msgstr "volledige naam" + +#: classes/pref/prefs.php:171 +msgid "E-mail" +msgstr "E-mail" + +#: classes/pref/prefs.php:177 +msgid "Access level" +msgstr "Toegangsniveau" + +#: classes/pref/prefs.php:187 +msgid "Save data" +msgstr "Gegevens opslaan" + +#: classes/pref/prefs.php:209 +msgid "Your password is at default value, please change it." +msgstr "Uw wachtwoord staat op de standaard waarde. Verander het aub." + +#: classes/pref/prefs.php:241 +msgid "Old password" +msgstr "Oud wachtwoord" + +#: classes/pref/prefs.php:244 +msgid "New password" +msgstr "Nieuw wachtwoord" + +#: classes/pref/prefs.php:249 +msgid "Confirm password" +msgstr "Bevestigen wachtwoord" + +#: classes/pref/prefs.php:259 +msgid "Change password" +msgstr "Wijzig wachtwoord" + +#: classes/pref/prefs.php:265 +msgid "One time passwords / Authenticator" +msgstr "eenmalig wachtwoord / Authenticator" + +#: classes/pref/prefs.php:294 classes/pref/prefs.php:345 +msgid "Enter your password" +msgstr "Vul uw wachtwoord in" + +#: classes/pref/prefs.php:305 +msgid "Disable OTP" +msgstr "EWW (Eenmalig wachtwoord) uitschakelen" + +#: classes/pref/prefs.php:311 +msgid "" +"You will need a compatible Authenticator to use this. Changing your password " +"would automatically disable OTP." +msgstr "" +"U heeft een compatibele Authenticator nodig om dit te gebruiken. Veranderen " +"van wachtwoord schakelt automatisch EWW uit." + +#: classes/pref/prefs.php:313 +msgid "Scan the following code by the Authenticator application:" +msgstr "Scan de volgende code met de Authenticator applicatie:" + +#: classes/pref/prefs.php:354 +msgid "I have scanned the code and would like to enable OTP" +msgstr "Ik heb de code gescanned en wil nu EWW inschakelen" + +#: classes/pref/prefs.php:362 +msgid "Enable OTP" +msgstr "Inschakelen EWW" + +#: classes/pref/prefs.php:493 +msgid "Customize" +msgstr "Aanpassen" + +#: classes/pref/prefs.php:552 +msgid "Register" +msgstr "Registreren" + +#: classes/pref/prefs.php:556 +msgid "Clear" +msgstr "Wissen" + +#: classes/pref/prefs.php:562 +#, php-format +msgid "Current server time: %s (UTC)" +msgstr "Huidige servertijd: %s (UTC)" + +#: classes/pref/prefs.php:595 +msgid "Save configuration" +msgstr "Configuratie opslaan" + +#: classes/pref/prefs.php:598 +msgid "Manage profiles" +msgstr "Profielbeheer" + +#: classes/pref/prefs.php:601 +msgid "Reset to defaults" +msgstr "Terugzetten naar de standaardwaarden" + +#: classes/pref/prefs.php:613 +msgid "Show additional preferences" +msgstr "Toon additionele voorkeuren" + +#: classes/pref/prefs.php:625 classes/pref/prefs.php:627 +msgid "Plugins" +msgstr "Plug-ins" + +#: classes/pref/prefs.php:655 +msgid "System plugins" +msgstr "Systeem plug-ins" + +#: classes/pref/prefs.php:659 classes/pref/prefs.php:708 +msgid "Plugin" +msgstr "Plug-in" + +#: classes/pref/prefs.php:660 classes/pref/prefs.php:709 +msgid "Description" +msgstr "Omschrijving" + +#: classes/pref/prefs.php:661 classes/pref/prefs.php:710 +msgid "Version" +msgstr "Versie" + +#: classes/pref/prefs.php:662 classes/pref/prefs.php:711 +msgid "Author" +msgstr "Auteur" + +#: classes/pref/prefs.php:695 classes/pref/prefs.php:746 +msgid "Clear data" +msgstr "Wis data" + +#: classes/pref/prefs.php:704 +msgid "User plugins" +msgstr "Gebruiker's plug-ins" + +#: classes/pref/prefs.php:761 +msgid "Enable selected plugins" +msgstr "Geselecteerd plug-ins inschakelen" + +#: classes/pref/prefs.php:816 classes/pref/prefs.php:834 +msgid "Incorrect password" +msgstr "Onjuist wachtwoord" + +#: classes/pref/feeds.php:12 +msgid "Check to enable field" +msgstr "Aanvinken om veld in te schakelen" + +#: classes/pref/feeds.php:58 classes/pref/feeds.php:175 +#: classes/pref/feeds.php:217 classes/pref/feeds.php:223 +#: classes/pref/feeds.php:248 +#, php-format +msgid "(%d feeds)" +msgstr "(%d feeds)" + +#: classes/pref/feeds.php:494 +msgid "Feed Title" +msgstr "Feed titel" + +#: classes/pref/feeds.php:550 classes/pref/feeds.php:774 +msgid "Article purging:" +msgstr "Artikelopschoning:" + +#: classes/pref/feeds.php:573 +msgid "" +"<b>Hint:</b> you need to fill in your login information if your feed " +"requires authentication, except for Twitter feeds." +msgstr "" +"<b>Hint:</b> U moet uw aanmeld informatie invullen als uw feed authenticatie " +"vereist, behalve voor Twitter feeds." + +#: classes/pref/feeds.php:589 classes/pref/feeds.php:803 +msgid "Hide from Popular feeds" +msgstr "Verbergen voor populaire feeds" + +#: classes/pref/feeds.php:601 classes/pref/feeds.php:809 +msgid "Include in e-mail digest" +msgstr "toevoegen aan e-mail samenvatting" + +#: classes/pref/feeds.php:614 classes/pref/feeds.php:815 +msgid "Always display image attachments" +msgstr "Altijd afbeeldingsbijlagen weergeven" + +#: classes/pref/feeds.php:627 classes/pref/feeds.php:823 +msgid "Do not embed images" +msgstr "Afbeeldingen niet insluiten." + +#: classes/pref/feeds.php:640 classes/pref/feeds.php:831 +msgid "Cache images locally" +msgstr "Afbeelding lokaal in cache plaatsen" + +#: classes/pref/feeds.php:652 classes/pref/feeds.php:837 +msgid "Mark updated articles as unread" +msgstr "Markeer bijgewerkte artikelen als niet-gelezen" + +#: classes/pref/feeds.php:658 +msgid "Icon" +msgstr "Icon" + +#: classes/pref/feeds.php:672 +msgid "Replace" +msgstr "Vervangen" + +#: classes/pref/feeds.php:691 +msgid "Resubscribe to push updates" +msgstr "Herabonneren voor push updates" + +#: classes/pref/feeds.php:698 +msgid "Resets PubSubHubbub subscription status for push-enabled feeds." +msgstr "Herstelt PubSubHubbub abonnement status voor gepushte feeds." + +#: classes/pref/feeds.php:713 +msgid "Enable the options you wish to apply using checkboxes on the right:" +msgstr "Inschakelen van toe te passen opties met de selectievakjes rechts:" + +#: classes/pref/feeds.php:1077 classes/pref/feeds.php:1130 +msgid "All done." +msgstr "Alles gedaan." + +#: classes/pref/feeds.php:1185 +msgid "Feeds with errors" +msgstr "Feeds met fouten" + +#: classes/pref/feeds.php:1205 +msgid "Inactive feeds" +msgstr "Inactieve feeds" + +#: classes/pref/feeds.php:1242 +msgid "Edit selected feeds" +msgstr "Bewerk geselecteerde feeds" + +#: classes/pref/feeds.php:1244 classes/pref/feeds.php:1258 +msgid "Reset sort order" +msgstr "Herstel sorteervolgorde" + +#: classes/pref/feeds.php:1246 js/prefs.js:1785 +msgid "Batch subscribe" +msgstr "Batchmatig abonneren" + +#: classes/pref/feeds.php:1251 +msgid "Categories" +msgstr "Categorieën" + +#: classes/pref/feeds.php:1254 +msgid "Add category" +msgstr "Categorie toevoegen" + +#: classes/pref/feeds.php:1256 +msgid "(Un)hide empty categories" +msgstr "Verberg/Toon lege categorieën" + +#: classes/pref/feeds.php:1260 +msgid "Remove selected" +msgstr "Verwijder geselecteerde" + +#: classes/pref/feeds.php:1274 +msgid "More actions..." +msgstr "Meer acties…" + +#: classes/pref/feeds.php:1278 +msgid "Manual purge" +msgstr "Handmatig opschonen" + +#: classes/pref/feeds.php:1282 +msgid "Clear feed data" +msgstr "Wis feed data" + +#: classes/pref/feeds.php:1333 +msgid "OPML" +msgstr "OPML" + +#: classes/pref/feeds.php:1335 +msgid "" +"Using OPML you can export and import your feeds, filters, labels and Tiny " +"Tiny RSS settings." +msgstr "" +"Met OPML kunt u feeds, filters, labels en Tiny Tiny RSS instellingen " +"exporteren en importeren." + +#: classes/pref/feeds.php:1337 +msgid "Only main settings profile can be migrated using OPML." +msgstr "" +"Alleen het hoofdprofiel van de instellingen kan worden overgebracht met OPML." + +#: classes/pref/feeds.php:1350 +msgid "Import my OPML" +msgstr "Importeer mijn OPML" + +#: classes/pref/feeds.php:1354 +msgid "Filename:" +msgstr "Bestandsnaam:" + +#: classes/pref/feeds.php:1356 +msgid "Include settings" +msgstr "toevoegingsinstellingen" + +#: classes/pref/feeds.php:1360 +msgid "Export OPML" +msgstr "OPML exporteren" + +#: classes/pref/feeds.php:1364 +msgid "" +"Your OPML can be published publicly and can be subscribed by anyone who " +"knows the URL below." +msgstr "" +"Uw OPML kan openbaar worden gepubliceerd en er kan op worden geabonneerd " +"door iedereen die de URL hieronder kent." + +#: classes/pref/feeds.php:1366 +msgid "" +"Published OPML does not include your Tiny Tiny RSS settings, feeds that " +"require authentication or feeds hidden from Popular feeds." +msgstr "" +"De gepubliceerde OPML bevatten niet uw Tiny Tiny RSS instellingen, feeds die " +"authenticatie vereisen of feeds verborgen voor Populaire feeds." + +#: classes/pref/feeds.php:1369 +msgid "Display published OPML URL" +msgstr "Gepubliceerde OPML URL weergeven" + +#: classes/pref/feeds.php:1379 +msgid "Firefox integration" +msgstr "Firefox integratie" + +#: classes/pref/feeds.php:1381 +msgid "" +"This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the " +"link below." +msgstr "" +"Deze Tiny Tiny RSS site kan gebruikt worden als een Firefox Feed Reader door " +"op de link hieronder te klikken." + +#: classes/pref/feeds.php:1388 +msgid "Click here to register this site as a feed reader." +msgstr "Klik hier om deze site te registreren als een feed reader." + +#: classes/pref/feeds.php:1396 +msgid "Published & shared articles / Generated feeds" +msgstr "Gepubliceerde & gedeelde artikelen / Gegenereerde feeds" + +#: classes/pref/feeds.php:1398 +msgid "Published articles and generated feeds" +msgstr "Gepubliceerde artikelen en gegenereerde feeds" + +#: classes/pref/feeds.php:1400 +msgid "" +"Published articles are exported as a public RSS feed and can be subscribed " +"by anyone who knows the URL specified below." +msgstr "" +"Gepubliceerde artikelen worden geëxporteerd als publieke RSS-feed en er kan " +"door iedereen die de URL hieronder kent op worden geabonneerd." + +#: classes/pref/feeds.php:1406 +msgid "Display URL" +msgstr "Toon URL" + +#: classes/pref/feeds.php:1409 +msgid "Clear all generated URLs" +msgstr "Wis alle gegenereerde URL's" + +#: classes/pref/feeds.php:1411 +msgid "Articles shared by URL" +msgstr "Artikelen gedeeld met URL" + +#: classes/pref/feeds.php:1413 +msgid "You can disable all articles shared by unique URLs here." +msgstr "U kunt alle artikelen gedeeld via unieke URL's hier uitschakelen." + +#: classes/pref/feeds.php:1416 +msgid "Unshare all articles" +msgstr "Delen alle artikelen teniet doen" + +#: classes/pref/feeds.php:1494 +msgid "" +"These feeds have not been updated with new content for 3 months (oldest " +"first):" +msgstr "Deze feeds hebben al 3 maanden geen nieuwe inhoud (oudste eerst):" + +#: classes/pref/feeds.php:1531 classes/pref/feeds.php:1600 +msgid "Click to edit feed" +msgstr "Klik om feed te bewerken" + +#: classes/pref/feeds.php:1549 classes/pref/feeds.php:1620 +msgid "Unsubscribe from selected feeds" +msgstr "Abonnement opzeggen voor geselecteerde feeds" + +#: classes/pref/feeds.php:1560 +msgid "These feeds have not been updated because of errors:" +msgstr "Deze feeds zijn niet bijgewerkt omdat er fouten zijn opgetreden:" + +#: plugins/pocket/init.php:30 +msgid "Pocket" +msgstr "Pocket" + +#: plugins/digest/digest_body.php:43 +msgid "" +"Your browser doesn't support Javascript, which is required\n" +"\t\t\tfor this application to function properly. Please check your\n" +"\t\t\tbrowser settings." +msgstr "" +"Uw browser ondersteunt geen Javascript. Dit is vereist voor\n" +"\t\t\thet goed functioneren van deze applicatie. Controleer aub uw\n" +"\t\t\tbrowser instellingen." + +#: plugins/digest/digest_body.php:55 +msgid "Back to feeds" +msgstr "Terug naar de feeds" + +#: plugins/digest/digest_body.php:60 +msgid "Hello," +msgstr "Hallo," + +#: plugins/digest/digest_body.php:66 +msgid "Regular version" +msgstr "Reguliere versie" + +#: plugins/close_button/init.php:24 +msgid "Close article" +msgstr "Sluit artikel" + +#: plugins/nsfw/init.php:32 plugins/nsfw/init.php:43 +msgid "Not work safe (click to toggle)" +msgstr "NVVW (Niet Veilig Voor Werk) (klik om in/uit te schakelen)" + +#: plugins/nsfw/init.php:53 +msgid "NSFW Plugin" +msgstr "NVVW (Niet Veilig Voor Werk) Plug-in" + +#: plugins/nsfw/init.php:80 +msgid "Tags to consider NSFW (comma-separated)" +msgstr "Tags te overwegen als NVVW (komma gescheiden)" + +#: plugins/nsfw/init.php:101 +msgid "Configuration saved." +msgstr "Configuratie opgeslagen." + +#: plugins/pinterest/init.php:29 +msgid "Pinterest" +msgstr "Pinterest" + +#: plugins/auth_internal/init.php:62 +msgid "Please enter your one time password:" +msgstr "Geef aub uw eenmalig wachtwoord:" + +#: plugins/auth_internal/init.php:185 +msgid "Password has been changed." +msgstr "Wachtwoord is veranderd." + +#: plugins/auth_internal/init.php:187 +msgid "Old password is incorrect." +msgstr "Oud wachtwoord is onjuist." + +#: plugins/mailto/init.php:52 plugins/mailto/init.php:58 +#: plugins/mail/init.php:71 plugins/mail/init.php:77 +msgid "[Forwarded]" +msgstr "[Doorgestuurd]" + +#: plugins/mailto/init.php:52 plugins/mail/init.php:71 +msgid "Multiple articles" +msgstr "Meerdere artikelen" + +#: plugins/mailto/init.php:74 +msgid "Clicking the following link to invoke your mail client:" +msgstr "Klikken op de volgende link om uw e-mail cliënt te starten:" + +#: plugins/mailto/init.php:78 +msgid "Forward selected article(s) by email." +msgstr "Geselecteerde artikel(en) doorsturen per e-mail." + +#: plugins/mailto/init.php:81 +msgid "" +"You should be able to edit the message before sending in your mail client." +msgstr "" +"U zou in staat moeten zijn het bericht te bewerken vóórdat u het verzendt " +"met uw e-mail cliënt." + +#: plugins/mailto/init.php:86 +msgid "Close this dialog" +msgstr "Sluit dit dialoogvenster" + +#: plugins/bookmarklets/init.php:22 +msgid "Bookmarklets" +msgstr "Bookmarklets" + +#: plugins/bookmarklets/init.php:24 +msgid "" +"Drag the link below to your browser toolbar, open the feed you're interested " +"in in your browser and click on the link to subscribe to it." +msgstr "" +"Sleep de link hieronder naar uw browser's werkbalk, open de feed waar u " +"geïnteresseerd in bent in uw browser en klik op de link om u er op te " +"abonneren." + +#: plugins/bookmarklets/init.php:28 +#, php-format +msgid "Subscribe to %s in Tiny Tiny RSS?" +msgstr "Abonneren op %s in Tiny Tiny RSS?" + +#: plugins/bookmarklets/init.php:32 +msgid "Subscribe in Tiny Tiny RSS" +msgstr "Abonneren in Tiny Tiny RSS" + +#: plugins/bookmarklets/init.php:34 +msgid "Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS" +msgstr "" +"Gebruik deze bookmarklet om arbitraire pagina's met Tiny Tiny RSS te " +"publiceren" + +#: plugins/import_export/init.php:64 +msgid "Import and export" +msgstr "Import en export" + +#: plugins/import_export/init.php:66 +msgid "Article archive" +msgstr "Artikelarchief" + +#: plugins/import_export/init.php:68 +msgid "" +"You can export and import your Starred and Archived articles for safekeeping " +"or when migrating between tt-rss instances." +msgstr "" +"U kunt uw gearchiveerde of artikelen met ster exporteren en importeren om " +"veilig te bewaren wanneer u migreert tussen tt-rss instanties." + +#: plugins/import_export/init.php:71 +msgid "Export my data" +msgstr "Exporteer mijn data" + +#: plugins/import_export/init.php:87 +msgid "Import" +msgstr "Importeren" + +#: plugins/import_export/init.php:221 +msgid "Could not import: incorrect schema version." +msgstr "Kon niet importeren: onjuiste schema versie." + +#: plugins/import_export/init.php:226 +msgid "Could not import: unrecognized document format." +msgstr "Kon niet importeren: onbekend documentformaat." + +#: plugins/import_export/init.php:385 +#, php-format +msgid "Finished: %d articles processed, %d imported, %d feeds created." +msgstr "Klaar: %d artikelen afgehandeld, %d geïmporteerd, %d feeds aangemaakt." + +#: plugins/import_export/init.php:391 +msgid "Could not load XML document." +msgstr "Kon XML-document niet laden." + +#: plugins/import_export/init.php:403 +msgid "Prepare data" +msgstr "Voorbereiden data" + +#: plugins/import_export/init.php:424 +#, php-format +msgid "" +"Could not upload file. You might need to adjust upload_max_filesize\n" +"\t\t\t\tin PHP.ini (current value = %s)" +msgstr "" +"Kon bestand niet uploaden. U moet misschien de upload_max_filesize\n" +"\t\t\t\tin PHP.ini aanpassen (huidige waarde = %s)" + +#: plugins/mail/init.php:92 +msgid "From:" +msgstr "Van:" + +#: plugins/mail/init.php:101 +msgid "To:" +msgstr "Naar:" + +#: plugins/mail/init.php:114 +msgid "Subject:" +msgstr "Onderwerp:" + +#: plugins/mail/init.php:130 +msgid "Send e-mail" +msgstr "Zend e-mail" + +#: plugins/note/init.php:28 plugins/note/note.js:11 +msgid "Edit article note" +msgstr "Bewerk artikel notitie" + +#: plugins/example/init.php:38 +msgid "Example Pane" +msgstr "Voorbeeldpaneel" + +#: plugins/example/init.php:69 +msgid "Sample value" +msgstr "Voorbeeld waarde" + +#: plugins/example/init.php:75 +msgid "Set value" +msgstr "Geef waarde" + +#: plugins/identica/init.php:29 +msgid "Share on identi.ca" +msgstr "Deel op identi.ca" + +#: plugins/owncloud/init.php:35 +msgid "Owncloud" +msgstr "Owncloud" + +#: plugins/owncloud/init.php:59 +msgid "Owncloud url" +msgstr "Owncloud url" + +#: plugins/owncloud/init.php:74 +msgid "Bookmark on OwnCloud " +msgstr "Bladwijzers op OwnCloud" + +#: plugins/instances/init.php:144 +msgid "Linked" +msgstr "Gekoppeld" + +#: plugins/instances/init.php:295 +msgid "Link instance" +msgstr "Link instantie" + +#: plugins/instances/init.php:307 +msgid "" +"You can connect other instances of Tiny Tiny RSS to this one to share " +"Popular feeds. Link to this instance of Tiny Tiny RSS by using this URL:" +msgstr "" +"U kunt deze instantie verbinden met andere instanties van Tiny Tiny RSS om " +"Populaire feeds te delen. Verbindt deze instantie van Tiny Tiny RSS met " +"deze URL:" + +#: plugins/instances/init.php:317 +msgid "Last connected" +msgstr "Laatst verbonden" + +#: plugins/instances/init.php:318 +msgid "Status" +msgstr "Status" + +#: plugins/instances/init.php:319 +msgid "Stored feeds" +msgstr "Opgeslagen feeds" + +#: plugins/share/init.php:27 +msgid "Share by URL" +msgstr "Deel via URL" + +#: plugins/share/init.php:49 +msgid "You can share this article by the following unique URL:" +msgstr "U kunt dit artikel delen via de volgende unieke URL:" + +#: plugins/flattr/init.php:30 +msgid "Flattr this article." +msgstr "Flattr dit artikel." + +#: plugins/googleplus/init.php:29 +msgid "Share on Google+" +msgstr "Deel op Google+" + +#: plugins/updater/init.php:295 plugins/updater/init.php:307 +#: plugins/updater/updater.js:10 +msgid "Update Tiny Tiny RSS" +msgstr "Tiny Tiny RSS bijwerken" + +#: plugins/updater/init.php:310 +msgid "Your Tiny Tiny RSS installation is up to date." +msgstr "Uw Tiny Tiny RSS installatie is up-to-date." + +#: plugins/updater/init.php:320 +msgid "" +"Do not close this dialog until updating is finished. Backup your tt-rss " +"directory before continuing." +msgstr "" +"Sluit dit dialoogvenster niet voordat het bijwerken klaar is. Maak een back-" +"up van uw tt-rss map alvorens verder te gaan." + +#: plugins/updater/init.php:323 +msgid "Ready to update." +msgstr "Klaar voor bijwerken." + +#: plugins/updater/init.php:328 +msgid "Start update" +msgstr "Start update" + +#: plugins/tweet/init.php:29 +msgid "Share on Twitter" +msgstr "Deel op Twitter" + +#: js/feedlist.js:215 +msgid "New articles available in this feed (click to show)" +msgstr "Nieuwe artikelen beschikbaar in deze feed (klik voor weergave)" + +#: js/feedlist.js:417 js/feedlist.js:432 plugins/digest/digest.js:25 +msgid "Mark all articles in %s as read?" +msgstr "Markeer alle artikelen in %s als gelezen?" + +#: js/functions.js:91 +msgid "" +"Are you sure to report this exception to tt-rss.org? The report will include " +"your browser information. Your IP would be saved in the database." +msgstr "" +"Weet u zeker dat u deze uitzondering wilt rapporteren aan tt-rss.org? Het " +"rapport zal uw browser informatie bevatten. Uw IP-adres zal bewaard worden " +"in een database." + +#: js/functions.js:627 +msgid "Date syntax appears to be correct:" +msgstr "Data syntax lijkt correct:" + +#: js/functions.js:630 +msgid "Date syntax is incorrect." +msgstr "Data syntax is onjuist." + +#: js/functions.js:757 +msgid "Remove stored feed icon?" +msgstr "Opgeslagen feed pictogram verwijderen?" + +#: js/functions.js:789 +msgid "Please select an image file to upload." +msgstr "Selecteer aub een afbeeldingsbestand om te uploaden." + +#: js/functions.js:791 +msgid "Upload new icon for this feed?" +msgstr "Nieuw pictogram voor deze feed uploaden?" + +#: js/functions.js:808 +msgid "Please enter label caption:" +msgstr "Geeft een onderschrift voor label:" + +#: js/functions.js:813 +msgid "Can't create label: missing caption." +msgstr "Kan geen label aanmaken: onderschrift ontbreekt" + +#: js/functions.js:856 +msgid "Subscribe to Feed" +msgstr "Abonneren op feed" + +#: js/functions.js:883 +msgid "Subscribed to %s" +msgstr "Geabonneerd op %s" + +#: js/functions.js:888 +msgid "Specified URL seems to be invalid." +msgstr "Gespecificeerde URL lijkt ongeldig te zijn." + +#: js/functions.js:891 +msgid "Specified URL doesn't seem to contain any feeds." +msgstr "Gespecificeerde URL lijkt geen feeds te bevatten." + +#: js/functions.js:944 +msgid "Couldn't download the specified URL: %s" +msgstr "Kon de gespecificeerde URL: %s niet downloaden" + +#: js/functions.js:948 +msgid "You are already subscribed to this feed." +msgstr "U bent al geabonneerd op deze feed." + +#: js/functions.js:1078 +msgid "Edit rule" +msgstr "Bewerk regel" + +#: js/functions.js:1104 +msgid "Edit action" +msgstr "Bewerk actie" + +#: js/functions.js:1141 +msgid "Create Filter" +msgstr "Filter aanmaken" + +#: js/functions.js:1245 +msgid "" +"Reset subscription? Tiny Tiny RSS will try to subscribe to the notification " +"hub again on next feed update." +msgstr "" +"Abonnement opnieuw instellen? Tiny Tiny RSS zal proberen zich opnieuw op de " +"notification hub te abonneren bij de volgende feed update." + +#: js/functions.js:1266 js/tt-rss.js:369 +msgid "Unsubscribe from %s?" +msgstr "Abonnement opzeggen voor %s?" + +#: js/functions.js:1375 +msgid "Please enter category title:" +msgstr "Vul titel van categorie in aub:" + +#: js/functions.js:1406 +msgid "Generate new syndication address for this feed?" +msgstr "nieuw syndicatie-adres voor deze feed genereren?" + +#: js/functions.js:1597 js/tt-rss.js:350 js/tt-rss.js:729 +msgid "You can't edit this kind of feed." +msgstr "U kunt dit type feed niet bewerken." + +#: js/functions.js:1612 +msgid "Edit Feed" +msgstr "Bewerken feed" + +#: js/functions.js:1650 +msgid "More Feeds" +msgstr "Meer feeds" + +#: js/functions.js:1711 js/functions.js:1821 js/prefs.js:397 js/prefs.js:427 +#: js/prefs.js:459 js/prefs.js:642 js/prefs.js:662 js/prefs.js:1210 +#: js/prefs.js:1355 +msgid "No feeds are selected." +msgstr "Er zijn geen feeds geselecteerd." + +#: js/functions.js:1753 +msgid "" +"Remove selected feeds from the archive? Feeds with stored articles will not " +"be removed." +msgstr "" +"Geselecteerde feeds uit het archief verwijderen? Feeds met opgeslagen " +"artikelen zullen niet worden verwijderd." + +#: js/functions.js:1792 +msgid "Feeds with update errors" +msgstr "Feeds met update fouten" + +#: js/functions.js:1803 js/prefs.js:1192 +msgid "Remove selected feeds?" +msgstr "Geselecteerde feeds verwijderen?" + +#: js/functions.js:1904 +msgid "Help" +msgstr "Help" + +#: js/PrefFeedTree.js:47 +msgid "Edit category" +msgstr "Bewerk categorie" + +#: js/PrefFeedTree.js:54 +msgid "Remove category" +msgstr "Categorie verwijderen" + +#: js/PrefFilterTree.js:32 +msgid "Inverse" +msgstr "Omgekeerd" + +#: js/prefs.js:55 +msgid "Please enter login:" +msgstr "Geef loginID aub:" + +#: js/prefs.js:62 +msgid "Can't create user: no login specified." +msgstr "Kan geen gebruiker aanmaken: geen loginID gespecificeerd." + +#: js/prefs.js:117 +msgid "Edit Filter" +msgstr "Bewerk filter" + +#: js/prefs.js:164 +msgid "Remove filter?" +msgstr "Filter verwijderen?" + +#: js/prefs.js:279 +msgid "Remove selected labels?" +msgstr "Geselecteerde labels verwijderen?" + +#: js/prefs.js:295 js/prefs.js:1396 +msgid "No labels are selected." +msgstr "Er zijn geen labels geselecteerd." + +#: js/prefs.js:309 +msgid "" +"Remove selected users? Neither default admin nor your account will be " +"removed." +msgstr "" +"Geselecteerde gebruikers verwijderen? Noch de standaard admin gebruiker, " +"noch uw eigen account zal worden verwijderd." + +#: js/prefs.js:326 js/prefs.js:507 js/prefs.js:528 js/prefs.js:567 +msgid "No users are selected." +msgstr "Er zijn geen gebruikers geselecteerd." + +#: js/prefs.js:344 +msgid "Remove selected filters?" +msgstr "Geselecteerde filters verwijderen?" + +#: js/prefs.js:359 js/prefs.js:597 js/prefs.js:616 +msgid "No filters are selected." +msgstr "Er zijn geen filters geselecteerd." + +#: js/prefs.js:378 +msgid "Unsubscribe from selected feeds?" +msgstr "Abonnement opzeggen voor geselecteerde feeds?" + +#: js/prefs.js:412 +msgid "Please select only one feed." +msgstr "Selecteer aub slecht één feed." + +#: js/prefs.js:418 +msgid "Erase all non-starred articles in selected feed?" +msgstr "Alle artikelen zonder ster in deze feed wissen?" + +#: js/prefs.js:440 +msgid "How many days of articles to keep (0 - use default)?" +msgstr "hoeveel dagen moeten artikelen worden bewaard (0 = gebruik Standaard)?" + +#: js/prefs.js:478 +msgid "Login field cannot be blank." +msgstr "Het loginID veld kan niet leeg zijn." + +#: js/prefs.js:512 js/prefs.js:533 js/prefs.js:572 +msgid "Please select only one user." +msgstr "Selecteer aub slechts één gebruiker." + +#: js/prefs.js:537 +msgid "Reset password of selected user?" +msgstr "Wachtwoord van geselecteerde gebruiker opnieuw instellen?" + +#: js/prefs.js:602 +msgid "Please select only one filter." +msgstr "Selecteer aub slecht één filter." + +#: js/prefs.js:620 +msgid "Combine selected filters?" +msgstr "Geselecteerde filters combineren?" + +#: js/prefs.js:684 +msgid "Edit Multiple Feeds" +msgstr "Bewerk meervoudige feeds" + +#: js/prefs.js:708 +msgid "Save changes to selected feeds?" +msgstr "Veranderingen aan geselecteerde feeds opslaan?" + +#: js/prefs.js:797 +msgid "OPML Import" +msgstr "OPML import" + +#: js/prefs.js:824 +msgid "Please choose an OPML file first." +msgstr "kies eerst een OPML-bestand aub." + +#: js/prefs.js:980 +msgid "Reset to defaults?" +msgstr "Terugzetten naar de standaardwaarden?" + +#: js/prefs.js:1099 +msgid "" +"Remove category %s? Any nested feeds would be placed into Uncategorized." +msgstr "" +"Categorie %s verwijderen? elke genestelde feed zal in de rubriek " +"'Ongecategoriseerd' worden geplaatst." + +#: js/prefs.js:1126 +msgid "Remove selected categories?" +msgstr "Geselecteerde categorieën verwijderen?" + +#: js/prefs.js:1142 +msgid "No categories are selected." +msgstr "Geen categorieën geselecteerd." + +#: js/prefs.js:1150 +msgid "Category title:" +msgstr "Categorie titel:" + +#: js/prefs.js:1181 +msgid "Feeds without recent updates" +msgstr "Feeds zonder recente updates" + +#: js/prefs.js:1230 +msgid "Replace current OPML publishing address with a new one?" +msgstr "huidig OPML publicatieadres vervangen door een nieuwe?" + +#: js/prefs.js:1339 +msgid "Rescore articles in selected feeds?" +msgstr "Artikelen in geselecteerde feeds opnieuw een score geven?" + +#: js/prefs.js:1362 +msgid "Rescore all articles? This operation may take a lot of time." +msgstr "" +"Alle artikelen opnieuw een score geven? Dit kan veel tjid in beslag nemen." + +#: js/prefs.js:1382 +msgid "Reset selected labels to default colors?" +msgstr "Geselecteerd label naar de standaard kleur terugzetten?" + +#: js/prefs.js:1419 +msgid "Settings Profiles" +msgstr "Instellingsprofielen" + +#: js/prefs.js:1428 +msgid "" +"Remove selected profiles? Active and default profiles will not be removed." +msgstr "" +"Geselecteerde profielen verwijderen? Actieve en standaard profielen zullen " +"niet worden verwijderd." + +#: js/prefs.js:1446 +msgid "No profiles are selected." +msgstr "Er zijn geen profielen geselecteerd." + +#: js/prefs.js:1454 js/prefs.js:1507 +msgid "Activate selected profile?" +msgstr "Geselecteerd profiel activeren?" + +#: js/prefs.js:1470 js/prefs.js:1523 +msgid "Please choose a profile to activate." +msgstr "Kies een te activeren profiel aub." + +#: js/prefs.js:1531 +msgid "This will invalidate all previously generated feed URLs. Continue?" +msgstr "Dit zal alle eerder gegenereerde feed-URL's ongeldig maken. Doorgaan?" + +#: js/prefs.js:1550 +msgid "This will invalidate all previously shared article URLs. Continue?" +msgstr "Dit zal all eerder gedeelde artikel-URL's ongeldig maken. Doorgaan?" + +#: js/prefs.js:1648 +msgid "Label Editor" +msgstr "Label editor" + +#: js/prefs.js:1711 +msgid "" +"This will clear your stored authentication information for Twitter. Continue?" +msgstr "" +"Dit zal uw opgeslagen authenticatie informatie voor Twitter verwijderen. " +"Doorgaan?" + +#: js/prefs.js:1791 +msgid "Subscribing to feeds..." +msgstr "Abonneren op feeds..." + +#: js/prefs.js:1828 +msgid "Clear stored data for this plugin?" +msgstr "Wis opgeslagen data voor deze plug-in?" + +#: js/tt-rss.js:120 +msgid "Mark all articles as read?" +msgstr "Markeer alle artikelen als gelezen?" + +#: js/tt-rss.js:358 +msgid "You can't unsubscribe from the category." +msgstr "U kunt het abonnementen niet opzeggen in deze categorie." + +#: js/tt-rss.js:363 js/tt-rss.js:513 +msgid "Please select some feed first." +msgstr "Selecteer aub eerst een feed." + +#: js/tt-rss.js:508 +msgid "You can't rescore this kind of feed." +msgstr "U kunt dit type feed geen andere score geven." + +#: js/tt-rss.js:518 +msgid "Rescore articles in %s?" +msgstr "Artikelen in %s opnieuw een score geven?" + +#: js/tt-rss.js:688 +msgid "Please enable mail plugin first." +msgstr "Eerst de e-mail plug-in inschakelen aub." + +#: js/tt-rss.js:850 +msgid "New version available!" +msgstr "Nieuwe versie beschikbaar!" + +#: js/viewfeed.js:104 +msgid "Cancel search" +msgstr "Zoeken annuleren" + +#: js/viewfeed.js:437 plugins/digest/digest.js:257 +#: plugins/digest/digest.js:694 +msgid "Unstar article" +msgstr "Ster weghalen bij artikel" + +#: js/viewfeed.js:442 plugins/digest/digest.js:259 +#: plugins/digest/digest.js:698 +msgid "Star article" +msgstr "Geef artikel een ster" + +#: js/viewfeed.js:475 plugins/digest/digest.js:262 +#: plugins/digest/digest.js:729 +msgid "Unpublish article" +msgstr "Ongepubliceerd artikel" + +#: js/viewfeed.js:688 js/viewfeed.js:716 js/viewfeed.js:743 js/viewfeed.js:805 +#: js/viewfeed.js:837 js/viewfeed.js:974 js/viewfeed.js:1017 +#: js/viewfeed.js:1067 js/viewfeed.js:2005 plugins/mailto/init.js:7 +#: plugins/mail/mail.js:7 +msgid "No articles are selected." +msgstr "Geen artikelen geselecteerd." + +#: js/viewfeed.js:954 +msgid "Mark all visible articles in %s as read?" +msgstr "Markeer alle zichtbare artikelen in %s als gelezen?" + +#: js/viewfeed.js:982 +msgid "Delete %d selected articles in %s?" +msgstr "Verwijder %d geselecteerde artikelen in %s?" + +#: js/viewfeed.js:984 +msgid "Delete %d selected articles?" +msgstr "Verwijder %d geselecteerde artikelen?" + +#: js/viewfeed.js:1026 +msgid "Archive %d selected articles in %s?" +msgstr "%d geselecteerd artikelen archiveren in %s?" + +#: js/viewfeed.js:1029 +msgid "Move %d archived articles back?" +msgstr "%d gearchiveerde artikelen terugzetten?" + +#: js/viewfeed.js:1073 +msgid "Mark %d selected articles in %s as read?" +msgstr "Markeer %d geselecteerde artikelen in %s als gelezen?" + +#: js/viewfeed.js:1097 +msgid "Edit article Tags" +msgstr "Bewerken artikel tags" + +#: js/viewfeed.js:1283 +msgid "No article is selected." +msgstr "Geen artikel geselecteerd." + +#: js/viewfeed.js:1318 +msgid "No articles found to mark" +msgstr "Geen artikelen gevonden om te markeren" + +#: js/viewfeed.js:1320 +msgid "Mark %d article(s) as read?" +msgstr "Markeer %d artikel(en) als gelezen?" + +#: js/viewfeed.js:1822 +msgid "Open original article" +msgstr "Open origineel artikel" + +#: js/viewfeed.js:1892 +msgid "Remove label" +msgstr "Label verwijderen" + +#: js/viewfeed.js:1916 +msgid "Playing..." +msgstr "aan 't afspelen..." + +#: js/viewfeed.js:1917 +msgid "Click to pause" +msgstr "Klik voor pauze" + +#: js/viewfeed.js:1974 +msgid "Please enter new score for selected articles:" +msgstr "Geef aub een nieuwe score voor de geselecteerde artikelen:" + +#: js/viewfeed.js:2016 +msgid "Please enter new score for this article:" +msgstr "Geef aub een nieuwe score voor dit artikel:" + +#: plugins/digest/digest.js:71 +msgid "Mark %d displayed articles as read?" +msgstr "Markeer %d getoonde artikelen als gelezen?" + +#: plugins/digest/digest.js:289 +msgid "Error: unable to load article." +msgstr "Fout: kan artikel niet laden." + +#: plugins/digest/digest.js:447 +msgid "Click to expand article." +msgstr "Klik om artikel uit te klappen." + +#: plugins/digest/digest.js:518 +msgid "%d more..." +msgstr "%d meer…" + +#: plugins/digest/digest.js:525 +msgid "No unread feeds." +msgstr "Geen ongelezen feeds." + +#: plugins/digest/digest.js:632 +msgid "Load more..." +msgstr "Laad meer..." + +#: plugins/mailto/init.js:21 plugins/mail/mail.js:21 +msgid "Forward article by email" +msgstr "Artikel doorsturen per e-mail" + +#: plugins/import_export/import_export.js:13 +msgid "Export Data" +msgstr "Data exporteren" + +#: plugins/import_export/import_export.js:40 +msgid "" +"Finished, exported %d articles. You can download the data <a " +"class='visibleLink' href='%u'>here</a>." +msgstr "" +"Klaar met exporteren van %d artikelen. U kunt de data <a class='visibleLink' " +"href='%u'>hier</a> downloaden. " + +#: plugins/import_export/import_export.js:93 +msgid "Data Import" +msgstr "Data import" + +#: plugins/import_export/import_export.js:112 +msgid "Please choose the file first." +msgstr "Kies het bestand eerst aub." + +#: plugins/instances/instances.js:10 +msgid "Link Instance" +msgstr "Link Instantie" + +#: plugins/instances/instances.js:73 +msgid "Edit Instance" +msgstr "Bewerk instantie" + +#: plugins/instances/instances.js:122 +msgid "Remove selected instances?" +msgstr "Geselecteerde instanties verwijderen?" + +#: plugins/instances/instances.js:139 plugins/instances/instances.js:151 +msgid "No instances are selected." +msgstr "Er zijn geen instanties geselecteerd." + +#: plugins/instances/instances.js:156 +msgid "Please select only one instance." +msgstr "Selecteer aub slechts één instantie." + +#: plugins/share/share.js:10 +msgid "Share article by URL" +msgstr "Deel artikel via URL" + +#: plugins/updater/updater.js:58 +msgid "" +"Live updating is considered experimental. Backup your tt-rss directory " +"before continuing. Please type 'yes' to continue." +msgstr "" +"Live updaten is nog experimenteel. Maak een back-up van uw tt-rss map " +"alvorens door te gaan. Typ 'ja' om door te gaan. " @@ -16,7 +16,7 @@ $op = $_REQUEST['op']; if ($op == "publish"){ - $key = db_escape_string($_REQUEST["key"]); + $key = db_escape_string($link, $_REQUEST["key"]); $result = db_query($link, "SELECT owner_uid FROM ttrss_access_keys WHERE diff --git a/plugins/auth_internal/init.php b/plugins/auth_internal/init.php index cf6c13780..e910e52aa 100644 --- a/plugins/auth_internal/init.php +++ b/plugins/auth_internal/init.php @@ -22,8 +22,8 @@ class Auth_Internal extends Plugin implements IAuthModule { $pwd_hash1 = encrypt_password($password); $pwd_hash2 = encrypt_password($password, $login); - $login = db_escape_string($login); - $otp = db_escape_string($_REQUEST["otp"]); + $login = db_escape_string($this->link, $login); + $otp = db_escape_string($this->link, $_REQUEST["otp"]); if (get_schema_version($this->link) > 96) { if (!defined('AUTH_DISABLE_OTP') || !AUTH_DISABLE_OTP) { @@ -140,7 +140,7 @@ class Auth_Internal extends Plugin implements IAuthModule { } function check_password($owner_uid, $password) { - $owner_uid = db_escape_string($owner_uid); + $owner_uid = db_escape_string($this->link, $owner_uid); $result = db_query($this->link, "SELECT salt,login FROM ttrss_users WHERE id = '$owner_uid'"); @@ -169,7 +169,7 @@ class Auth_Internal extends Plugin implements IAuthModule { } function change_password($owner_uid, $old_password, $new_password) { - $owner_uid = db_escape_string($owner_uid); + $owner_uid = db_escape_string($this->link, $owner_uid); if ($this->check_password($owner_uid, $old_password)) { diff --git a/plugins/auth_remote/init.php b/plugins/auth_remote/init.php index 7c8d835f8..7e4638fb2 100644 --- a/plugins/auth_remote/init.php +++ b/plugins/auth_remote/init.php @@ -21,7 +21,7 @@ class Auth_Remote extends Plugin implements IAuthModule { } function get_login_by_ssl_certificate() { - $cert_serial = db_escape_string(get_ssl_certificate_id()); + $cert_serial = db_escape_string($this->link, get_ssl_certificate_id()); if ($cert_serial) { $result = db_query($this->link, "SELECT login FROM ttrss_user_prefs, ttrss_users @@ -29,7 +29,7 @@ class Auth_Remote extends Plugin implements IAuthModule { owner_uid = ttrss_users.id"); if (db_num_rows($result) != 0) { - return db_escape_string(db_fetch_result($result, 0, "login")); + return db_escape_string($this->link, db_fetch_result($result, 0, "login")); } } @@ -38,10 +38,10 @@ class Auth_Remote extends Plugin implements IAuthModule { function authenticate($login, $password) { - $try_login = db_escape_string($_SERVER["REMOTE_USER"]); + $try_login = db_escape_string($this->link, $_SERVER["REMOTE_USER"]); // php-cgi - if (!$try_login) $try_login = db_escape_string($_SERVER["REDIRECT_REMOTE_USER"]); + if (!$try_login) $try_login = db_escape_string($this->link, $_SERVER["REDIRECT_REMOTE_USER"]); if (!$try_login) $try_login = $this->get_login_by_ssl_certificate(); # if (!$try_login) $try_login = "test_qqq"; @@ -60,14 +60,14 @@ class Auth_Remote extends Plugin implements IAuthModule { // update user name $fullname = $_SERVER['HTTP_USER_NAME'] ? $_SERVER['HTTP_USER_NAME'] : $_SERVER['AUTHENTICATE_CN']; if ($fullname){ - $fullname = db_escape_string($fullname); + $fullname = db_escape_string($this->link, $fullname); db_query($this->link, "UPDATE ttrss_users SET full_name = '$fullname' WHERE id = " . $user_id); } // update user mail $email = $_SERVER['HTTP_USER_MAIL'] ? $_SERVER['HTTP_USER_MAIL'] : $_SERVER['AUTHENTICATE_MAIL']; if ($email){ - $email = db_escape_string($email); + $email = db_escape_string($this->link, $email); db_query($this->link, "UPDATE ttrss_users SET email = '$email' WHERE id = " . $user_id); } diff --git a/plugins/digest/init.php b/plugins/digest/init.php index 2feabe3b4..2fc98b0ec 100644 --- a/plugins/digest/init.php +++ b/plugins/digest/init.php @@ -47,7 +47,7 @@ class Digest extends Plugin implements IHandler { } function digestgetcontents() { - $article_id = db_escape_string($_REQUEST['article_id']); + $article_id = db_escape_string($this->link, $_REQUEST['article_id']); $result = db_query($this->link, "SELECT content,title,link,marked,published FROM ttrss_entries, ttrss_user_entries @@ -67,9 +67,9 @@ class Digest extends Plugin implements IHandler { } function digestupdate() { - $feed_id = db_escape_string($_REQUEST['feed_id']); - $offset = db_escape_string($_REQUEST['offset']); - $seq = db_escape_string($_REQUEST['seq']); + $feed_id = db_escape_string($this->link, $_REQUEST['feed_id']); + $offset = db_escape_string($this->link, $_REQUEST['offset']); + $seq = db_escape_string($this->link, $_REQUEST['seq']); if (!$feed_id) $feed_id = -4; if (!$offset) $offset = 0; diff --git a/plugins/embed_original/init.php b/plugins/embed_original/init.php index b28b2f8ee..0e0eb9603 100644 --- a/plugins/embed_original/init.php +++ b/plugins/embed_original/init.php @@ -36,7 +36,7 @@ class Embed_Original extends Plugin { } function getUrl() { - $id = db_escape_string($_REQUEST['id']); + $id = db_escape_string($this->link, $_REQUEST['id']); $result = db_query($this->link, "SELECT link FROM ttrss_entries, ttrss_user_entries diff --git a/plugins/example/init.php b/plugins/example/init.php index f3788ae8c..926a57da8 100644 --- a/plugins/example/init.php +++ b/plugins/example/init.php @@ -21,7 +21,7 @@ class Example extends Plugin { } function save() { - $example_value = db_escape_string($_POST["example_value"]); + $example_value = db_escape_string($this->link, $_POST["example_value"]); $this->host->set($this, "example", $example_value); diff --git a/plugins/googleplus/init.php b/plugins/googleplus/init.php index 7ae6d1456..6045d2df6 100644 --- a/plugins/googleplus/init.php +++ b/plugins/googleplus/init.php @@ -32,7 +32,7 @@ class GooglePlus extends Plugin { } function getInfo() { - $id = db_escape_string($_REQUEST['id']); + $id = db_escape_string($this->link, $_REQUEST['id']); $result = db_query($this->link, "SELECT title, link FROM ttrss_entries, ttrss_user_entries diff --git a/plugins/googlereaderkeys/init.php b/plugins/googlereaderkeys/init.php index 92bf626e6..afdc58ec7 100644 --- a/plugins/googlereaderkeys/init.php +++ b/plugins/googlereaderkeys/init.php @@ -25,6 +25,7 @@ class GoogleReaderKeys extends Plugin { $hotkeys["*p"] = "prev_feed"; $hotkeys["v"] = "open_in_new_window"; $hotkeys["r"] = "feed_refresh"; + $hotkeys["m"] = "toggle_unread"; $hotkeys["(32)|space"] = "next_article"; $hotkeys["(38)|up"] = "article_scroll_up"; $hotkeys["(40)|down"] = "article_scroll_down"; diff --git a/plugins/identica/init.php b/plugins/identica/init.php index c9aa4118e..8e0ad4b9a 100644 --- a/plugins/identica/init.php +++ b/plugins/identica/init.php @@ -32,7 +32,7 @@ class Identica extends Plugin { } function getInfo() { - $id = db_escape_string($_REQUEST['id']); + $id = db_escape_string($this->link, $_REQUEST['id']); $result = db_query($this->link, "SELECT title, link FROM ttrss_entries, ttrss_user_entries diff --git a/plugins/import_export/init.php b/plugins/import_export/init.php index de21dbf32..61b9a439f 100644 --- a/plugins/import_export/init.php +++ b/plugins/import_export/init.php @@ -49,7 +49,7 @@ class Import_Export extends Plugin implements IHandler { } function save() { - $example_value = db_escape_string($_POST["example_value"]); + $example_value = db_escape_string($this->link, $_POST["example_value"]); echo "Value set to $example_value (not really)"; } @@ -122,7 +122,7 @@ class Import_Export extends Plugin implements IHandler { } function exportrun() { - $offset = (int) db_escape_string($_REQUEST['offset']); + $offset = (int) db_escape_string($this->link, $_REQUEST['offset']); $exported = 0; $limit = 250; @@ -238,7 +238,7 @@ class Import_Export extends Plugin implements IHandler { foreach ($article_node->childNodes as $child) { if ($child->nodeName != 'label_cache') - $article[$child->nodeName] = db_escape_string($child->nodeValue); + $article[$child->nodeName] = db_escape_string($this->link, $child->nodeValue); else $article[$child->nodeName] = $child->nodeValue; } @@ -346,7 +346,7 @@ class Import_Export extends Plugin implements IHandler { $score = (int) $article['score']; $tag_cache = $article['tag_cache']; - $label_cache = db_escape_string($article['label_cache']); + $label_cache = db_escape_string($this->link, $article['label_cache']); $note = $article['note']; //print "Importing " . $article['title'] . "<br/>"; diff --git a/plugins/instances/init.php b/plugins/instances/init.php index 6c0f89e1c..6e8d43e9b 100644 --- a/plugins/instances/init.php +++ b/plugins/instances/init.php @@ -92,10 +92,10 @@ class Instances extends Plugin implements IHandler { WHERE instance_id = '$id'"); foreach ($feeds['feeds'] as $feed) { - $feed_url = db_escape_string($feed['feed_url']); - $title = db_escape_string($feed['title']); - $subscribers = db_escape_string($feed['subscribers']); - $site_url = db_escape_string($feed['site_url']); + $feed_url = db_escape_string($this->link, $feed['feed_url']); + $title = db_escape_string($this->link, $feed['title']); + $subscribers = db_escape_string($this->link, $feed['subscribers']); + $site_url = db_escape_string($this->link, $feed['site_url']); db_query($link, "INSERT INTO ttrss_linked_feeds (feed_url, site_url, title, subscribers, instance_id, created, updated) @@ -167,16 +167,16 @@ class Instances extends Plugin implements IHandler { } function remove() { - $ids = db_escape_string($_REQUEST['ids']); + $ids = db_escape_string($this->link, $_REQUEST['ids']); db_query($this->link, "DELETE FROM ttrss_linked_instances WHERE id IN ($ids)"); } function add() { - $id = db_escape_string($_REQUEST["id"]); - $access_url = db_escape_string($_REQUEST["access_url"]); - $access_key = db_escape_string($_REQUEST["access_key"]); + $id = db_escape_string($this->link, $_REQUEST["id"]); + $access_url = db_escape_string($this->link, $_REQUEST["access_url"]); + $access_key = db_escape_string($this->link, $_REQUEST["access_key"]); db_query($this->link, "BEGIN"); @@ -195,7 +195,7 @@ class Instances extends Plugin implements IHandler { } function edit() { - $id = db_escape_string($_REQUEST["id"]); + $id = db_escape_string($this->link, $_REQUEST["id"]); $result = db_query($this->link, "SELECT * FROM ttrss_linked_instances WHERE id = '$id'"); @@ -253,9 +253,9 @@ class Instances extends Plugin implements IHandler { } function editSave() { - $id = db_escape_string($_REQUEST["id"]); - $access_url = db_escape_string($_REQUEST["access_url"]); - $access_key = db_escape_string($_REQUEST["access_key"]); + $id = db_escape_string($this->link, $_REQUEST["id"]); + $access_url = db_escape_string($this->link, $_REQUEST["access_url"]); + $access_key = db_escape_string($this->link, $_REQUEST["access_key"]); db_query($this->link, "UPDATE ttrss_linked_instances SET access_key = '$access_key', access_url = '$access_url', @@ -277,7 +277,7 @@ class Instances extends Plugin implements IHandler { print "<div id=\"pref-instance-toolbar\" dojoType=\"dijit.Toolbar\">"; - $sort = db_escape_string($_REQUEST["sort"]); + $sort = db_escape_string($this->link, $_REQUEST["sort"]); if (!$sort || $sort == "undefined") { $sort = "access_url"; @@ -364,7 +364,7 @@ class Instances extends Plugin implements IHandler { function fbexport() { - $access_key = db_escape_string($_POST["key"]); + $access_key = db_escape_string($this->link, $_POST["key"]); // TODO: rate limit checking using last_connected $result = db_query($this->link, "SELECT id FROM ttrss_linked_instances diff --git a/plugins/mail/init.php b/plugins/mail/init.php index 9d92781d7..49de96afd 100644 --- a/plugins/mail/init.php +++ b/plugins/mail/init.php @@ -30,7 +30,7 @@ class Mail extends Plugin { function emailArticle() { - $param = db_escape_string($_REQUEST['param']); + $param = db_escape_string($this->link, $_REQUEST['param']); $secretkey = sha1(uniqid(rand(), true)); @@ -164,7 +164,7 @@ class Mail extends Plugin { if (!$rc) { $reply['error'] = $mail->ErrorInfo; } else { - save_email_address($this->link, db_escape_string($destination)); + save_email_address($this->link, db_escape_string($this->link, $destination)); $reply['message'] = "UPDATE_COUNTERS"; } @@ -176,7 +176,7 @@ class Mail extends Plugin { } function completeEmails() { - $search = db_escape_string($_REQUEST["search"]); + $search = db_escape_string($this->link, $_REQUEST["search"]); print "<ul>"; diff --git a/plugins/mailto/init.php b/plugins/mailto/init.php index 8d175ae1c..e140bbea7 100644 --- a/plugins/mailto/init.php +++ b/plugins/mailto/init.php @@ -30,7 +30,7 @@ class MailTo extends Plugin { function emailArticle() { - $param = db_escape_string($_REQUEST['param']); + $param = db_escape_string($this->link, $_REQUEST['param']); require_once "lib/MiniTemplator.class.php"; diff --git a/plugins/note/init.php b/plugins/note/init.php index 83db94248..7e8cfb57f 100644 --- a/plugins/note/init.php +++ b/plugins/note/init.php @@ -29,7 +29,7 @@ class Note extends Plugin { } function edit() { - $param = db_escape_string($_REQUEST['param']); + $param = db_escape_string($this->link, $_REQUEST['param']); $result = db_query($this->link, "SELECT note FROM ttrss_user_entries WHERE ref_id = '$param' AND owner_uid = " . $_SESSION['uid']); @@ -58,8 +58,8 @@ class Note extends Plugin { } function setNote() { - $id = db_escape_string($_REQUEST["id"]); - $note = trim(strip_tags(db_escape_string($_REQUEST["note"]))); + $id = db_escape_string($this->link, $_REQUEST["id"]); + $note = trim(strip_tags(db_escape_string($this->link, $_REQUEST["note"]))); db_query($this->link, "UPDATE ttrss_user_entries SET note = '$note' WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]); diff --git a/plugins/nsfw/init.php b/plugins/nsfw/init.php index 9aadde4dd..247d56a1e 100644 --- a/plugins/nsfw/init.php +++ b/plugins/nsfw/init.php @@ -91,7 +91,7 @@ class NSFW extends Plugin { } function save() { - $tags = explode(",", db_escape_string($_POST["tags"])); + $tags = explode(",", db_escape_string($this->link, $_POST["tags"])); $tags = array_map("trim", $tags); $tags = array_map("mb_strtolower", $tags); $tags = join(", ", $tags); diff --git a/plugins/owncloud/init.php b/plugins/owncloud/init.php index 48377e9d9..5d215b386 100644 --- a/plugins/owncloud/init.php +++ b/plugins/owncloud/init.php @@ -20,7 +20,7 @@ class OwnCloud extends Plugin { } function save() { - $owncloud_url = db_escape_string($_POST["owncloud_url"]); + $owncloud_url = db_escape_string($this->link, $_POST["owncloud_url"]); $this->host->set($this, "owncloud", $owncloud_url); echo "Value set to $owncloud_url"; } @@ -75,7 +75,7 @@ class OwnCloud extends Plugin { } function getOwnCloud() { - $id = db_escape_string($_REQUEST['id']); + $id = db_escape_string($this->link, $_REQUEST['id']); $result = db_query($this->link, "SELECT title, link FROM ttrss_entries, ttrss_user_entries diff --git a/plugins/pinterest/init.php b/plugins/pinterest/init.php index 96c730e84..11fe64eb5 100644 --- a/plugins/pinterest/init.php +++ b/plugins/pinterest/init.php @@ -32,7 +32,7 @@ class Pinterest extends Plugin { } function getInfo() { - $id = db_escape_string($_REQUEST['id']); + $id = db_escape_string($this->link, $_REQUEST['id']); $result = db_query($this->link, "SELECT title, link FROM ttrss_entries, ttrss_user_entries diff --git a/plugins/pocket/init.php b/plugins/pocket/init.php index 688a6258d..e96d08001 100644 --- a/plugins/pocket/init.php +++ b/plugins/pocket/init.php @@ -33,7 +33,7 @@ class Pocket extends Plugin { } function getInfo() { - $id = db_escape_string($_REQUEST['id']); + $id = db_escape_string($this->link, $_REQUEST['id']); $result = db_query($this->link, "SELECT title, link FROM ttrss_entries, ttrss_user_entries diff --git a/plugins/share/init.php b/plugins/share/init.php index f52d2a4fa..a3dc35224 100644 --- a/plugins/share/init.php +++ b/plugins/share/init.php @@ -28,7 +28,7 @@ class Share extends Plugin { } function shareArticle() { - $param = db_escape_string($_REQUEST['param']); + $param = db_escape_string($this->link, $_REQUEST['param']); $result = db_query($this->link, "SELECT uuid, ref_id FROM ttrss_user_entries WHERE int_id = '$param' AND owner_uid = " . $_SESSION['uid']); @@ -41,7 +41,7 @@ class Share extends Plugin { $ref_id = db_fetch_result($result, 0, "ref_id"); if (!$uuid) { - $uuid = db_escape_string(sha1(uniqid(rand(), true))); + $uuid = db_escape_string($this->link, sha1(uniqid(rand(), true))); db_query($this->link, "UPDATE ttrss_user_entries SET uuid = '$uuid' WHERE int_id = '$param' AND owner_uid = " . $_SESSION['uid']); } diff --git a/plugins/tweet/init.php b/plugins/tweet/init.php index 2d20c7187..bbcf7836c 100644 --- a/plugins/tweet/init.php +++ b/plugins/tweet/init.php @@ -32,7 +32,7 @@ class Tweet extends Plugin { } function getInfo() { - $id = db_escape_string($_REQUEST['id']); + $id = db_escape_string($this->link, $_REQUEST['id']); $result = db_query($this->link, "SELECT title, link FROM ttrss_entries, ttrss_user_entries @@ -23,7 +23,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> - <title>Tiny Tiny RSS : <?php echo __("Preferences") ?></title> + <title><?php echo get_site_title() ?> : <?php echo __("Preferences") ?></title> <?php echo stylesheet_tag("lib/dijit/themes/claro/claro.css"); ?> <?php echo stylesheet_tag("tt-rss.css"); ?> diff --git a/register.php b/register.php index 8c9869a52..ce1b1ed51 100644 --- a/register.php +++ b/register.php @@ -27,7 +27,7 @@ print '<?xml version="1.0" encoding="utf-8"?>'; print "<feed xmlns=\"http://www.w3.org/2005/Atom\"> <id>".htmlspecialchars(SELF_URL_PATH . "/register.php")."</id> - <title>Tiny Tiny RSS registration slots</title> + <title><?php echo get_site_title() ?> registration slots</title> <link rel=\"self\" href=\"".htmlspecialchars(SELF_URL_PATH . "/register.php?format=feed")."\"/> <link rel=\"alternate\" href=\"".htmlspecialchars(SELF_URL_PATH)."\"/>"; @@ -74,7 +74,7 @@ if ($action == "check") { header("Content-Type: application/xml"); - $login = trim(db_escape_string($_REQUEST['login'])); + $login = trim(db_escape_string($link, $_REQUEST['login'])); $result = db_query($link, "SELECT id FROM ttrss_users WHERE LOWER(login) = LOWER('$login')"); @@ -242,9 +242,9 @@ <?php } else if ($action == "do_register") { ?> <?php - $login = mb_strtolower(trim(db_escape_string($_REQUEST["login"]))); - $email = trim(db_escape_string($_REQUEST["email"])); - $test = trim(db_escape_string($_REQUEST["turing_test"])); + $login = mb_strtolower(trim(db_escape_string($link, $_REQUEST["login"]))); + $email = trim(db_escape_string($link, $_REQUEST["email"])); + $test = trim(db_escape_string($link, $_REQUEST["turing_test"])); if (!$login || !$email || !$test) { print_error(__("Your registration information is incomplete.")); diff --git a/templates/resetpass_template.txt b/templates/resetpass_template.txt index dd96f2c92..c262f9a77 100644 --- a/templates/resetpass_template.txt +++ b/templates/resetpass_template.txt @@ -1,7 +1,7 @@ <!-- $BeginBlock message --> Hello, ${LOGIN}. -Your password for this Tiny Tiny RSS installation has been reset by an administrator. +Your password for this Tiny Tiny RSS installation has been reset. Your new password is ${NEWPASS}, please remember it for later reference. diff --git a/tt-rss.css b/tt-rss.css index 9fc52b209..ff7134f11 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -1198,3 +1198,8 @@ div.postContent p { div.postContent iframe { min-width : 50%; } + +div.postHeader span.author { + color : gray; + font-size : 11px; +} diff --git a/utility.css b/utility.css index de0042a77..b520a49bd 100644 --- a/utility.css +++ b/utility.css @@ -182,3 +182,25 @@ div.autocomplete ul li { cursor : pointer; } +fieldset { + border-width : 0px; + padding : 0px 0px 5px 0px; + margin : 0px; +} + +fieldset input { + font-family : sans-serif; + font-size : medium; + border-spacing : 2px; + border : 1px solid #b5bcc7; + padding : 2px; +} + +fieldset label { + width : 120px; + margin-right : 20px; + display : inline-block; + text-align : right; + color : gray; +} + |