From ceb30ba49d300d53a0693aba7e1f0e4c523aeedc Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 18 Jan 2009 09:28:42 +0100 Subject: new style labels (bump schema) --- modules/pref-labels.php | 263 ++++++++++-------------------------------------- 1 file changed, 55 insertions(+), 208 deletions(-) (limited to 'modules/pref-labels.php') diff --git a/modules/pref-labels.php b/modules/pref-labels.php index e54550034..d9208c444 100644 --- a/modules/pref-labels.php +++ b/modules/pref-labels.php @@ -1,214 +1,78 @@ Label Editor"; - print "
"; - - print "
"; - - print ""; - print ""; - print ""; - - print "
".__("Caption")."
"; - - print "
"; - - print ""; - print "
"; - - print "
".__("Match SQL")."
"; - - print "
"; - - print ""; + if ($subop == "save") { - print "
"; + $id = db_escape_string($_REQUEST["id"]); + $caption = trim(db_escape_string($_REQUEST["value"])); - print_label_dlg_common_examples(); + db_query($link, "BEGIN"); - print "
"; + $result = db_query($link, "SELECT caption FROM ttrss_labels2 + WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]); - print "
"; - - print "
"; - - print "
"; - - print "
"; - print " "; - print "
"; - - $is_disabled = (strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== FALSE) ? "disabled" : ""; - - print " - "; - - print " "; - - print ""; - - print "
"; - - return; - } - - if ($subop == "test") { - - // no escaping here on purpose - $expr = trim($_GET["expr"]); - $descr = db_escape_string(trim($_GET["descr"])); - - $expr = str_replace(";", "", $expr); - - if (!$expr) { - print "

".__("Error: SQL expression is blank.")."

"; - return; - } + if (db_num_rows($result) != 0) { + $old_caption = db_fetch_result($result, 0, "caption"); - print "
"; + $result = db_query($link, "SELECT id FROM ttrss_labels2 + WHERE caption = '$caption' AND owner_uid = ". $_SESSION["uid"]); - error_reporting(0); + if (db_num_rows($result) == 0) { + if ($caption) { + $result = db_query($link, "UPDATE ttrss_labels2 SET + caption = '$caption' WHERE id = '$id' AND + owner_uid = " . $_SESSION["uid"]); + /* Update filters that reference label being renamed */ - $result = db_query($link, - "SELECT count(ttrss_entries.id) AS num_matches - FROM ttrss_entries,ttrss_user_entries,ttrss_feeds - WHERE ($expr) AND - ttrss_user_entries.ref_id = ttrss_entries.id AND - ttrss_user_entries.feed_id = ttrss_feeds.id AND - ttrss_user_entries.owner_uid = " . $_SESSION["uid"], false); + db_query($link, "UPDATE ttrss_filters SET + action_param = '$caption' WHERE action_param = '$old_caption' + AND action_id = 7 + AND owner_uid = " . $_SESSION["uid"]); - error_reporting (DEFAULT_ERROR_LEVEL); - - if (!$result) { - print "
" . db_last_error($link) . "
"; - print "
"; - return; - } - - $num_matches = db_fetch_result($result, 0, "num_matches");; - - if ($num_matches > 0) { - - if ($num_matches > 10) { - $showing_msg = ", showing first 10"; - } - - print "

Query returned $num_matches matches$showing_msg:

"; - - $result = db_query($link, - "SELECT ttrss_entries.title, - (SELECT title FROM ttrss_feeds WHERE id = feed_id) AS feed_title - FROM ttrss_entries,ttrss_user_entries,ttrss_feeds - WHERE ($expr) AND - ttrss_user_entries.ref_id = ttrss_entries.id - AND ttrss_user_entries.feed_id = ttrss_feeds.id - AND ttrss_user_entries.owner_uid = " . $_SESSION["uid"] . " - ORDER BY date_entered LIMIT 10", false); - - print ""; - - } else { - print "

Query didn't return any matches.

