Melody Designer Training

Byrne Reese
Byrne ReesePrincipal at Endevver, LLC
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>
Melody Designer Training
Melody Designer Training
Melody Designer Training
Melody Designer Training
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
Melody Designer Training
Melody Designer Training
Melody Designer Training
Melody Designer Training
Melody Designer Training
Melody Designer Training
Melody Designer Training
Melody Designer Training
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?
Melody Designer Training
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.
Melody Designer Training
Melody Designer Training
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.
1 of 77

Recommended

Themes and layouts by
Themes and layoutsThemes and layouts
Themes and layoutsAbhishekSRC
7.2K views34 slides
Themes end-elementor-takes-over by
Themes end-elementor-takes-overThemes end-elementor-takes-over
Themes end-elementor-takes-overMattWood379113
24 views19 slides
WordPress Theme Development by
 WordPress Theme Development WordPress Theme Development
WordPress Theme DevelopmentBijay Oli
3K views27 slides
World's Youngest Web Desigener by
World's Youngest Web Desigener World's Youngest Web Desigener
World's Youngest Web Desigener MianAsadAli
136 views5 slides
Introduction to WordPress Theme Development by
Introduction to WordPress Theme DevelopmentIntroduction to WordPress Theme Development
Introduction to WordPress Theme DevelopmentSitdhibong Laokok
7.7K views17 slides
The Benefits of Juicing by
The Benefits of JuicingThe Benefits of Juicing
The Benefits of Juicingsocial media business club
731 views26 slides

More Related Content

What's hot

Image galley ppt by
Image galley pptImage galley ppt
Image galley pptChaitanya Chandurkar
6.2K views12 slides
Building Potent WordPress Websites by
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress WebsitesKyle Cearley
2.5K views87 slides
Magento20100709 by
Magento20100709Magento20100709
Magento20100709Hirokazu Nishi
729 views30 slides
WordPress Theme Development by
WordPress Theme DevelopmentWordPress Theme Development
WordPress Theme DevelopmentWisdmLabs
533 views22 slides
Drupal 7 Theme System by
Drupal 7 Theme SystemDrupal 7 Theme System
Drupal 7 Theme SystemPeter Arato
3.7K views37 slides
Intro to WordPress theme development by
Intro to WordPress theme developmentIntro to WordPress theme development
Intro to WordPress theme developmentThad Allender
30.1K views67 slides

What's hot(17)

