SlideShare a Scribd company logo
Creating custom themes
in AtoM
An introduction to relevant theming files, registering a plugin, home page
customizations, and also give devs a chance to create basic themes.
Basic Edits
Some things are easy to change without touching the theme:
1. Site title & site description
a. Updated in Admin - Settings - Site info
2. Logo
a. Replace atom/images/logo.png
3. Application Icon
a. Replace atom/favicon.ico
4. Website meta tags
a. atom/apps/qubit/config/view.yml
5. Static Pages
a. Admin - Static pages
6. User Interface Labels
a. Admin - Settings - User Interface Labels
7. Default standards templates
a. Admin - Settings - Default templates
8. Menus
a. Admin - Menus
Creating a new
theme
https://github.com/sbreker/arDemoThemePlugin
AtoM comes with two built in themes
● Dominion
● Archives Canada
● Dominion is default
Use Dominion as a base or copy Dominion
● Copy the whole thing
● Reference the Dominion files from our theme
Uses Less - ‘make’ to generate css file
Today we will create and customize a new theme
https://github.com/sbreker/arDemoThemePlugin
Resources:
● Admin manual theming section
● Corcovado theme in github
○ https://github.com/artefactual-labs/atom-theme-corcovado
Create the
basic structure
+ ‘git init’
https://github.com/sbreker/arDemoThemePlugin
Option 1: Create your own github repo:
$ cd ~/atom/plugins
$ mkdir arDemoThemePlugin
$ git init
$ echo "# Demo theme" > README.md
$ git add README.md
$ git commit -m "Initial commit"
$ git remote add origin
git@github.com:sbreker/arDemoThemePlugin.git
$ git push -u origin master
Option 2: Clone sbreker/arDemoThemePlugin.git:
$ cd ~/atom/plugins
$ git clone https://github.com/sbreker/arDemoThemePlugin.git
We want your AtoM git repo to ignore this theme:
$ cd ~/atom/plugins
$ touch .gitignore
Edit .gitignore and add the lines:
.gitignore
arDemoThemePlugin/
$ cd ~/atom/plugins/arDemoThemePlugin
$ mkdir config; cd config
Create and edit a new file:
➔ arDemoThemePluginConfiguration.class.php
Copy contents from github: sbreker/arDemoThemePlugin
Save the file.
Once file is in place:
● Login to your AtoM instance as user ‘demo@example.com’
● Go to Admin -> themes
● You will see your theme!
● Don’t select it yet!!! No CSS present yet!
Quickly review the contents...
Create config
class: Register
theme
https://github.com/sbreker/arDemoThemePlugin
Create main.less
& Makefile
https://github.com/sbreker/arDemoThemePlugin
Create Makefile:
$ cd ~/atom/plugins/arDemoThemePlugin
Create and edit a new file:
➔ Makefile
Copy contents from github: sbreker/arDemoThemePlugin
Save the file.
Create main.less:
$ mkdir css
Create and edit a new file:
➔ main.less
Copy contents from github: sbreker/arDemoThemePlugin & save
$ cd ~/atom/plugins/arDemoThemePlugin
$ make
1. Login to your AtoM instance as demo
2. Go to Admin -> themes
3. Activate your theme & refresh
4. Any changes???
Edit main.less
https://github.com/sbreker/arDemoThemePlugin
Uncomment all the “Local Tweaks” (ignore the footer section below that!)
$ make
Go back to AtoM and refresh browser
Might have to clear cache!
Play around with it:
● Look in Variables.less in arDominionPlugin
● $ mkdir arDemoThemePlugin/css/less
● $ cp variables.less from Dominion to
DemoTheme
● Update path to variables.less in DemoTheme class file
● Move definition of ‘green’ to variables.less
● Add some new colour definitions
● Update some colours in main.less
● $ make and view your handiwork!
TIPS:
1. Use Chrome’s Developer Tools to view the css properties on various
items on the pages and override.
2. Don’t forget to ‘make’ after each change
Override a
module template
Remove ‘browse
by’ block
https://github.com/sbreker/arDemoThemePlugin
Let’s drop ‘Browse by’ sidebar item….
1. Find static page homeSuccess.php
a. In apps/qubit/modules/staticpage/templates
2. Look at dir structure
3. Build dir structure under DemoTheme
a. arDemoThemePlugin/modules/staticpage/templates
4. Copy homeSuccess.php to new DemoTheme templates dir
5. Investigate homeSuccess.php
6. Disable ‘Browse by’ menu
7. Did it work?
Override a
module template
Drop Repository
Logo from Descr
Sidebar
https://github.com/sbreker/arDemoThemePlugin
Let’s drop the logo from the Arch Descr sidebar
1. Find infoObj template component _contextmenu.php
a. In apps/qubit/modules/informationobject/templates
2. Look at dir structure
3. Build dir structure under DemoTheme modules
a. arDemoThemePlugin/modules/informationobject/templates
4. Copy _contextmenu.php to new DemoTheme templates dir
5. Investigate _contextmenu.php
6. Disable logo component
7. Success?
Let’s add a footer to the theme
● A good place for social media icons, contact info, external links
1. We are going to override the standard empty footer:
a. Default located here: apps/qubit/templates/_footer.php
2. Create folder ‘templates’ under plugins/arDemoThemePlugin
3. Create the file: _footer.php
a. Copy contents from gihub:
sbreker/arDemoThemePlugin/templates/_footerrename.php
4. Refresh AtoM (may need to clear browser cache)
5. How does it look?
6. Add some styling
a. Search for commented ‘footer’ block in css/main.less
7. ‘make’
8. What has changed?
Investigate contents of _footer.php
Where is image coming from?
Download it from github and add to theme:
● sbreker/arDemoThemePlugin/images/atom-logo.png
Add a footer
https://github.com/sbreker/arDemoThemePlugin
Reverse the 2
column layout
https://github.com/sbreker/arDemoThemePlugin
Another common request:
● Display the sidebar on the right-hand side of the content
1. Let’s override the standard 2 column layout template found here:
a. In apps/qubit/templates/layout_2col.php
2. Copy layout_2col.php to new DemoTheme templates dir
a. Place file in templates folder:
b. arDemoThemePlugin/templates/layout_2col.php
3. Investigate new file layout_2col.php
4. Search for the text “div class=”row”
5. Below this are two div blocks
a. “span3” and “span9”
b. Move the 5 lines making up ‘span3’ below the span9 block
6. Save your changes & refresh AtoM
7. Success?
Investigate contents of layout_2col.php
Note other layout types.
Does the swap affect Arch Descr detail view?
Adding logo.png
& favicon.ico
https://github.com/sbreker/arDemoThemePlugin
You will want to add your images to the theme
Replacing logo etc in atom/images will work but will impact ALL themes
1. $ cd ~/atom/plugins/arDemoThemePlugin
2. $ mkdir images; cd images
3. Add files here!
a. Logo.png
b. Favicon.ico
4. Any images missing? Check Dominion’s images folder
Other ideas:
● A new background file
● Image for top right of header
Override a
module template
Modify user
menu
https://github.com/sbreker/arDemoThemePlugin
Let’s customize the User Menu
1. Find menu module template component _userMenu.php
2. Look at dir structure
3. Build dir structure under DemoTheme
4. arDemoThemePlugin/modules/menu/templates
5. Copy _usermenu.php to new DemoTheme templates dir
6. Investigate _usermenu.php
7. Add a new menu item for Logged In users!
Bonus Points….
Let’s hide User Menu completely for unauthenticated users!!
● Could implement by deleting code block in _userMenu.php but
DON’T :)
● See apps/qubit/templates/_header.php
● Customize _header.phpusing is_authenticated()from
_usermenu.php
What’s next?
https://github.com/sbreker/arDemoThemePlugin
Ok - sky is the limit! Things to try:
● Change the font
● Add new images & refer from templates
● Make the 12col layout float (e.g. Winnipeg)
● Modify header.less - copy to css/less
● Modify header: different height, contents, layout, etc
● Override apps/qubit/template files
● Create a brand new module within the theme
● Photo Carousel!
Q&A
www.accesstomemory.org
www.artefactual.com