"; } - print "
"; + db_query($link, "COMMIT"); return; } - if ($subop == "editSave") { - - $sql_exp = db_escape_string(trim($_GET["sql_exp"])); - $descr = db_escape_string(trim($_GET["description"])); - $label_id = db_escape_string($_GET["id"]); - - $sql_exp = str_replace(";", "", $sql_exp); - - $result = db_query($link, "UPDATE ttrss_labels SET - sql_exp = '$sql_exp', - description = '$descr' - WHERE id = '$label_id'"); - - if (db_affected_rows($link, $result) != 0) { - print_notice(T_sprintf("Saved label %s", htmlspecialchars($descr))); - } - - } - if ($subop == "remove") { - if (!WEB_DEMO_MODE) { - - $ids = split(",", db_escape_string($_GET["ids"])); + $ids = split(",", db_escape_string($_GET["ids"])); foreach ($ids as $id) { - db_query($link, "DELETE FROM ttrss_labels WHERE id = '$id'"); - - } + db_query($link, "DELETE FROM ttrss_labels2 WHERE id = '$id' + AND owner_uid = " . $_SESSION["uid"]); } } if ($subop == "add") { - $sql_exp = db_escape_string(trim($_GET["sql_exp"])); - $description = db_escape_string($_GET["description"]); + $caption = db_escape_string($_GET["caption"]); - $sql_exp = str_replace(";", "", $sql_exp); + if ($caption) { - if (!$sql_exp || !$description) return; + $result = db_query($link, "SELECT id FROM ttrss_labels2 + WHERE caption = '$caption' AND owner_uid = ". $_SESSION["uid"]); - $result = db_query($link, - "INSERT INTO ttrss_labels (sql_exp,description,owner_uid) - VALUES ('$sql_exp', '$description', '".$_SESSION["uid"]."')"); + if (db_num_rows($result) == 0) { - if (db_affected_rows($link, $result) != 0) { - print T_sprintf("Created label %s", htmlspecialchars($description)); + $result = db_query($link, + "INSERT INTO ttrss_labels2 (caption,owner_uid) + VALUES ('$caption', '".$_SESSION["uid"]."')"); + + if (db_affected_rows($link, $result) != 0) { + print T_sprintf("Created label %s", htmlspecialchars($caption)); + } + } } return; @@ -219,7 +83,7 @@ $sort = db_escape_string($_GET["sort"]); if (!$sort || $sort == "undefined") { - $sort = "description"; + $sort = "caption"; } $label_search = db_escape_string($_GET["search"]); @@ -237,28 +101,25 @@ onchange=\"javascript:updateLabelList()\" value=\"$label_search\"> -

-

"; print "
"; print"
"; if ($label_search) { - $label_search_query = "(sql_exp LIKE '%$label_search%' OR - description LIKE '%$label_search%') AND"; + $label_search_query = "caption LIKE '%$label_search%' AND"; } else { $label_search_query = ""; } $result = db_query($link, "SELECT - id,sql_exp,description + id,caption FROM - ttrss_labels + ttrss_labels2 WHERE $label_search_query owner_uid = ".$_SESSION["uid"]." @@ -279,8 +140,7 @@ print "   - ".__('Caption')." - ".__('SQL Expression')." + ".__('Caption')." "; @@ -291,29 +151,18 @@ $class = ($lnum % 2) ? "even" : "odd"; $label_id = $line["id"]; - $edit_label_id = $_GET["id"]; - - if ($subop == "edit" && $label_id != $edit_label_id) { - $class .= "Grayed"; - $this_row_id = ""; - } else { - $this_row_id = "id=\"LILRR-$label_id\""; - } - + $this_row_id = "id=\"LILRR-$label_id\""; + print ""; - $line["sql_exp"] = htmlspecialchars($line["sql_exp"]); - $line["description"] = htmlspecialchars($line["description"]); + $line["caption"] = htmlspecialchars($line["caption"]); - if (!$line["description"]) $line["description"] = __("[No caption]"); - - $onclick = "onclick='editLabel($label_id)' title='".__('Click to edit')."'"; - - print ""; - print "" . $line["description"] . ""; - print "" . $line["sql_exp"] . ""; + print "" . $line["caption"] . + ""; print ""; @@ -323,11 +172,9 @@ print ""; print "

"; - print " - "; + print "

"; } else { print "

"; -- cgit v1.2.3