SlideShare ist ein Scribd-Unternehmen logo
1 von 42
University Libraries




    dmBridge: A public access
    framework and alternative
 templating system for CONTENTdm

Alex.Dolski@unlv.edu Web & Digitization Application Developer
Brian.Egan@unlv.edu Web/Multimedia Designer
University of Nevada, Las Vegas Libraries
University Libraries



                     Topics covered
•   Introduction
•   Feature-by-feature walkthrough
•   Template crash course
•   Planning & deployment logistics
INTODUCTION
University Libraries



              What is dmBridge?
• An alternative templating system for
  CONTENTdm with additional features
• Enables enhancement and modernization of
  public digital collection web interfaces
• Provides a lot of extra features without any
  custom programming
University Libraries



            What is dmBridge not?
•   A content management system
•   A general web application framework
•   A CONTENTdm replacement
•   A CONTENTdm customization
•   A set of drop-in replacement templates
    – You have to write your own HTML/CSS; dmBridge
      only streamlines the process
University Libraries



         Who can use dmBridge?
• CONTENTdm users with web design experience
• Web designers with zero programming
  experience
• Programmers from novice to expert
• Both of the above, collaboratively!
• Beginners can get started faster and more easily
• Advanced users can accomplish more in less time
• At UNLV, we have been using it since last fall
  – All of our work with the default templates has been
    suspended
University Libraries



         Why develop dmBridge?
• The default templates were no longer acceptable
  to us
  1. Anti-modular; not conducive to customizations
  2. Code base beyond repair
  3. Force the programmer to work within an ad hoc
     “code soup” paradigm
  4. Heavily dependent on unnecessary JavaScript and
     invalid, non-semantic HTML
  5. Ignores recent trends and best practices in web
     application architecture
• Bottom line: pervasive systemic defects
University Libraries


 Our dmBridge-enhanced collections
• “Welcome Home, Howard!”
  – dmBridge pilot project, launched November 2008
  – http://digital.library.unlv.edu/hughes/
• Southern Nevada: The Boomtown Years
  – Launched May 2009
  – http://digital.library.unlv.edu/boomtown/
• More to come…
FEATURE TOUR
University Libraries



Some features unique to dmBridge
• Scheduled “object of the        • Search suggestions based on
  day/week/month”                   CONTENTdm field indices
• “Random object” from one or     • Server-side page caching
  all collections                 • Object ratings
• Output format independence      • Metadata output in multiple
  (HTML, XML/XSLT, JSON…)           formats
• RSS/Atom search subscriptions   • Integrated object email
• Commenting with moderation        feedback
  and notification                • Configurable tag clouds based
• Extensions support                on DC metadata
• Relatively pretty URLs          • Easy web-based control panel
• Object-oriented PHP API           for configuring most of this
• XML/JSON REST API                 stuff
                                  • More to come…
University Libraries



                The Control Panel
• Graphical interface for configuration
  and maintenance tasks
• Uses the same authentication
  system as the CONTENTdm
  Administration Module
• Functionality is mutually exclusive
  with the admin module (no
  overlapping features)
University Libraries



             Object commenting
• Optional comment moderation
• Optional e-mail notification of new comments
• For compound object pages, comments are
  associated with the parent object and appear
  on every page
• Can be enabled or disabled independently on
  a per-template-set basis
University Libraries



                 Object feedback
• Like a comment, but gets sent as an email
  instead of being posted to the page
• Email contains a reference to the object
• Cleaner & more professional than a mailto:
  link
• Can be enabled on a per-template-set basis
University Libraries



                    Object ratings


• View highest-rated objects in the Control
  Panel
• Can appear on any scale
• Can be enabled on a per-template-set basis
University Libraries



  The highlighted & random object
• Set up in the Control Panel
• Highlighted object can be returned as an XML
  feed:
http://digital.library.unlv.edu/hughes/dm.php/object/highlighted


• Both can be returned in code:
$obj = dmObject::getHighlighted();
$obj = dmObject::getRandom();
University Libraries



                             Tag clouds
• Based on collection DC
  metadata fields
• Can define tag cutoff,
  randomization, and tag CSS
  classes based on term
  frequency
