X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=modules%2Fpopup-dialog.php;h=26b2e7cf6de396ff262b7b0253e8c16ccdd2815f;hb=e0d91d846dd5ac42a95a0832777cc76aaf579bc2;hp=81a795a0185b30c97041149856d3f6f2f4836d52;hpb=d002edc715469b98d94150035d488ce5f1a79285;p=tt-rss.git diff --git a/modules/popup-dialog.php b/modules/popup-dialog.php index 81a795a0..26b2e7cf 100644 --- a/modules/popup-dialog.php +++ b/modules/popup-dialog.php @@ -3,11 +3,11 @@ $id = $_REQUEST["id"]; $param = db_escape_string($_REQUEST["param"]); - if ($id == "importOpml") { - print "
".__('OPML Import')."
"; - print "
"; + print ""; - print "
"; + if ($id == "importOpml") { + print "
"; + header("Content-Type: text/html"); # required for iframe $owner_uid = $_SESSION["uid"]; @@ -21,7 +21,7 @@ if (db_num_rows($result) == 0) { db_query($link, "INSERT INTO ttrss_feed_categories - (title,owner_uid) + (title,owner_uid) VALUES ('Imported feeds', '$owner_uid')"); } @@ -32,13 +32,13 @@ if (function_exists('domxml_open_file')) { print "
    "; print "
  • ".__("Importing using DOMXML.")."
  • "; - require_once "modules/opml_domxml.php"; + require_once "opml_domxml.php"; opml_import_domxml($link, $owner_uid); print "
"; } else if (PHP_VERSION >= 5) { print "
    "; print "
  • ".__("Importing using DOMDocument.")."
  • "; - require_once "modules/opml_domdoc.php"; + require_once "opml_domdoc.php"; opml_import_domdoc($link, $owner_uid); print "
"; } else { @@ -48,53 +48,56 @@ print "
"; print "
"; - - print ""; - print "
"; - print ""; - - print "
"; + print ""; - return; + //return; } if ($id == "editPrefProfiles") { - print "
".__('Settings Profiles')."
"; - print "
"; - - print "
-
"; - print "

"; +# print "

"; + $result = db_query($link, "SELECT title,id FROM ttrss_settings_profiles WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title"); - print __('Select:')." - ".__('All').", - ".__('None').""; - print "
"; print "
"; - print ""; + print "
"; - print ""; + print ""; #odd - print ""; + print ""; if (!$_SESSION["profile"]) { $is_active = __("(active)"); @@ -102,27 +105,28 @@ $is_active = ""; } - print ""; - + print ""; $lnum = 1; - + while ($line = db_fetch_assoc($result)) { - + $class = ($lnum % 2) ? "even" : "odd"; - - $cat_id = $line["id"]; - $this_row_id = "id=\"FCATR-$cat_id\""; - - print ""; - + + $profile_id = $line["id"]; + $this_row_id = "id=\"FCATR-$profile_id\""; + + print ""; + $edit_title = htmlspecialchars($line["title"]); - - print ""; + + print ""; if ($_SESSION["profile"] == $line["id"]) { $is_active = __("(active)"); @@ -130,11 +134,25 @@ $is_active = ""; } - print ""; - + print ""; + print ""; - + ++$lnum; } @@ -144,252 +162,237 @@ print "
- - + +
"; - print ""; + print "
"; - print ""; - - return; } - if ($id == "pubUrl") { + if ($id == "pubOPMLUrl") { - print "
".__('Published Articles')."
"; - print "
"; - - $url_path = article_publish_url($link); + print "".__('Public OPML URL').""; + print ""; - print "$url_path"; + print "$url_path"; print "
"; print "
"; - print " "; - print ""; + print ""; - print "
"; + print ""; + print "]]>"; - return; + //return; } if ($id == "explainError") { - print "
".__('Notice')."
"; - print "
"; + print "".__('Notice').""; + print ""; if ($param == 1) { print __("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."); - $stamp = (int)read_stampfile("update_daemon.stamp"); + $stamp = (int) file_get_contents(LOCK_DIRECTORY . "/update_daemon.stamp"); - print "

