Commit df71f893

mo k <mo@mokhan.ca>
2012-06-21 04:01:36
create sitemap
1 parent 79e8b1f
Changed files (3)
app
config
app/controllers/sitemap_controller.rb
@@ -0,0 +1,13 @@
+class SitemapController < ApplicationController
+  layout nil
+
+  def index
+    @creations = Creation.all
+    @base_url = "http://#{request.host_with_port}"
+    headers['Content-Type'] = 'application/xml'
+    respond_to do |format|
+      format.html
+      format.xml
+    end
+  end
+end
app/views/sitemap/index.xml.erb
@@ -0,0 +1,12 @@
+<?xml version="1.0" ?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
+  xmlns:image="http://www.sitemaps.org/schemas/sitemap-image/1.1"
+  xmlns:video="http://www.sitemaps.org/schemas/sitemap-video/1.1">
+<% @creations.each do |creation| %>
+    <url>
+      <loc><%= "#{@base_url}#{url_for(creation)}" %></loc>
+      <lastmod><%= creation.updated_at %></lastmod>
+      <priority>0.5</priority>
+    </url>
+<% end %>
+</urlset>
config/routes.rb
@@ -35,4 +35,9 @@ Cake::Application.routes.draw do
   # /users
   devise_for :users, :controllers => {:registrations => 'registrations'}
   devise_for :user, :path => '', :path_names => { :sign_in => "login", :sign_out => "logout", :sign_up => "register" }
+
+  # sitemap
+  match "/sitemap.xml", :to => "sitemap#index", :defaults => {:format => :xml}
+
 end
+