• Code to draw this cloud:

   $c = new dmCollection(‘/snv’);
   echo Draw::tagCloud(
      $c, array(‘subjec’)
   );
University Libraries



                     Search views
• Advanced search
  – You choose which search forms to include:
     • Field, date, and/or proximity search
  – Collection checkboxes are generated dynamically
    based on template & CONTENTdm access
    privileges
• Compound object search
  – Shows the full text of all pages for which there are
    matches, with matching terms highlighted
University Libraries



                    Search queries
• Simple
  – http://myserver/mytemplates/dm.php/?q=cheese
• Advanced
  – Supports the full capabilities of the CONTENTdm
    search engine
  – /?modes[]=all&fields[]=title&strings[]=cheese&aliases[]=/uw
University Libraries



              Search suggestions
• Use indexed field terms from CONTENTdm
• Can be hooked up to text inputs via
  JavaScript/AJAX
• See our dmBridge collections for examples
University Libraries



RSS, Atom, & other output formats
Example: http://digital.library.unlv.edu/hughes/dm.php/?format=xml
               Object        Results   Obj.-Results   Favorites   Search
               View           View        View          View       View

     HTML        ✓             ✓           ✓             ✓         ✓

      Atom

       RSS

  RDF/XML        ✓

      JSON       ✓             ✓           ✓

       XML       ✓             ✓           ✓

 XML + XSLT      ✓             ✓           ✓             ✓         ✓
University Libraries



                   The data store
• Used to store dmBridge-specific data
• Modular and abstracted
• Currently, modules exist for:
  – On-disk XML files
  – PDO (MySQL, PostgreSQL, etc.)
• All CONTENTdm data continues to live in
  CONTENTdm, of course
University Libraries



                            Extensions
• “Extensions” let you:
  – Override any of the “Draw” (helper) methods
  – Write new custom methods that do whatever
• Extensions:
  – Isolate & modularize custom code
  – Should be easy for any programmer to grasp
  – Can be shared with other dmBridge users
  – Can be made available on a global or per-
    template-set basis
University Libraries



         Image viewer challenges
• “As long as we’re rewriting the entire
  templating system…”
• All alternative viewers have at least one of the
  following problems:
  – Require manual pyramidal tile pregeneration
  – Google logo in the corner
  – Spotty support for JPEG2000
  – Server requirements (e.g. Djatoka)
University Libraries



                     Image viewer
• Written by Brian in JavaScript/jQuery
• Separate from dmBridge; works with or without it
• Image tiles generated on the fly by getimage.exe
  – No pregeneration or extra software needed
  – Supports JPEG2000
• Easy dragging and zooming
• Customizable control appearance
• Demo:
  – http://digital.library.unlv.edu/hughes/dm.php/hughes/9
University Libraries



             Other media viewers
• CONTENTdm supports any file type; dmBridge
  can as well*
   • (*showfile.exe sends everything as application/octet-
     stream; nothing we can do about that)
• Viewers are modular; can plug in your own
• Custom viewers (like all other extensions) are not
  clobbered by dmBridge upgrades
• Assign any viewer for a particular file type to any
  collection
University Libraries



       What is dmBridge missing?
• dmBridge offers most the
  functionality of the                   dmBridge
  default templates
• Notable absences:
  –   Comparative object viewer              CONTENTdm
  –   Faceted browsing                          default
                                              templating
  –   Slideshow viewer                          system
  –   Some other minor stuff
  –   These are possible; we just
      haven’t got around to         Feature set overlap
      them yet
THE PAGE TEMPLATES
University Libraries



     Working with the templates
• The template creation process is simpler, but
  different
• dmBridge leaves most aspects of template
  design up to you
• You decide what elements to include on the
  page and how to style them
• Fully-functional sample templates are
  provided
University Libraries


 Working with the templates (cont’d)
• In dmBridge, you have six different views
  • Single object, compound object, results, object-
    results, favorites, search (see next slide)
• Mark up and style each one using standard
  HTML/CSS
• Call up dynamic functionality with one-line
  calls to dmBridge helper (“Draw”) methods
• No knowledge of dmBridge inner workings is
  necessary