" . __("Last update:") . " " . date("Y.m.d, G:i", $stamp); - - } - - if ($param == 2) { - $msg = check_for_update($link); - - if (!$msg) { - print __("You are running the latest version of Tiny Tiny RSS. The fact that you are seeing this dialog is probably a bug."); - } else { - print $msg; - } + print "

" . __("Last update:") . " " . date("Y.m.d, G:i", $stamp); } if ($param == 3) { print __("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."); - $stamp = (int)read_stampfile("update_daemon.stamp"); + $stamp = (int) file_get_contents(LOCK_DIRECTORY . "/update_daemon.stamp"); - print "

" . __("Last update:") . " " . date("Y.m.d, G:i", $stamp); + print "

" . __("Last update:") . " " . date("Y.m.d, G:i", $stamp); } print "

"; - + print "
"; - print ""; + print ""; - print "
"; + print ""; + print "]]>"; - return; + //return; } if ($id == "quickAddFeed") { - print "
".__('Subscribe to Feed')."
"; - print "
"; - - print ""; - - print ""; - print ""; - //print ""; + print ""; + print ""; print "
".__("Feed")."
"; print "
"; - print __("URL:") . " "; + print ""; - print ""; - - print "
"; + print "
"; if (get_pref($link, 'ENABLE_FEED_CATS')) { print __('Place in category:') . " "; - print_feed_cat_select($link, "cat"); + print_feed_cat_select($link, "cat", false, 'dojoType="dijit.form.Select"'); } print "
"; - print ""; - return; } if ($id == "search") { - print "
".__('Search')."
"; - print "
"; - - print ""; - - #$active_feed_id = db_escape_string($_REQUEST["param"]); - - $params = split(":", db_escape_string($_REQUEST["param"])); + $params = explode(":", db_escape_string($_REQUEST["param"]), 2); $active_feed_id = sprintf("%d", $params[0]); - $is_cat = $params[1] == "true"; + $is_cat = $params[1] != "false"; print "
".__('Look for')."
"; print "
"; - print ""; + if (!SPHINX_ENABLED) { - print " " . __('match on')." "; + print ""; - $search_fields = array( - "title" => __("Title"), - "content" => __("Content"), - "both" => __("Title or content")); + print " " . __('match on')." "; - print_select_hash("match_on", 3, $search_fields); + $search_fields = array( + "title" => __("Title"), + "content" => __("Content"), + "both" => __("Title or content")); + + print_select_hash("match_on", 3, $search_fields, + 'dojoType="dijit.form.Select"'); + } else { + print ""; + } - print "
".__('Limit search to:')." "; - - print " "; - + $feed_title = getFeedTitle($link, $active_feed_id); if (!$is_cat) { @@ -397,15 +400,15 @@ } else { $feed_cat_title = getCategoryTitle($link, $active_feed_id); } - - if ($active_feed_id && !$is_cat) { - print ""; + + if ($active_feed_id && !$is_cat) { + print ""; } else { - print ""; + print ""; } if ($is_cat) { - $cat_preselected = "selected"; + $cat_preselected = "selected=\"1\""; } if (get_pref($link, 'ENABLE_FEED_CATS') && ($active_feed_id > 0 || $is_cat)) { @@ -414,41 +417,36 @@ //print ""; } - print ""; + print ""; print "
"; - print ""; - - print "
- - -
"; - - print "
"; + print "
"; - return; + if (!SPHINX_ENABLED) { + print "
+ Search syntax +
"; + } + print " + +
"; } if ($id == "quickAddFilter") { $active_feed_id = db_escape_string($_REQUEST["param"]); - print "
".__('Create Filter')."
"; - print "
"; + print ""; + print ""; + print ""; - print "
"; - - print ""; - print ""; - print ""; - - $result = db_query($link, "SELECT id,description + $result = db_query($link, "SELECT id,description FROM ttrss_filter_types ORDER BY description"); - + $filter_types = array(); - + while ($line = db_fetch_assoc($result)) { //array_push($filter_types, $line["description"]); $filter_types[$line["id"]] = __($line["description"]); @@ -458,34 +456,37 @@ print "
"; - print ""; - print __("Date") . " "; + print ""; $filter_params = array( "before" => __("before"), "after" => __("after")); - print_select_hash("filter_date_modifier", "before", $filter_params); + print_select_hash("filter_date_modifier", "before", + $filter_params, 'dojoType="dijit.form.Select"'); print " "; - print ""; + print ""; - print ""; - print " "; + print ""; + print " "; print ""; - print "
" . __("on field") . " "; + print "
" . __("on field") . " "; print_select_hash("filter_type", 1, $filter_types, - 'onchange="filterDlgCheckType(this)"'); + 'onchange="filterDlgCheckType(this)" dojoType="dijit.form.Select"'); - print "
"; + print "
"; print __("in") . " "; - print_feed_select($link, "feed_id", $active_feed_id); + print_feed_select($link, "feed_id", $active_feed_id, + 'dojoType="dijit.form.FilteringSelect"'); print "
"; @@ -493,25 +494,26 @@ print "
"; - print ""; - print ""; + print ""; print " " . __("with parameters:") . " "; - print ""; + print ""; - print_label_select($link, "action_param_label", $action_param); + print_label_select($link, "action_param_label", $action_param, + 'id="filterDlg_actionParamLabel" dojoType="dijit.form.Select"'); print ""; @@ -522,69 +524,166 @@ print "
".__("Options")."
"; print "
"; - print "
"; + print " +
"; - print " -
"; - - print " + print " "; print "
"; - print "
"; - - print ""; print "
"; - print " "; + + print " "; - print ""; + print ""; print "
"; -// print "
" . + print "" . __("Default profile") . " $is_active
" . - $edit_title . " $is_active" . $edit_title . + " + $is_active
"; + //return; + } + + if ($id == "inactiveFeeds") { + + if (DB_TYPE == "pgsql") { + $interval_qpart = "NOW() - INTERVAL '3 months'"; + } else { + $interval_qpart = "DATE_SUB(NOW(), INTERVAL 3 MONTH)"; + } + + $result = db_query($link, "SELECT ttrss_feeds.title, ttrss_feeds.site_url, + ttrss_feeds.feed_url, ttrss_feeds.id, MAX(updated) AS last_article + FROM ttrss_feeds, ttrss_entries, ttrss_user_entries WHERE + (SELECT MAX(updated) FROM ttrss_entries, ttrss_user_entries WHERE + ttrss_entries.id = ref_id AND + ttrss_user_entries.feed_id = ttrss_feeds.id) < $interval_qpart + AND ttrss_feeds.owner_uid = ".$_SESSION["uid"]." AND + ttrss_user_entries.feed_id = ttrss_feeds.id AND + ttrss_entries.id = ref_id + GROUP BY ttrss_feeds.title, ttrss_feeds.id, ttrss_feeds.site_url, ttrss_feeds.feed_url + ORDER BY last_article"); + + print __("These feeds have not been updated with new content for 3 months (oldest first):"); + + print "
"; + + print ""; + + $lnum = 1; + + while ($line = db_fetch_assoc($result)) { + + $class = ($lnum % 2) ? "even" : "odd"; + $feed_id = $line["id"]; + $this_row_id = "id=\"FUPDD-$feed_id\""; + + print ""; + + $edit_title = htmlspecialchars($line["title"]); + + print ""; + print ""; + print ""; + + ++$lnum; + } + + print "
"; + + print "". + htmlspecialchars($line["title"]).""; + + print ""; + print make_local_datetime($link, $line['last_article'], false); + print "
"; + print "
"; + + print "
"; + print "
"; + print " "; + print "
"; + + print ""; + + print "
"; - return; } - if ($id == "feedUpdateErrors") { + if ($id == "feedsWithErrors") { - print "
".__('Update Errors')."
"; - print "
"; +# print "".__('Feeds with update errors').""; +# print ""; + print "
"; + + print ""; + + $lnum = 1; while ($line = db_fetch_assoc($result)) { - print "
  • " . $line["title"] . " (" . $line["feed_url"] . "): " . - "" . $line["last_error"] . ""; + + $class = ($lnum % 2) ? "even" : "odd"; + $feed_id = $line["id"]; + $this_row_id = "id=\"FUPDD-$feed_id\""; + + print "
  • "; + + $edit_title = htmlspecialchars($line["title"]); + + print ""; + print ""; + print ""; + + ++$lnum; } - print ""; + print "
    "; + + print "". + htmlspecialchars($line["title"]).": "; + + print ""; + print htmlspecialchars($line["last_error"]); + print ""; + + print "
    "; + print "
    "; - print "
    "; + print "
    "; + print "
    "; + print " "; + print "
    "; - print ""; print "
    "; - - return; } if ($id == "editArticleTags") { - print "
    ".__('Edit Tags')."
    "; - print "
    "; - - print "
    "; +# print ""; print __("Tags for this article (separated by commas):")."
    "; @@ -592,36 +691,38 @@ $tags_str = join(", ", $tags); - print ""; + print ""; + print ""; + print ""; - print ""; + print "
    "; - - print "
    "; - print "
    -
    -
    "; +
    "; - print "
    "; + print ""; - print "
    "; +# print ""; - print " "; - print ""; + print "
    "; + print " "; + print ""; print "
    "; - return; } if ($id == "printTagCloud") { - print "
    ".__('Tag Cloud')."
    "; - print "
    "; + print "".__('Tag Cloud').""; + print "".__('more tags')."):
    "; +# print __("Showing most popular tags ")." (".__('more tags')."):
    "; print "
    "; @@ -630,61 +731,392 @@ print "
    "; print "
    "; - print ""; print "
    "; + print "]]>
    "; + } + + if ($id == 'printTagSelect') { + print "" . __('Select item(s) by tags') . ""; + print " Any "; + print " All "; + print " tags."; + + print ""; + + print "
    "; + print ""; + print " "; + print ""; print "
    "; - return; + print "]]>
    "; } -/* if ($id == "offlineDownload") { - print "
    ".__('Download articles')."
    "; - print "
    "; + if ($id == "emailArticle") { - print "
    "; + $secretkey = sha1(uniqid(rand(), true)); - print "
    ".__("Download")."
    "; + $_SESSION['email_secretkey'] = $secretkey; - print "
    "; + print ""; + print ""; + print ""; + + $result = db_query($link, "SELECT email, full_name FROM ttrss_users WHERE + id = " . $_SESSION["uid"]); + + $user_email = htmlspecialchars(db_fetch_result($result, 0, "email")); + $user_name = htmlspecialchars(db_fetch_result($result, 0, "full_name")); + + if (!$user_name) $user_name = $_SESSION['name']; + + $_SESSION['email_replyto'] = $user_email; + $_SESSION['email_fromname'] = $user_name; + + require_once "lib/MiniTemplator.class.php"; + + $tpl = new MiniTemplator; + $tpl_t = new MiniTemplator; + + $tpl->readTemplateFromFile("templates/email_article_template.txt"); + + $tpl->setVariable('USER_NAME', $_SESSION["name"]); + $tpl->setVariable('USER_EMAIL', $user_email); + $tpl->setVariable('TTRSS_HOST', $_SERVER["HTTP_HOST"]); + +// $tpl->addBlock('header'); + + $result = db_query($link, "SELECT link, content, title + FROM ttrss_user_entries, ttrss_entries WHERE id = ref_id AND + id IN ($param) AND owner_uid = " . $_SESSION["uid"]); + + if (db_num_rows($result) > 1) { + $subject = __("[Forwarded]") . " " . __("Multiple articles"); + } + + while ($line = db_fetch_assoc($result)) { + + if (!$subject) + $subject = __("[Forwarded]") . " " . htmlspecialchars($line["title"]); + + $tpl->setVariable('ARTICLE_TITLE', strip_tags($line["title"])); + $tpl->setVariable('ARTICLE_URL', strip_tags($line["link"])); + + $tpl->addBlock('article'); + } + + $tpl->addBlock('email'); + + $content = ""; + $tpl->generateOutputToString($content); - $amount = array( - 50 => 50, - 100 => 100, - 250 => 250, - 500 => 500); + print ""; + + print "
    "; - print_select_hash("amount", 50, $amount); + print __('From:'); - print " " . __("latest articles for offline reading."); + print ""; - print "
    "; + print "\">"; - print ""; - print ""; + print "
    "; + print __('To:'); + + print ""; + + print ""; + + print "
    "; + + print "
    "; + + print __('Subject:'); + + print ""; + + print ""; + + print "
    "; + + print "
    "; + + print "
    "; + print " "; + print ""; print "
    "; - print ""; + //return; + } + + if ($id == "generatedFeed") { + + print "".__('View as RSS').""; + print ""; + print "$url_path"; + print "
    "; + + print "
    "; + + print " "; + + print ""; + + print "
    "; + print "]]>"; + + //return; + } + + if ($id == "newVersion") { + $version_data = check_for_update($link); + $version = $version_data['version']; + $id = $version_data['version_id']; + + print "
    "; + + print T_sprintf("New version of Tiny Tiny RSS is available (%s).", + "$version"); + + print "
    "; + + $details = "http://tt-rss.org/redmine/versions/show/$id"; + $download = "http://tt-rss.org/#Download"; + + print "
    "; + print ""; + print ""; + print ""; + print "
    "; + + } + + if ($id == "customizeCSS") { + + $value = get_pref($link, "USER_STYLESHEET"); + + $value = str_replace("
    ", "\n", $value); + + print T_sprintf("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. This file can be used as a baseline.", "tt-rss.css"); + + print ""; + print ""; + print ""; + + print "
    "; + print ""; + print "
    "; + + print "
    "; + print " "; + print ""; + print "
    "; + + } + + if ($id == "editArticleNote") { + + $result = db_query($link, "SELECT note FROM ttrss_user_entries WHERE + ref_id = '$param' AND owner_uid = " . $_SESSION['uid']); + + $note = db_fetch_result($result, 0, "note"); + + print ""; + print ""; + print ""; + + print "
    "; + print ""; + print "
    "; + + print "
    "; + print " "; + print ""; + print "
    "; + + } + + if ($id == "about") { + print ""; + print ""; + print "
    "; + print ""; + print ""; + + print "

    Tiny Riny RSS

    + Version ".VERSION." +

    Copyright © 2005-".date('Y')." + Andrew Dolgov + and other contributors.

    +

    Licensed under GNU GPL version 2.

    "; + + print "

    + Official site — + + Support the project.

    "; + + print "
    "; + + print "
    "; + print ""; + print "
    "; + } + + if ($id == "addInstance") { + + print ""; + print ""; + + print "
    ".__("Instance")."
    "; + + print "
    "; + + /* URL */ + + print __("URL:") . " "; + + print ""; + + print "
    "; + + $access_key = sha1(uniqid(rand(), true)); + + /* Access key */ + + print __("Access key:") . " "; + + print ""; + + print "

    " . __("Use one access key for both linked instances."); + + print "

    "; print "
    - -
    "; +
    + +
    + +
    "; + + return; + } + + if ($id == "shareArticle") { + + $result = db_query($link, "SELECT uuid, ref_id FROM ttrss_user_entries WHERE int_id = '$param' + AND owner_uid = " . $_SESSION['uid']); + + if (db_num_rows($result) == 0) { + print "Article not found."; + } else { + + $uuid = db_fetch_result($result, 0, "uuid"); + $ref_id = db_fetch_result($result, 0, "ref_id"); + + if (!$uuid) { + $uuid = db_escape_string(sha1(uniqid(rand(), true))); + db_query($link, "UPDATE ttrss_user_entries SET uuid = '$uuid' WHERE int_id = '$param' + AND owner_uid = " . $_SESSION['uid']); + } + + print __("You can share this article by the following unique URL:"); + + $url_path = get_self_url_prefix(); + $url_path .= "/public.php?op=share&key=$uuid"; + + print "
    "; + print "$url_path"; + print "
    "; + + /* if (!label_find_id($link, __('Shared'), $_SESSION["uid"])) + label_create($link, __('Shared'), $_SESSION["uid"]); + + label_add_article($link, $ref_id, __('Shared'), $_SESSION['uid']); */ + } + + print "
    "; + + print ""; print "
    "; return; - } */ + } + print ""; - print "
    Internal Error
    -
    -

    Unknown dialog $id

    -
    "; - } ?>