diff options
-rw-r--r-- | gentoobrowse/.htaccess | 2 | ||||
-rw-r--r-- | gentoobrowse/present/sitemap.xml.xml | 9 | ||||
-rw-r--r-- | gentoobrowse/views/categories.xml | 2 | ||||
-rw-r--r-- | gentoobrowse/views/package.xml | 9 | ||||
-rw-r--r-- | gentoobrowse/xslt/sitemap.xslt | 36 |
5 files changed, 57 insertions, 1 deletions
diff --git a/gentoobrowse/.htaccess b/gentoobrowse/.htaccess index c727c5d..e33d832 100644 --- a/gentoobrowse/.htaccess +++ b/gentoobrowse/.htaccess @@ -9,6 +9,8 @@ RewriteCond %{REQUEST_URI} !^/images/ RewriteCond %{REQUEST_URI} !^/[^/]+\.[^/]+$ RewriteCond %{REQUEST_URI} !^/p2web RewriteRule ^(.*) /p2web/\1 [L] +RewriteCond %{REQUEST_URI} ^/sitemap\.xml$ +RewriteRule ^(.*) /p2web/\1 [L] FilterDeclare XSLT FilterProvider XSLT XSLT resp=Content-Type $text/xml-xslt diff --git a/gentoobrowse/present/sitemap.xml.xml b/gentoobrowse/present/sitemap.xml.xml new file mode 100644 index 0000000..900fcc0 --- /dev/null +++ b/gentoobrowse/present/sitemap.xml.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<view name="sitemap" root="gentoo" contenttype="text/xml-xslt" style="xslt/sitemap.xslt" xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:project2="http://project2.randomdan.homeip.net"> + <xi:include href="../views/categories.xml" /> + <xi:include href="../views/package.xml" /> + <project2:view name="categories" source="categories" rootname="categories" recordname="category" /> + <project2:view name="packages" source="sitemap-packages" rootname="packages" recordname="package" /> +</view> + diff --git a/gentoobrowse/views/categories.xml b/gentoobrowse/views/categories.xml index 1faec02..e40ff98 100644 --- a/gentoobrowse/views/categories.xml +++ b/gentoobrowse/views/categories.xml @@ -3,7 +3,7 @@ xmlns:project2="http://project2.randomdan.homeip.net"> <project2:sqlrows name="categories" datasource="postgres-web"> <sql> - SELECT c.categoryid, MIN(c.name) AS catname, COUNT(*) AS packages, MIN(c.summary) AS summary + SELECT c.categoryid, MIN(c.name) AS catname, COUNT(*) AS packages, MIN(c.summary) AS summary, MAX(p.firstseen) AS pkgfirstseen FROM categories c, packages p WHERE c.categoryid = p.categoryid GROUP BY c.categoryid diff --git a/gentoobrowse/views/package.xml b/gentoobrowse/views/package.xml index af36f44..7f10887 100644 --- a/gentoobrowse/views/package.xml +++ b/gentoobrowse/views/package.xml @@ -1,6 +1,15 @@ <?xml version="1.0"?> <block xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:project2="http://project2.randomdan.homeip.net"> + <project2:sqlrows name="sitemap-packages" datasource="postgres-web"> + <sql> + SELECT c.name AS catname, p.name AS pkgname, MAX(e.moddate) AS moddate + FROM categories c, packages p, ebuilds e + WHERE p.packageid = e.packageid + AND c.categoryid = p.categoryid + GROUP BY c.name, p.name + </sql> + </project2:sqlrows> <project2:sqlrows name="packages" datasource="postgres-web"> <sql> SELECT p.packageid, p.name AS pkgname, p.description, p.firstseen, c.name AS catname, p.herd, p.summary diff --git a/gentoobrowse/xslt/sitemap.xslt b/gentoobrowse/xslt/sitemap.xslt new file mode 100644 index 0000000..a90e150 --- /dev/null +++ b/gentoobrowse/xslt/sitemap.xslt @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" + xmlns:project2="http://project2.randomdan.homeip.net" exclude-result-prefixes="project2" > + <xsl:output encoding="utf-8" method="xml" media-type="text/xml" indent="yes" /> + <xsl:template match="/gentoo"> + <urlset> + <url> + <loc>http://gentoobrowse.randomdan.homeip.net/</loc> + <changefreq>daily</changefreq> + </url> + <url> + <loc>http://gentoobrowse.randomdan.homeip.net/popular</loc> + <changefreq>weekly</changefreq> + </url> + <url> + <loc>http://gentoobrowse.randomdan.homeip.net/categories</loc> + <changefreq>monthly</changefreq> + </url> + <xsl:for-each select="packages/package"> + <url> + <loc>http://gentoobrowse.randomdan.homeip.net/package/<xsl:value-of select="catname" />/<xsl:value-of select="pkgname" /></loc> + <lastmod><xsl:value-of select="moddate" /></lastmod> + <changefreq>weekly</changefreq> + </url> + </xsl:for-each> + <xsl:for-each select="categories/category"> + <url> + <loc>http://gentoobrowse.randomdan.homeip.net/category/<xsl:value-of select="catname" /></loc> + <lastmod><xsl:value-of select="pkgfirstseen" /></lastmod> + <changefreq>daily</changefreq> + </url> + </xsl:for-each> + </urlset> + </xsl:template> +</xsl:stylesheet> + |