Building Potent WordPress Websites by Kyle Cearley
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress Websites
Kyle Cearley2.5K views
WordPress Theme Development by WisdmLabs
WordPress Theme DevelopmentWordPress Theme Development
WordPress Theme Development
WisdmLabs533 views
Drupal 7 Theme System by Peter Arato
Drupal 7 Theme SystemDrupal 7 Theme System
Drupal 7 Theme System
Peter Arato3.7K views
Intro to WordPress theme development by Thad Allender
Intro to WordPress theme developmentIntro to WordPress theme development
Intro to WordPress theme development
Thad Allender30.1K views
Introduction to Drupal (7) Theming by Robert Carr
Introduction to Drupal (7) ThemingIntroduction to Drupal (7) Theming
Introduction to Drupal (7) Theming
Robert Carr8.2K views
Customizing WordPress Themes by Laura Hartwig
Customizing WordPress ThemesCustomizing WordPress Themes
Customizing WordPress Themes
Laura Hartwig2.7K views
Cms & wordpress theme development 2011 by Dave Wallace
Cms & wordpress theme development 2011Cms & wordpress theme development 2011
Cms & wordpress theme development 2011
Dave Wallace2K views
The awesome things you can do with images inside WordPress by Marko Heijnen
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
Marko Heijnen5.6K views
Grok Drupal (7) Theming (presented at DrupalCon San Francisco) by Laura Scott
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 Scott2.8K views
[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기 by 종훈 박
[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기
[5기 2주차] bootstrap을 이용하여 나만의 홈페이지 만들기
종훈 박202 views
WordPress customizer for themes and more by Santosh Kunwar
WordPress customizer for themes and moreWordPress customizer for themes and more
WordPress customizer for themes and more
Santosh Kunwar713 views
WordPress Developers Israel Meetup #1 by Yoav Farhi
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
Yoav Farhi2.5K views

Viewers also liked

CIM Personal Branding 2011 #CIMbrandyou by
CIM Personal Branding 2011 #CIMbrandyouCIM Personal Branding 2011 #CIMbrandyou
CIM Personal Branding 2011 #CIMbrandyouLisa Harris
391 views34 slides
Hacking Movable Type Training - Day 2 by
Hacking Movable Type Training - Day 2Hacking Movable Type Training - Day 2
Hacking Movable Type Training - Day 2Byrne Reese
1.8K views34 slides
Timespeople Community Features by
Timespeople Community FeaturesTimespeople Community Features
Timespeople Community FeaturesByrne Reese
482 views17 slides
Building Web Sites With Movable Type by
Building Web Sites With Movable TypeBuilding Web Sites With Movable Type
Building Web Sites With Movable TypeByrne Reese
1.5K views39 slides
Conference Driven Publishing by
Conference Driven PublishingConference Driven Publishing
Conference Driven PublishingDave Cross
3.2K views79 slides
Online Communities by
Online CommunitiesOnline Communities
Online CommunitiesByrne Reese
512 views67 slides

Viewers also liked(6)

CIM Personal Branding 2011 #CIMbrandyou by Lisa Harris
CIM Personal Branding 2011 #CIMbrandyouCIM Personal Branding 2011 #CIMbrandyou
CIM Personal Branding 2011 #CIMbrandyou
Lisa Harris391 views
Hacking Movable Type Training - Day 2 by Byrne Reese
Hacking Movable Type Training - Day 2Hacking Movable Type Training - Day 2
Hacking Movable Type Training - Day 2
Byrne Reese1.8K views
Timespeople Community Features by Byrne Reese
Timespeople Community FeaturesTimespeople Community Features
Timespeople Community Features
Byrne Reese482 views
Building Web Sites With Movable Type by Byrne Reese
Building Web Sites With Movable TypeBuilding Web Sites With Movable Type
Building Web Sites With Movable Type
Byrne Reese1.5K views
Conference Driven Publishing by Dave Cross
Conference Driven PublishingConference Driven Publishing
Conference Driven Publishing
Dave Cross3.2K views
Online Communities by Byrne Reese
Online CommunitiesOnline Communities
Online Communities
Byrne Reese512 views

Similar to Melody Designer Training

CustomThesis by
CustomThesisCustomThesis
CustomThesistutorialsruby
401 views24 slides
Add-On Development: EE Expects that Every Developer will do his Duty by
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
2.1K views86 slides
presentation by
presentationpresentation
presentationtutorialsruby
447 views86 slides
Html forfood by
Html forfoodHtml forfood
Html forfoodCristiane Zimmermann
828 views16 slides
Add-On Development: EE Expects that Every Developer will do his Duty by
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
6.4K views86 slides
presentation by
presentationpresentation
presentationtutorialsruby
635 views86 slides

Similar to Melody Designer Training(20)

Add-On Development: EE Expects that Every Developer will do his Duty by Leslie Doherty
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
Leslie Doherty2.1K views
Add-On Development: EE Expects that Every Developer will do his Duty by reedmaniac
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
reedmaniac6.4K views
Joomla! Day UK 2009 Basic Templates by Andy Wallace
Joomla! Day UK 2009 Basic TemplatesJoomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic Templates
Andy Wallace1.1K views
Joomla Day UK 2009 Basic Templates by Chris Davenport
Joomla Day UK 2009 Basic TemplatesJoomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic Templates
Chris Davenport934 views
Word press interview question and answer tops technologies by 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
TOPS Technologies2.1K views
Creating Custom Templates for Joomla! 2.5 by Don Cranford
Creating Custom Templates for Joomla! 2.5Creating Custom Templates for Joomla! 2.5
Creating Custom Templates for Joomla! 2.5
Don Cranford24.9K views
advance theme development by 1amitgupta
advance theme developmentadvance theme development
advance theme development
1amitgupta75 views
Design Systems, Pattern Libraries & WordPress by Jesse James Arnold
Design Systems, Pattern Libraries & WordPressDesign Systems, Pattern Libraries & WordPress
Design Systems, Pattern Libraries & WordPress
Jesse James Arnold1.3K views
Vanilla Forums Theme Guide by Vanilla Forums
Vanilla Forums Theme GuideVanilla Forums Theme Guide
Vanilla Forums Theme Guide
Vanilla Forums48.3K views
Most widely used WordPress tips and tricks of 2016 by Reegan
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
Reegan195 views
Designing for magento by hainutemicute
Designing for magentoDesigning for magento
Designing for magento
hainutemicute3.4K views
Building the basics (WordPress Ottawa 2014) by christopherfross
Building the basics (WordPress Ottawa 2014)Building the basics (WordPress Ottawa 2014)
Building the basics (WordPress Ottawa 2014)
christopherfross782 views

Recently uploaded

New Icon Presentation.pdf by
New Icon Presentation.pdfNew Icon Presentation.pdf
New Icon Presentation.pdfsydneyjrichardson
23 views5 slides
Antimalarial agents-Medicinal Chemistry by
Antimalarial agents-Medicinal ChemistryAntimalarial agents-Medicinal Chemistry
Antimalarial agents-Medicinal ChemistryNarminHamaaminHussen
7 views27 slides
Anti -Parkinsonian Drugs-Medicinal Chemistry by
Anti -Parkinsonian Drugs-Medicinal ChemistryAnti -Parkinsonian Drugs-Medicinal Chemistry
Anti -Parkinsonian Drugs-Medicinal ChemistryNarminHamaaminHussen
20 views36 slides
Anti-Cancer Drugs-Medicinal Chemistry by
Anti-Cancer Drugs-Medicinal ChemistryAnti-Cancer Drugs-Medicinal Chemistry
Anti-Cancer Drugs-Medicinal ChemistryNarminHamaaminHussen
10 views41 slides
Using Experiential Design to Understand the Future of AI & Immersive Storytel... by
Using Experiential Design to Understand the Future of AI & Immersive Storytel...Using Experiential Design to Understand the Future of AI & Immersive Storytel...
Using Experiential Design to Understand the Future of AI & Immersive Storytel...Kent Bye
13 views114 slides
Anthelmintic Drugs-Medicinal Chemistry by
Anthelmintic Drugs-Medicinal ChemistryAnthelmintic Drugs-Medicinal Chemistry
Anthelmintic Drugs-Medicinal ChemistryNarminHamaaminHussen
8 views23 slides

Recently uploaded(20)

Using Experiential Design to Understand the Future of AI & Immersive Storytel... by Kent Bye
Using Experiential Design to Understand the Future of AI & Immersive Storytel...Using Experiential Design to Understand the Future of AI & Immersive Storytel...
Using Experiential Design to Understand the Future of AI & Immersive Storytel...
Kent Bye13 views
Canned Cocktail Flat Labels by nyhapedraza
Canned Cocktail Flat LabelsCanned Cocktail Flat Labels
Canned Cocktail Flat Labels
nyhapedraza7 views
Business X Design - People, Planet & Product by Cyber-Duck
Business X Design - People, Planet & ProductBusiness X Design - People, Planet & Product
Business X Design - People, Planet & Product
Cyber-Duck19 views
Oregon Ducks 4 Spencer Webb Hoodie by brandshop1
Oregon Ducks 4 Spencer Webb HoodieOregon Ducks 4 Spencer Webb Hoodie
Oregon Ducks 4 Spencer Webb Hoodie
brandshop113 views
The Report is Dead, Long Live the Report ! Communicating Usability Research F... by Centralis
The Report is Dead, Long Live the Report ! Communicating Usability Research F...The Report is Dead, Long Live the Report ! Communicating Usability Research F...
The Report is Dead, Long Live the Report ! Communicating Usability Research F...
Centralis6 views
Sudden Deafness Design Document by wyfangherman
Sudden Deafness Design DocumentSudden Deafness Design Document
Sudden Deafness Design Document
wyfangherman51 views
Free World aids day Template from Best presentation design agency by slideceotemplates
Free World aids day Template from Best presentation design agencyFree World aids day Template from Best presentation design agency
Free World aids day Template from Best presentation design agency
217 Drive - All on upper.pptx by vidstor282
217 Drive - All on upper.pptx217 Drive - All on upper.pptx
217 Drive - All on upper.pptx
vidstor28217 views

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>
  • 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
  • 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?
  • 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.
  • 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