University Libraries



          Template-view correlation
                                      Multiple
   No target in          Uncertain                        Concrete
                                      concrete
    particular           target(s)                         target
                                       targets



                          Browse       Search      search/index.html.php




object/index.html.php    Result Set   No Results   (redirects to search)



object/single.html.php
                          Object      Favorites    favorite/index.html.php
& compound.html.php
University Libraries


          Using the helper methods
This code in the object view         Becomes…
template…
<div id=“metadata”>                  <div id=“metadata”>
 <?= ObjectDraw::metadata() ?>        <dl>
</div>                                  <dt>Title</dt>
                                        <dd>Some great object</dd>
                                        <dt>Description</dt>
                                        <dd>A great object from one of our
    ObjectDraw::metadata() is
                                        great collections.</dd>
    just one of over 50 built-in
   helpers available for doing all      <!– etc. -->
           kinds of stuff             </dl>
                                     </div>
University Libraries

       A small sample of dmBridge API
             “helper” methods
• Any view                    • Object view
   – downloadImageLink()        –   addFavoriteButton()
   – loginLink()                –   childLinksAsList()
   – tagCloud()                 –   commentsSection()
• Results view                  –   feedbackSection()
   –   pageLinks()              –   highlightedFullText()
   –   results()                –   metadata()
   –   searchTerms()            –   previousNextLinks()
   –   thumbsToggleLink()       –   ratingsSection()
   –   viewLinks()              –   viewer()
PLANNING & DEPLOYMENT
University Libraries



    How can dmBridge be used?
1. As a standalone                         Templates

   templating system          Collection   Collection   Collection
  – One or more template
    sets connected to a              Templates    Templates
    single instance of the
    dmBridge core             Collection   Collection   Collection

  – Each set can have its
    own “look,” collection    Templates    Templates    Templates
    access privileges, etc.
                              Collection   Collection   Collection
University Libraries



 How else can dmBridge be used?
2. As a more useful &                       Any script in
   intuitive CONTENTdm API                  any language
   for any PHP project
3. As a web service                          dmBridge         dmBridge
                                             REST API         templates


                            Any local        dmBridge        CONTENTdm
                            PHP script        PHP API         templates



                                         CONTENTdm PHP API
University Libraries



           Migrating to dmBridge
• dmBridge templates can coexist with the
  default templates
• The default templates are never touched;
  nothing happens to them. Just change your
  links
• Reference URLs can be rerouted on a per-
  collection basis (use them!)
• For most, an iterative migration (like ours) will
  be more comfortable than all-at-once
University Libraries


Is dmBridge a long-term commitment?
• It’s already working and proven at UNLV, and
  is a core part of our technical strategy
  – We plan on converting all of our collections to it
    eventually
• Its data schemas are simple and open
• Code base is clean and understandable by
  anyone with MVC / classical OO experience
• You can always return to the default templates
University Libraries



        How hard is it to install?
1. Copy the dmBridge core folder into your web
   server’s document root
2. Fill in some info in the Control Panel
3. Set some config file paths
4. Create as many custom template sets as you
   like
• A few more steps, but nothing complicated
University Libraries



           What about upgrades?
• Components () can be
  swapped out more-or-less       dmBridge
  independently                  templates
• Minimal (if any) template
  changes should be
  necessary when upgrading      dmBridge
  either CONTENTdm or
  dmBridge
• Older dmBridge templates
  can be easily upgraded to
                              CONTENTdm
  use new features
University Libraries



                    Requirements
• Personnel:
  – HTML/CSS aptitude
  – Sense of adventure!
• Software:
  – If you are running CONTENTdm, you probably
    already meet the requirements
     • The PHP cURL extension is required
     • PHP 5.3 is needed for custom object viewers
     • The PDO & XSL extensions are optional
University Libraries



                        Availability
• We’re still exploring our options
University Libraries



                          Thank you!
•   Thanks UNR!                   Casinos
                                              $$$$$      Visitors
                                                          (you)
•   Enjoy Reno!




                                                      erence
                                      Taxes




                                                      Indiff-
•   Bike safe!
                                  State of
•   alex.dolski@unlv.edu          Nevada
                                                       dmBridge

•   brian.egan@unlv.edu


                                      $$$




                                                          Toil