More Related Content

What's hot

AtoM feature development
AtoM feature developmentAtoM feature development
AtoM feature development
Artefactual Systems - AtoM
 
CSV import in AtoM
CSV import in AtoMCSV import in AtoM
CSV import in AtoM
Artefactual Systems - AtoM
 
Searching in AtoM
Searching in AtoMSearching in AtoM
Searching in AtoM
Artefactual Systems - AtoM
 
CSS Best practice
CSS Best practiceCSS Best practice
CSS Best practice
Russ Weakley
 
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
Ander Martinez
 
AtoM Data Migrations
AtoM Data MigrationsAtoM Data Migrations
AtoM Data Migrations
Artefactual Systems - AtoM
 
UDA-Componentes RUP. Pestañas
UDA-Componentes RUP. PestañasUDA-Componentes RUP. Pestañas
UDA-Componentes RUP. Pestañas
Ander Martinez
 
Linux reversing study_basic_1
Linux reversing study_basic_1Linux reversing study_basic_1
Linux reversing study_basic_1
Jinkyoung Kim
 
Customizing the look and-feel of DSpace
Customizing the look and-feel of DSpaceCustomizing the look and-feel of DSpace
Customizing the look and-feel of DSpace
Bharat Chaudhari
 
Tips On Trick Odoo Add-On.pptx
Tips On Trick Odoo Add-On.pptxTips On Trick Odoo Add-On.pptx
Tips On Trick Odoo Add-On.pptx
Agusto Sipahutar
 
