Moin, moin!                •    Thomas von Deyen (@tvdeyen)                •    1976 geb. in Hamburg                •    v...
OMFGPNAOSCMSWAHX*                               *Oh my f*#&ing god, please not another opensource CMS, we already have X!D...
History                • Motivation: flexibel wie Typo 3, trotzdem bedienbar                • Von 2007 bis 2010 als propri...
Facts                • Rails Engine                     • Rails 2 (plugin)                     • Rails 3 (gem)            ...
Was macht Alchemy?nicht?                         Alchemy                • Alchemy speichert Inhalte einer Web-Seite in kle...
Was macht Alchemy?                • Alchemy speichert Inhalte einer                  Web-Seite in kleinsten Einheiten:    ...
What you need is what you get                • 100% Trennung zwischen Inhalt und Styling                • Extrem flexible ...
Rendering Tree                • Layout                        ➡      app/views/layout/pages.html.erb                • Page...
Code!Donnerstag, 15. September 11
Example page_layouts.yml              #config/alchemy/page_layouts.yml              - name: standard                elemen...
Example elements.yml              #config/alchemy/elements.yml              - name: article                contents:      ...
Example layout:                # app/views/layouts/pages.html.erb                <!DOCTYPE>                <html>         ...
Example page layout partial:                # app/views/page_layouts/_standard.html.erb                <div id="main_conte...
Example elements view partial:                # app/views/elements/_article_view.html.erb                <div class="artic...
Example elements editor partial:                # app/views/elements/_article_editor.html.erb                <%= render_es...
There is a task* for that!                • Create new project                        ➡ alchemy new fancypage             ...
DemoDonnerstag, 15. September 11
We need help!                     Wir brauchen Contributer:                     • Entwicklung                     • Dokume...
Help us!                         https://github.com/magiclabs/alchemy_cms                                 Follow me: @alch...
Danke!                               @alchemy_cmsDonnerstag, 15. September 11
Upcoming SlideShare
Loading in …5
×

Alchemy CMS Präsentation Rails UG HH 09.2011

8,876 views

Published on

Ruby On Rails based Alchemy CMS presentation.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,876
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Alchemy CMS Präsentation Rails UG HH 09.2011

  1. 1. Moin, moin! • Thomas von Deyen (@tvdeyen) • 1976 geb. in Hamburg • verheiratet, 1 Sohn • HAW Hamburg Medientechnik • 2007: PHP2Ruby • macabi • 2007..2009 • ThinkWorkDone • 2009..2010 • magic labs* • 2010..Time.nowDonnerstag, 15. September 11
  2. 2. OMFGPNAOSCMSWAHX* *Oh my f*#&ing god, please not another opensource CMS, we already have X!Donnerstag, 15. September 11
  3. 3. History • Motivation: flexibel wie Typo 3, trotzdem bedienbar • Von 2007 bis 2010 als proprietäre Software: • Softwarepflege / Weiterentwicklung • Gewährleistung • Verwertungsrechte • Seit 2010 OpenSourceDonnerstag, 15. September 11
  4. 4. Facts • Rails Engine • Rails 2 (plugin) • Rails 3 (gem) • RMagick • Ferret* • FastGettext • GPLv3 *WTF?Donnerstag, 15. September 11
  5. 5. Was macht Alchemy?nicht? Alchemy • Alchemy speichert Inhalte einer Web-Seite in kleinsten Einheiten: • Atome @page.body = <<BODY <h1>Welcome</h1> • Moleküle <p> • Lorem ipsum dolor Zellen <img style="float: right" src="image.jpg"> </p> BODY @page.meta_description = "fancy rails cms" @page.saveDonnerstag, 15. September 11
  6. 6. Was macht Alchemy? • Alchemy speichert Inhalte einer Web-Seite in kleinsten Einheiten: • Atome • Moleküle • ZellenDonnerstag, 15. September 11
  7. 7. What you need is what you get • 100% Trennung zwischen Inhalt und Styling • Extrem flexible Anpassungsmöglichkeiten • Wie in einem Chemiebaukasten liefert Alchemy nur die grundlegenden Essenzen • Welche Elemente daraus zusammengestellt werden ist komplett dem Entwickler überlassenDonnerstag, 15. September 11
  8. 8. Rendering Tree • Layout ➡ app/views/layout/pages.html.erb • PageLayout ➡ app/views/page_layouts/_standard.html.erb ActionCaching • Cell ➡ app/views/cells/_right_column.html.erb • Element ➡ app/views/elements/_article_view.html.erb • Essence ➡ app/views/layout/_essence_text_view.html.erbDonnerstag, 15. September 11
  9. 9. Code!Donnerstag, 15. September 11
  10. 10. Example page_layouts.yml #config/alchemy/page_layouts.yml - name: standard elements: [headline, article, gallery] autogenerate: [headline] - name: news feed: true elements: [news] - name: contact unique: true cache: false elements: [contactform] autogenerate: [contactform]Donnerstag, 15. September 11
  11. 11. Example elements.yml #config/alchemy/elements.yml - name: article contents: - name: headline type: EssenceText - name: text type: EssenceRichtext - name: image type: EssencePicture - name: news contents: - name: title type: EssenceText - name: date type: EssenceDate - name: body type: EssenceRichtextDonnerstag, 15. September 11
  12. 12. Example layout: # app/views/layouts/pages.html.erb <!DOCTYPE> <html> <head> <%= stylesheet_link_tag "styles" %> </head> <body> <div id="page"> <div id="navigation"> <%= render_navigation %> </div> <div id="content"> <%= yield %> </div> </div> </body> </html>Donnerstag, 15. September 11
  13. 13. Example page layout partial: # app/views/page_layouts/_standard.html.erb <div id="main_content"> <%= render_elements(:except => right_info) %> </div> <div id="right_column"> <%= render_elements(:only => right_info) %> </div>Donnerstag, 15. September 11
  14. 14. Example elements view partial: # app/views/elements/_article_view.html.erb <div class="article"> <h1> <%= render_essence_view_by_name(element, headline) %> </h1> <p> <%= render_essence_view_by_name(element, text) %> <%= render_essence_view_by_type(element, EssencePicture, :image_size => "80x120", :crop => true ) %> </p> </div>Donnerstag, 15. September 11
  15. 15. Example elements editor partial: # app/views/elements/_article_editor.html.erb <%= render_essence_editor_by_name(element, headline) %> <%= render_essence_editor_by_name(element, text) %> <%= render_picture_editor(element, :image_size => "80x120", :crop => true ) %>Donnerstag, 15. September 11
  16. 16. There is a task* for that! • Create new project ➡ alchemy new fancypage • Or prepare existing rails app for Alchemy ➡ rake alchemy:prepare • Scaffold necessary folders and files ➡ rails g alchemy:scaffold:all • Install standard set (default layout) ➡ rake alchemy:standard_set:install * and or generatorDonnerstag, 15. September 11
  17. 17. DemoDonnerstag, 15. September 11
  18. 18. We need help! Wir brauchen Contributer: • Entwicklung • Dokumentation • Testing • Bug ReportingDonnerstag, 15. September 11
  19. 19. Help us! https://github.com/magiclabs/alchemy_cms Follow me: @alchemy_cmsDonnerstag, 15. September 11
  20. 20. Danke! @alchemy_cmsDonnerstag, 15. September 11

×