SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
Building an artist
                      community website
                                with Poseidon / ArchGenXML / Plone

                                                     Nate Aune
                                                 Plone Conference
                                                   Vienna, Austria
                                                   Sept. 21, 2005


Building an Artist Community Website (9/21/05)                       www.jazkarta.com 866.864.4918
Who am I?

              • Developer and owner, Jazkarta Consulting
                (www.jazkarta.com)

              • Musician - saxophonist and composer
                (www.nateaune.com/music/)

              • Founder of Plone4Artists project
                (www.plone4artists.org)




Building an Artist Community Website (9/21/05)       www.jazkarta.com 866.864.4918
Overview
              • What is Archetypes?
              • What is UML?
              • What is ArchGenXML?
              • Build a model using UML
              • Transform the model into a Plone product
              • Multimedia
              • Questions?
                         jazkarta.com/presentations/artist-community.pdf
Building an Artist Community Website (9/21/05)                     www.jazkarta.com 866.864.4918
What is Archetypes?

              • Framework for developing Plone products
               • Automatically creates view and edit pages
               • Maintains unique object IDs
               • Creates references between objects

Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Archetypes framework

              • Field validation
              • Standard security setup
              • Alternate storage options
              • Data transformation capabilities

Building an Artist Community Website (9/21/05)     www.jazkarta.com 866.864.4918
Archetypes schemas




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Example Archetype:
                           Artist
                  schema= Schema((
                  	

 StringField('title'),
                  	

 ImageField('photo'),
                  	

 LinesField('instrument'),
                  ))

                  class Artist(BaseContent)
                  	

 schema = BaseSchema + schema

                  registerType(Artist,PROJECTNAME)



Building an Artist Community Website (9/21/05)     www.jazkarta.com 866.864.4918
Widgets
                  schema= Schema((
                  	

 StringField('title',
                  	

     widget=StringWidget(
                  	

              label=’Artist name’,
                                    size=20),
                       ),
                  	

 ImageField('photo',
                           widget=ImageWidget(
                                    label=’Headshot’),
                       ),
                  	

 LinesField('instrument',
                           widget=MultiSelectionWidget(
                                    label=’Instruments’),
                           multiValue=1,
                       ),
                  ))
Building an Artist Community Website (9/21/05)             www.jazkarta.com 866.864.4918
What is UML?

              • UML = Uniform Modeling Language
              • Standard widely-adopted graphical language
              • Describes the artifacts of software systems
              • Focus on conceptual representations

Building an Artist Community Website (9/21/05)    www.jazkarta.com 866.864.4918
Artist:
                         Described in UML




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Poseidon UML tool




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
What is ArchGenXML?
              • Command line utility
              • Auto-generates code from a UML model
              • No round-trip support yet
              • Custom code is preserved upon
                    regeneration



Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Why use ArchGenXML?
                (part 1)
              • You want to save time
              • You are a lazy programmer
              • You don’t like to reinvent the wheel
              • You don’t like copying and pasting code
              • You make heavy use of references and
                    interfaces

Building an Artist Community Website (9/21/05)    www.jazkarta.com 866.864.4918
Why use ArchGenXML?
                  (part 2)
              • You have big projects with many different
                    content types
              • You want or need a well-documented
                    interface to your product
              • You like structured model- and pattern-
                    driven software development
              • You want to maintain your project in the
                    future without getting a headache
Building an Artist Community Website (9/21/05)          www.jazkarta.com 866.864.4918
UML to Archetypes
                      using ArchGenXML
                                                 schema= Schema((
                                                 	

     StringField('title',
                                                 	

         widget=StringWidget(
                                                 	

                   label=’Artist name’
                                                                   size=20),
                                                      ),
                                                 	

     ImageField('photo',
                                                          widget=ImageWidget(
                                                                   label=’Headshot’),
                                                      ),
                                                 	

     LinesField('instrument',
                                                          widget=MultiSelectionWidget(
                                                                   label=’Instruments’),
                                                          multiValue=1,
                                                      ),
                                                 ))




Building an Artist Community Website (9/21/05)              www.jazkarta.com 866.864.4918
UML speak to AT speak
            • package                            • product

            • class                              • content type

            • operation                          • method

            • attribute                          • field

            • tagged value                       • property

            • stereotype                         • subclass, view
Building an Artist Community Website (9/21/05)            www.jazkarta.com 866.864.4918
In practice

              • 1) Save your model to the Products dir
              • 2) Run the ArchGenXML script
              • 3) Restart Zope
              • 4) Install the newly generated product
             svn co svn://svn.plone4artists.org/trunk/ArtistSite
