Top Banner
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.now Donnerstag, 15. September 11
20

Alchemy CMS Präsentation Rails UG HH 09.2011

Nov 22, 2014

Download

Technology

Ruby On Rails based Alchemy CMS presentation.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Alchemy CMS Präsentation Rails UG HH 09.2011

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.now

Donnerstag, 15. September 11

Page 2: Alchemy CMS Präsentation Rails UG HH 09.2011

OMFGPNAOSCMSWAHX**Oh my f*#&ing god, please not another opensource CMS, we already have X!

Donnerstag, 15. September 11

Page 3: Alchemy CMS Präsentation Rails UG HH 09.2011

• Motivation: flexibel wie Typo 3, trotzdem bedienbar

• Von 2007 bis 2010 als proprietäre Software:

• Softwarepflege / Weiterentwicklung

• Gewährleistung

• Verwertungsrechte

• Seit 2010 OpenSource

History

Donnerstag, 15. September 11

Page 4: Alchemy CMS Präsentation Rails UG HH 09.2011

• Rails Engine

• Rails 2 (plugin)

• Rails 3 (gem)

• RMagick

• Ferret*

• FastGettext

• GPLv3

Facts

*WTF?

Donnerstag, 15. September 11

Page 5: Alchemy CMS Präsentation Rails UG HH 09.2011

• Alchemy speichert Inhalte einer Web-Seite in kleinsten Einheiten:

• Atome

• Moleküle

• Zellen

Was macht Alchemy?

@page.body = <<BODY<h1>Welcome</h1><p>Lorem ipsum dolor<img style="float: right" src="image.jpg">

</p>[email protected]_description = "fancy rails cms"@page.save

Was macht Alchemy nicht?

Donnerstag, 15. September 11

Page 6: Alchemy CMS Präsentation Rails UG HH 09.2011

• Alchemy speichert Inhalte einerWeb-Seite in kleinsten Einheiten:

• Atome

• Moleküle

• Zellen

Was macht Alchemy?

Donnerstag, 15. September 11

Page 7: Alchemy CMS Präsentation Rails UG HH 09.2011

• 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 überlassen

What you need is what you get

Donnerstag, 15. September 11

Page 8: Alchemy CMS Präsentation Rails UG HH 09.2011

Rendering Tree• Layout

➡ app/views/layout/pages.html.erb

• PageLayout

➡ app/views/page_layouts/_standard.html.erb

• Cell

➡ app/views/cells/_right_column.html.erb

• Element

➡ app/views/elements/_article_view.html.erb

• Essence

➡ app/views/layout/_essence_text_view.html.erb

ActionCaching

Donnerstag, 15. September 11

Page 9: Alchemy CMS Präsentation Rails UG HH 09.2011

Code!

Donnerstag, 15. September 11

Page 10: Alchemy CMS Präsentation Rails UG HH 09.2011

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

Page 11: Alchemy CMS Präsentation Rails UG HH 09.2011

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: EssenceRichtext

Donnerstag, 15. September 11

Page 12: Alchemy CMS Präsentation Rails UG HH 09.2011

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

Page 13: Alchemy CMS Präsentation Rails UG HH 09.2011

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

Page 14: Alchemy CMS Präsentation Rails UG HH 09.2011

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

Page 15: Alchemy CMS Präsentation Rails UG HH 09.2011

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

Page 16: Alchemy CMS Präsentation Rails UG HH 09.2011

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 generator

Donnerstag, 15. September 11

Page 17: Alchemy CMS Präsentation Rails UG HH 09.2011

Demo

Donnerstag, 15. September 11

Page 18: Alchemy CMS Präsentation Rails UG HH 09.2011

We need help!

Wir brauchen Contributer:

• Entwicklung

• Dokumentation

• Testing

• Bug Reporting

Donnerstag, 15. September 11

Page 19: Alchemy CMS Präsentation Rails UG HH 09.2011

https://github.com/magiclabs/alchemy_cms

Follow me: @alchemy_cms

Help us!

Donnerstag, 15. September 11

Page 20: Alchemy CMS Präsentation Rails UG HH 09.2011

Danke!@alchemy_cms

Donnerstag, 15. September 11