Presentation on html, css
Presentation on html, cssPresentation on html, css
Presentation on html, css
Aamir Sohail
 
Odoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new apiOdoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new api
Odoo
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overview
Jacob Nelson
 
UDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingUDA-Componentes RUP. Reporting
UDA-Componentes RUP. Reporting
Ander Martinez
 
Redis vs NCache - A detailed feture level comparison
Redis vs NCache - A detailed feture level comparisonRedis vs NCache - A detailed feture level comparison
Redis vs NCache - A detailed feture level comparison
Alachisoft
 
FullStack Reativo com Spring WebFlux + Angular
FullStack Reativo com Spring WebFlux + AngularFullStack Reativo com Spring WebFlux + Angular
FullStack Reativo com Spring WebFlux + Angular
Loiane Groner
 
Owl: The New Odoo UI Framework
Owl: The New Odoo UI FrameworkOwl: The New Odoo UI Framework
Owl: The New Odoo UI Framework
Odoo
 
AtoM, Authenticity, and the Chain of Custody
AtoM, Authenticity, and the Chain of CustodyAtoM, Authenticity, and the Chain of Custody
AtoM, Authenticity, and the Chain of Custody
Artefactual Systems - AtoM
 
Django
DjangoDjango
Flask – Python
Flask – PythonFlask – Python
Flask – Python
Max Claus Nunes
 

What's hot (20)

AtoM feature development
AtoM feature developmentAtoM feature development
AtoM feature development
 
CSV import in AtoM
CSV import in AtoMCSV import in AtoM
CSV import in AtoM
 
Searching in AtoM
Searching in AtoMSearching in AtoM
Searching in AtoM
 
CSS Best practice
CSS Best practiceCSS Best practice
CSS Best practice
 
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)UDA-Componentes RUP. Mantenimiento  (v2.1.1 deprecado)
UDA-Componentes RUP. Mantenimiento (v2.1.1 deprecado)
 
AtoM Data Migrations
AtoM Data MigrationsAtoM Data Migrations
AtoM Data Migrations
 
UDA-Componentes RUP. Pestañas
UDA-Componentes RUP. PestañasUDA-Componentes RUP. Pestañas
UDA-Componentes RUP. Pestañas
 
Linux reversing study_basic_1
Linux reversing study_basic_1Linux reversing study_basic_1
Linux reversing study_basic_1
 