Building an Artist Community Website (9/21/05)          www.jazkarta.com 866.864.4918
Running the script
        $ cd /var/local/zope/instance1/Products
        $ ArchGenXML/ArchGenXML.py -o ArtistSite ArtistSite.zuml
        ArchGenXML 1.4 devel 4
        (c) 2003 BlueDynamics GmbH, under GNU General Public License
        2.0 or later

        set outfilename [string] to ArtistSite
        Parsing...
        ===============
        opening zargo
        XMI version: 1.2
        using xmi 1.2+ parser
        outfile: ArtistSite
        Generating...
        ==============
        method bodies will be preserved
         Starting new Product: ArtistSite
            Generating class: Artist
        $
Building an Artist Community Website (9/21/05)         www.jazkarta.com 866.864.4918
ArtistSite product dir

        $ ls Products/ArtistSite
        Artist.py       __init__.py              i18n          skins
        Extensions      config.py                refresh.txt   version.txt
        $




                                        Restart Zope
                            Install product using QuickInstaller
Building an Artist Community Website (9/21/05)                 www.jazkarta.com 866.864.4918
Artist.py
              • Inserts documentation
              • Placeholders for custom code
              • i18n message ids
              • Using ArtistSite/model/generate_source.sh
               • Inserts author information
               • Creates i18n msg catalog .pot file
               • strips HTML from doc strings
Building an Artist Community Website (9/21/05)               www.jazkarta.com 866.864.4918
Add new artist




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Edit artist
     form



Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
View artist




Building an Artist Community Website (9/21/05)         www.jazkarta.com 866.864.4918
Static vocabulary




              • Define a static vocabulary of instruments
Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Dynamic vocabulary




    Use ATVocabularyManager to manage list of instruments
Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Dynamic vocab cont...




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Containment




     Use the solid rhomb to make a strict containment
 ‘Artist’ instances can only be added to an ‘Artists’ instance
Building an Artist Community Website (9/21/05)    www.jazkarta.com 866.864.4918
Artist container




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Override base class




   The artists folder will get large, so make it a BTreeFolder
Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Stereotype large
                                                 • Select the class
                                                 • Click on the
                                                   stereotypes
                                                   button (...)
                                                 • Select the ‘stub’
                                                   stereotype



Building an Artist Community Website (9/21/05)       www.jazkarta.com 866.864.4918
References
                                                      Create a
                                                  direct association

                                                      results in:

                                                   Reference eld
                                                  group to artist(s)


Building an Artist Community Website (9/21/05)              www.jazkarta.com 866.864.4918
Group
                                                 edit form



                                                   Group is
                                                  associated
                                                  with artists
Building an Artist Community Website (9/21/05)       www.jazkarta.com 866.864.4918
Reference Browser Widget
             as default




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Congure
                                                 browser widget
                                                    Select the end point




                                                        Make multivalued
                                                       Specify relationship
                                                          Dene query
Building an Artist Community Website (9/21/05)               www.jazkarta.com 866.864.4918
Adding references




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Back references




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Back
                                                 references




                                                    Groups that
                                                  artist belongs to
Building an Artist Community Website (9/21/05)      www.jazkarta.com 866.864.4918
Stereotype member




                         Add the ‘member’ stereotype to tell
                        ArchGenXML to subclass CMFMember
Building an Artist Community Website (9/21/05)       www.jazkarta.com 866.864.4918
Registration
                                                       form
                                                 • SiteMember is installed
                                                 • Replaces default member
                                                 • Easy way to create new
                                                   member types




Building an Artist Community Website (9/21/05)                    www.jazkarta.com 866.864.4918
Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Stereotype stub

              • Add content types to your model without
                    having them get generated
              • Makes it easy to integrate 3rd party
                    products into your custom product
              • Adds allowed_content_types to your class

Building an Artist Community Website (9/21/05)      www.jazkarta.com 866.864.4918
stub
                                                  • Select the class
                                                  • Click on the
                                                      stereotypes
                                                      button (...)
                                                  • Select the ‘stub’
                                                      stereotype



Building an Artist Community Website (9/21/05)          www.jazkarta.com 866.864.4918
Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
PloneMall

              • Example of a sophisticated e-commerce
                    framework built using UML
              • See the UML model here:
              •    http://www.plonemall.com/uml/UML-beta2.png/image_view_fullscreen




Building an Artist Community Website (9/21/05)                         www.jazkarta.com 866.864.4918
SiteEvent : a custom
                          event type


              • Subclass ATEvent and add your own fields

Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Associate with venue
                                                 • Make a:
                                                  • Venues container
                                                  • Venue content type
                                                  • Direct association
                                                     from SiteEvent to
                                                     Venue


