]> git.wh0rd.org - tt-rss.git/commitdiff
trgm: add basic related stories dialog
authorAndrew Dolgov <noreply@fakecake.org>
Mon, 19 Jan 2015 12:46:15 +0000 (15:46 +0300)
committerAndrew Dolgov <noreply@fakecake.org>
Mon, 19 Jan 2015 12:46:15 +0000 (15:46 +0300)
css/tt-rss.css
plugins/af_psql_trgm/init.js
plugins/af_psql_trgm/init.php

index 3db8dc1d53e5c52ced8f0c510120de2dc7733528..693541a7c4c01c8d6683e37da0bfc7a6cfcb3e6e 100644 (file)
@@ -341,6 +341,10 @@ div.prefHelp {
        color : #555;
 }
 
+.small {
+       font-size : 11px;
+}
+
 #main-toolbar > * {
        white-space : nowrap;
        display : table-cell;
index 8affb72d4aea5ceea7532c4a62fdce2a519aca12..621ccb74638907a2c0850028725830348c8a52a2 100644 (file)
@@ -3,11 +3,11 @@ function showTrgmRelated(id) {
 
                var query = "backend.php?op=pluginhandler&plugin=af_psql_trgm&method=showrelated&param=" + param_escape(id);
 
-               if (dijit.byId("editNoteDlg"))
-                       dijit.byId("editNoteDlg").destroyRecursive();
+               if (dijit.byId("trgmRelatedDlg"))
+                       dijit.byId("trgmRelatedDlg").destroyRecursive();
 
                dialog = new dijit.Dialog({
-                       id: "editNoteDlg",
+                       id: "trgmRelatedDlg",
                        title: __("Related articles"),
                        style: "width: 600px",
                        execute: function() {
index a451dce238c766c3c9c5ce775547856b168b2faa..97187a602a7db144d152f92764d875d410f5b0ba 100644 (file)
@@ -33,11 +33,11 @@ class Af_Psql_Trgm extends Plugin {
                $host->add_hook($host::HOOK_PREFS_TAB, $this);
                $host->add_hook($host::HOOK_PREFS_EDIT_FEED, $this);
                $host->add_hook($host::HOOK_PREFS_SAVE_FEED, $this);
-               //$host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
+               $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
 
        }
 
-       /* function get_js() {
+       function get_js() {
                return file_get_contents(__DIR__ . "/init.js");
        }
 
@@ -53,35 +53,59 @@ class Af_Psql_Trgm extends Plugin {
                print "<h2>$title</h2>";
 
                $title = db_escape_string($title);
-               $result = db_query("SELECT id,title,updated
-                       FROM ttrss_entries, ttrss_user_entries
-                       WHERE owner_uid = $owner_uid AND
-                               id = ref_id AND
-                               id != $id AND
-                               date_entered >= NOW() - INTERVAL '1 day' AND
-                               SIMILARITY(title, '$title') >= 0.5
-                       LIMIT 30");
+               $result = db_query("SELECT ttrss_entries.id AS id,
+                               feed_id,
+                               ttrss_entries.title AS title,
+                               updated, link,
+                               ttrss_feeds.title AS feed_title,
+                               SIMILARITY(ttrss_entries.title, '$title') AS sm
+                       FROM
+                               ttrss_entries, ttrss_user_entries LEFT JOIN ttrss_feeds ON (ttrss_feeds.id = feed_id)
+                       WHERE
+                               ttrss_entries.id = ref_id AND
+                               ttrss_user_entries.owner_uid = $owner_uid AND
+                               ttrss_entries.id != $id AND
+                               date_entered >= NOW() - INTERVAL '1 week'
+                       ORDER BY
+                               sm DESC, date_entered DESC
+                       LIMIT 10");
 
                print "<ul class=\"browseFeedList\" style=\"border-width : 1px\">";
 
                while ($line = db_fetch_assoc($result)) {
                        print "<li>";
-                       print "<div style='float : right'>" . smart_date_time($line["updated"])
+                       print "<div class='insensitive small' style='margin-left : 20px; float : right'>" .
+                               smart_date_time(strtotime($line["updated"]))
                                . "</div>";
-                       print $line["title"];
+
+                       print "<img src='images/score_high.png' title='".sprintf("%.2f", $line['sm'])."'
+                               style='vertical-align : middle'>";
+
+                       $article_link = htmlspecialchars($line["link"]);
+                       print " <a target=\"_blank\" href=\"$article_link\">".
+                               $line["title"]."</a>";
+
+                       print " (<a href=\"#\" onclick=\"viewfeed(".$line["feed_id"].")\">".
+                               htmlspecialchars($line["feed_title"])."</a>)";
+
                        print "</li>";
                }
 
                print "</ul>";
 
-       } */
+               print "<div style='text-align : center'>";
+               print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('trgmRelatedDlg').hide()\">".__('Close this window')."</button>";
+               print "</div>";
 
-       /* function hook_article_button($line) {
+
+       }
+
+       function hook_article_button($line) {
                return "<img src=\"plugins/af_psql_trgm/button.png\"
                        style=\"cursor : pointer\" style=\"cursor : pointer\"
                        onclick=\"showTrgmRelated(".$line["id"].")\"
                        class='tagsPic' title='".__('Show related articles')."'>";
-       } */
+       }
 
        function hook_prefs_tab($args) {
                if ($args != "prefFeeds") return;