Customizing the look and-feel of DSpace
Customizing the look and-feel of DSpaceCustomizing the look and-feel of DSpace
Customizing the look and-feel of DSpace
 
Tips On Trick Odoo Add-On.pptx
Tips On Trick Odoo Add-On.pptxTips On Trick Odoo Add-On.pptx
Tips On Trick Odoo Add-On.pptx
 
Presentation on html, css
Presentation on html, cssPresentation on html, css
Presentation on html, css
 
Odoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new apiOdoo - From v7 to v8: the new api
Odoo - From v7 to v8: the new api
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overview
 
UDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingUDA-Componentes RUP. Reporting
UDA-Componentes RUP. Reporting
 
Redis vs NCache - A detailed feture level comparison
Redis vs NCache - A detailed feture level comparisonRedis vs NCache - A detailed feture level comparison
Redis vs NCache - A detailed feture level comparison
 
FullStack Reativo com Spring WebFlux + Angular
FullStack Reativo com Spring WebFlux + AngularFullStack Reativo com Spring WebFlux + Angular
FullStack Reativo com Spring WebFlux + Angular
 
Owl: The New Odoo UI Framework
Owl: The New Odoo UI FrameworkOwl: The New Odoo UI Framework
Owl: The New Odoo UI Framework
 
AtoM, Authenticity, and the Chain of Custody
AtoM, Authenticity, and the Chain of CustodyAtoM, Authenticity, and the Chain of Custody
AtoM, Authenticity, and the Chain of Custody
 
Django
DjangoDjango
Django
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
 

Similar to Creating custom themes in AtoM

Joomla Beginner Template Presentation
Joomla Beginner Template PresentationJoomla Beginner Template Presentation
Joomla Beginner Template Presentation
alledia
 
Joomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesJoomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic Templates
Andy Wallace
 
Joomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic TemplatesJoomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic Templates
Chris Davenport
 
7 Theming in Drupal
7 Theming in Drupal7 Theming in Drupal
7 Theming in DrupalWingston
 
Adopt or hack - how to hack a theme in a Drupal way
Adopt or hack - how to hack a theme in a Drupal wayAdopt or hack - how to hack a theme in a Drupal way
Adopt or hack - how to hack a theme in a Drupal way
Marek Sotak
 
SynapseIndia drupal presentation on drupal best practices
SynapseIndia drupal  presentation on drupal best practicesSynapseIndia drupal  presentation on drupal best practices
SynapseIndia drupal presentation on drupal best practices
Synapseindiappsdevelopment
 
Drupal
DrupalDrupal
Drupal
tnhomestead
 
Drupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating ModulesDrupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating Modules
Vibrant Technologies & Computers
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Teamstudio
 
Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Developing Branding Solutions for 2013
Developing Branding Solutions for 2013
Thomas Daly
 
Designing for magento
Designing for magentoDesigning for magento
Designing for magentohainutemicute
 
Fewd week1 slides
Fewd week1 slidesFewd week1 slides
Fewd week1 slides
William Myers
 
Intro to OctoberCMS
Intro to OctoberCMSIntro to OctoberCMS
Intro to OctoberCMS
Kenton Spence
 
Child Themes (WordCamp Dublin 2017) with notes
Child Themes (WordCamp Dublin 2017) with notesChild Themes (WordCamp Dublin 2017) with notes
Child Themes (WordCamp Dublin 2017) with notes
Damien Carbery
 
Drupal 7 install with modules and themes
Drupal 7 install with modules and themesDrupal 7 install with modules and themes
Drupal 7 install with modules and themesGeshan Manandhar
 
Magento - Design Integration Guideline - Bysoft China
Magento - Design Integration Guideline - Bysoft ChinaMagento - Design Integration Guideline - Bysoft China
Magento - Design Integration Guideline - Bysoft China
Bysoft Technologies
 
Joomla Templates101
Joomla Templates101Joomla Templates101
Joomla Templates101
Barb Ackemann
 