Building an Artist Community Website (9/21/05)             www.jazkarta.com 866.864.4918
What I didn’t cover
              • Methods
              • Additional Stereotypes
               • actions, portal_tool, abstract, ordered
              • Generalization (Interfaces)
              • Workflow
              • Unit testing
              • Documentation
Building an Artist Community Website (9/21/05)    www.jazkarta.com 866.864.4918
Acknowledgements
              • Philipp Auersperg (Blue Dynamics)
              • Jens Klein (jensens)
              • Martin Aspeli (optilude)
              • Fabiano Weimar dos Santos (xiru)
              • Bernie Snizek (DrZoltron)
              • Blue Dynamics - conference organizers
              • Plone community
                     Go to Jens and Phil’s ArchGenXML talk!
Building an Artist Community Website (9/21/05)       www.jazkarta.com 866.864.4918
Links
              • How to subclass ATContentType in 7 minutes
                  •http://plone.org/documentation/how-to/subclass-atct-using-archgenxml
              • ArchGenXML product page - http://plone.org/products/archgenxml
              • ArchGenXML getting started tutorial by Jens Klein
                  • http://plone.org/documentation/tutorial/archgenxml-getting-started
              • ArchGenXML manual (with screenshots)
                  • http://plone.org/documentation/archetypes/archgenxml-manual
              • Intro to Archetypes by Sidnei da Silva, published on ZopeMag.com
                  • http://www.zopemag.com/Issue006/Section_Articles/article_IntroToArchteypes.html
              • Archetypes: Customizing Plone in 60 seconds (PDF) by Andy McKay
                  • http://www.enfoldsystems.com/About/Talks/archetypes.pdf
              • Archetypes Fields Quick Reference by Maik Röder
                   •   http://plone.org/documentation/archetypes/arch_field_quickref_1_3_1


              •   Archetypes Widgets Quick Reference by Maik Röder

                   •   http://plone.org/documentation/archetypes/arch_widget_quickref_1_3_1

Building an Artist Community Website (9/21/05)                                                www.jazkarta.com 866.864.4918
Multimedia in Plone

              • Multimedia = audio, video, photo, etc.
              • Currently limited built-in support for these
                    media le types
              • No definitive multimedia package for Plone

Building an Artist Community Website (9/21/05)     www.jazkarta.com 866.864.4918
Existing 3rd party products
              • Audio
               • ATAudio, Plodcasting, PloneRadio
              • Video
               • ATVideo, lilix.movie, Parwin
              • Photo
               • ATPhoto, CMFPhoto, ZPhotoSlides
Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
PloneMultimedia
              • PloneMultimedia
               • ATAudio
               • ATVideo
               • ATPhoto
              • Common ‘base’ products in which to build
                    custom multimedia products
              • Add-on product for ATContentTypes
Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Subclass ATCT
              • ATAudio - subclass ATFile
               • inherit methods: cleanupFilename,
                         download, getIcon
                   • validators: checkFileSize
              • ATPhoto - subclass ATImage
               • getEXIF, ATFolder template-mixin (Display
                         menu)

Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Upload
                                                  audio le

                                                 • Type in a description
                                                 • Upload file
                                                 • Click ‘Next’ button

Building an Artist Community Website (9/21/05)                 www.jazkarta.com 866.864.4918
Metadata

                                                 • ATAudio extracts metadata
                                                 • Auto-populates form fields
                                                 • Extensible genres
                                                 • Upload album art

Building an Artist Community Website (9/21/05)                    www.jazkarta.com 866.864.4918
Audio view page
                                                 • Embedded player
                                                 • Play in popup window
                                                 • Stream to external
                                                   media player
                                                 • Download to FS

Building an Artist Community Website (9/21/05)                www.jazkarta.com 866.864.4918
Drag-n-drop MP3s




Drag-n-drop MP3s to
                      MP3s appear in recordings folder
  WebDAV folder
Metadata extracted




Song Metadata          ATAudio
 (from iTunes)   auto-extracts ID3 tags
CD view page




Building an Artist Community Website (9/21/05)   www.jazkarta.com 866.864.4918
Flash player

                                                 • Flash popup player
                                                 • Uses XSPF playlist
                                                 • Jump forward/
                                                   backward through
                                                   tracks



Building an Artist Community Website (9/21/05)          www.jazkarta.com 866.864.4918
Demo



Building an Artist Community Website (9/21/05)          www.jazkarta.com 866.864.4918
Thanks to...
              • ATAudio team
               • Volodymr Cherepanyak (chervol)
               • Rocky Burt (RockyBurt)
               • Salim Fadhley (_salimfadhley)
               • jenner (for adding Flash player support)

Building an Artist Community Website (9/21/05)        www.jazkarta.com 866.864.4918
Multimedia sprint

              • This thursday and friday at the Hotel Academia!
              • http://plone.org/events/sprints/multimedia
              • Ask Nate for a map to the hotel