•   http://digital.library.u                    $
                                   UNLV                     Us
    nlv.edu/dmbridge/
                                    The circle of dmBridge life

Weitere ähnliche Inhalte

Was ist angesagt?

Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)Katherine McCurdy-Lapierre, R.G.D.
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Reviewnetc2012
 
The WordPress University
The WordPress UniversityThe WordPress University
The WordPress UniversityStephanie Leary
 
Web technology P B Jadhav
Web technology  P B JadhavWeb technology  P B Jadhav
Web technology P B JadhavPRASHANT JADHAV
 
Web development using ASP.NET MVC
Web development using ASP.NET MVC Web development using ASP.NET MVC
Web development using ASP.NET MVC Adil Mughal
 
Fii Practic Frontend BeeNear - laborator 1
Fii Practic Frontend BeeNear - laborator 1Fii Practic Frontend BeeNear - laborator 1
Fii Practic Frontend BeeNear - laborator 1BeeNear
 
Carlos Amador .Net Portfolio
Carlos Amador .Net PortfolioCarlos Amador .Net Portfolio
Carlos Amador .Net PortfolioCMA_SlideShare
 
Spca2014 js link and display templates hatch
Spca2014 js link and display templates hatchSpca2014 js link and display templates hatch
Spca2014 js link and display templates hatchNCCOMMS
 
Drupal at-embl-ebi gmod
Drupal at-embl-ebi gmodDrupal at-embl-ebi gmod
Drupal at-embl-ebi gmodjosephrossetto
 
Bib frame
Bib frameBib frame
Bib frameccase2
 
Introduction_Web_Technologies
Introduction_Web_TechnologiesIntroduction_Web_Technologies
Introduction_Web_TechnologiesDeepak Raj
 
CORNELL DRUPAL CAMP 2015: One Content Type to Rule Them All
CORNELL DRUPAL CAMP 2015: One Content Type  to Rule Them AllCORNELL DRUPAL CAMP 2015: One Content Type  to Rule Them All
CORNELL DRUPAL CAMP 2015: One Content Type to Rule Them AllWill Jackson
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Richard Esplin
 

Was ist angesagt? (20)

Interactive Web Design 5 - Week 2 - Introduction
Interactive Web Design 5 - Week 2 -  IntroductionInteractive Web Design 5 - Week 2 -  Introduction
Interactive Web Design 5 - Week 2 - Introduction
 
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
Geek basics
Geek basicsGeek basics
Geek basics
 
The WordPress University
The WordPress UniversityThe WordPress University
The WordPress University
 
Web technology P B Jadhav
Web technology  P B JadhavWeb technology  P B Jadhav
Web technology P B Jadhav
 
Web development using ASP.NET MVC
Web development using ASP.NET MVC Web development using ASP.NET MVC
Web development using ASP.NET MVC
 
Fii Practic Frontend BeeNear - laborator 1
Fii Practic Frontend BeeNear - laborator 1Fii Practic Frontend BeeNear - laborator 1
Fii Practic Frontend BeeNear - laborator 1
 
Carlos Amador .Net Portfolio
Carlos Amador .Net PortfolioCarlos Amador .Net Portfolio
Carlos Amador .Net Portfolio
 
Dhtml ppt (2)
Dhtml ppt (2)Dhtml ppt (2)
Dhtml ppt (2)
 
Spca2014 js link and display templates hatch
Spca2014 js link and display templates hatchSpca2014 js link and display templates hatch
Spca2014 js link and display templates hatch
 
DHTML
DHTMLDHTML
DHTML
 
Html,CSS & UI/UX design
Html,CSS & UI/UX designHtml,CSS & UI/UX design
Html,CSS & UI/UX design
 
Drupal at-embl-ebi gmod
Drupal at-embl-ebi gmodDrupal at-embl-ebi gmod
Drupal at-embl-ebi gmod
 
Bib frame
Bib frameBib frame
Bib frame
 
Html
HtmlHtml
Html
 
Introduction_Web_Technologies
Introduction_Web_TechnologiesIntroduction_Web_Technologies
Introduction_Web_Technologies
 
Web designing syllabus
Web designing syllabusWeb designing syllabus
Web designing syllabus
 