Magento2 Basics for Frontend Development
Magento2 Basics for Frontend DevelopmentMagento2 Basics for Frontend Development
Magento2 Basics for Frontend Development
Kapil Dev Singh
 
Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010Emma Jane Hogbin Westby
 

Similar to Creating custom themes in AtoM (20)

Joomla Beginner Template Presentation
Joomla Beginner Template PresentationJoomla Beginner Template Presentation
Joomla Beginner Template Presentation
 
Joomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesJoomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic Templates
 
Joomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic TemplatesJoomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic Templates
 
7 Theming in Drupal
7 Theming in Drupal7 Theming in Drupal
7 Theming in Drupal
 
Adopt or hack - how to hack a theme in a Drupal way
Adopt or hack - how to hack a theme in a Drupal wayAdopt or hack - how to hack a theme in a Drupal way
Adopt or hack - how to hack a theme in a Drupal way
 
SynapseIndia drupal presentation on drupal best practices
SynapseIndia drupal  presentation on drupal best practicesSynapseIndia drupal  presentation on drupal best practices
SynapseIndia drupal presentation on drupal best practices
 
Drupal
DrupalDrupal
Drupal
 
Drupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating ModulesDrupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating Modules
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 
Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Developing Branding Solutions for 2013
Developing Branding Solutions for 2013
 
Designing for magento
Designing for magentoDesigning for magento
Designing for magento
 
Fewd week1 slides
Fewd week1 slidesFewd week1 slides
Fewd week1 slides
 
Intro to OctoberCMS
Intro to OctoberCMSIntro to OctoberCMS
Intro to OctoberCMS
 
Child Themes (WordCamp Dublin 2017) with notes
Child Themes (WordCamp Dublin 2017) with notesChild Themes (WordCamp Dublin 2017) with notes
Child Themes (WordCamp Dublin 2017) with notes
 
Drupal 7 install with modules and themes
Drupal 7 install with modules and themesDrupal 7 install with modules and themes
Drupal 7 install with modules and themes
 
Magento - Design Integration Guideline - Bysoft China
Magento - Design Integration Guideline - Bysoft ChinaMagento - Design Integration Guideline - Bysoft China
Magento - Design Integration Guideline - Bysoft China
 
Design to Theme @ CMSExpo
Design to Theme @ CMSExpoDesign to Theme @ CMSExpo
Design to Theme @ CMSExpo
 
Joomla Templates101
Joomla Templates101Joomla Templates101
Joomla Templates101
 
Magento2 Basics for Frontend Development
Magento2 Basics for Frontend DevelopmentMagento2 Basics for Frontend Development
Magento2 Basics for Frontend Development
 
Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010
 

More from Artefactual Systems - AtoM

AtoM Community Update: 2019-05
AtoM Community Update: 2019-05AtoM Community Update: 2019-05
AtoM Community Update: 2019-05
Artefactual Systems - AtoM
 
Creating your own AtoM demo data set for re-use with Vagrant
Creating your own AtoM demo data set for re-use with VagrantCreating your own AtoM demo data set for re-use with Vagrant
Creating your own AtoM demo data set for re-use with Vagrant
Artefactual Systems - AtoM
 
Looking Ahead: AtoM's governance, development, and future
Looking Ahead: AtoM's governance, development, and futureLooking Ahead: AtoM's governance, development, and future
Looking Ahead: AtoM's governance, development, and future
Artefactual Systems - AtoM
 
Contributing to the AtoM documentation
Contributing to the AtoM documentationContributing to the AtoM documentation
Contributing to the AtoM documentation
Artefactual Systems - AtoM
 
Installing AtoM with Ansible
Installing AtoM with AnsibleInstalling AtoM with Ansible
Installing AtoM with Ansible
Artefactual Systems - AtoM
 
Installing and Upgrading AtoM
Installing and Upgrading AtoMInstalling and Upgrading AtoM
Installing and Upgrading AtoM
Artefactual Systems - AtoM
 
Command-Line 101
Command-Line 101Command-Line 101
Command-Line 101
Artefactual Systems - AtoM
 