Building an Artist Community Website (9/21/05)    www.jazkarta.com 866.864.4918
Multimedia Resources
              • http://plone.org/products/ataudio
              • http://plone.org/products/plonemultimedia
              • http://plone4artists.org
              • Mailing list: ataudio@plone4artists.org with
                    subject “subscribe”
              • Mailing list: plone4artists@plone4artists.org
                    with subject “subscribe”

Building an Artist Community Website (9/21/05)     www.jazkarta.com 866.864.4918
Questions?



Building an Artist Community Website (9/21/05)       www.jazkarta.com 866.864.4918

Weitere ähnliche Inhalte

Ähnlich wie Building an artist community website with ArchGenXML / Poseidon

How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for youSimon Willison
 
Moving from AS3 to Flex - advantages, hazards, traps
Moving from AS3 to Flex - advantages, hazards, trapsMoving from AS3 to Flex - advantages, hazards, traps
Moving from AS3 to Flex - advantages, hazards, trapsFlorian Weil
 
Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Patrick Chanezon
 
Modeling Patterns for JavaScript Browser-Based Games
Modeling Patterns for JavaScript Browser-Based GamesModeling Patterns for JavaScript Browser-Based Games
Modeling Patterns for JavaScript Browser-Based GamesRay Toal
 
DotNet 2019 | Marcos CobeĂąa - Llevando Wave Engine a la web a travĂŠs de WebGL...
DotNet 2019 | Marcos CobeĂąa - Llevando Wave Engine a la web a travĂŠs de WebGL...DotNet 2019 | Marcos CobeĂąa - Llevando Wave Engine a la web a travĂŠs de WebGL...
DotNet 2019 | Marcos CobeĂąa - Llevando Wave Engine a la web a travĂŠs de WebGL...Plain Concepts
 
用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化Shengyou Fan
 
Programming with JavaFX
Programming with JavaFXProgramming with JavaFX
Programming with JavaFXFulvio Corno
 
Ajax In Action 2008 - Gui Development With qooxdoo
Ajax In Action 2008 - Gui Development With qooxdooAjax In Action 2008 - Gui Development With qooxdoo
Ajax In Action 2008 - Gui Development With qooxdooFabian Jakobs
 
Python_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_PipelinesPython_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_PipelinesRussell Darling
 
Coding the UI
Coding the UICoding the UI
Coding the UIMark Meeker
 
Webpack Encore - Asset Management for the rest of us
Webpack Encore - Asset Management for the rest of usWebpack Encore - Asset Management for the rest of us
Webpack Encore - Asset Management for the rest of usStefan Adolf
 
Joy of Inkscape - at StixCamp
Joy of Inkscape - at StixCampJoy of Inkscape - at StixCamp
Joy of Inkscape - at StixCampDonna Benjamin
 
Web-based multiplex image synthesis for digital signage
Web-based multiplex image synthesis for digital signageWeb-based multiplex image synthesis for digital signage
Web-based multiplex image synthesis for digital signageAkihiko Shirai
 
George Thiruvathukal, User Experiences with Plone Content Management
George Thiruvathukal, User Experiences with Plone Content Management George Thiruvathukal, User Experiences with Plone Content Management
George Thiruvathukal, User Experiences with Plone Content Management webcontent2007
 
DojoX GFX Keynote Eugene Lazutkin SVG Open 2007
DojoX GFX Keynote Eugene Lazutkin SVG Open 2007DojoX GFX Keynote Eugene Lazutkin SVG Open 2007
DojoX GFX Keynote Eugene Lazutkin SVG Open 2007Eugene Lazutkin
 
AFUP Lorraine - Symfony Webpack Encore
AFUP Lorraine - Symfony Webpack EncoreAFUP Lorraine - Symfony Webpack Encore
AFUP Lorraine - Symfony Webpack EncoreEngineor
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEBenjamin CabĂŠ
 
Banquet 43
Banquet 43Banquet 43
Banquet 43Koubei UED
 

Ähnlich wie Building an artist community website with ArchGenXML / Poseidon (20)

How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for you
 
Moving from AS3 to Flex - advantages, hazards, traps
Moving from AS3 to Flex - advantages, hazards, trapsMoving from AS3 to Flex - advantages, hazards, traps
Moving from AS3 to Flex - advantages, hazards, traps
 
Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?
 
Modeling Patterns for JavaScript Browser-Based Games
Modeling Patterns for JavaScript Browser-Based GamesModeling Patterns for JavaScript Browser-Based Games
Modeling Patterns for JavaScript Browser-Based Games
 
Advanced Action Script
Advanced Action ScriptAdvanced Action Script
Advanced Action Script
 
