]> git.wh0rd.org - tt-rss.git/commitdiff
rework article notes; re-add built-in XSL template for generated feeds; remove schema...
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Tue, 19 Apr 2011 09:20:59 +0000 (13:20 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Tue, 19 Apr 2011 09:20:59 +0000 (13:20 +0400)
backend.php
feed.xsl [new file with mode: 0644]
functions.php
modules/backend-rpc.php
rss.xsl [deleted file]
templates/generated_feed.txt
tt-rss.css
viewfeed.js

index 3fa369397a6827623e5406fb959446c713f15ccb..72535113b90a68d4eb41763112d2fd842b6df9a4 100644 (file)
                        } else if ($mode == "zoom") {
                                array_push($articles, format_article($link, $id, false, true, true));
                        } else if ($mode == "raw") {
-                               if ($_REQUEST['html']) header("Content-Type: text/html");
+                               if ($_REQUEST['html']) {
+                                       header("Content-Type: text/html");
+                                       print '<link rel="stylesheet" type="text/css" href="tt-rss.css"/>';
+                               }
 
                                $article = format_article($link, $id, false);
-                               print $article['id'] . "\n\n";
                                print $article['content'];
                                return;
                        } else {
diff --git a/feed.xsl b/feed.xsl
new file mode 100644 (file)
index 0000000..13a1d7e
--- /dev/null
+++ b/feed.xsl
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet 
+       xmlns:atom="http://www.w3.org/2005/Atom"
+       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:output method="html"/>
+
+<xsl:template match="/atom:feed">
+<html>
+       <head>
+               <title><xsl:value-of select="atom:title"/></title>
+               <link rel="stylesheet" type="text/css" href="utility.css"/>
+               <script language="javascript" src="lib/xsl_mop-up.js"></script>
+       </head>
+
+       <body onload="go_decoding()">
+
+               <div id="cometestme" style="display:none;">
+                       <xsl:text disable-output-escaping="yes">&amp;amp;</xsl:text>
+               </div>
+
+               <div class="rss">
+
+               <img class="feedicon" src="images/feed-icon-64x64.png" alt="feed icon"/>
+
+               <h1><xsl:value-of select="atom:title"/></h1>
+
+               <p class="description">This feed has been exported from
+                       <a target="_new" class="extlink" href="http://tt-rss.org">Tiny Tiny RSS</a>.
+                  You need a news reader software to subscribe to it.
+                       It contains the following items:</p>
+
+               <xsl:for-each select="atom:entry">
+                       <h2><a target="_new" href="{atom:link/@href}"><xsl:value-of select="atom:title"/></a></h2>
+
+                       <div name="decodeme" class="content">
+                               <xsl:value-of select="atom:content" disable-output-escaping="yes"/>
+                       </div>
+
+                       <xsl:if test="enclosure">
+                               <p><a href="{enclosure/@url}">Extra...</a></p>
+                       </xsl:if>
+
+                       <hr/>
+
+               </xsl:for-each>
+
+               </div>
+
+  </body>
+ </html>
+</xsl:template>
+
+</xsl:stylesheet>
+
index a3e3e8f9746025eab90c2604dcd2e3db83f157a2..e1c60e15f514e6981f07b59415080696a510ea98 100644 (file)
                        return "even";
        }
 
