220 likes | 368 Views
2009 European EMu Users Meeting, Thursday 4rd June. - Elizabeth Bruton, Museum of the History of Science, Oxford elizabeth.bruton@mhs.ox.ac.uk. One acronym, one system: using the EMu API to connect your Collections Management System with your Content Management System. Outline.
E N D
2009 European EMu Users Meeting, Thursday 4rd June. - Elizabeth Bruton, Museum of the History of Science, Oxford elizabeth.bruton@mhs.ox.ac.uk One acronym, one system: using the EMu API to connect your Collections Management System with your Content Management System
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 API Advantages of API Available example: Hull Museums' Collections at http://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.wordpress.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: <img src=”media.php?irn=123&image=yes&width=200” />
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?