SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Radiant CMS
          no fluff, just stuff!
          Eine Einführung

                                 iTeh DI Edmund Siegfried Haselwanter (office@iteh.at)




Mittwoch, 31. März 2010
Vorstellung

               Edmund Haselwanter
               seit August 2008 selbständig
               Focus auf IT Consulting / Rails und IT Automatisierung
               seit ca. 2 Jahren verschiedene Radiant Webseiten
               online




Mittwoch, 31. März 2010
Warum Radiant?

               Zuerst Versuch mit enterprise-level CMS Systemen und
               Blog Engines wie Wordpress
               Zu viele Funktionen, zu kompliziert oder zu unflexibel
               Will “einfach” Seiten machen
               Ruby/Rails Fan-Boy ;-)




Mittwoch, 31. März 2010
Die 80-20 Regel

               Zu 80% verwendet man 20% der Funktionen
               Zumeist will man nur “Seiten” erstellen
               Radiant bietet Pages, Layouts und Snippets für diese
               Aufgabe
               Der Rest kann mit im Moment ca. 200 Erweiterungen
               oder einfach selbst programmiert werden



Mittwoch, 31. März 2010
Installation

                          gem install radiant
                          radiant meine-webseite
                          rake db:bootstrap




Mittwoch, 31. März 2010
Admin Interface
          unter /admin

Mittwoch, 31. März 2010
Der Content




          Der Content
          Hierarchische Seitenstruktur

Mittwoch, 31. März 2010
Workflow Status


                          Der Content




         Workflow Status
          auf einen Blick Status aller Seiten

Mittwoch, 31. März 2010
Workflow Status


                          Der Content

                                    Seiten
                              erstellen/löschen

          Seiten
          in der Hierarchie erstellen oder löschen

Mittwoch, 31. März 2010
Mittwoch, 31. März 2010
Titel




Mittwoch, 31. März 2010
Titel
                          Url Teil




Mittwoch, 31. März 2010
Titel
                          Url Teil
                                     Breadcrumb




Mittwoch, 31. März 2010
Titel
                          Url Teil
                                     Breadcrumb


                          Seiten Teile




Mittwoch, 31. März 2010
Titel
                          Url Teil
                                     Breadcrumb


                          Seiten Teile

                          Filter




Mittwoch, 31. März 2010
Titel
                          Url Teil
                                     Breadcrumb


                          Seiten Teile

                          Filter

                            Content




Mittwoch, 31. März 2010
Titel
                               Url Teil
                                          Breadcrumb


                              Seiten Teile

                              Filter

                                   Content

                          Layout


Mittwoch, 31. März 2010
Titel
                               Url Teil
                                           Breadcrumb


                              Seiten Teile

                              Filter

                                   Content

                          Layout       Seiten Typ


Mittwoch, 31. März 2010
Layouts
          Site Wireframe - Sind die Templates einer Seite

Mittwoch, 31. März 2010
Layouts
          Definieren Content Type
          --> Auch XML, CSS, Javascript, ... möglich
Mittwoch, 31. März 2010
Snippets
          Wiederverwendbare Mini Templates

Mittwoch, 31. März 2010
Snippets
          Über den Namen ansprechbar

Mittwoch, 31. März 2010
Typisches CMS
                          Seite     Layout   Ergebnis

                                    Header    Header



                          Content            Content



                                    Footer    Footer


Mittwoch, 31. März 2010
Ein besseres Model
                          Seite      Layout   Ergebnis
                          body       Header    Header
                          sidebar




                                                     sidebar
                          extended            body


                                              extended

                                     Footer    Footer


Mittwoch, 31. März 2010
Umsetzung
              <html>
                <head>
                   <title>Eine Beispielseite</title>
                </head>
                <body>
                   <div id="header”><img src="logo.gif" /></div>
                   <div id="content">
                      <h1>Eine Beispielseite</h1>
                      <p>Das ist eine Beispielseite.</p>
                   </div>
                   <div id="sidebar">
                      <p>sidebar Sachen kommen hierher</p>
                   </div>
                   <div id="footer">
                      <p>Copyright 2010, Max Mustermann</p>
                   </div>
                </body>
              </html>