DotNet 2019 | Marcos CobeĂąa - Llevando Wave Engine a la web a travĂŠs de WebGL...
DotNet 2019 | Marcos CobeĂąa - Llevando Wave Engine a la web a travĂŠs de WebGL...DotNet 2019 | Marcos CobeĂąa - Llevando Wave Engine a la web a travĂŠs de WebGL...
DotNet 2019 | Marcos CobeĂąa - Llevando Wave Engine a la web a travĂŠs de WebGL...
 
用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化
 
Programming with JavaFX
Programming with JavaFXProgramming with JavaFX
Programming with JavaFX
 
Ajax In Action 2008 - Gui Development With qooxdoo
Ajax In Action 2008 - Gui Development With qooxdooAjax In Action 2008 - Gui Development With qooxdoo
Ajax In Action 2008 - Gui Development With qooxdoo
 
Python_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_PipelinesPython_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_Pipelines
 
Coding the UI
Coding the UICoding the UI
Coding the UI
 
Coding Ui
Coding UiCoding Ui
Coding Ui
 
Webpack Encore - Asset Management for the rest of us
Webpack Encore - Asset Management for the rest of usWebpack Encore - Asset Management for the rest of us
Webpack Encore - Asset Management for the rest of us
 
Joy of Inkscape - at StixCamp
Joy of Inkscape - at StixCampJoy of Inkscape - at StixCamp
Joy of Inkscape - at StixCamp
 
Web-based multiplex image synthesis for digital signage
Web-based multiplex image synthesis for digital signageWeb-based multiplex image synthesis for digital signage
Web-based multiplex image synthesis for digital signage
 
George Thiruvathukal, User Experiences with Plone Content Management
George Thiruvathukal, User Experiences with Plone Content Management George Thiruvathukal, User Experiences with Plone Content Management
George Thiruvathukal, User Experiences with Plone Content Management
 
DojoX GFX Keynote Eugene Lazutkin SVG Open 2007
DojoX GFX Keynote Eugene Lazutkin SVG Open 2007DojoX GFX Keynote Eugene Lazutkin SVG Open 2007
DojoX GFX Keynote Eugene Lazutkin SVG Open 2007
 
AFUP Lorraine - Symfony Webpack Encore
AFUP Lorraine - Symfony Webpack EncoreAFUP Lorraine - Symfony Webpack Encore
AFUP Lorraine - Symfony Webpack Encore
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDE
 
Banquet 43
Banquet 43Banquet 43
Banquet 43
 

Mehr von Jazkarta, Inc.

Traveling through time and place with Plone
Traveling through time and place with PloneTraveling through time and place with Plone
Traveling through time and place with PloneJazkarta, Inc.
 
Questions: A Form Library for Python with SurveyJS Frontend
Questions: A Form Library for Python with SurveyJS FrontendQuestions: A Form Library for Python with SurveyJS Frontend
Questions: A Form Library for Python with SurveyJS FrontendJazkarta, Inc.
 
The User Experience: Editing Composite Pages in Plone 6 and Beyond
The User Experience: Editing Composite Pages in Plone 6 and BeyondThe User Experience: Editing Composite Pages in Plone 6 and Beyond
The User Experience: Editing Composite Pages in Plone 6 and BeyondJazkarta, Inc.
 
WTA and Plone After 13 Years
WTA and Plone After 13 YearsWTA and Plone After 13 Years
WTA and Plone After 13 YearsJazkarta, Inc.
 
Collaborating With Orchid Data
Collaborating With Orchid DataCollaborating With Orchid Data
Collaborating With Orchid DataJazkarta, Inc.
 
Spend a Week Hacking in Sorrento!
Spend a Week Hacking in Sorrento!Spend a Week Hacking in Sorrento!
Spend a Week Hacking in Sorrento!Jazkarta, Inc.
 
Plone 5 Upgrades In Real Life
Plone 5 Upgrades In Real LifePlone 5 Upgrades In Real Life
Plone 5 Upgrades In Real LifeJazkarta, Inc.
 
Accessibility in Plone: The Good, the Bad, and the Ugly
Accessibility in Plone: The Good, the Bad, and the UglyAccessibility in Plone: The Good, the Bad, and the Ugly
Accessibility in Plone: The Good, the Bad, and the UglyJazkarta, Inc.
 
Getting Paid Without GetPaid
Getting Paid Without GetPaidGetting Paid Without GetPaid
Getting Paid Without GetPaidJazkarta, Inc.
 
An Open Source Platform for Social Science Research
An Open Source Platform for Social Science ResearchAn Open Source Platform for Social Science Research
An Open Source Platform for Social Science ResearchJazkarta, Inc.
 
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...Jazkarta, Inc.
 
