From 5ccb76770646d8eb13ea379f5042670a8376d21e Mon Sep 17 00:00:00 2001 From: hukl Date: Sat, 31 Jan 2009 23:14:54 +0100 Subject: added everything needed to render a page --- app/controllers/content_controller.rb | 6 +- app/models/node.rb | 21 ++++ app/views/content/render_page.html.erb | 3 +- app/views/layouts/application.html.erb | 199 +++++++++++++++++++++++++++++++++ 4 files changed, 224 insertions(+), 5 deletions(-) (limited to 'app') diff --git a/app/controllers/content_controller.rb b/app/controllers/content_controller.rb index 8059fab..a78b8b5 100644 --- a/app/controllers/content_controller.rb +++ b/app/controllers/content_controller.rb @@ -1,12 +1,12 @@ class ContentController < ApplicationController def render_page - path = params[:page_path].join('/') + path = params[:pagepath].join('/') - @node = Node.find_by_unique_name(path) + @page = Node.find_page(path) # Replace with real 404 - render :status => 404 unless @node + render :status => 404 unless @page end end diff --git a/app/models/node.rb b/app/models/node.rb index 6e54004..5acf563 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -3,6 +3,27 @@ class Node < ActiveRecord::Base has_many :pages, :order => "revision ASC" + # Class methods + + def self.find_page path, revision = :current + + node = Node.find_by_unique_name(path) + + if node + + case revision + when :current + return node.pages.last + when /\d+/ + return node.pages.find_by_revision revision + end + end + + nil + end + + # Instance Methods + # returns array with pages up to root excluding root def path_to_root parent.nil? && [slug] || parent.path_to_root.push(slug) diff --git a/app/views/content/render_page.html.erb b/app/views/content/render_page.html.erb index af7ef88..2c65a6c 100644 --- a/app/views/content/render_page.html.erb +++ b/app/views/content/render_page.html.erb @@ -1,2 +1 @@ -

Content#render_page

-

Find me in app/views/content/render_page.html.erb

+<%= @page.body %> \ No newline at end of file diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index e69de29..f9f7faa 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -0,0 +1,199 @@ + + + + + CCC Template + + <%= stylesheet_link_tag 'styled' %> + <%= stylesheet_link_tag 'safari' %> + <%= stylesheet_link_tag 'ie' %> + + + + + + + + +
+
+
+

Precontent

+

+ Rhabarber, brable, bra..., bla, bla... (fasel) +

+
+ +
+
+
+
+

<%= @page.title %>

+

<%= @page.published_at.to_s(:db) %>, gregoa

+
+ <%= @page.body %> +
+
+ + + +
+
+
    +
  • + Congress +
  • +
  • + www.chinesewall.ccc.de +
  • +
  • + Fingerabrdrücke +
  • +
+

+ +
+
+

Sponsoren

+
    +
  • + snafu: So geht man ins Netz +
  • +
+
+
+ + + + +
+ + + +
+
+ + + \ No newline at end of file -- cgit v1.3