Adding missing files, a=chris

Chris Pollett [2011-08-27 23:Aug:th]
Adding missing files, a=chris
Filename
views/layouts/rss_layout.php
views/rss_view.php
diff --git a/views/layouts/rss_layout.php b/views/layouts/rss_layout.php
new file mode 100644
index 000000000..ca641c5d3
--- /dev/null
+++ b/views/layouts/rss_layout.php
@@ -0,0 +1,91 @@
+<?php
+/**
+ *  SeekQuarry/Yioop --
+ *  Open Source Pure PHP Search Engine, Crawler, and Indexer
+ *
+ *  Copyright (C) 2009, 2010, 2011  Chris Pollett chris@pollett.org
+ *
+ *  LICENSE:
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  END LICENSE
+ *
+ * @author Chris Pollett chris@pollett.org
+ * @package seek_quarry
+ * @subpackage layout
+ * @license http://www.gnu.org/licenses/ GPL3
+ * @link http://www.seekquarry.com/
+ * @copyright 2009, 2010, 2011
+ * @filesource
+ */
+
+if(!defined('BASE_DIR')) {echo "BAD REQUEST"; exit();}
+
+/**
+ * Layout used for the seek_quarry Website
+ * including pages such as search landing page
+ * and settings page
+ *
+ * @author Chris Pollett
+ * @package seek_quarry
+ * @subpackage layout
+ */
+class RssLayout extends Layout
+{
+
+    /**
+     * Responsible for drawing the header of the document containing
+     * Yioop! title and including basic.js. It calls the renderView method of
+     * the View that lives on the layout. If the QUERY_STATISTIC config setting
+     * is set, it output statistics about each query run on the database.
+     * Finally, it draws the footer of the document.
+     *
+     *  @param array $data  an array of data set up by the controller to be
+     *  be used in drawing the WebLayout and its View.
+     */
+    public function render($data) {
+header("Content-type: application/rss+xml");
+    e('<?xml version="1.0" encoding="UTF-8" ?>'."\n");?>
+<rss version="2.0" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"
+xmlns:atom="http://www.w3.org/2005/Atom"
+>
+    <channel>
+        <title><?php e(tl('rss_layout_title', urldecode($data['QUERY'])));
+        ?></title>
+        <language><?php e(getLocaleTag()); ?></language>
+        <link><?php e(QUEUE_SERVER);
+        ?>?f=rss&amp;q=<?php e($data['QUERY']); ?>&amp;<?php
+        ?>its=<?php e($data['its']); ?></link>
+        <description><?php e(tl('rss_layout_description',
+        urldecode($data['QUERY'])));?></description>
+        <opensearch:totalResults><?php e($data['TOTAL_ROWS']);
+        ?></opensearch:totalResults>
+        <opensearch:startIndex><?php e($data['LIMIT']);
+        ?></opensearch:startIndex>
+        <opensearch:itemsPerPage><?php e($data['RESULTS_PER_PAGE']);
+        ?></opensearch:itemsPerPage>
+        <atom:link rel="search" type="application/opensearchdescription+xml"
+            href="<?php e(QUEUE_SERVER);?>yioopbar.xml"/>
+        <opensearch:Query role="request" searchTerms="<?php
+        e($data['QUERY']); ?>"/>
+                <?php
+                $this->view->renderView($data);
+            ?>
+    </channel>
+</rss>
+    <?php
+    }
+}
+?>
diff --git a/views/rss_view.php b/views/rss_view.php
new file mode 100644
index 000000000..09a2110a2
--- /dev/null
+++ b/views/rss_view.php
@@ -0,0 +1,98 @@
+<?php
+/**
+ *  SeekQuarry/Yioop --
+ *  Open Source Pure PHP Search Engine, Crawler, and Indexer
+ *
+ *  Copyright (C) 2009, 2010, 2011  Chris Pollett chris@pollett.org
+ *
+ *  LICENSE:
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  END LICENSE
+ *
+ * @author Chris Pollett chris@pollett.org
+ * @package seek_quarry
+ * @subpackage view
+ * @license http://www.gnu.org/licenses/ GPL3
+ * @link http://www.seekquarry.com/
+ * @copyright 2009, 2010, 2011
+ * @filesource
+ */
+
+if(!defined('BASE_DIR')) {echo "BAD REQUEST"; exit();}
+
+/** Loads common constants for web crawling*/
+require_once BASE_DIR."/lib/crawl_constants.php";
+
+/**
+ * Web page used to present search results
+ * It is also contains the search box for
+ * people to types searches into
+ *
+ * @author Chris Pollett
+ * @package seek_quarry
+ * @subpackage view
+ */
+
+class RssView extends View implements CrawlConstants
+{
+    /** Names of helper objects that the view uses to help draw itself
+     *  @var array
+     */
+    var $helpers = array("pagination", "filetype", "displayresults");
+
+    /** This view is drawn on a web layout
+     *  @var string
+     */
+    var $layout = "rss";
+
+    /**
+     *  Draws the main landing pages as well as search result pages
+     *
+     *  @param array $data  PAGES contains all the summaries of web pages
+     *  returned by the current query, $data also contains information
+     *  about how the the query took to process and the total number
+     *  of results, how to fetch the next results, etc.
+     *
+     */
+    public function renderView($data)
+    {
+        if(isset($data['PAGES'])) {
+        ?>
+
+            <?php
+            foreach($data['PAGES'] as $page) {?>
+                <item>
+                <title><?php  e(strip_tags($page[self::TITLE]));
+                    if(isset($page[self::TYPE])) {
+                        $this->filetypeHelper->render($page[self::TYPE]);
+                    }?></title>
+                <link><?php if(isset($page[self::TYPE])
+                    && $page[self::TYPE] != "link") {
+                        e($page[self::URL]);
+                    } else {
+                        e(htmlentities(strip_tags($page[self::TITLE])));
+                    } ?></link>
+                <description><?php
+                e(htmlentities(strip_tags($page[self::DESCRIPTION])));
+                ?></description>
+                </item>
+
+            <?php
+            } //end foreach
+        }
+    }
+}
+?>
ViewGit