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

办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一z xss
 
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一Fi sss
 
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services DubaiDubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubaikojalkojal131
 
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`dajasot375
 
Call Girls Meghani Nagar 7397865700 Independent Call Girls
Call Girls Meghani Nagar 7397865700  Independent Call GirlsCall Girls Meghani Nagar 7397865700  Independent Call Girls
Call Girls Meghani Nagar 7397865700 Independent Call Girlsssuser7cb4ff
 
Call In girls Bhikaji Cama Place 🔝 ⇛8377877756 FULL Enjoy Delhi NCR
Call In girls Bhikaji Cama Place 🔝 ⇛8377877756 FULL Enjoy Delhi NCRCall In girls Bhikaji Cama Place 🔝 ⇛8377877756 FULL Enjoy Delhi NCR
Call In girls Bhikaji Cama Place 🔝 ⇛8377877756 FULL Enjoy Delhi NCRdollysharma2066
 
Pharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdfPharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdfAayushChavan5
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,Aginakm1
 
3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdf3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdfSwaraliBorhade
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书zdzoqco
 
Call Girls in Okhla Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Okhla Delhi 💯Call Us 🔝8264348440🔝Call Girls in Okhla Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Okhla Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...katerynaivanenko1
 
How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIyuj
 
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一Fi L
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
PORTAFOLIO 2024_ ANASTASIYA KUDINOVA
PORTAFOLIO   2024_  ANASTASIYA  KUDINOVAPORTAFOLIO   2024_  ANASTASIYA  KUDINOVA
PORTAFOLIO 2024_ ANASTASIYA KUDINOVAAnastasiya Kudinova
 
Passbook project document_april_21__.pdf
Passbook project document_april_21__.pdfPassbook project document_april_21__.pdf
Passbook project document_april_21__.pdfvaibhavkanaujia
 
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一lvtagr7
 
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一Fi L
 

Recently uploaded (20)

办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
 
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
 
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services DubaiDubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
 
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
 
Call Girls in Pratap Nagar, 9953056974 Escort Service
Call Girls in Pratap Nagar,  9953056974 Escort ServiceCall Girls in Pratap Nagar,  9953056974 Escort Service
Call Girls in Pratap Nagar, 9953056974 Escort Service
 
Call Girls Meghani Nagar 7397865700 Independent Call Girls
Call Girls Meghani Nagar 7397865700  Independent Call GirlsCall Girls Meghani Nagar 7397865700  Independent Call Girls
Call Girls Meghani Nagar 7397865700 Independent Call Girls
 
Call In girls Bhikaji Cama Place 🔝 ⇛8377877756 FULL Enjoy Delhi NCR
Call In girls Bhikaji Cama Place 🔝 ⇛8377877756 FULL Enjoy Delhi NCRCall In girls Bhikaji Cama Place 🔝 ⇛8377877756 FULL Enjoy Delhi NCR
Call In girls Bhikaji Cama Place 🔝 ⇛8377877756 FULL Enjoy Delhi NCR
 
Pharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdfPharmaceutical Packaging for the elderly.pdf
Pharmaceutical Packaging for the elderly.pdf
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
 
3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdf3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdf
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
 
Call Girls in Okhla Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Okhla Delhi 💯Call Us 🔝8264348440🔝Call Girls in Okhla Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Okhla Delhi 💯Call Us 🔝8264348440🔝
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
 
How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AI
 
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
办理学位证(NUS证书)新加坡国立大学毕业证成绩单原版一比一
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
 
PORTAFOLIO 2024_ ANASTASIYA KUDINOVA
PORTAFOLIO   2024_  ANASTASIYA  KUDINOVAPORTAFOLIO   2024_  ANASTASIYA  KUDINOVA
PORTAFOLIO 2024_ ANASTASIYA KUDINOVA
 
Passbook project document_april_21__.pdf
Passbook project document_april_21__.pdfPassbook project document_april_21__.pdf
Passbook project document_april_21__.pdf
 
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
 
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
 

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