Anatomy of a Large Website Project
Anatomy of a Large Website ProjectAnatomy of a Large Website Project
Anatomy of a Large Website ProjectJazkarta, Inc.
 
Anatomy of a Large Website Project - With Presenter Notes
Anatomy of a Large Website Project - With Presenter NotesAnatomy of a Large Website Project - With Presenter Notes
Anatomy of a Large Website Project - With Presenter NotesJazkarta, Inc.
 
The Mountaineers: Scaling the Heights with Plone
The Mountaineers: Scaling the Heights with PloneThe Mountaineers: Scaling the Heights with Plone
The Mountaineers: Scaling the Heights with PloneJazkarta, Inc.
 
Plone Hosting: A Panel Discussion
Plone Hosting: A Panel DiscussionPlone Hosting: A Panel Discussion
Plone Hosting: A Panel DiscussionJazkarta, Inc.
 
Plone+Salesforce
Plone+SalesforcePlone+Salesforce
Plone+SalesforceJazkarta, Inc.
 
Academic Websites in Plone
Academic Websites in PloneAcademic Websites in Plone
Academic Websites in PloneJazkarta, Inc.
 
Online Exhibits in Plone
Online Exhibits in PloneOnline Exhibits in Plone
Online Exhibits in PloneJazkarta, Inc.
 
Online exhibits in Plone
Online exhibits in PloneOnline exhibits in Plone
Online exhibits in PloneJazkarta, Inc.
 

Mehr von Jazkarta, Inc. (20)

Traveling through time and place with Plone
Traveling through time and place with PloneTraveling through time and place with Plone
Traveling through time and place with Plone
 
Questions: A Form Library for Python with SurveyJS Frontend
Questions: A Form Library for Python with SurveyJS FrontendQuestions: A Form Library for Python with SurveyJS Frontend
Questions: A Form Library for Python with SurveyJS Frontend
 
The User Experience: Editing Composite Pages in Plone 6 and Beyond
The User Experience: Editing Composite Pages in Plone 6 and BeyondThe User Experience: Editing Composite Pages in Plone 6 and Beyond
The User Experience: Editing Composite Pages in Plone 6 and Beyond
 
WTA and Plone After 13 Years
WTA and Plone After 13 YearsWTA and Plone After 13 Years
WTA and Plone After 13 Years
 
Collaborating With Orchid Data
Collaborating With Orchid DataCollaborating With Orchid Data
Collaborating With Orchid Data
 
Spend a Week Hacking in Sorrento!
Spend a Week Hacking in Sorrento!Spend a Week Hacking in Sorrento!
Spend a Week Hacking in Sorrento!
 
Plone 5 Upgrades In Real Life
Plone 5 Upgrades In Real LifePlone 5 Upgrades In Real Life
Plone 5 Upgrades In Real Life
 
Accessibility in Plone: The Good, the Bad, and the Ugly
Accessibility in Plone: The Good, the Bad, and the UglyAccessibility in Plone: The Good, the Bad, and the Ugly
Accessibility in Plone: The Good, the Bad, and the Ugly
 
Getting Paid Without GetPaid
Getting Paid Without GetPaidGetting Paid Without GetPaid
Getting Paid Without GetPaid
 
An Open Source Platform for Social Science Research
An Open Source Platform for Social Science ResearchAn Open Source Platform for Social Science Research
An Open Source Platform for Social Science Research
 
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
 
Anatomy of a Large Website Project
Anatomy of a Large Website ProjectAnatomy of a Large Website Project
Anatomy of a Large Website Project
 
Anatomy of a Large Website Project - With Presenter Notes
Anatomy of a Large Website Project - With Presenter NotesAnatomy of a Large Website Project - With Presenter Notes
Anatomy of a Large Website Project - With Presenter Notes
 
The Mountaineers: Scaling the Heights with Plone
The Mountaineers: Scaling the Heights with PloneThe Mountaineers: Scaling the Heights with Plone
The Mountaineers: Scaling the Heights with Plone
 
Plone Hosting: A Panel Discussion
Plone Hosting: A Panel DiscussionPlone Hosting: A Panel Discussion
Plone Hosting: A Panel Discussion
 
Plone+Salesforce
Plone+SalesforcePlone+Salesforce
Plone+Salesforce
 
Academic Websites in Plone
Academic Websites in PloneAcademic Websites in Plone
Academic Websites in Plone
 
Plone
PlonePlone
Plone
 
Online Exhibits in Plone
Online Exhibits in PloneOnline Exhibits in Plone
Online Exhibits in Plone
 
Online exhibits in Plone
Online exhibits in PloneOnline exhibits in Plone
Online exhibits in Plone
 

