SlideShare a Scribd company logo
1 of 77
Download to read offline
an introduction to


    for designers
    The Open Melody Software Group
             Byrne Reese
what’dya gonna talk about?

• Why Melody?
• Templating Language
• Templates and Themes
• Theme Options & Config Bundles
• Great Tools & Plugins for Designers
about melody

Melody is an open source CMS
  built by professional service
providers for people who share
  a passion for community and
creating great web sites.
why melody?
•   Easy to use with no knowledge of a
    programming language required.

•   Highly extensible with tons of plugins to
    choose from.

•   Build powerful, secure and reliable web
    sites with no additional plugins or software
    needed.

•   Create feature rich, social-media aware
    web sites for customers.
why designers like melody

•   Simple, semantic and intuitive templating language.

•   Easy to build web sites quickly.

•   Focus on features that allow for supportable and
    maintainable themes and code.

•   Upgrade without breaking everything.
getting started:
templating language
The Melody Templating Language is a
    mark-up language
             just like:
The Melody Templating Language is a
    mark-up language
             just like:




HTML
<h1>My Website Name</h1>




    if this looks familiar...
<h1><$mt:BlogName$></h1>




     then so should this.
basic syntax
• Markup Language
• Case Insensitive
• XML-ish
• Examples:
 • Function: <$mt:MyTag$>
 • Loop: <mt:MyLoop>...</mt:MyLoop>
lotsa variation

These are all equivalent:
• <mt:Foo>
• <MTFoo>
• <$mt:Foo$>
• <mtfoo>
function tags
• <$mt:EntryTitle$>
• <$mt:AuthorName$>
• <$mt:AuthorUserpic$>
• <$mt:AssetThumbnailURL   width=”100”$>

• <$mt:CommentText$>
Plus hundreds more...
variables
• Setting a variable:
   <mt:var name=”foo” value=”bar”>

• Outputting a variable:
   <mt:var name=”foo”>

• Setting a variable block:
   <mt:SetVarBlock name=”foo”>
        <mt:Entries>
           <$mt:EntryTitle$>
        </mt:Entries>
   </mt:SetVarBlock>
loops & container tags
• <mt:Entries>
• <mt:Comments>
• <mt:Authors>
• Sort and filter:
   •   sort, sort_direction, lastn, <filter by>

And many more...
special loop variables
• These are maintained for you:
   • __first__
   • __last__
   • __counter__
   • __even__
   • __odd__
  e.g. <$mt:var name=”__counter__”$>
special loop variables
• These are maintained for you:
   • __first__
                       Yes, those are two
   • __last__            underscores.
   • __counter__
   • __even__
   • __odd__
  e.g. <$mt:var name=”__counter__”$>
includes & encapsulation
•   Share HTML and template code between templates
    <$mt:include module=”Module Name”$>


•   Include:

    •   Modules

    •   Widgets

    •   Files
modifiers
•   Can be used to transform any tag
•   <$mt:EntryTitle lower_case=”1”$>

    •   encode_html=”1” (js, xml, etc)

    •   upper_case=”1”, lower_case=”1”

    •   count_words=”1”

    •   trim

•   Many more...
for example...
<$mt:EntryTitle$> => My “Blog”


<$mt:EntryTitle upper_case=”1”$> => MY “BLOG”


<$mt:EntryTitle lower_case=”1”$> => my “blog”


<$mt:EntryTitle encode_html=”1”$> => My &quot;Blog&quot;


<$mt:EntryTitle count_words=”1”$> => 2
conditionals

• <mt:if name=”foo” eq=”Byrne”>
• <mt:else name=”foo” eq=”Jay”>
• <mt:else>
• <mt:if name=”foo” ne=”$bar”>
conditional operators
•   Equals?
    <mt:if name=”foo” eq=”Byrne”>

•   Not equal to?
    <mt:if name=”foo” ne=”Byrne”>

•   Greater than?
    <mt:if name=”foo” gt=”10”>

•   Less than?
    <mt:if name=”foo” lt=”366”>

•   Plus: le (less then or equal to), ge (greater than or
    equal to)
bringing it all together
<mt:Entries lastn="10">
  <mt:if name="__first__"><ul></mt:if>
  <li class="entry <mt:if name="__even__">even<mt:else>odd</mt:if>">
    <$mt:var name="__counter__"$>. <$mt:EntryTitle$>
  </li>
  <mt:if name="__last__"></ul></mt:if>
</mt:Entries>
bringing it all together
<mt:Entries lastn="10">
  <mt:if name="__first__"><ul></mt:if>
  <li class="entry <mt:if name="__even__">even<mt:else>odd</mt:if>">
    <$mt:var name="__counter__"$>. <$mt:EntryTitle$>
  </li>
  <mt:if name="__last__"></ul></mt:if>
</mt:Entries>




                                loops
bringing it all together
<mt:Entries lastn="10">
  <mt:if name="__first__"><ul></mt:if>
  <li class="entry <mt:if name="__even__">even<mt:else>odd</mt:if>">
    <$mt:var name="__counter__"$>. <$mt:EntryTitle$>
  </li>
  <mt:if name="__last__"></ul></mt:if>