Mittwoch, 31. März 2010
Umsetzung
              <html>                                Titel
                <head>
                   <title>Eine Beispielseite</title>
                </head>
                <body>
                   <div id="header”><img src="logo.gif" /></div>
                   <div id="content">
                      <h1>Eine Beispielseite</h1>
                      <p>Das ist eine Beispielseite.</p>
                   </div>
                   <div id="sidebar">
                      <p>sidebar Sachen kommen hierher</p>
                   </div>
                   <div id="footer">
                      <p>Copyright 2010, Max Mustermann</p>
                   </div>
                </body>
              </html>


Mittwoch, 31. März 2010
Umsetzung
              <html>
                <head>
                   <title><r:title/></title>
                </head>
                <body>
                   <div id="header”><img src="logo.gif" /></div>
                   <div id="content">
                      <h1><r:title/></h1>
                      <p>Das ist eine Beispielseite.</p>
                   </div>
                   <div id="sidebar">
                      <p>sidebar Sachen kommen hierher</p>
                   </div>
                   <div id="footer">
                      <p>Copyright 2010, Max Mustermann</p>
                   </div>
                </body>
              </html>


Mittwoch, 31. März 2010
Umsetzung
              <html>
                <head>
                   <title><r:title/></title>            Wiederkehrender
                </head>
                <body>                                      Kopfteil
                   <div id="header”><img src="logo.gif" /></div>
                   <div id="content">
                      <h1><r:title/></h1>
                      <p>Das ist eine Beispielseite.</p>
                   </div>
                   <div id="sidebar">
                      <p>sidebar Sachen kommen hierher</p>
                   </div>
                   <div id="footer">
                      <p>Copyright 2010, Max Mustermann</p>
                   </div>
                </body>                    Wiederkehrender
              </html>
                                               Fussteil
Mittwoch, 31. März 2010
Umsetzung
              <html>
                <head>
                   <title><r:title/></title>
                </head>
                <body>
                   <r:snippet name="header"/>
                   <div id="content">
                      <h1><r:title/></h1>
                      <p>Das ist eine Beispielseite.</p>
                   </div>
                   <div id="sidebar">
                      <p>sidebar Sachen kommen hierher</p>
                   </div>
                   <r:snippet name="footer"/>
                </body>
              </html>



Mittwoch, 31. März 2010
Umsetzung
              <html>
                <head>
                   <title><r:title/></title>
                </head>
                <body>
                   <r:snippet name="header"/>
                   <div id="content">
                      <h1><r:title/></h1>
                      <p>Das ist eine Beispielseite.</p>     Body
                   </div>
                   <div id="sidebar">
                      <p>sidebar Sachen kommen hierher</p>   Seitenleiste
                   </div>
                   <r:snippet name="footer"/>
                </body>
              </html>



Mittwoch, 31. März 2010
Umsetzung
              <html>
                <head>
                   <title><r:title/></title>
                </head>
                <body>
                   <r:snippet name="header"/>
                   <div id="content">
                      <h1><r:title/></h1>
                      <r:content part="body" />
                      <r:content part="extended" />
                   </div>
                   <div id="sidebar">
                      <r:content part="sidebar" />
                   </div>
                   <r:snippet name="footer"/>
                </body>
              </html>



Mittwoch, 31. März 2010
Umsetzung
              <html>
                 <head>
                   <title><r:title/></title>
                 </head>
                 <body>
                   <r:snippet name="header"/>
                   <div id="content">
                                    mehr dazu unter
                      <h1><r:title/></h1>
                http://wiki.github.com/radiant/radiant/getting-started
                      <r:content part="body" />
                      <r:content part="extended" />
                   </div>
                   <div id="sidebar">
                      <r:content part="sidebar" />
                   </div>
                   <r:snippet name="footer"/>
                 </body>
              </html>