An Introduction to AtoM, Archivematica, and Artefactual Systems
An Introduction to AtoM, Archivematica, and Artefactual SystemsAn Introduction to AtoM, Archivematica, and Artefactual Systems
An Introduction to AtoM, Archivematica, and Artefactual Systems
Artefactual Systems - AtoM
 
National Archives of Norway - AtoM and Archivematica intro workshop
National Archives of Norway - AtoM and Archivematica intro workshopNational Archives of Norway - AtoM and Archivematica intro workshop
National Archives of Norway - AtoM and Archivematica intro workshop
Artefactual Systems - AtoM
 
Artefactual and Open Source Development
Artefactual and Open Source DevelopmentArtefactual and Open Source Development
Artefactual and Open Source Development
Artefactual Systems - AtoM
 
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
Artefactual Systems - AtoM
 
AtoM Community Update 2016
AtoM Community Update 2016AtoM Community Update 2016
AtoM Community Update 2016
Artefactual Systems - AtoM
 
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
Artefactual Systems - AtoM
 
Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015
Artefactual Systems - AtoM
 
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
Artefactual Systems - AtoM
 
Introducing the Digital Repository for Museum Collections (DRMC)
Introducing the Digital Repository for Museum Collections (DRMC)Introducing the Digital Repository for Museum Collections (DRMC)
Introducing the Digital Repository for Museum Collections (DRMC)
Artefactual Systems - AtoM
 

More from Artefactual Systems - AtoM (16)

AtoM Community Update: 2019-05
AtoM Community Update: 2019-05AtoM Community Update: 2019-05
AtoM Community Update: 2019-05
 
Creating your own AtoM demo data set for re-use with Vagrant
Creating your own AtoM demo data set for re-use with VagrantCreating your own AtoM demo data set for re-use with Vagrant
Creating your own AtoM demo data set for re-use with Vagrant
 
Looking Ahead: AtoM's governance, development, and future
Looking Ahead: AtoM's governance, development, and futureLooking Ahead: AtoM's governance, development, and future
Looking Ahead: AtoM's governance, development, and future
 
Contributing to the AtoM documentation
Contributing to the AtoM documentationContributing to the AtoM documentation
Contributing to the AtoM documentation
 
Installing AtoM with Ansible
Installing AtoM with AnsibleInstalling AtoM with Ansible
Installing AtoM with Ansible
 
Installing and Upgrading AtoM
Installing and Upgrading AtoMInstalling and Upgrading AtoM
Installing and Upgrading AtoM
 
Command-Line 101
Command-Line 101Command-Line 101
Command-Line 101
 
An Introduction to AtoM, Archivematica, and Artefactual Systems
An Introduction to AtoM, Archivematica, and Artefactual SystemsAn Introduction to AtoM, Archivematica, and Artefactual Systems
An Introduction to AtoM, Archivematica, and Artefactual Systems
 
National Archives of Norway - AtoM and Archivematica intro workshop
National Archives of Norway - AtoM and Archivematica intro workshopNational Archives of Norway - AtoM and Archivematica intro workshop
National Archives of Norway - AtoM and Archivematica intro workshop
 
Artefactual and Open Source Development
Artefactual and Open Source DevelopmentArtefactual and Open Source Development
Artefactual and Open Source Development
 
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
Technologie Proche: Imagining the Archival Systems of Tomorrow With the Tools...
 