CORNELL DRUPAL CAMP 2015: One Content Type to Rule Them All
CORNELL DRUPAL CAMP 2015: One Content Type  to Rule Them AllCORNELL DRUPAL CAMP 2015: One Content Type  to Rule Them All
CORNELL DRUPAL CAMP 2015: One Content Type to Rule Them All
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
 

Andere mochten auch

Rosa Chen Interior Shots Portfolio
Rosa Chen Interior Shots PortfolioRosa Chen Interior Shots Portfolio
Rosa Chen Interior Shots PortfolioRosachen
 
Rosa Chen Photography Portfolio
Rosa Chen  Photography PortfolioRosa Chen  Photography Portfolio
Rosa Chen Photography PortfolioRosachen
 
Food Portfolio
Food PortfolioFood Portfolio
Food PortfolioRosachen
 
Dunbar Meet And Greet For Website
Dunbar Meet And Greet For WebsiteDunbar Meet And Greet For Website
Dunbar Meet And Greet For Websitedunbarfamily
 
What Is Eric
What Is EricWhat Is Eric
What Is Ericcsteeele
 
A Better Python for the JVM
A Better Python for the JVMA Better Python for the JVM
A Better Python for the JVMTobias Lindaaker
 

Andere mochten auch (6)

Rosa Chen Interior Shots Portfolio
Rosa Chen Interior Shots PortfolioRosa Chen Interior Shots Portfolio
Rosa Chen Interior Shots Portfolio
 
Rosa Chen Photography Portfolio
Rosa Chen  Photography PortfolioRosa Chen  Photography Portfolio
Rosa Chen Photography Portfolio
 
Food Portfolio
Food PortfolioFood Portfolio
Food Portfolio
 
Dunbar Meet And Greet For Website
Dunbar Meet And Greet For WebsiteDunbar Meet And Greet For Website
Dunbar Meet And Greet For Website
 
What Is Eric
What Is EricWhat Is Eric
What Is Eric
 
A Better Python for the JVM
A Better Python for the JVMA Better Python for the JVM
A Better Python for the JVM
 

Ähnlich wie dmBridge & dmMonocle

Presentation 1 Web--dev
Presentation 1 Web--devPresentation 1 Web--dev
Presentation 1 Web--devaltsav
 
Drupal: an Overview
Drupal: an OverviewDrupal: an Overview
Drupal: an OverviewMatt Weaver
 
Advanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojoAdvanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojoFu Cheng
 
Web component driven development
Web component driven developmentWeb component driven development
Web component driven developmentGil Fink
 
Incremental DOM and Recent Trend of Frontend Development
Incremental DOM and Recent Trend of Frontend DevelopmentIncremental DOM and Recent Trend of Frontend Development
Incremental DOM and Recent Trend of Frontend DevelopmentAkihiro Ikezoe
 
AngularJS
AngularJSAngularJS
AngularJSYogesh L
 
IBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationIBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationVan Staub, MBA
 
Building bridges - Plone Conference 2015 Bucharest
Building bridges   - Plone Conference 2015 BucharestBuilding bridges   - Plone Conference 2015 Bucharest
Building bridges - Plone Conference 2015 BucharestAndreas Jung
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
Drupal Skils Lab 302Labs
Drupal Skils Lab 302Labs Drupal Skils Lab 302Labs
Drupal Skils Lab 302Labs Ahmad Mohamad Zain
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyMarcos Labad
 
Drupal for Non-Developers
Drupal for Non-DevelopersDrupal for Non-Developers
Drupal for Non-DevelopersJeff Pompliano
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFxThomas Daly
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/SESUG
 
Designing True Cross-Platform Apps
Designing True Cross-Platform AppsDesigning True Cross-Platform Apps
Designing True Cross-Platform AppsFITC
 
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Lucidworks
 

Ähnlich wie dmBridge & dmMonocle (20)

Presentation 1 Web--dev
Presentation 1 Web--devPresentation 1 Web--dev
Presentation 1 Web--dev
 
Drupal: an Overview
Drupal: an OverviewDrupal: an Overview
Drupal: an Overview
 
Advanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojoAdvanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojo
 
BackboneJS
BackboneJSBackboneJS
BackboneJS
 