</mt:Entries>




                          conditional tags
bringing it all together
<mt:Entries lastn="10">
  <mt:if name="__first__"><ul></mt:if>
  <li class="entry <mt:if name="__even__">even<mt:else>odd</mt:if>">
    <$mt:var name="__counter__"$>. <$mt:EntryTitle$>
  </li>
  <mt:if name="__last__"></ul></mt:if>
</mt:Entries>




                variables & meta-loop variables
templates
packaging
theme structure

•   Themes are broken up into three components:

    •   a configuration file, a.k.a. “config.yaml”

    •   templates

    •   static files (images, stylesheets, javascript, etc)
config.yaml
name: My Theme Pack
template_sets:
  my_theme:
    label: The Best Theme in the World
    templates:
      base_path: templates/
      index:
        main_index:
          label: Main Index
          filename: index.mtml
config.yaml
name: My Theme Pack
template_sets:
  my_theme:
    label: The Best Theme in the World
    templates:
      base_path: templates/
      index:
        main_index:
          label: Main Index
          filename: index.mtml




What’s on the file system:
plugins/MyTheme/config.yaml
plugins/MyTheme/templates/               (your “base path”)
plugins/MyTheme/templates/index.mtml     (your “Main Index” template)
mt-static/plugins/MyTheme/base.css
mt-static/plugins/MyTheme/logo.gif
config.yaml
name: My Theme Pack
template_sets:
  my_theme:
    label: The Best Theme in the World
    templates:
      base_path: templates/
      index:
        main_index:
          label: Main Index
          filename: index.mtml




What’s on the file system:
plugins/MyTheme/config.yaml
plugins/MyTheme/templates/               (your “base path”)
plugins/MyTheme/templates/index.mtml     (your “Main Index” template)
mt-static/plugins/MyTheme/base.css
mt-static/plugins/MyTheme/logo.gif
config.yaml
name: My Theme Pack
template_sets:
  my_theme:
    label: The Best Theme in the World
    templates:
      base_path: templates/
      index:
        main_index:
          label: Main Index
          filename: index.mtml




What’s on the file system:
plugins/MyTheme/config.yaml
plugins/MyTheme/templates/               (your “base path”)
plugins/MyTheme/templates/index.mtml     (your “Main Index” template)
mt-static/plugins/MyTheme/base.css
mt-static/plugins/MyTheme/logo.gif
total control

•   Your config.yaml let’s you:

    •   Name all the templates.

    •   Define modules, widgets, sidebars, archives and
        more.

    •   Set caching preferences.

    •   And more...
applying a theme
theme options
“
    Can you make me a
    button that does...?
             – Famous Customer Quote
“
    Can you make me a
    button that does...?
             – Famous Customer Quote
“
    Can you make me a
    button that does...?
             – Famous Customer Quote
“
    Can you make me a
    button that does...?
             – Famous Customer Quote
“
    Can you make me a
    button that does...?
             – Famous Customer Quote
“
    Can you make me a
    button that does...?
             – Famous Customer Quote
“
    Can you make me a
    button that does...?
             – Famous Customer Quote
• Give customers the controls they need.
• Prevent your users from hanging
  themselves.

• Extend Melody in seconds.
• Say “goodbye” to PHP and Perl.
config.yaml
name: My Theme
template_sets:
  my_theme:
    label: The Best Theme in the World
    options:
      fieldsets:
        feeds:
          label: Feeds and Syndication
        feedburner_id:
          label: Feedburner URL
          type: text
          tag: FeedburnerURL
       use_feedburner:
          label: Use Feedburner?
          hint: Turn on if you want to use Feedburner instead of...
          type: checkbox
          tag: IfFeedburnerEnabled?
Supported Option Types
•   Simple Text Inputs   •   Blog Selectors

•   Text Areas           •   Entry Selectors

•   Radio Buttons        •   Image Radio Buttons

•   Checkboxes

•   Pull-down Menus
Supported Option Types
•   Simple Text Inputs   •   Blog Selectors

•   Text Areas           •   Entry Selectors

•   Radio Buttons        •   Image Radio Buttons

•   Checkboxes

•   Pull-down Menus              Exten
                                       sible!
Example: Homepage Manager
Example: Homepage Manager
                        Image
                        Radios

Fieldsets



              Entry
            Selectors
configuration bundles
Installation Instructions:
Thank you for installing my theme. To get started
lets configure your system properly:
1. Navigate to “Comment Preferences” and turn off
   TrackBacks
2. Navigate to Facebook Plugin preferences and
   enter in “dc123213b2d96f71458cb8eddd5f3427”
   as your Application Key.
3. Navigate to “Registration Preferences” and make
   sure Facebook is checked or enabled.
4. Turn on Twitter Authentication by navigating to
   plugin settings and entering in the following for
Installation Instructions:
Thank you for installing my theme. To get started
lets configure your system properly:
1. Navigate to “Comment Preferences” and turn off
   TrackBacks
2. Navigate to Facebook Plugin preferences and
   enter in “dc123213b2d96f71458cb8eddd5f3427”
   as your Application Key.
