diff options
| author | hukl <hukl@eight.local> | 2009-02-01 21:32:44 +0100 |
|---|---|---|
| committer | hukl <hukl@eight.local> | 2009-02-01 21:32:44 +0100 |
| commit | c1854b8b518bde82b80429636f73496a537c3ad5 (patch) | |
| tree | 59492d905ba5edf4cb7f344ca68a98d8861ff3e0 /app/helpers | |
| parent | a660a7ee62e44314c12440d376166ccb0cf60d80 (diff) | |
added first careful steps for aggregation
Diffstat (limited to 'app/helpers')
| -rw-r--r-- | app/helpers/content_helper.rb | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/app/helpers/content_helper.rb b/app/helpers/content_helper.rb index 0e1df66f..046a2dbd 100644 --- a/app/helpers/content_helper.rb +++ b/app/helpers/content_helper.rb | |||
| @@ -1,8 +1,29 @@ | |||
| 1 | module ContentHelper | 1 | module ContentHelper |
| 2 | 2 | ||
| 3 | # | ||
| 4 | def date_for_page page | 3 | def date_for_page page |
| 5 | page.published_at.to_s(:db) rescue page.created_at.to_s(:db) | 4 | page.published_at.to_s(:db) rescue page.created_at.to_s(:db) |
| 6 | end | 5 | end |
| 7 | 6 | ||
| 7 | def aggregate? content | ||
| 8 | options = {} | ||
| 9 | |||
| 10 | if content =~ /<aggregate([^<>]*)>/ | ||
| 11 | tag = $~.to_s | ||
| 12 | matched_data = $1.scan(/\w+\=\"[a-zA-Z\s\/_\d]*\"/) | ||
| 13 | |||
| 14 | matched_data.each do |data| | ||
| 15 | splitted_data = data.split("=") | ||
| 16 | options[splitted_data[0].to_sym] = splitted_data[1].gsub(/\"/, "") | ||
| 17 | end | ||
| 18 | end | ||
| 19 | |||
| 20 | content.sub(tag, render_collection(options)) | ||
| 21 | end | ||
| 22 | |||
| 23 | def render_collection options | ||
| 24 | render( | ||
| 25 | :partial => 'content/article', | ||
| 26 | :collection => Page.aggregate(options) | ||
| 27 | ) | ||
| 28 | end | ||
| 8 | end | 29 | end |
