Presentation on theme: "One acronym, one system: using the EMu API to connect your Collections Management System with your Content Management System 2009 European EMu Users Meeting,"— Presentation transcript:
One acronym, one system: using the EMu API to connect your Collections Management System with your Content Management System 2009 European EMu Users Meeting, Thursday 4rd June. - Elizabeth Bruton, Museum of the History of Science, Oxford firstname.lastname@example.org
Outline ► Content Management Systems ► KE EMu web interface ► First Steps Taking a different look at your collections’ data Design and functionality Data structure and planning ► Example: ‘Plugging in’ the EMu API into Wordpress on the MHS website ► Future development and ideas
Content Management Systems ► What? ► Why? ► Which one? ► php ► Wordpress ► How does your Collections Management System fit in?
KE EMu web interface ► Old system http://emu.mhs.ox.ac.uk http://emu.mhs.ox.ac.uk ► API ► Advantages of API ► Available example: Hull Museums' Collections at http://www.hullcc.gov.uk/museumcollections http://www.hullcc.gov.uk/museumcollectionshttp://www.hullcc.gov.uk/museumcollections
Current Collections Website - Similar design and functionality as previous collections website - Produced by adapting KE EMu online collections (php- based)
First Steps ► Taking a different look at your collections’ data ► Narratives module: a pseudo-Content Management System? ► Design and functionality ► Data structure and planning
MHS Collections data ► Mostly catalogue records and multimedia ► Currently narratives are used for internal usage (as per previous cataloguing system) ► But some new narratives created, especially by education department ► Online audience: researchers and academics ► How can this be developed?
Design Design new collections' website (aka EMu v2) as part of new website running on Wordpress - http://www.wordpr ess.org
Functionality (1) ► Copy existing functionality – Search options – Results List (text and image view) – Individual record view
Functionality (2) ► Implement new functionality and features including: – 'Top 10' children-friendly objects – Recently catalogued objects – Objects on Loan/Display – Change number of search records displayed – More advanced multimedia options including login & free full-size images for personal, academic and/or non-commercial use
How? ► API runs on php5 ► Has basic documentation ► Includes five php files: – config.php – media.php – query.php – serverconnection.php: stores server connections – sessions.php: handles php sessions
config.php (1) ► Configures behaviour of media and query classes ► Stores Texxmlserver options (host, port number etc) ► Stores default visibility options (Intranet/Internet) ► Debug: copies queries ► error_reporting (php-based)
config.php (2) ► set_exception_handler – Useful for debugging in test version ► Can also be used to set global variables by calling php function ini_set()
media.php (1) ► Used to create HTML img tags by passing variables through URL string (i.e GET variables) ► Functionality significantly differently to query class although does use internal query class to get data ► All properties are set through GET variables except visibility which is set in config.php file ► Usage: ► Usage:
query.php (1) ► Very general class used to query the specified Texpress database via Texxmlserver ► Can manually set TexQL query or use in-built helper function to form TexQL query ► TexQL queries can include joins to different Texpress databases where the base table contains the link but joins in the opposite direction are not supported and must be performed manually by calling another query object
query.php (2) ► Once the query is run, the query class parses the XML returned into native php object structure which can be used on a HTML page ► Three key things: – Properties to set – Properties to test – Methods, e.g. Select, Term, ClearTerms etc
query.php (3) ► Usage (from EMu documentation): – Instantiate the class – Set Table, Visibility, StartRec and EndRec properties on the class – Make a number of calls to Select() to define the fields to return in the query. – Make as many calls to Term() or TexqlTerm() as required to specify what you are querying for. – Call Fetch() to return the results in an array of records. – Check Matches and Status to find the results of your query. – Use the returned records as appropriate.
How? (2) ► Say what? ► Use query class to return results as php objects ► Use php objects (data, e.g. variables or arrays) to format HTML ► Use media class to handle multimedia ► Build on top of the EMu API to create and develop your online collections
Current and Future development ► Current ► In Progress ► Future
Conclusion ► API doesn’t work ‘out of box’ but is a much more stable platform for web development ► Requires a medium to high level of technical knowledge ► API can be used to create mashups – with other data sources and/or collections ► Working examples: Hull Museums’ Collections ► Any questions?