Mittwoch, 31. März 2010
Radiant und Radius

               Radius ist eine Tag basierte Template Sprache
               Radiant hat im Kern 50 Radius Tags
               Sehr einfach erweiterbar durch eigene Tags
               http://radius.rubyforge.org/




Mittwoch, 31. März 2010
Radiant Tags Content
               <r:author/>                                            <r:meta [tag="true|false"]/>

               <r:breadcrumb/>                                        <r:navigation urls="[Title: url|Title: url]>...</
                                                                      r:navigation>
               <r:breadcrumbs [separator="separator_string"]
               [nolinks="true|false"]/>                               <r:option/>

               <r:comment/>                                           <r:rfc1123_date/>

               <r:content [part="part_name"] [inherit="true|false"]   <r:slug/>
               [contextual="true|false"]/>
                                                                      <r:snippet name="snippet_name"/>
               <r:count/>
                                                                      <r:snippet name="snippet_name">...</r:snippet>
               <r:cycle values="1, 2, 3" [reset="true|false"]
               [name="cycle"]/>                                       <r:status [downcase='true|false']/>
               <r:date [format="%A, %B %d, %Y"]                       <r:title/>
               [for="created_at|now|published_at|updated_at"]/>
                                                                      <r:url/>
               <r:escape_html/>
                                                                      <r:yield/>
               <r:link [anchor="name"] [other attributes...]/>

               <r:link [anchor="name"] [other attributes...]>...</
               r:link>

               <r:meta:description [tag="true|false"]/>

               <r:meta:keywords [tag="true|false"]/>

Mittwoch, 31. März 2010
Radiant Tags Context
               <r:page>...</r:page>

               <r:children>...</r:children>

               <r:children:first>...</r:children:first>

               <r:children:last>...</r:children:last>

               <r:children:each [offset="number"]
               [limit="number"] [by="attribute"] [order="asc|desc"]
               [status="draft|reviewed|published|hidden|all"]>...</
               r:children:each>

               <r:children:each:child>...</r:children:each:child>

               <r:parent>...</r:parent>

               <r:find url="value_to_find">...</r:find>

               <r:random>...</r:random>