AtoM Community Update 2016
AtoM Community Update 2016AtoM Community Update 2016
AtoM Community Update 2016
 
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
Project Documentation with Sphinx (or, How I Learned to Stop Worrying and Lov...
 
Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015
 
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
Introducing Binder: A Web-based, Open Source Digital Preservation Management ...
 
Introducing the Digital Repository for Museum Collections (DRMC)
Introducing the Digital Repository for Museum Collections (DRMC)Introducing the Digital Repository for Museum Collections (DRMC)
Introducing the Digital Repository for Museum Collections (DRMC)
 

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

Creating custom themes in AtoM

  • 1. Creating custom themes in AtoM An introduction to relevant theming files, registering a plugin, home page customizations, and also give devs a chance to create basic themes.
  • 2.
  • 3.
  • 4.
  • 5. Basic Edits Some things are easy to change without touching the theme: 1. Site title & site description a. Updated in Admin - Settings - Site info 2. Logo a. Replace atom/images/logo.png 3. Application Icon a. Replace atom/favicon.ico 4. Website meta tags a. atom/apps/qubit/config/view.yml 5. Static Pages a. Admin - Static pages 6. User Interface Labels a. Admin - Settings - User Interface Labels 7. Default standards templates a. Admin - Settings - Default templates 8. Menus a. Admin - Menus
  • 6. Creating a new theme https://github.com/sbreker/arDemoThemePlugin AtoM comes with two built in themes ● Dominion ● Archives Canada ● Dominion is default Use Dominion as a base or copy Dominion ● Copy the whole thing ● Reference the Dominion files from our theme Uses Less - ‘make’ to generate css file Today we will create and customize a new theme https://github.com/sbreker/arDemoThemePlugin Resources: ● Admin manual theming section ● Corcovado theme in github ○ https://github.com/artefactual-labs/atom-theme-corcovado
  • 7. Create the basic structure + ‘git init’ https://github.com/sbreker/arDemoThemePlugin Option 1: Create your own github repo: $ cd ~/atom/plugins $ mkdir arDemoThemePlugin $ git init $ echo "# Demo theme" > README.md $ git add README.md $ git commit -m "Initial commit" $ git remote add origin git@github.com:sbreker/arDemoThemePlugin.git $ git push -u origin master Option 2: Clone sbreker/arDemoThemePlugin.git: $ cd ~/atom/plugins $ git clone https://github.com/sbreker/arDemoThemePlugin.git We want your AtoM git repo to ignore this theme: $ cd ~/atom/plugins $ touch .gitignore Edit .gitignore and add the lines: .gitignore arDemoThemePlugin/
  • 8. $ cd ~/atom/plugins/arDemoThemePlugin $ mkdir config; cd config Create and edit a new file: ➔ arDemoThemePluginConfiguration.class.php Copy contents from github: sbreker/arDemoThemePlugin Save the file. Once file is in place: ● Login to your AtoM instance as user ‘demo@example.com’ ● Go to Admin -> themes ● You will see your theme! ● Don’t select it yet!!! No CSS present yet! Quickly review the contents... Create config class: Register theme https://github.com/sbreker/arDemoThemePlugin
  • 9. Create main.less & Makefile https://github.com/sbreker/arDemoThemePlugin Create Makefile: $ cd ~/atom/plugins/arDemoThemePlugin Create and edit a new file: ➔ Makefile Copy contents from github: sbreker/arDemoThemePlugin Save the file. Create main.less: $ mkdir css Create and edit a new file: ➔ main.less Copy contents from github: sbreker/arDemoThemePlugin & save $ cd ~/atom/plugins/arDemoThemePlugin $ make 1. Login to your AtoM instance as demo 2. Go to Admin -> themes 3. Activate your theme & refresh 4. Any changes???
  • 10. Edit main.less https://github.com/sbreker/arDemoThemePlugin Uncomment all the “Local Tweaks” (ignore the footer section below that!) $ make Go back to AtoM and refresh browser Might have to clear cache! Play around with it: ● Look in Variables.less in arDominionPlugin ● $ mkdir arDemoThemePlugin/css/less ● $ cp variables.less from Dominion to DemoTheme ● Update path to variables.less in DemoTheme class file ● Move definition of ‘green’ to variables.less ● Add some new colour definitions ● Update some colours in main.less ● $ make and view your handiwork! TIPS: 1. Use Chrome’s Developer Tools to view the css properties on various items on the pages and override. 2. Don’t forget to ‘make’ after each change
  • 11. Override a module template Remove ‘browse by’ block https://github.com/sbreker/arDemoThemePlugin Let’s drop ‘Browse by’ sidebar item…. 1. Find static page homeSuccess.php a. In apps/qubit/modules/staticpage/templates 2. Look at dir structure 3. Build dir structure under DemoTheme a. arDemoThemePlugin/modules/staticpage/templates 4. Copy homeSuccess.php to new DemoTheme templates dir 5. Investigate homeSuccess.php 6. Disable ‘Browse by’ menu 7. Did it work?
  • 12.
  • 13. Override a module template Drop Repository Logo from Descr Sidebar https://github.com/sbreker/arDemoThemePlugin Let’s drop the logo from the Arch Descr sidebar 1. Find infoObj template component _contextmenu.php a. In apps/qubit/modules/informationobject/templates 2. Look at dir structure 3. Build dir structure under DemoTheme modules a. arDemoThemePlugin/modules/informationobject/templates 4. Copy _contextmenu.php to new DemoTheme templates dir 5. Investigate _contextmenu.php 6. Disable logo component 7. Success?
  • 14.
  • 15. Let’s add a footer to the theme ● A good place for social media icons, contact info, external links 1. We are going to override the standard empty footer: a. Default located here: apps/qubit/templates/_footer.php 2. Create folder ‘templates’ under plugins/arDemoThemePlugin 3. Create the file: _footer.php a. Copy contents from gihub: sbreker/arDemoThemePlugin/templates/_footerrename.php 4. Refresh AtoM (may need to clear browser cache) 5. How does it look? 6. Add some styling a. Search for commented ‘footer’ block in css/main.less 7. ‘make’ 8. What has changed? Investigate contents of _footer.php Where is image coming from? Download it from github and add to theme: ● sbreker/arDemoThemePlugin/images/atom-logo.png Add a footer https://github.com/sbreker/arDemoThemePlugin
  • 16. Reverse the 2 column layout https://github.com/sbreker/arDemoThemePlugin Another common request: ● Display the sidebar on the right-hand side of the content 1. Let’s override the standard 2 column layout template found here: a. In apps/qubit/templates/layout_2col.php 2. Copy layout_2col.php to new DemoTheme templates dir a. Place file in templates folder: b. arDemoThemePlugin/templates/layout_2col.php 3. Investigate new file layout_2col.php 4. Search for the text “div class=”row” 5. Below this are two div blocks a. “span3” and “span9” b. Move the 5 lines making up ‘span3’ below the span9 block 6. Save your changes & refresh AtoM 7. Success? Investigate contents of layout_2col.php Note other layout types. Does the swap affect Arch Descr detail view?
  • 17.
  • 18. Adding logo.png & favicon.ico https://github.com/sbreker/arDemoThemePlugin You will want to add your images to the theme Replacing logo etc in atom/images will work but will impact ALL themes 1. $ cd ~/atom/plugins/arDemoThemePlugin 2. $ mkdir images; cd images 3. Add files here! a. Logo.png b. Favicon.ico 4. Any images missing? Check Dominion’s images folder Other ideas: ● A new background file ● Image for top right of header
  • 19. Override a module template Modify user menu https://github.com/sbreker/arDemoThemePlugin Let’s customize the User Menu 1. Find menu module template component _userMenu.php 2. Look at dir structure 3. Build dir structure under DemoTheme 4. arDemoThemePlugin/modules/menu/templates 5. Copy _usermenu.php to new DemoTheme templates dir 6. Investigate _usermenu.php 7. Add a new menu item for Logged In users! Bonus Points…. Let’s hide User Menu completely for unauthenticated users!! ● Could implement by deleting code block in _userMenu.php but DON’T :) ● See apps/qubit/templates/_header.php ● Customize _header.phpusing is_authenticated()from _usermenu.php
  • 20. What’s next? https://github.com/sbreker/arDemoThemePlugin Ok - sky is the limit! Things to try: ● Change the font ● Add new images & refer from templates ● Make the 12col layout float (e.g. Winnipeg) ● Modify header.less - copy to css/less ● Modify header: different height, contents, layout, etc ● Override apps/qubit/template files ● Create a brand new module within the theme ● Photo Carousel!