3. Navigate to “Registration Preferences” and make
   sure Facebook is checked or enabled.
4. Turn on Twitter Authentication by navigating to
   plugin settings and entering in the following for
• Make it easy for your clients to configure
  their system.

• Give them multiple, pre-approved and
  supported configuration options.

• Pre-configure Melody and plugins.
• Create bundles quickly just by editing a
  config file.
great tools & plugins
      for designers
Custom CSS
Give clients control without
sacrificing supportability and
warrantability.

•   Dedicated CSS Editor.

•   Easily accessible from
    menu.

•   No republishing necessary.
Custom Header
Provide rich user experiences when customizing a design.

•   Give clients control over the things they need.

•   Provides gratifying and rich user experience.
Image Cropper
Professionally produced
images for your web site.

•   Define thumbnail sizes for
    your theme.

•   Allow users to crop and
    annotate images.

•   Adjust image size and
    quality.
Template Profiler
Produce performant code.

•   Troubleshoot
    performance problems.

•   Isolate what plugins
    may be contributing to
    poor performance.

•   Just make things faster!
for later study...
Advanced Topics

• Template Functions
• Global Templates
• Module Caching
• Template Performance Profiling
• Website
  http://openmelody.org/

• Documentation
  http://docs.openmelody.org/

• Download
  http://openmelody.org/code/downloads

• Mailing List
  http://groups.google.com/group/openmelody
Thank you.

More Related Content

What's hot

Building Potent WordPress Websites
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress WebsitesKyle Cearley
 
WordPress Theme Development
WordPress Theme DevelopmentWordPress Theme Development
WordPress Theme DevelopmentWisdmLabs
 
Drupal 7 Theme System
Drupal 7 Theme SystemDrupal 7 Theme System
Drupal 7 Theme SystemPeter Arato
 
Intro to WordPress theme development
Intro to WordPress theme developmentIntro to WordPress theme development
Intro to WordPress theme developmentThad Allender
 
Introduction to Drupal (7) Theming
Introduction to Drupal (7) ThemingIntroduction to Drupal (7) Theming
Introduction to Drupal (7) ThemingRobert Carr
 
Customizing WordPress Themes
Customizing WordPress ThemesCustomizing WordPress Themes
Customizing WordPress ThemesLaura Hartwig
 
Cms & wordpress theme development 2011
Cms & wordpress theme development 2011Cms & wordpress theme development 2011
Cms & wordpress theme development 2011Dave Wallace
 
The awesome things you can do with images inside WordPress
The awesome things you can do with images inside WordPressThe awesome things you can do with images inside WordPress
The awesome things you can do with images inside WordPressMarko Heijnen
 
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)Grok Drupal (7) Theming (presented at DrupalCon San Francisco)
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)Laura Scott
 