Web component driven development
Web component driven developmentWeb component driven development
Web component driven development
 
Incremental DOM and Recent Trend of Frontend Development
Incremental DOM and Recent Trend of Frontend DevelopmentIncremental DOM and Recent Trend of Frontend Development
Incremental DOM and Recent Trend of Frontend Development
 
AngularJS
AngularJSAngularJS
AngularJS
 
IBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationIBM Digital Experience Theme Customization
IBM Digital Experience Theme Customization
 
Building bridges - Plone Conference 2015 Bucharest
Building bridges   - Plone Conference 2015 BucharestBuilding bridges   - Plone Conference 2015 Bucharest
Building bridges - Plone Conference 2015 Bucharest
 
toolkit
toolkittoolkit
toolkit
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Drupal Skils Lab 302Labs
Drupal Skils Lab 302Labs Drupal Skils Lab 302Labs
Drupal Skils Lab 302Labs
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing Company
 
Drupal for Non-Developers
Drupal for Non-DevelopersDrupal for Non-Developers
Drupal for Non-Developers
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
Javascript best practices
Javascript best practicesJavascript best practices
Javascript best practices
 
Miami2015
Miami2015Miami2015
Miami2015
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/S
 
Designing True Cross-Platform Apps
Designing True Cross-Platform AppsDesigning True Cross-Platform Apps
Designing True Cross-Platform Apps
 
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
 

KĂźrzlich hochgeladen

Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...Pooja Nehwal
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 

KĂźrzlich hochgeladen (20)

Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 