Mittwoch, 31. März 2010
Radiant Tags Conditional
               <r:if_first>...</r:if_first>                            <r:if_ancestor_or_self>...</r:if_ancestor_or_self>

               <r:unless_first>...</r:unless_first>                    <r:unless_ancestor_or_self>...</
                                                                     r:unless_ancestor_or_self>
               <r:if_last>...</r:if_last>
                                                                     <r:if_self>...</r:if_self>
               <r:unless_last>...</r:unless_last>
                                                                     <r:unless_self>...</r:unless_self>
               <r:if_parent>...</r:if_parent>
                                                                     <r:if_dev>...</r:if_dev>
               <r:unless_parent>...</r:unless_parent>
                                                                     <r:unless_dev>...</r:unless_dev>
               <r:if_children [status="published|draft|hidden|
               reviewed"]>...</r:if_children>                        <r:header [name="header_name"] [restart="name1
                                                                     [;name2;...]>...</r:header>
               <r:unless_children [status="published|draft|hidden|
               reviewed"]>...</r:unless_children>

               <r:if_content [part="part_name, other_part"]
               [inherit="true"] [find="any"]>...</r:if_content>

               <r:unless_content [part="part_name, other_part"]
               [inherit="true"] [find="any"]>...</r:unless_content>

               <r:if_url matches="regexp" [ignore_case="true|
               false"]>...</r:if_url>

               <r:unless_url
               matches="regexp" [ignore_case="true|false"]>...</
               r:unless_url>

Mittwoch, 31. März 2010
Beispiel für Conditionals
        <r:find url="/news">
          <r:if_children>
            <ul>
              <r:children:each>
              <li><r:title/></li>
              </r:children:each>
            </ul>
          </r:if_children>
          <r:unless_children>
            <p>There are no news stories just now. Please check back
        later.</p>
          </r:unless_children>
        </r:find>




Mittwoch, 31. März 2010
Beispiel für Conditionals
        <r:find url="/news">
          <r:if_children>
            <ul>
              <r:children:each>
              <li><r:title/></li>
              </r:children:each>
            </ul>
          </r:if_children>
          <r:unless_children>
            <p>There are no news stories just now. Please check back
        later.</p>
          </r:unless_children>
        </r:find>




Mittwoch, 31. März 2010
Beispiel für Conditionals
        <r:find url="/news">
          <r:if_children>
            <ul>
              <r:children:each>
              <li><r:title/></li>
              </r:children:each>
            </ul>
          </r:if_children>
          <r:unless_children>
            <p>There are no news stories just now. Please check back
        later.</p>
          </r:unless_children>
        </r:find>




Mittwoch, 31. März 2010
Beispiel für Conditionals
        <r:find url="/news">
          <r:if_children>
            <ul>
              <r:children:each>
              <li><r:title/></li>
              </r:children:each>
            </ul>
          </r:if_children>
          <r:unless_children>
            <p>There are no news stories just now. Please check back
        later.</p>
          </r:unless_children>
        </r:find>




Mittwoch, 31. März 2010
Und die restlichen 20% ?
               Es gibt ca. 200 Erweiterungen (http://ext.radiantcms.org/)
               von ein paar Tags bis CRM Integration
               nichts dabei? -> selbst schreiben!
                     Sehr flexibles Extension Interface
                     Admin Bereich einfach erweiterbar
                     Radiant Teile mit Ruby Metaprogramming mehr/
                     andere Funktionalität geben
                     http://wiki.github.com/radiant/radiant/creating-
                     extensions
Mittwoch, 31. März 2010
Populäre Erweiterungen
               Paperclipped
               Mailer
               share_layouts
               Gallery
               nav




Mittwoch, 31. März 2010
Zusammenfassung
               Pros:
                     Sehr gut geeignet für typische Web Auftritte
                     flexibel und einfach erweiterbar
               Cons:
                     produktiv einsetzbar, aber erst Version 0.9
                     Extensions finden und installieren mitunter schwierig




Mittwoch, 31. März 2010
Weiterführende Links
               Repo: http://github.com/radiant/radiant
               Wiki: http://wiki.github.com/radiant/radiant/
               Extensions: http://ext.radiantcms.org/
               Viele Extensions auf github.com
               irc: #radiantcms channel auf irc.freenode.net
               Mailinglist: http://radiantcms.org/mailing-list/




Mittwoch, 31. März 2010

Weitere ähnliche Inhalte

Andere mochten auch

II Encuentro Emprendedores Eduardo Barreiros (Ourense) - Buscar Financiacion ...
II Encuentro Emprendedores Eduardo Barreiros (Ourense) - Buscar Financiacion ...II Encuentro Emprendedores Eduardo Barreiros (Ourense) - Buscar Financiacion ...
II Encuentro Emprendedores Eduardo Barreiros (Ourense) - Buscar Financiacion ...Carlos Blanco
 
Horse Sense Catalog
Horse Sense CatalogHorse Sense Catalog
Horse Sense CatalogSyrVet
 
SMi's E&P Information and Data Management
SMi's E&P Information and Data ManagementSMi's E&P Information and Data Management
SMi's E&P Information and Data ManagementDale Butler
 
Multiculturalidad en la escuelccca
Multiculturalidad en la escuelcccaMulticulturalidad en la escuelccca
Multiculturalidad en la escuelcccadelavibora
 
pixton de la super zanahoria.
pixton de la super zanahoria.pixton de la super zanahoria.
pixton de la super zanahoria.Victoria Martin
 
Pankaj Rajpal Profile & career Contour July 2016
Pankaj Rajpal Profile & career Contour July 2016Pankaj Rajpal Profile & career Contour July 2016
Pankaj Rajpal Profile & career Contour July 2016Pankaj Rajpal
 
Maestras de la República
Maestras de la RepúblicaMaestras de la República
Maestras de la RepúblicaAdri A
 
LVR Fleet - Logiciel Entretien Post'Accident
LVR Fleet - Logiciel Entretien Post'AccidentLVR Fleet - Logiciel Entretien Post'Accident
LVR Fleet - Logiciel Entretien Post'Accidentlavieroutiere
 
Automatización de procesos industriales José María González
Automatización de procesos industriales   José María GonzálezAutomatización de procesos industriales   José María González
Automatización de procesos industriales José María GonzálezCharles Palacios Navarro
 
Partner presentation, passion for projects 2014
Partner presentation, passion for projects 2014Partner presentation, passion for projects 2014
Partner presentation, passion for projects 2014Johan Sporre
 
2 bac vectores
2 bac vectores2 bac vectores
2 bac vectoresannyel100
 

Andere mochten auch (16)

Vernetzung der Akteure
Vernetzung der AkteureVernetzung der Akteure
Vernetzung der Akteure
 
Karen Kavanagh Photography
Karen Kavanagh PhotographyKaren Kavanagh Photography
Karen Kavanagh Photography
 
Presentación CTI-Jornada Codetrans
Presentación CTI-Jornada CodetransPresentación CTI-Jornada Codetrans
Presentación CTI-Jornada Codetrans
 
II Encuentro Emprendedores Eduardo Barreiros (Ourense) - Buscar Financiacion ...
II Encuentro Emprendedores Eduardo Barreiros (Ourense) - Buscar Financiacion ...II Encuentro Emprendedores Eduardo Barreiros (Ourense) - Buscar Financiacion ...
II Encuentro Emprendedores Eduardo Barreiros (Ourense) - Buscar Financiacion ...
 
Horse Sense Catalog
Horse Sense CatalogHorse Sense Catalog
Horse Sense Catalog
 
SMi's E&P Information and Data Management
SMi's E&P Information and Data ManagementSMi's E&P Information and Data Management
SMi's E&P Information and Data Management
 
Multiculturalidad en la escuelccca
Multiculturalidad en la escuelcccaMulticulturalidad en la escuelccca
Multiculturalidad en la escuelccca
 
pixton de la super zanahoria.
pixton de la super zanahoria.pixton de la super zanahoria.
pixton de la super zanahoria.
 
Pankaj Rajpal Profile & career Contour July 2016
Pankaj Rajpal Profile & career Contour July 2016Pankaj Rajpal Profile & career Contour July 2016
Pankaj Rajpal Profile & career Contour July 2016
 
Maestras de la República
Maestras de la RepúblicaMaestras de la República
Maestras de la República
 
LVR Fleet - Logiciel Entretien Post'Accident
LVR Fleet - Logiciel Entretien Post'AccidentLVR Fleet - Logiciel Entretien Post'Accident
LVR Fleet - Logiciel Entretien Post'Accident
 
Automatización de procesos industriales José María González
Automatización de procesos industriales   José María GonzálezAutomatización de procesos industriales   José María González
Automatización de procesos industriales José María González
 
Infosys Information Platform - Translating data into action
Infosys Information Platform - Translating data into actionInfosys Information Platform - Translating data into action
Infosys Information Platform - Translating data into action
 
Gimp
GimpGimp
Gimp
 
Partner presentation, passion for projects 2014
Partner presentation, passion for projects 2014Partner presentation, passion for projects 2014
Partner presentation, passion for projects 2014
 
2 bac vectores
2 bac vectores2 bac vectores
2 bac vectores
 

Webmontag Graz Radiant CMS

  • 1. Radiant CMS no fluff, just stuff! Eine Einführung iTeh DI Edmund Siegfried Haselwanter (office@iteh.at) Mittwoch, 31. März 2010
  • 2. Vorstellung Edmund Haselwanter seit August 2008 selbständig Focus auf IT Consulting / Rails und IT Automatisierung seit ca. 2 Jahren verschiedene Radiant Webseiten online Mittwoch, 31. März 2010
  • 3. Warum Radiant? Zuerst Versuch mit enterprise-level CMS Systemen und Blog Engines wie Wordpress Zu viele Funktionen, zu kompliziert oder zu unflexibel Will “einfach” Seiten machen Ruby/Rails Fan-Boy ;-) Mittwoch, 31. März 2010
  • 4. Die 80-20 Regel Zu 80% verwendet man 20% der Funktionen Zumeist will man nur “Seiten” erstellen Radiant bietet Pages, Layouts und Snippets für diese Aufgabe Der Rest kann mit im Moment ca. 200 Erweiterungen oder einfach selbst programmiert werden Mittwoch, 31. März 2010
  • 5. Installation gem install radiant radiant meine-webseite rake db:bootstrap Mittwoch, 31. März 2010
  • 6. Admin Interface unter /admin Mittwoch, 31. März 2010
  • 7. Der Content Der Content Hierarchische Seitenstruktur Mittwoch, 31. März 2010
  • 8. Workflow Status Der Content Workflow Status auf einen Blick Status aller Seiten Mittwoch, 31. März 2010
  • 9. Workflow Status Der Content Seiten erstellen/löschen Seiten in der Hierarchie erstellen oder löschen Mittwoch, 31. März 2010
  • 12. Titel Url Teil Mittwoch, 31. März 2010
  • 13. Titel Url Teil Breadcrumb Mittwoch, 31. März 2010
  • 14. Titel Url Teil Breadcrumb Seiten Teile Mittwoch, 31. März 2010
  • 15. Titel Url Teil Breadcrumb Seiten Teile Filter Mittwoch, 31. März 2010
  • 16. Titel Url Teil Breadcrumb Seiten Teile Filter Content Mittwoch, 31. März 2010
  • 17. Titel Url Teil Breadcrumb Seiten Teile Filter Content Layout Mittwoch, 31. März 2010
  • 18. Titel Url Teil Breadcrumb Seiten Teile Filter Content Layout Seiten Typ Mittwoch, 31. März 2010
  • 19. Layouts Site Wireframe - Sind die Templates einer Seite Mittwoch, 31. März 2010
  • 20. Layouts Definieren Content Type --> Auch XML, CSS, Javascript, ... möglich Mittwoch, 31. März 2010
  • 21. Snippets Wiederverwendbare Mini Templates Mittwoch, 31. März 2010
  • 22. Snippets Über den Namen ansprechbar Mittwoch, 31. März 2010
  • 23. Typisches CMS Seite Layout Ergebnis Header Header Content Content Footer Footer Mittwoch, 31. März 2010
  • 24. Ein besseres Model Seite Layout Ergebnis body Header Header sidebar sidebar extended body extended Footer Footer Mittwoch, 31. März 2010
  • 25. Umsetzung <html> <head> <title>Eine Beispielseite</title> </head> <body> <div id="header”><img src="logo.gif" /></div> <div id="content"> <h1>Eine Beispielseite</h1> <p>Das ist eine Beispielseite.</p> </div> <div id="sidebar"> <p>sidebar Sachen kommen hierher</p> </div> <div id="footer"> <p>Copyright 2010, Max Mustermann</p> </div> </body> </html> Mittwoch, 31. März 2010
  • 26. Umsetzung <html> Titel <head> <title>Eine Beispielseite</title> </head> <body> <div id="header”><img src="logo.gif" /></div> <div id="content"> <h1>Eine Beispielseite</h1> <p>Das ist eine Beispielseite.</p> </div> <div id="sidebar"> <p>sidebar Sachen kommen hierher</p> </div> <div id="footer"> <p>Copyright 2010, Max Mustermann</p> </div> </body> </html> Mittwoch, 31. März 2010
  • 27. Umsetzung <html> <head> <title><r:title/></title> </head> <body> <div id="header”><img src="logo.gif" /></div> <div id="content"> <h1><r:title/></h1> <p>Das ist eine Beispielseite.</p> </div> <div id="sidebar"> <p>sidebar Sachen kommen hierher</p> </div> <div id="footer"> <p>Copyright 2010, Max Mustermann</p> </div> </body> </html> Mittwoch, 31. März 2010
  • 28. Umsetzung <html> <head> <title><r:title/></title> Wiederkehrender </head> <body> Kopfteil <div id="header”><img src="logo.gif" /></div> <div id="content"> <h1><r:title/></h1> <p>Das ist eine Beispielseite.</p> </div> <div id="sidebar"> <p>sidebar Sachen kommen hierher</p> </div> <div id="footer"> <p>Copyright 2010, Max Mustermann</p> </div> </body> Wiederkehrender </html> Fussteil Mittwoch, 31. März 2010
  • 29. Umsetzung <html> <head> <title><r:title/></title> </head> <body> <r:snippet name="header"/> <div id="content"> <h1><r:title/></h1> <p>Das ist eine Beispielseite.</p> </div> <div id="sidebar"> <p>sidebar Sachen kommen hierher</p> </div> <r:snippet name="footer"/> </body> </html> Mittwoch, 31. März 2010
  • 30. Umsetzung <html> <head> <title><r:title/></title> </head> <body> <r:snippet name="header"/> <div id="content"> <h1><r:title/></h1> <p>Das ist eine Beispielseite.</p> Body </div> <div id="sidebar"> <p>sidebar Sachen kommen hierher</p> Seitenleiste </div> <r:snippet name="footer"/> </body> </html> Mittwoch, 31. März 2010
  • 31. Umsetzung <html> <head> <title><r:title/></title> </head> <body> <r:snippet name="header"/> <div id="content"> <h1><r:title/></h1> <r:content part="body" /> <r:content part="extended" /> </div> <div id="sidebar"> <r:content part="sidebar" /> </div> <r:snippet name="footer"/> </body> </html> Mittwoch, 31. März 2010
  • 32. Umsetzung <html> <head> <title><r:title/></title> </head> <body> <r:snippet name="header"/> <div id="content"> mehr dazu unter <h1><r:title/></h1> http://wiki.github.com/radiant/radiant/getting-started <r:content part="body" /> <r:content part="extended" /> </div> <div id="sidebar"> <r:content part="sidebar" /> </div> <r:snippet name="footer"/> </body> </html> Mittwoch, 31. März 2010
  • 33. Radiant und Radius Radius ist eine Tag basierte Template Sprache Radiant hat im Kern 50 Radius Tags Sehr einfach erweiterbar durch eigene Tags http://radius.rubyforge.org/ Mittwoch, 31. März 2010
  • 34. Radiant Tags Content <r:author/> <r:meta [tag="true|false"]/> <r:breadcrumb/> <r:navigation urls="[Title: url|Title: url]>...</ r:navigation> <r:breadcrumbs [separator="separator_string"] [nolinks="true|false"]/> <r:option/> <r:comment/> <r:rfc1123_date/> <r:content [part="part_name"] [inherit="true|false"] <r:slug/> [contextual="true|false"]/> <r:snippet name="snippet_name"/> <r:count/> <r:snippet name="snippet_name">...</r:snippet> <r:cycle values="1, 2, 3" [reset="true|false"] [name="cycle"]/> <r:status [downcase='true|false']/> <r:date [format="%A, %B %d, %Y"] <r:title/> [for="created_at|now|published_at|updated_at"]/> <r:url/> <r:escape_html/> <r:yield/> <r:link [anchor="name"] [other attributes...]/> <r:link [anchor="name"] [other attributes...]>...</ r:link> <r:meta:description [tag="true|false"]/> <r:meta:keywords [tag="true|false"]/> Mittwoch, 31. März 2010
  • 35. Radiant Tags Context <r:page>...</r:page> <r:children>...</r:children> <r:children:first>...</r:children:first> <r:children:last>...</r:children:last> <r:children:each [offset="number"] [limit="number"] [by="attribute"] [order="asc|desc"] [status="draft|reviewed|published|hidden|all"]>...</ r:children:each> <r:children:each:child>...</r:children:each:child> <r:parent>...</r:parent> <r:find url="value_to_find">...</r:find> <r:random>...</r:random> Mittwoch, 31. März 2010
  • 36. Radiant Tags Conditional <r:if_first>...</r:if_first> <r:if_ancestor_or_self>...</r:if_ancestor_or_self> <r:unless_first>...</r:unless_first> <r:unless_ancestor_or_self>...</ r:unless_ancestor_or_self> <r:if_last>...</r:if_last> <r:if_self>...</r:if_self> <r:unless_last>...</r:unless_last> <r:unless_self>...</r:unless_self> <r:if_parent>...</r:if_parent> <r:if_dev>...</r:if_dev> <r:unless_parent>...</r:unless_parent> <r:unless_dev>...</r:unless_dev> <r:if_children [status="published|draft|hidden| reviewed"]>...</r:if_children> <r:header [name="header_name"] [restart="name1 [;name2;...]>...</r:header> <r:unless_children [status="published|draft|hidden| reviewed"]>...</r:unless_children> <r:if_content [part="part_name, other_part"] [inherit="true"] [find="any"]>...</r:if_content> <r:unless_content [part="part_name, other_part"] [inherit="true"] [find="any"]>...</r:unless_content> <r:if_url matches="regexp" [ignore_case="true| false"]>...</r:if_url> <r:unless_url matches="regexp" [ignore_case="true|false"]>...</ r:unless_url> Mittwoch, 31. März 2010
  • 37. Beispiel für Conditionals <r:find url="/news"> <r:if_children> <ul> <r:children:each> <li><r:title/></li> </r:children:each> </ul> </r:if_children> <r:unless_children> <p>There are no news stories just now. Please check back later.</p> </r:unless_children> </r:find> Mittwoch, 31. März 2010
  • 38. Beispiel für Conditionals <r:find url="/news"> <r:if_children> <ul> <r:children:each> <li><r:title/></li> </r:children:each> </ul> </r:if_children> <r:unless_children> <p>There are no news stories just now. Please check back later.</p> </r:unless_children> </r:find> Mittwoch, 31. März 2010
  • 39. Beispiel für Conditionals <r:find url="/news"> <r:if_children> <ul> <r:children:each> <li><r:title/></li> </r:children:each> </ul> </r:if_children> <r:unless_children> <p>There are no news stories just now. Please check back later.</p> </r:unless_children> </r:find> Mittwoch, 31. März 2010
  • 40. Beispiel für Conditionals <r:find url="/news"> <r:if_children> <ul> <r:children:each> <li><r:title/></li> </r:children:each> </ul> </r:if_children> <r:unless_children> <p>There are no news stories just now. Please check back later.</p> </r:unless_children> </r:find> Mittwoch, 31. März 2010
  • 41. Und die restlichen 20% ? Es gibt ca. 200 Erweiterungen (http://ext.radiantcms.org/) von ein paar Tags bis CRM Integration nichts dabei? -> selbst schreiben! Sehr flexibles Extension Interface Admin Bereich einfach erweiterbar Radiant Teile mit Ruby Metaprogramming mehr/ andere Funktionalität geben http://wiki.github.com/radiant/radiant/creating- extensions Mittwoch, 31. März 2010
  • 42. Populäre Erweiterungen Paperclipped Mailer share_layouts Gallery nav Mittwoch, 31. März 2010
  • 43. Zusammenfassung Pros: Sehr gut geeignet für typische Web Auftritte flexibel und einfach erweiterbar Cons: produktiv einsetzbar, aber erst Version 0.9 Extensions finden und installieren mitunter schwierig Mittwoch, 31. März 2010
  • 44. Weiterführende Links Repo: http://github.com/radiant/radiant Wiki: http://wiki.github.com/radiant/radiant/ Extensions: http://ext.radiantcms.org/ Viele Extensions auf github.com irc: #radiantcms channel auf irc.freenode.net Mailinglist: http://radiantcms.org/mailing-list/ Mittwoch, 31. März 2010