// n.style.backgroundColor = "#ffcccc";
// n.style.color = "black";
// n.style.borderColor = "#ff0000";
+ msg = "<img src='images/sign_excl.png'> " + msg;
} else {
n.className = "notify";
// n.style.backgroundColor = "#fff7d5";
// n.style.borderColor = "#d7c47a";
// n.style.color = "black";
+ msg = "<img src='images/sign_info.png'> " + msg;
}
// msg = "<img src='images/live_com_loading.gif'> " + msg;
}
function isValidURL(s) {
- return s.match("http://") != null || s.match("https://") != null;
+ return s.match("http://") != null || s.match("https://") != null || s.match("feed://") != null;
}
function qafAdd() {
if (version_compare(VERSION, $latest_version) == -1) {
if ($brief_fmt) {
- return "<div class=\"notice\"><a href=\"javascript:showBlockElement('milestoneDetails')\">
+ return format_notice("<a href=\"javascript:showBlockElement('milestoneDetails')\">
New version of Tiny-Tiny RSS ($latest_version) is available (click for details)</a>
- <div id=\"milestoneDetails\">$content</div></div>";
+ <div id=\"milestoneDetails\">$content</div>");
} else {
return "New version of Tiny-Tiny RSS ($latest_version) is available:
<div class='milestoneDetails'>$content</div>
header("Pragma: no-cache"); // HTTP/1.0
}
+ function format_warning($msg) {
+ return "<div class=\"warning\">
+ <img src=\"images/sign_excl.png\">$msg</div>";
+ }
+
+ function format_notice($msg) {
+ return "<div class=\"notice\">
+ <img src=\"images/sign_info.png\">$msg</div>";
+ }
+
?>
-<h1>Help for SQL expressions</h1>
+<h1>Labels and SQL Expressions</h1>
-<h2>Description</h2>
-
-<p>The «SQL expression» is added to WHERE clause of
- view feed query. You can match on ttrss_entries table fields
- and even use subselect to query additional information. This
- functionality is considered to be advanced and requires basic
- understanding of SQL.</p>
+<p>Labels are generated by using SQL expressions. The «SQL expression» is added to WHERE clause of view feed query. You can match on ttrss_entries table fields and even use subselect to query additional information. This functionality is considered to be advanced and requires some understanding of SQL.</p>
<h2>Examples</h2>
--- /dev/null
+<h1>Content filters</h1>
+
+<p>TT-RSS has support for filtering (or processing) articles. Filtering is done once, when new article is imported to the database from the newsfeed, specified field is matched against regular expression and some action is taken. Regular expression matching is case-insensitive.</p>
+
+<p>Supported actions: filter (do not import) article, mark article as read, set starred, assign tag(s). Filters can be defined globally and for some specific feed.</p>
+
+<p>Multiple and inverse matching are supported. All matching filters are considered when article is being imported and all actions executed in sequence. Inverse matching reverts matching result, e.g. filter matching XYZZY in title with inverse flag will match all articles, except those containing string XYZZY in title.</p>
+
+<p>See <a target="_new" href="http://tt-rss.spb.ru/trac/wiki/ContentFilters">this page</a> for additional information on filtering.</p>
+
}
if (count($subscribed) > 0) {
- print "<div class=\"notice\">";
- print "<b>Subscribed to feeds:</b>";
- print "<ul class=\"nomarks\">";
+ $msg = "<b>Subscribed to feeds:</b>".
+ "<ul class=\"nomarks\">";
+
foreach ($subscribed as $title) {
- print "<li>$title</li>";
+ $msg .= "<li>$title</li>";
}
- print "</ul>";
- print "</div>";
+ $msg .= "</ul>";
+
+ print format_notice($msg);
}
}
}
if (subscribe_to_feed($link, $feed_url, $cat_id)) {
- print "Subscribed to <b>$feed_url</b>.";
+ print format_notice("Subscribed to <b>$feed_url</b>.");
} else {
- print "<div class=\"warning\">
- Already subscribed to <b>$feed_url</b>.
- </div>";
+ print format_warning("Already subscribed to <b>$feed_url</b>.");
}
if ($p_from != 'tt-rss') {
} else {
- print "<div class=\"warning\">
- Category <b>$feed_cat</b> already exists in the database.
- </div>";
+ print format_warning("Category <b>$feed_cat</b> already exists in the database.");
}
}
WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"]);
} else {
- print "<div class=\"warning\">
- Unable to delete non empty feed categories.</div>";
+ print format_warning("Unable to delete non empty feed categories.");
}
$filter_types[$line["id"]] = $line["description"];
}
+ print "<a class='helpLinkPic' href=\"javascript:displayHelpInfobox(2)\">
+ <img src='images/sign_quest.png'></a>";
+
print "<input type=\"submit\"
class=\"button\"
onclick=\"return displayDlg('quickAddFilter', false)\"
print "</p>";
- print "<div class=\"insensitive\" style=\"float : right\">See
- <a target=\"_new\" href=\"http://tt-rss.spb.ru/trac/wiki/ContentFilters\">this page</a>
- for additional information on filtering</div>";
/* print "<div class=\"insensitive\" style=\"float : right\">
First matching filter is used, filtering is performed
$sort = "description";
}
+ print "<a class='helpLinkPic' href=\"javascript:displayHelpInfobox(1)\">
+ <img src='images/sign_quest.png'></a>";
+
print "<div class=\"prefGenericAddBox\">";
print"<input type=\"submit\" class=\"button\"
<td width=\"5%\"> </td>
<td width=\"30%\"><a href=\"javascript:updateLabelList('description')\">Caption</a></td>
<td width=\"50%\"><a href=\"javascript:updateLabelList('sql_exp')\">SQL Expression</a>
- <a class=\"helpLink\" href=\"javascript:displayHelpInfobox(1)\">(?)</a>
</td>
</tr>";
pwd_hash = 'SHA1:".sha1("password")."')");
if (db_num_rows($result) != 0) {
- print "<div class=\"warning\">
- Your password is at default value, please change it.
- </div>";
+ print format_warning("Your password is at default value, please change it.");
}
if ($_SESSION["pwd_change_result"] == "failed") {
- print "<div class=\"warning\">
- There was an error while changing your password.
- </div>";
+ print format_warning("Could not change the password.");
}
if ($_SESSION["pwd_change_result"] == "ok") {
- print "<div class=\"notice\">
- Password changed successfully.
- </div>";
+ print format_notice("Password was changed.");
}
$_SESSION["pwd_change_result"] = "";
if ($_SESSION["prefs_op_result"] == "reset-to-defaults") {
- print "<div class=\"notice\">
- Your configuration was reset to defaults.
- </div>";
+ print format_notice("The configuration was reset to defaults.");
}
if ($_SESSION["prefs_op_result"] == "save-config") {
- print "<div class=\"notice\">
- Your configuration was saved successfully.
- </div>";
+ print format_notice("The configuration was saved.");
}
$_SESSION["prefs_op_result"] = "";
display : none;
float : right;
font-size : 9pt;
- text-align : center;
z-index : 999;
-moz-border-radius : 2px;
padding : 5px 5px 5px 5px;
}
+#notify img {
+ vertical-align : middle;
+}
+
.notify {
border-color : #d7c47a;
background-color : #fff7d5;
text-align : center;
}
+div.notice {
+ background : #ffffff;
+ border : 1px solid #88b0f0;
+ width : 50%;
+ padding : 5px;
+ margin : 0px 0px 5px 0px;
+ font-size : 9pt;
+}
+
div.warning {
background : #fff7d5;
border : 1px solid #d7c47a;
+ font-size : 9pt;
+ width : 50%;
padding : 5px;
margin : 0px 0px 5px 0px;
- font-size : 9pt;
}
-div.notice {
- background : #ffffff;
- border : 1px solid #88b0f0;
+
+div.warning img, div.notice img {
+ vertical-align : middle;
padding : 5px;
- margin : 0px 0px 5px 0px;
- font-size : 9pt;
}
div.error {
cursor : pointer;
display : none;
}
+
+a.helpLinkPic {
+ float : right;
+}
}
if (k == "daemon_is_running" && v != 1) {
- notify("<span onclick=\"javascript:explainError(1)\">Warning: Update daemon is not runing.</span>", true, true);
+ notify("<span onclick=\"javascript:explainError(1)\">Update daemon is not runing.</span>", true, true);
}
/* var w = document.getElementById("noDaemonWarning");