SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

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
 

Destaque (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
 

Semelhante a 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
 
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
 
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
 

Semelhante a 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...
 

Último

ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinojohnmickonozaleda
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxPoojaSen20
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 

Último (20)

ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipino
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 

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