dmBridge & dmMonocle

  • 1. University Libraries dmBridge: A public access framework and alternative templating system for CONTENTdm Alex.Dolski@unlv.edu Web & Digitization Application Developer Brian.Egan@unlv.edu Web/Multimedia Designer University of Nevada, Las Vegas Libraries
  • 2. University Libraries Topics covered • Introduction • Feature-by-feature walkthrough • Template crash course • Planning & deployment logistics
  • 4. University Libraries What is dmBridge? • An alternative templating system for CONTENTdm with additional features • Enables enhancement and modernization of public digital collection web interfaces • Provides a lot of extra features without any custom programming
  • 5. University Libraries What is dmBridge not? • A content management system • A general web application framework • A CONTENTdm replacement • A CONTENTdm customization • A set of drop-in replacement templates – You have to write your own HTML/CSS; dmBridge only streamlines the process
  • 6. University Libraries Who can use dmBridge? • CONTENTdm users with web design experience • Web designers with zero programming experience • Programmers from novice to expert • Both of the above, collaboratively! • Beginners can get started faster and more easily • Advanced users can accomplish more in less time • At UNLV, we have been using it since last fall – All of our work with the default templates has been suspended
  • 7. University Libraries Why develop dmBridge? • The default templates were no longer acceptable to us 1. Anti-modular; not conducive to customizations 2. Code base beyond repair 3. Force the programmer to work within an ad hoc “code soup” paradigm 4. Heavily dependent on unnecessary JavaScript and invalid, non-semantic HTML 5. Ignores recent trends and best practices in web application architecture • Bottom line: pervasive systemic defects
  • 8. University Libraries Our dmBridge-enhanced collections • “Welcome Home, Howard!” – dmBridge pilot project, launched November 2008 – http://digital.library.unlv.edu/hughes/ • Southern Nevada: The Boomtown Years – Launched May 2009 – http://digital.library.unlv.edu/boomtown/ • More to come…
  • 10. University Libraries Some features unique to dmBridge • Scheduled “object of the • Search suggestions based on day/week/month” CONTENTdm field indices • “Random object” from one or • Server-side page caching all collections • Object ratings • Output format independence • Metadata output in multiple (HTML, XML/XSLT, JSON…) formats • RSS/Atom search subscriptions • Integrated object email • Commenting with moderation feedback and notification • Configurable tag clouds based • Extensions support on DC metadata • Relatively pretty URLs • Easy web-based control panel • Object-oriented PHP API for configuring most of this • XML/JSON REST API stuff • More to come…
  • 11. University Libraries The Control Panel • Graphical interface for configuration and maintenance tasks • Uses the same authentication system as the CONTENTdm Administration Module • Functionality is mutually exclusive with the admin module (no overlapping features)
  • 12. University Libraries Object commenting • Optional comment moderation • Optional e-mail notification of new comments • For compound object pages, comments are associated with the parent object and appear on every page • Can be enabled or disabled independently on a per-template-set basis
  • 13. University Libraries Object feedback • Like a comment, but gets sent as an email instead of being posted to the page • Email contains a reference to the object • Cleaner & more professional than a mailto: link • Can be enabled on a per-template-set basis
  • 14. University Libraries Object ratings • View highest-rated objects in the Control Panel • Can appear on any scale • Can be enabled on a per-template-set basis
  • 15. University Libraries The highlighted & random object • Set up in the Control Panel • Highlighted object can be returned as an XML feed: http://digital.library.unlv.edu/hughes/dm.php/object/highlighted • Both can be returned in code: $obj = dmObject::getHighlighted(); $obj = dmObject::getRandom();
  • 16. University Libraries Tag clouds • Based on collection DC metadata fields • Can define tag cutoff, randomization, and tag CSS classes based on term frequency • Code to draw this cloud: $c = new dmCollection(‘/snv’); echo Draw::tagCloud( $c, array(‘subjec’) );
  • 17. University Libraries Search views • Advanced search – You choose which search forms to include: • Field, date, and/or proximity search – Collection checkboxes are generated dynamically based on template & CONTENTdm access privileges • Compound object search – Shows the full text of all pages for which there are matches, with matching terms highlighted
  • 18. University Libraries Search queries • Simple – http://myserver/mytemplates/dm.php/?q=cheese • Advanced – Supports the full capabilities of the CONTENTdm search engine – /?modes[]=all&fields[]=title&strings[]=cheese&aliases[]=/uw
  • 19. University Libraries Search suggestions • Use indexed field terms from CONTENTdm • Can be hooked up to text inputs via JavaScript/AJAX • See our dmBridge collections for examples
  • 20. University Libraries RSS, Atom, & other output formats Example: http://digital.library.unlv.edu/hughes/dm.php/?format=xml Object Results Obj.-Results Favorites Search View View View View View HTML ✓ ✓ ✓ ✓ ✓ Atom RSS RDF/XML ✓ JSON ✓ ✓ ✓ XML ✓ ✓ ✓ XML + XSLT ✓ ✓ ✓ ✓ ✓
  • 21. University Libraries The data store • Used to store dmBridge-specific data • Modular and abstracted • Currently, modules exist for: – On-disk XML files – PDO (MySQL, PostgreSQL, etc.) • All CONTENTdm data continues to live in CONTENTdm, of course
  • 22. University Libraries Extensions • “Extensions” let you: – Override any of the “Draw” (helper) methods – Write new custom methods that do whatever • Extensions: – Isolate & modularize custom code – Should be easy for any programmer to grasp – Can be shared with other dmBridge users – Can be made available on a global or per- template-set basis
  • 23. University Libraries Image viewer challenges • “As long as we’re rewriting the entire templating system…” • All alternative viewers have at least one of the following problems: – Require manual pyramidal tile pregeneration – Google logo in the corner – Spotty support for JPEG2000 – Server requirements (e.g. Djatoka)
  • 24. University Libraries Image viewer • Written by Brian in JavaScript/jQuery • Separate from dmBridge; works with or without it • Image tiles generated on the fly by getimage.exe – No pregeneration or extra software needed – Supports JPEG2000 • Easy dragging and zooming • Customizable control appearance • Demo: – http://digital.library.unlv.edu/hughes/dm.php/hughes/9
  • 25. University Libraries Other media viewers • CONTENTdm supports any file type; dmBridge can as well* • (*showfile.exe sends everything as application/octet- stream; nothing we can do about that) • Viewers are modular; can plug in your own • Custom viewers (like all other extensions) are not clobbered by dmBridge upgrades • Assign any viewer for a particular file type to any collection
  • 26. University Libraries What is dmBridge missing? • dmBridge offers most the functionality of the dmBridge default templates • Notable absences: – Comparative object viewer CONTENTdm – Faceted browsing default templating – Slideshow viewer system – Some other minor stuff – These are possible; we just haven’t got around to Feature set overlap them yet
  • 28. University Libraries Working with the templates • The template creation process is simpler, but different • dmBridge leaves most aspects of template design up to you • You decide what elements to include on the page and how to style them • Fully-functional sample templates are provided
  • 29. University Libraries Working with the templates (cont’d) • In dmBridge, you have six different views • Single object, compound object, results, object- results, favorites, search (see next slide) • Mark up and style each one using standard HTML/CSS • Call up dynamic functionality with one-line calls to dmBridge helper (“Draw”) methods • No knowledge of dmBridge inner workings is necessary
  • 30. University Libraries Template-view correlation Multiple No target in Uncertain Concrete concrete particular target(s) target targets Browse Search search/index.html.php object/index.html.php Result Set No Results (redirects to search) object/single.html.php Object Favorites favorite/index.html.php & compound.html.php
  • 31. University Libraries Using the helper methods This code in the object view Becomes… template… <div id=“metadata”> <div id=“metadata”> <?= ObjectDraw::metadata() ?> <dl> </div> <dt>Title</dt> <dd>Some great object</dd> <dt>Description</dt> <dd>A great object from one of our ObjectDraw::metadata() is great collections.</dd> just one of over 50 built-in helpers available for doing all <!– etc. --> kinds of stuff </dl> </div>
  • 32. University Libraries A small sample of dmBridge API “helper” methods • Any view • Object view – downloadImageLink() – addFavoriteButton() – loginLink() – childLinksAsList() – tagCloud() – commentsSection() • Results view – feedbackSection() – pageLinks() – highlightedFullText() – results() – metadata() – searchTerms() – previousNextLinks() – thumbsToggleLink() – ratingsSection() – viewLinks() – viewer()
  • 34. University Libraries How can dmBridge be used? 1. As a standalone Templates templating system Collection Collection Collection – One or more template sets connected to a Templates Templates single instance of the dmBridge core Collection Collection Collection – Each set can have its own “look,” collection Templates Templates Templates access privileges, etc. Collection Collection Collection
  • 35. University Libraries How else can dmBridge be used? 2. As a more useful & Any script in intuitive CONTENTdm API any language for any PHP project 3. As a web service dmBridge dmBridge REST API templates Any local dmBridge CONTENTdm PHP script PHP API templates CONTENTdm PHP API
  • 36. University Libraries Migrating to dmBridge • dmBridge templates can coexist with the default templates • The default templates are never touched; nothing happens to them. Just change your links • Reference URLs can be rerouted on a per- collection basis (use them!) • For most, an iterative migration (like ours) will be more comfortable than all-at-once
  • 37. University Libraries Is dmBridge a long-term commitment? • It’s already working and proven at UNLV, and is a core part of our technical strategy – We plan on converting all of our collections to it eventually • Its data schemas are simple and open • Code base is clean and understandable by anyone with MVC / classical OO experience • You can always return to the default templates
  • 38. University Libraries How hard is it to install? 1. Copy the dmBridge core folder into your web server’s document root 2. Fill in some info in the Control Panel 3. Set some config file paths 4. Create as many custom template sets as you like • A few more steps, but nothing complicated
  • 39. University Libraries What about upgrades? • Components () can be swapped out more-or-less dmBridge independently templates • Minimal (if any) template changes should be necessary when upgrading dmBridge either CONTENTdm or dmBridge • Older dmBridge templates can be easily upgraded to CONTENTdm use new features
  • 40. University Libraries Requirements • Personnel: – HTML/CSS aptitude – Sense of adventure! • Software: – If you are running CONTENTdm, you probably already meet the requirements • The PHP cURL extension is required • PHP 5.3 is needed for custom object viewers • The PDO & XSL extensions are optional
  • 41. University Libraries Availability • We’re still exploring our options
  • 42. University Libraries Thank you! • Thanks UNR! Casinos $$$$$ Visitors (you) • Enjoy Reno! erence Taxes Indiff- • Bike safe! State of • alex.dolski@unlv.edu Nevada dmBridge • brian.egan@unlv.edu $$$ Toil • http://digital.library.u $ UNLV Us nlv.edu/dmbridge/ The circle of dmBridge life