[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기
[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기
[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기종훈 박
 
WordPress customizer for themes and more
WordPress customizer for themes and moreWordPress customizer for themes and more
WordPress customizer for themes and moreSantosh Kunwar
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1Yoav Farhi
 

What's hot (17)

Image galley ppt
Image galley pptImage galley ppt
Image galley ppt
 
Building Potent WordPress Websites
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress Websites
 
Magento20100709
Magento20100709Magento20100709
Magento20100709
 
WordPress Theme Development
WordPress Theme DevelopmentWordPress Theme Development
WordPress Theme Development
 
Drupal 7 Theme System
Drupal 7 Theme SystemDrupal 7 Theme System
Drupal 7 Theme System
 
Intro to WordPress theme development
Intro to WordPress theme developmentIntro to WordPress theme development
Intro to WordPress theme development
 
Introduction to Drupal (7) Theming
Introduction to Drupal (7) ThemingIntroduction to Drupal (7) Theming
Introduction to Drupal (7) Theming
 
Customizing WordPress Themes
Customizing WordPress ThemesCustomizing WordPress Themes
Customizing WordPress Themes
 
Cms & wordpress theme development 2011
Cms & wordpress theme development 2011Cms & wordpress theme development 2011
Cms & wordpress theme development 2011
 
CustomThesis
CustomThesisCustomThesis
CustomThesis
 
The awesome things you can do with images inside WordPress
The awesome things you can do with images inside WordPressThe awesome things you can do with images inside WordPress
The awesome things you can do with images inside WordPress
 
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)Grok Drupal (7) Theming (presented at DrupalCon San Francisco)
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)
 
[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기
[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기
[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기
 
Wordpress(css,php,js,ajax)
Wordpress(css,php,js,ajax)Wordpress(css,php,js,ajax)
Wordpress(css,php,js,ajax)
 
WordPress customizer for themes and more
WordPress customizer for themes and moreWordPress customizer for themes and more
WordPress customizer for themes and more
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
 
A look at Drupal 7 Theming
A look at Drupal 7 ThemingA look at Drupal 7 Theming
A look at Drupal 7 Theming
 

Viewers also liked

CIM Personal Branding 2011 #CIMbrandyou
CIM Personal Branding 2011 #CIMbrandyouCIM Personal Branding 2011 #CIMbrandyou
CIM Personal Branding 2011 #CIMbrandyouLisa Harris
 
Hacking Movable Type Training - Day 2
Hacking Movable Type Training - Day 2Hacking Movable Type Training - Day 2
Hacking Movable Type Training - Day 2Byrne Reese
 
Timespeople Community Features
Timespeople Community FeaturesTimespeople Community Features
Timespeople Community FeaturesByrne Reese
 
Building Web Sites With Movable Type
Building Web Sites With Movable TypeBuilding Web Sites With Movable Type
Building Web Sites With Movable TypeByrne Reese
 
Conference Driven Publishing
Conference Driven PublishingConference Driven Publishing
Conference Driven PublishingDave Cross
 
Online Communities
Online CommunitiesOnline Communities
Online CommunitiesByrne Reese
 

Viewers also liked (6)

CIM Personal Branding 2011 #CIMbrandyou
CIM Personal Branding 2011 #CIMbrandyouCIM Personal Branding 2011 #CIMbrandyou
CIM Personal Branding 2011 #CIMbrandyou
 
Hacking Movable Type Training - Day 2
Hacking Movable Type Training - Day 2Hacking Movable Type Training - Day 2
Hacking Movable Type Training - Day 2
 
Timespeople Community Features
Timespeople Community FeaturesTimespeople Community Features
Timespeople Community Features
 
Building Web Sites With Movable Type
Building Web Sites With Movable TypeBuilding Web Sites With Movable Type
Building Web Sites With Movable Type
 
Conference Driven Publishing
Conference Driven PublishingConference Driven Publishing
Conference Driven Publishing
 
Online Communities
Online CommunitiesOnline Communities
Online Communities
 

Similar to Melody Designer Training

Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyLeslie Doherty
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
 
Joomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesJoomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesAndy Wallace
 
Joomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic TemplatesJoomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic TemplatesChris Davenport
 
Word press interview question and answer tops technologies
Word press interview question and answer   tops technologiesWord press interview question and answer   tops technologies
Word press interview question and answer tops technologiesTOPS Technologies
 
Creating Custom Templates for Joomla! 2.5
Creating Custom Templates for Joomla! 2.5Creating Custom Templates for Joomla! 2.5
Creating Custom Templates for Joomla! 2.5Don Cranford
 
advance theme development
advance theme developmentadvance theme development
advance theme development1amitgupta
 
Design Systems, Pattern Libraries & WordPress
Design Systems, Pattern Libraries & WordPressDesign Systems, Pattern Libraries & WordPress
Design Systems, Pattern Libraries & WordPressJesse James Arnold
 
Vanilla Forums Theme Guide
Vanilla Forums Theme GuideVanilla Forums Theme Guide
Vanilla Forums Theme GuideVanilla Forums
 
Wordcamp St. Louis - Clean Coding
Wordcamp St. Louis - Clean CodingWordcamp St. Louis - Clean Coding
Wordcamp St. Louis - Clean Codinginspector_fegter
 
Most widely used WordPress tips and tricks of 2016
Most widely used WordPress tips and tricks of 2016Most widely used WordPress tips and tricks of 2016
Most widely used WordPress tips and tricks of 2016Reegan
 
Designing for magento
Designing for magentoDesigning for magento
Designing for magentohainutemicute
 
Building the basics (WordPress Ottawa 2014)
Building the basics (WordPress Ottawa 2014)Building the basics (WordPress Ottawa 2014)
Building the basics (WordPress Ottawa 2014)christopherfross
 

Similar to Melody Designer Training (20)

CustomThesis
CustomThesisCustomThesis
CustomThesis
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Html forfood
Html forfoodHtml forfood
Html forfood
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Joomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesJoomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic Templates
 
Joomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic TemplatesJoomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic Templates
 
Word press interview question and answer tops technologies
Word press interview question and answer   tops technologiesWord press interview question and answer   tops technologies
Word press interview question and answer tops technologies
 
Creating Custom Templates for Joomla! 2.5
Creating Custom Templates for Joomla! 2.5Creating Custom Templates for Joomla! 2.5
Creating Custom Templates for Joomla! 2.5
 
advance theme development
advance theme developmentadvance theme development
advance theme development
 
Design Systems, Pattern Libraries & WordPress
Design Systems, Pattern Libraries & WordPressDesign Systems, Pattern Libraries & WordPress
Design Systems, Pattern Libraries & WordPress
 
Meta tag creation
Meta tag creationMeta tag creation
Meta tag creation
 
Vanilla Forums Theme Guide
Vanilla Forums Theme GuideVanilla Forums Theme Guide
Vanilla Forums Theme Guide
 
Wordcamp St. Louis - Clean Coding
Wordcamp St. Louis - Clean CodingWordcamp St. Louis - Clean Coding
Wordcamp St. Louis - Clean Coding
 
Most widely used WordPress tips and tricks of 2016
Most widely used WordPress tips and tricks of 2016Most widely used WordPress tips and tricks of 2016
Most widely used WordPress tips and tricks of 2016
 
Designing for magento
Designing for magentoDesigning for magento
Designing for magento
 
Building the basics (WordPress Ottawa 2014)
Building the basics (WordPress Ottawa 2014)Building the basics (WordPress Ottawa 2014)
Building the basics (WordPress Ottawa 2014)
 
Movable Type 5.1
Movable Type 5.1Movable Type 5.1
Movable Type 5.1
 
Oenology
OenologyOenology
Oenology
 

Recently uploaded

10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designers10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designersPixeldarts
 
TIMBRE: HOW MIGHT WE REMEDY MUSIC DESERTS AND FACILITATE GROWTH OF A MUSICAL ...
TIMBRE: HOW MIGHT WE REMEDY MUSIC DESERTS AND FACILITATE GROWTH OF A MUSICAL ...TIMBRE: HOW MIGHT WE REMEDY MUSIC DESERTS AND FACILITATE GROWTH OF A MUSICAL ...
TIMBRE: HOW MIGHT WE REMEDY MUSIC DESERTS AND FACILITATE GROWTH OF A MUSICAL ...Pranav Subramanian
 
CAPITAL GATE CASE STUDY -regional case study.pdf
CAPITAL GATE CASE STUDY -regional case study.pdfCAPITAL GATE CASE STUDY -regional case study.pdf
CAPITAL GATE CASE STUDY -regional case study.pdfAlasAlthaher
 
PORTFOLIO 2024_ANASTASIYA KUDINOVA / EXTENDED VERSION
PORTFOLIO 2024_ANASTASIYA KUDINOVA / EXTENDED VERSIONPORTFOLIO 2024_ANASTASIYA KUDINOVA / EXTENDED VERSION
PORTFOLIO 2024_ANASTASIYA KUDINOVA / EXTENDED VERSIONAnastasiya Kudinova
 
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - MorgenboosterAI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster1508 A/S
 
Cities Light Up in Solidarity With Ukraine: From Internationally Synchronized...
Cities Light Up in Solidarity With Ukraine: From Internationally Synchronized...Cities Light Up in Solidarity With Ukraine: From Internationally Synchronized...
Cities Light Up in Solidarity With Ukraine: From Internationally Synchronized...Thomas Schielke
 
LIGHTSCAPES: HOW MIGHT WE DESIGN AN INCLUSIVE AND ACCESSIBLE CLASSICAL CONCER...
LIGHTSCAPES: HOW MIGHT WE DESIGN AN INCLUSIVE AND ACCESSIBLE CLASSICAL CONCER...LIGHTSCAPES: HOW MIGHT WE DESIGN AN INCLUSIVE AND ACCESSIBLE CLASSICAL CONCER...
LIGHTSCAPES: HOW MIGHT WE DESIGN AN INCLUSIVE AND ACCESSIBLE CLASSICAL CONCER...Pranav Subramanian
 
10 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 202410 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 2024digital learning point
 
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...Associazione Digital Days
 
guest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssssguest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssssNadaMohammed714321
 
PORTFOLIO 2024 ANASTASIYA KUDINOVA
PORTFOLIO 2024       ANASTASIYA KUDINOVAPORTFOLIO 2024       ANASTASIYA KUDINOVA
PORTFOLIO 2024 ANASTASIYA KUDINOVAAnastasiya Kudinova
 
The spirit of digital place - game worlds and architectural phenomenology
The spirit of digital place - game worlds and architectural phenomenologyThe spirit of digital place - game worlds and architectural phenomenology
The spirit of digital place - game worlds and architectural phenomenologyChristopher Totten
 
How Apple strives for the perfect sky and revives cities
How Apple strives for the perfect sky and revives citiesHow Apple strives for the perfect sky and revives cities
How Apple strives for the perfect sky and revives citiesThomas Schielke
 
Understanding Image Masking: What It Is and Why It's Matters
Understanding Image Masking: What It Is and Why It's MattersUnderstanding Image Masking: What It Is and Why It's Matters
Understanding Image Masking: What It Is and Why It's MattersCre8iveskill
 
Karim apartment ideas 01 ppppppppppppppp
Karim apartment ideas 01 pppppppppppppppKarim apartment ideas 01 ppppppppppppppp
Karim apartment ideas 01 pppppppppppppppNadaMohammed714321
 
Piece by Piece Magazine
Piece by Piece Magazine                      Piece by Piece Magazine
Piece by Piece Magazine CharlottePulte
 
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.pptMaking and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.pptJIT KUMAR GUPTA
 
guest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssssguest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssssNadaMohammed714321
 
Map of St. Louis Parks
Map of St. Louis Parks                              Map of St. Louis Parks
Map of St. Louis Parks CharlottePulte
 
ALISIA: HOW MIGHT WE ACHIEVE HIGH ENVIRONMENTAL PERFORMANCE WHILE MAINTAINING...
ALISIA: HOW MIGHT WE ACHIEVE HIGH ENVIRONMENTAL PERFORMANCE WHILE MAINTAINING...ALISIA: HOW MIGHT WE ACHIEVE HIGH ENVIRONMENTAL PERFORMANCE WHILE MAINTAINING...
ALISIA: HOW MIGHT WE ACHIEVE HIGH ENVIRONMENTAL PERFORMANCE WHILE MAINTAINING...Pranav Subramanian
 

Recently uploaded (20)

10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designers10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designers
 
TIMBRE: HOW MIGHT WE REMEDY MUSIC DESERTS AND FACILITATE GROWTH OF A MUSICAL ...
TIMBRE: HOW MIGHT WE REMEDY MUSIC DESERTS AND FACILITATE GROWTH OF A MUSICAL ...TIMBRE: HOW MIGHT WE REMEDY MUSIC DESERTS AND FACILITATE GROWTH OF A MUSICAL ...
TIMBRE: HOW MIGHT WE REMEDY MUSIC DESERTS AND FACILITATE GROWTH OF A MUSICAL ...
 
CAPITAL GATE CASE STUDY -regional case study.pdf
CAPITAL GATE CASE STUDY -regional case study.pdfCAPITAL GATE CASE STUDY -regional case study.pdf
CAPITAL GATE CASE STUDY -regional case study.pdf
 
PORTFOLIO 2024_ANASTASIYA KUDINOVA / EXTENDED VERSION
PORTFOLIO 2024_ANASTASIYA KUDINOVA / EXTENDED VERSIONPORTFOLIO 2024_ANASTASIYA KUDINOVA / EXTENDED VERSION
PORTFOLIO 2024_ANASTASIYA KUDINOVA / EXTENDED VERSION
 
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - MorgenboosterAI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
 
Cities Light Up in Solidarity With Ukraine: From Internationally Synchronized...
Cities Light Up in Solidarity With Ukraine: From Internationally Synchronized...Cities Light Up in Solidarity With Ukraine: From Internationally Synchronized...
Cities Light Up in Solidarity With Ukraine: From Internationally Synchronized...
 
LIGHTSCAPES: HOW MIGHT WE DESIGN AN INCLUSIVE AND ACCESSIBLE CLASSICAL CONCER...
LIGHTSCAPES: HOW MIGHT WE DESIGN AN INCLUSIVE AND ACCESSIBLE CLASSICAL CONCER...LIGHTSCAPES: HOW MIGHT WE DESIGN AN INCLUSIVE AND ACCESSIBLE CLASSICAL CONCER...
LIGHTSCAPES: HOW MIGHT WE DESIGN AN INCLUSIVE AND ACCESSIBLE CLASSICAL CONCER...
 
10 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 202410 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 2024
 
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
 
guest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssssguest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssss
 
PORTFOLIO 2024 ANASTASIYA KUDINOVA
PORTFOLIO 2024       ANASTASIYA KUDINOVAPORTFOLIO 2024       ANASTASIYA KUDINOVA
PORTFOLIO 2024 ANASTASIYA KUDINOVA
 
The spirit of digital place - game worlds and architectural phenomenology
The spirit of digital place - game worlds and architectural phenomenologyThe spirit of digital place - game worlds and architectural phenomenology
The spirit of digital place - game worlds and architectural phenomenology
 
How Apple strives for the perfect sky and revives cities
How Apple strives for the perfect sky and revives citiesHow Apple strives for the perfect sky and revives cities
How Apple strives for the perfect sky and revives cities
 
Understanding Image Masking: What It Is and Why It's Matters
Understanding Image Masking: What It Is and Why It's MattersUnderstanding Image Masking: What It Is and Why It's Matters
Understanding Image Masking: What It Is and Why It's Matters
 
Karim apartment ideas 01 ppppppppppppppp
Karim apartment ideas 01 pppppppppppppppKarim apartment ideas 01 ppppppppppppppp
Karim apartment ideas 01 ppppppppppppppp
 
Piece by Piece Magazine
Piece by Piece Magazine                      Piece by Piece Magazine
Piece by Piece Magazine
 
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.pptMaking and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
 
guest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssssguest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssss
 
Map of St. Louis Parks
Map of St. Louis Parks                              Map of St. Louis Parks
Map of St. Louis Parks
 
ALISIA: HOW MIGHT WE ACHIEVE HIGH ENVIRONMENTAL PERFORMANCE WHILE MAINTAINING...
ALISIA: HOW MIGHT WE ACHIEVE HIGH ENVIRONMENTAL PERFORMANCE WHILE MAINTAINING...ALISIA: HOW MIGHT WE ACHIEVE HIGH ENVIRONMENTAL PERFORMANCE WHILE MAINTAINING...
ALISIA: HOW MIGHT WE ACHIEVE HIGH ENVIRONMENTAL PERFORMANCE WHILE MAINTAINING...
 

Melody Designer Training

  • 1. an introduction to for designers The Open Melody Software Group Byrne Reese
  • 2. what’dya gonna talk about? • Why Melody? • Templating Language • Templates and Themes • Theme Options & Config Bundles • Great Tools & Plugins for Designers
  • 3. about melody Melody is an open source CMS built by professional service providers for people who share a passion for community and creating great web sites.
  • 4. why melody? • Easy to use with no knowledge of a programming language required. • Highly extensible with tons of plugins to choose from. • Build powerful, secure and reliable web sites with no additional plugins or software needed. • Create feature rich, social-media aware web sites for customers.
  • 5. why designers like melody • Simple, semantic and intuitive templating language. • Easy to build web sites quickly. • Focus on features that allow for supportable and maintainable themes and code. • Upgrade without breaking everything.
  • 7. The Melody Templating Language is a mark-up language just like:
  • 8. The Melody Templating Language is a mark-up language just like: HTML
  • 9. <h1>My Website Name</h1> if this looks familiar...
  • 10. <h1><$mt:BlogName$></h1> then so should this.
  • 11. basic syntax • Markup Language • Case Insensitive • XML-ish • Examples: • Function: <$mt:MyTag$> • Loop: <mt:MyLoop>...</mt:MyLoop>
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. lotsa variation These are all equivalent: • <mt:Foo> • <MTFoo> • <$mt:Foo$> • <mtfoo>
  • 17. function tags • <$mt:EntryTitle$> • <$mt:AuthorName$> • <$mt:AuthorUserpic$> • <$mt:AssetThumbnailURL width=”100”$> • <$mt:CommentText$> Plus hundreds more...
  • 18. variables • Setting a variable: <mt:var name=”foo” value=”bar”> • Outputting a variable: <mt:var name=”foo”> • Setting a variable block: <mt:SetVarBlock name=”foo”> <mt:Entries> <$mt:EntryTitle$> </mt:Entries> </mt:SetVarBlock>
  • 19. loops & container tags • <mt:Entries> • <mt:Comments> • <mt:Authors> • Sort and filter: • sort, sort_direction, lastn, <filter by> And many more...
  • 20. special loop variables • These are maintained for you: • __first__ • __last__ • __counter__ • __even__ • __odd__ e.g. <$mt:var name=”__counter__”$>
  • 21. special loop variables • These are maintained for you: • __first__ Yes, those are two • __last__ underscores. • __counter__ • __even__ • __odd__ e.g. <$mt:var name=”__counter__”$>
  • 22. includes & encapsulation • Share HTML and template code between templates <$mt:include module=”Module Name”$> • Include: • Modules • Widgets • Files
  • 23. modifiers • Can be used to transform any tag • <$mt:EntryTitle lower_case=”1”$> • encode_html=”1” (js, xml, etc) • upper_case=”1”, lower_case=”1” • count_words=”1” • trim • Many more...
  • 24. for example... <$mt:EntryTitle$> => My “Blog” <$mt:EntryTitle upper_case=”1”$> => MY “BLOG” <$mt:EntryTitle lower_case=”1”$> => my “blog” <$mt:EntryTitle encode_html=”1”$> => My &quot;Blog&quot; <$mt:EntryTitle count_words=”1”$> => 2
  • 25. conditionals • <mt:if name=”foo” eq=”Byrne”> • <mt:else name=”foo” eq=”Jay”> • <mt:else> • <mt:if name=”foo” ne=”$bar”>
  • 26. conditional operators • Equals? <mt:if name=”foo” eq=”Byrne”> • Not equal to? <mt:if name=”foo” ne=”Byrne”> • Greater than? <mt:if name=”foo” gt=”10”> • Less than? <mt:if name=”foo” lt=”366”> • Plus: le (less then or equal to), ge (greater than or equal to)
  • 27. bringing it all together <mt:Entries lastn="10"> <mt:if name="__first__"><ul></mt:if> <li class="entry <mt:if name="__even__">even<mt:else>odd</mt:if>"> <$mt:var name="__counter__"$>. <$mt:EntryTitle$> </li> <mt:if name="__last__"></ul></mt:if> </mt:Entries>
  • 28. bringing it all together <mt:Entries lastn="10"> <mt:if name="__first__"><ul></mt:if> <li class="entry <mt:if name="__even__">even<mt:else>odd</mt:if>"> <$mt:var name="__counter__"$>. <$mt:EntryTitle$> </li> <mt:if name="__last__"></ul></mt:if> </mt:Entries> loops
  • 29. bringing it all together <mt:Entries lastn="10"> <mt:if name="__first__"><ul></mt:if> <li class="entry <mt:if name="__even__">even<mt:else>odd</mt:if>"> <$mt:var name="__counter__"$>. <$mt:EntryTitle$> </li> <mt:if name="__last__"></ul></mt:if> </mt:Entries> conditional tags
  • 30. bringing it all together <mt:Entries lastn="10"> <mt:if name="__first__"><ul></mt:if> <li class="entry <mt:if name="__even__">even<mt:else>odd</mt:if>"> <$mt:var name="__counter__"$>. <$mt:EntryTitle$> </li> <mt:if name="__last__"></ul></mt:if> </mt:Entries> variables & meta-loop variables
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 41. theme structure • Themes are broken up into three components: • a configuration file, a.k.a. “config.yaml” • templates • static files (images, stylesheets, javascript, etc)
  • 42. config.yaml name: My Theme Pack template_sets: my_theme: label: The Best Theme in the World templates: base_path: templates/ index: main_index: label: Main Index filename: index.mtml
  • 43. config.yaml name: My Theme Pack template_sets: my_theme: label: The Best Theme in the World templates: base_path: templates/ index: main_index: label: Main Index filename: index.mtml What’s on the file system: plugins/MyTheme/config.yaml plugins/MyTheme/templates/ (your “base path”) plugins/MyTheme/templates/index.mtml (your “Main Index” template) mt-static/plugins/MyTheme/base.css mt-static/plugins/MyTheme/logo.gif
  • 44. config.yaml name: My Theme Pack template_sets: my_theme: label: The Best Theme in the World templates: base_path: templates/ index: main_index: label: Main Index filename: index.mtml What’s on the file system: plugins/MyTheme/config.yaml plugins/MyTheme/templates/ (your “base path”) plugins/MyTheme/templates/index.mtml (your “Main Index” template) mt-static/plugins/MyTheme/base.css mt-static/plugins/MyTheme/logo.gif
  • 45. config.yaml name: My Theme Pack template_sets: my_theme: label: The Best Theme in the World templates: base_path: templates/ index: main_index: label: Main Index filename: index.mtml What’s on the file system: plugins/MyTheme/config.yaml plugins/MyTheme/templates/ (your “base path”) plugins/MyTheme/templates/index.mtml (your “Main Index” template) mt-static/plugins/MyTheme/base.css mt-static/plugins/MyTheme/logo.gif
  • 46. total control • Your config.yaml let’s you: • Name all the templates. • Define modules, widgets, sidebars, archives and more. • Set caching preferences. • And more...
  • 49. Can you make me a button that does...? – Famous Customer Quote
  • 50. Can you make me a button that does...? – Famous Customer Quote
  • 51. Can you make me a button that does...? – Famous Customer Quote
  • 52. Can you make me a button that does...? – Famous Customer Quote
  • 53. Can you make me a button that does...? – Famous Customer Quote
  • 54. Can you make me a button that does...? – Famous Customer Quote
  • 55. Can you make me a button that does...? – Famous Customer Quote
  • 56. • Give customers the controls they need. • Prevent your users from hanging themselves. • Extend Melody in seconds. • Say “goodbye” to PHP and Perl.
  • 57. config.yaml name: My Theme template_sets: my_theme: label: The Best Theme in the World options: fieldsets: feeds: label: Feeds and Syndication feedburner_id: label: Feedburner URL type: text tag: FeedburnerURL use_feedburner: label: Use Feedburner? hint: Turn on if you want to use Feedburner instead of... type: checkbox tag: IfFeedburnerEnabled?
  • 58.
  • 59. Supported Option Types • Simple Text Inputs • Blog Selectors • Text Areas • Entry Selectors • Radio Buttons • Image Radio Buttons • Checkboxes • Pull-down Menus
  • 60. Supported Option Types • Simple Text Inputs • Blog Selectors • Text Areas • Entry Selectors • Radio Buttons • Image Radio Buttons • Checkboxes • Pull-down Menus Exten sible!
  • 62. Example: Homepage Manager Image Radios Fieldsets Entry Selectors
  • 64. Installation Instructions: Thank you for installing my theme. To get started lets configure your system properly: 1. Navigate to “Comment Preferences” and turn off TrackBacks 2. Navigate to Facebook Plugin preferences and enter in “dc123213b2d96f71458cb8eddd5f3427” as your Application Key. 3. Navigate to “Registration Preferences” and make sure Facebook is checked or enabled. 4. Turn on Twitter Authentication by navigating to plugin settings and entering in the following for
  • 65. Installation Instructions: Thank you for installing my theme. To get started lets configure your system properly: 1. Navigate to “Comment Preferences” and turn off TrackBacks 2. Navigate to Facebook Plugin preferences and enter in “dc123213b2d96f71458cb8eddd5f3427” as your Application Key. 3. Navigate to “Registration Preferences” and make sure Facebook is checked or enabled. 4. Turn on Twitter Authentication by navigating to plugin settings and entering in the following for
  • 66. • Make it easy for your clients to configure their system. • Give them multiple, pre-approved and supported configuration options. • Pre-configure Melody and plugins. • Create bundles quickly just by editing a config file.
  • 67.
  • 68.
  • 69. great tools & plugins for designers
  • 70. Custom CSS Give clients control without sacrificing supportability and warrantability. • Dedicated CSS Editor. • Easily accessible from menu. • No republishing necessary.
  • 71. Custom Header Provide rich user experiences when customizing a design. • Give clients control over the things they need. • Provides gratifying and rich user experience.
  • 72. Image Cropper Professionally produced images for your web site. • Define thumbnail sizes for your theme. • Allow users to crop and annotate images. • Adjust image size and quality.
  • 73. Template Profiler Produce performant code. • Troubleshoot performance problems. • Isolate what plugins may be contributing to poor performance. • Just make things faster!
  • 75. Advanced Topics • Template Functions • Global Templates • Module Caching • Template Performance Profiling
  • 76. • Website http://openmelody.org/ • Documentation http://docs.openmelody.org/ • Download http://openmelody.org/code/downloads • Mailing List http://groups.google.com/group/openmelody