+       // Session caching removed due to causing wrong redirects to upgrade
+       // script when get_schema_version() is called on an obsolete session
+       // created on a previous schema version.
        function get_schema_version($link, $nocache = false) {
-               if (!$_SESSION["schema_version"] || $nocache) {
+//             if (!$_SESSION["schema_version"] || $nocache) {
                        $result = db_query($link, "SELECT schema_version FROM ttrss_version");
                        $version = db_fetch_result($result, 0, "schema_version");
                        $_SESSION["schema_version"] = $version;
                        return $version;
-               } else {
-                       return $_SESSION["schema_version"];
-               }
+//             } else {
+//                     return $_SESSION["schema_version"];
+//             }
        }
 
        function sanity_check($link) {
 
                require_once "lib/MiniTemplator.class.php";
 
-               $note_style =   "float : right; background-color : #fff7d5; border-width : 1px; ".
+               $note_style =   "background-color : #fff7d5;
+                       border-width : 1px; ".
                        "padding : 5px; border-style : dashed; border-color : #e7d796;".
                        "margin-bottom : 1em; color : #9a8c59;";
 
                        $content = sanitize_rss($link, $line["content_preview"], false, $owner_uid);
 
                        if ($line['note']) {
-                               $content = "<div style=\"$note_style\">" . $line['note'] . "</div>" .
+                               $content = "<div style=\"$note_style\">Article note: " . $line['note'] . "</div>" .
                                        $content;
                        }
 
 
                        $rv['content'] .= "</div>";
 
-                       $rv['content'] .= "<div class=\"postIcon\">" .
-                               "<a target=\"_blank\" title=\"".__("Visit the website")."\"$
-                               href=\"".htmlspecialchars($feed_site_url)."\">".
-                               $feed_icon . "</a></div>";
-
                        $rv['content'] .= "<div id=\"POSTNOTE-$id\">";
                                if ($line['note']) {
                                        $rv['content'] .= format_article_note($id, $line['note']);
                                }
                        $rv['content'] .= "</div>";
 
+                       $rv['content'] .= "<div class=\"postIcon\">" .
+                               "<a target=\"_blank\" title=\"".__("Visit the website")."\"$
+                               href=\"".htmlspecialchars($feed_site_url)."\">".
+                               $feed_icon . "</a></div>";
+
                        $rv['content'] .= "<div class=\"postContent\">";
 
                        $article_content = sanitize_rss($link, $line["content"], false, false,
 
        function format_article_note($id, $note) {
 
-               $str = "<div class='articleNote' title=\"".__('edit note')."\"
-                       onclick=\"editArticleNote($id)\">$note</div>";
+               $str = "<div class='articleNote'        onclick=\"editArticleNote($id)\">
+                       <div class='noteEdit' onclick=\"editArticleNote($id)\">".
+                       __('(edit note)')."</div>$note</div>";
 
                return $str;
        }
index 0630d88214ff8aae912d0f0c5418b18fd144b9dd..1adfb23b16ebd38da5a727a754c63cca3bd02a9d 100644 (file)
 
                if ($subop == "setNote") {
                        $id = db_escape_string($_REQUEST["id"]);
-                       $note = strip_tags(db_escape_string($_REQUEST["note"]));
+                       $note = trim(strip_tags(db_escape_string($_REQUEST["note"])));
 
                        db_query($link, "UPDATE ttrss_user_entries SET note = '$note'
                                WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
 
                        $formatted_note = format_article_note($id, $note);
 
-                       print json_encode(array("note" => $formatted_note));
+                       print json_encode(array("note" => $formatted_note,
+                               "raw_length" => mb_strlen($note)));
                        return;
                }
 
diff --git a/rss.xsl b/rss.xsl
deleted file mode 100644 (file)
index 8d2e942..0000000
--- a/rss.xsl
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-
-<xsl:output method="html"/>
-
-<xsl:template match="/">
-<html>
-       <head>
-               <title><xsl:value-of select="rss/channel/title"/></title>
-               <link rel="stylesheet" type="text/css" href="utility.css"/>
-               <script language="javascript" src="lib/xsl_mop-up.js"></script>
-       </head>
-
-       <body onload="go_decoding()">
-
-               <div id="cometestme" style="display:none;">
-                       <xsl:text disable-output-escaping="yes">&amp;amp;</xsl:text>
-               </div>
-
-               <div class="rss">
-
-               <img class="feedicon" src="images/feed-icon-64x64.png" alt="feed icon"/>
-
-               <h1><xsl:value-of select="rss/channel/title"/></h1>
-
-               <p class="description">This is an RSS feed exported from
-                       <a target="_new" class="extlink" href="http://tt-rss.org">Tiny Tiny RSS</a>.
-                  You must install a news aggregator to subscribe to it.
-                       This feed contains the following items:</p>
-
-               <!-- <p class="description"><xsl:value-of 
-                               select="rss/channel/description"/></p> -->
-
-               <xsl:for-each select="rss/channel/item">
-                       <h2><a target="_new" href="{link}"><xsl:value-of select="title"/></a></h2>
-
-                       <!-- <div><a class="extlink" target="_new" 
-                                       href="{link}"><xsl:value-of select="link"/></a></div> -->
-
-                       <div name="decodeme" class="content">
-                               <xsl:value-of select="description" disable-output-escaping="yes"/>
-                       </div>
-
-                       <xsl:if test="enclosure">
-                               <p><a href="{enclosure/@url}">Extra...</a></p>
-                       </xsl:if>
-
-                       <hr/>
-
-               </xsl:for-each>
-
-               </div>
-
-  </body>
- </html>
-</xsl:template>
-
-</xsl:stylesheet>
-
index 9631d4cf8dee6391c2585ade3c28f66bd5be64e3..38c15cf01d2e690a240c11bd1b03eeae6320107b 100644 (file)
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="feed.xsl"?>
 <!-- $BeginBlock feed -->
 <feed xmlns="http://www.w3.org/2005/Atom">
 <title>${FEED_TITLE}</title>
index c161592341ef4909a8b9b45eb1100c608facca37..4c4de2de209426b7f6cc9ca230b8e64c9217c9ed 100644 (file)
@@ -76,17 +76,17 @@ div.postReply img.tagsPic {
 
 div.articleNote {
        background-color : #fff7d5;
-       border-width : 1px;
        padding : 5px;
-       border-style : dashed;
+       border-style : none none dashed none;
        border-color : #e7d796;
-       font-size : 11px;
-       margin-left : 5px;
-       margin-top : 5px;
-       float : right;
+       border-width : 1px;
+       background-color : #fff7d5;
        color : #9a8c59;
-       max-width : 150px;
-       text-align : justify;
+}
+
+div.articleNote div.noteEdit {
+       float : right;
+       cursor : pointer;
 }
 
 div.postReply span.author {
@@ -1172,10 +1172,6 @@ div.dlgButtons {
        clear : both;
 }
 
-span.prefsLabelEntry {
-       padding : 2px;
-}
-
 span.labelColorIndicator {
        height : 14px;
        width : 14px;
@@ -1216,37 +1212,6 @@ div.labelColorIndicator {
        margin-right : 10px;
 }
 
-div.colorPicker div.colorPickerEntry:hover {
-       border : 1px solid #88b0f0;
-}
-
-div.colorPicker div.ccPrompt:hover {
-       color : black;
-}
-
-div.colorPicker div.colorPickerEntry {
-       height : 15px;
-       width : 15px;
-       line-height : 13px;
-       font-height : 9px;
-       text-align : center;
-       border : 1px solid black;
-       margin : 5px 5px 0px 0px;
-       float : left;
-}
-
-div.colorPicker {
-       border : 1px solid #cccccc;
-       background : #f0f0f0;
-       width : 110px;
-       padding : 0px 0px 5px 5px;
-       position : absolute;
-       left : auto;
-       top : auto;
-       z-index : 3;
-       color : #909090;
-}
-
 optgroup {
        color : #4684ff;
        font-style : normal;
@@ -1499,12 +1464,6 @@ div#pref-tabs .dijitContentPane h3 {
        font-weight : bold;
 }
 
-/* div#feedTree {
-       font-size : 11px;
-       font-family : "Lucida Grande", "Segoe UI", Tahoma, Arial, sans-serif;
-} */
-
-
 #pref-filter-wrap, #pref-filter-header, #pref-filter-content, 
 #pref-label-wrap, #pref-label-header, #pref-label-content,
 #pref-user-wrap, #pref-user-header, #pref-user-content {
index 79697d77bf4c4f8f6581eb6bce1af6a2a1667199..a5ca881c6d326fbbf9c13c3e971ba2a56882c8a5 100644 (file)
@@ -2211,7 +2211,9 @@ function editArticleNote(id) {
                                                if (elem) {
                                                        Element.hide(elem);
                                                        elem.innerHTML = reply.note;
-                                                       new Effect.Appear(elem);
+
+                                                       if (reply.raw_length != 0)
+                                                               new Effect.Appear(elem);
                                                }
 
                                        }});