KĂźrzlich hochgeladen

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

KĂźrzlich hochgeladen (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

Building an artist community website with ArchGenXML / Poseidon

  • 1. Building an artist community website with Poseidon / ArchGenXML / Plone Nate Aune Plone Conference Vienna, Austria Sept. 21, 2005 Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 2. Who am I? • Developer and owner, Jazkarta Consulting (www.jazkarta.com) • Musician - saxophonist and composer (www.nateaune.com/music/) • Founder of Plone4Artists project (www.plone4artists.org) Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 3. Overview • What is Archetypes? • What is UML? • What is ArchGenXML? • Build a model using UML • Transform the model into a Plone product • Multimedia • Questions? jazkarta.com/presentations/artist-community.pdf Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 4. What is Archetypes? • Framework for developing Plone products • Automatically creates view and edit pages • Maintains unique object IDs • Creates references between objects Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 5. Archetypes framework • Field validation • Standard security setup • Alternate storage options • Data transformation capabilities Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 6. Archetypes schemas Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 7. Example Archetype: Artist schema= Schema(( StringField('title'), ImageField('photo'), LinesField('instrument'), )) class Artist(BaseContent) schema = BaseSchema + schema registerType(Artist,PROJECTNAME) Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 8. Widgets schema= Schema(( StringField('title', widget=StringWidget( label=’Artist name’, size=20), ), ImageField('photo', widget=ImageWidget( label=’Headshot’), ), LinesField('instrument', widget=MultiSelectionWidget( label=’Instruments’), multiValue=1, ), )) Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 9. What is UML? • UML = Uniform Modeling Language • Standard widely-adopted graphical language • Describes the artifacts of software systems • Focus on conceptual representations Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 10. Artist: Described in UML Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 11. Poseidon UML tool Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 12. What is ArchGenXML? • Command line utility • Auto-generates code from a UML model • No round-trip support yet • Custom code is preserved upon regeneration Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 13. Why use ArchGenXML? (part 1) • You want to save time • You are a lazy programmer • You don’t like to reinvent the wheel • You don’t like copying and pasting code • You make heavy use of references and interfaces Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 14. Why use ArchGenXML? (part 2) • You have big projects with many different content types • You want or need a well-documented interface to your product • You like structured model- and pattern- driven software development • You want to maintain your project in the future without getting a headache Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 15. UML to Archetypes using ArchGenXML schema= Schema(( StringField('title', widget=StringWidget( label=’Artist name’ size=20), ), ImageField('photo', widget=ImageWidget( label=’Headshot’), ), LinesField('instrument', widget=MultiSelectionWidget( label=’Instruments’), multiValue=1, ), )) Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 16. UML speak to AT speak • package • product • class • content type • operation • method • attribute • eld • tagged value • property • stereotype • subclass, view Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 17. In practice • 1) Save your model to the Products dir • 2) Run the ArchGenXML script • 3) Restart Zope • 4) Install the newly generated product svn co svn://svn.plone4artists.org/trunk/ArtistSite Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 18. Running the script $ cd /var/local/zope/instance1/Products $ ArchGenXML/ArchGenXML.py -o ArtistSite ArtistSite.zuml ArchGenXML 1.4 devel 4 (c) 2003 BlueDynamics GmbH, under GNU General Public License 2.0 or later set outfilename [string] to ArtistSite Parsing... =============== opening zargo XMI version: 1.2 using xmi 1.2+ parser outfile: ArtistSite Generating... ============== method bodies will be preserved Starting new Product: ArtistSite Generating class: Artist $ Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 19. ArtistSite product dir $ ls Products/ArtistSite Artist.py __init__.py i18n skins Extensions config.py refresh.txt version.txt $ Restart Zope Install product using QuickInstaller Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 20. Artist.py • Inserts documentation • Placeholders for custom code • i18n message ids • Using ArtistSite/model/generate_source.sh • Inserts author information • Creates i18n msg catalog .pot le • strips HTML from doc strings Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 21. Add new artist Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 22. Edit artist form Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 23. View artist Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 24. Static vocabulary • Dene a static vocabulary of instruments Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 25. Dynamic vocabulary Use ATVocabularyManager to manage list of instruments Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 26. Dynamic vocab cont... Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 27. Containment Use the solid rhomb to make a strict containment ‘Artist’ instances can only be added to an ‘Artists’ instance Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 28. Artist container Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 29. Override base class The artists folder will get large, so make it a BTreeFolder Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 30. Stereotype large • Select the class • Click on the stereotypes button (...) • Select the ‘stub’ stereotype Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 31. References Create a direct association results in: Reference eld group to artist(s) Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 32. Group edit form Group is associated with artists Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 33. Reference Browser Widget as default Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 34. Congure browser widget Select the end point Make multivalued Specify relationship Dene query Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 35. Adding references Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 36. Back references Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 37. Back references Groups that artist belongs to Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 38. Stereotype member Add the ‘member’ stereotype to tell ArchGenXML to subclass CMFMember Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 39. Registration form • SiteMember is installed • Replaces default member • Easy way to create new member types Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 40. Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 41. Stereotype stub • Add content types to your model without having them get generated • Makes it easy to integrate 3rd party products into your custom product • Adds allowed_content_types to your class Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 42. stub • Select the class • Click on the stereotypes button (...) • Select the ‘stub’ stereotype Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 43. Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 44. PloneMall • Example of a sophisticated e-commerce framework built using UML • See the UML model here: • http://www.plonemall.com/uml/UML-beta2.png/image_view_fullscreen Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 45. SiteEvent : a custom event type • Subclass ATEvent and add your own elds Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 46. Associate with venue • Make a: • Venues container • Venue content type • Direct association from SiteEvent to Venue Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 47. What I didn’t cover • Methods • Additional Stereotypes • actions, portal_tool, abstract, ordered • Generalization (Interfaces) • Workflow • Unit testing • Documentation Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 48. Acknowledgements • Philipp Auersperg (Blue Dynamics) • Jens Klein (jensens) • Martin Aspeli (optilude) • Fabiano Weimar dos Santos (xiru) • Bernie Snizek (DrZoltron) • Blue Dynamics - conference organizers • Plone community Go to Jens and Phil’s ArchGenXML talk! Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 49. Links • How to subclass ATContentType in 7 minutes •http://plone.org/documentation/how-to/subclass-atct-using-archgenxml • ArchGenXML product page - http://plone.org/products/archgenxml • ArchGenXML getting started tutorial by Jens Klein • http://plone.org/documentation/tutorial/archgenxml-getting-started • ArchGenXML manual (with screenshots) • http://plone.org/documentation/archetypes/archgenxml-manual • Intro to Archetypes by Sidnei da Silva, published on ZopeMag.com • http://www.zopemag.com/Issue006/Section_Articles/article_IntroToArchteypes.html • Archetypes: Customizing Plone in 60 seconds (PDF) by Andy McKay • http://www.enfoldsystems.com/About/Talks/archetypes.pdf • Archetypes Fields Quick Reference by Maik RĂśder • http://plone.org/documentation/archetypes/arch_eld_quickref_1_3_1 • Archetypes Widgets Quick Reference by Maik RĂśder • http://plone.org/documentation/archetypes/arch_widget_quickref_1_3_1 Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 50. Multimedia in Plone • Multimedia = audio, video, photo, etc. • Currently limited built-in support for these media le types • No denitive multimedia package for Plone Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 51. Existing 3rd party products • Audio • ATAudio, Plodcasting, PloneRadio • Video • ATVideo, lilix.movie, Parwin • Photo • ATPhoto, CMFPhoto, ZPhotoSlides Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 52. PloneMultimedia • PloneMultimedia • ATAudio • ATVideo • ATPhoto • Common ‘base’ products in which to build custom multimedia products • Add-on product for ATContentTypes Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 53. Subclass ATCT • ATAudio - subclass ATFile • inherit methods: cleanupFilename, download, getIcon • validators: checkFileSize • ATPhoto - subclass ATImage • getEXIF, ATFolder template-mixin (Display menu) Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 54. Upload audio le • Type in a description • Upload le • Click ‘Next’ button Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 55. Metadata • ATAudio extracts metadata • Auto-populates form elds • Extensible genres • Upload album art Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 56. Audio view page • Embedded player • Play in popup window • Stream to external media player • Download to FS Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 57. Drag-n-drop MP3s Drag-n-drop MP3s to MP3s appear in recordings folder WebDAV folder
  • 58. Metadata extracted Song Metadata ATAudio (from iTunes) auto-extracts ID3 tags
  • 59. CD view page Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 60. Flash player • Flash popup player • Uses XSPF playlist • Jump forward/ backward through tracks Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 61. Demo Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 62. Thanks to... • ATAudio team • Volodymr Cherepanyak (chervol) • Rocky Burt (RockyBurt) • Salim Fadhley (_salimfadhley) • jenner (for adding Flash player support) Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 63. Multimedia sprint • This thursday and friday at the Hotel Academia! • http://plone.org/events/sprints/multimedia • Ask Nate for a map to the hotel Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 64. Multimedia Resources • http://plone.org/products/ataudio • http://plone.org/products/plonemultimedia • http://plone4artists.org • Mailing list: ataudio@plone4artists.org with subject “subscribe” • Mailing list: plone4artists@plone4artists.org with subject “subscribe” Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918
  • 65. Questions? Building an Artist Community Website (9/21/05) www.jazkarta.com 866.864.4918