SlideShare ist ein Scribd-Unternehmen 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

Weitere ähnliche Inhalte

Was ist angesagt?

Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
Artefactual Systems - AtoM
 
Searching in AtoM
Searching in AtoMSearching in AtoM
Searching in AtoM
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
 
Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBMongoDB
 
Aem maintenance
Aem maintenanceAem maintenance
Aem maintenance
Ashokkumar T A
 
Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3
Jukka Zitting
 
ORM in Django
ORM in DjangoORM in Django
ORM in Django
Hoang Nguyen
 
Understanding Web Cache
Understanding Web CacheUnderstanding Web Cache
Understanding Web Cache
ProdigyView
 
Flyway
FlywayFlyway
Alphorm.com Formation Big Data avec Apache Spark: Initiation
Alphorm.com Formation Big Data avec Apache Spark: InitiationAlphorm.com Formation Big Data avec Apache Spark: Initiation
Alphorm.com Formation Big Data avec Apache Spark: Initiation
Alphorm
 
HBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and CompactionHBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and Compaction
DataWorks Summit/Hadoop Summit
 
Flutter 是什麼?用 Flutter 會省到時間嗎? @ GDG Devfest2020
Flutter 是什麼?用 Flutter 會省到時間嗎? @ GDG Devfest2020Flutter 是什麼?用 Flutter 會省到時間嗎? @ GDG Devfest2020
Flutter 是什麼?用 Flutter 會省到時間嗎? @ GDG Devfest2020
Johnny Sung
 
Postgres Performance for Humans
Postgres Performance for HumansPostgres Performance for Humans
Postgres Performance for Humans
Citus Data
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
Rachel Andrew
 
Apache Jackrabbit Oak - Scale your content repository to the cloud
Apache Jackrabbit Oak - Scale your content repository to the cloudApache Jackrabbit Oak - Scale your content repository to the cloud
Apache Jackrabbit Oak - Scale your content repository to the cloud
Robert Munteanu
 
HTML5
HTML5HTML5
Highly efficient backups with percona xtrabackup
Highly efficient backups with percona xtrabackupHighly efficient backups with percona xtrabackup
Highly efficient backups with percona xtrabackup
Nilnandan Joshi
 
django
djangodjango
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
 

Was ist angesagt? (20)

Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
Building the Future Together: AtoM3, Governance, and the Sustainability of Op...
 
Searching in AtoM
Searching in AtoMSearching in AtoM
Searching in 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
 
Apache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDBApache Jackrabbit Oak on MongoDB
Apache Jackrabbit Oak on MongoDB
 
Aem maintenance
Aem maintenanceAem maintenance
Aem maintenance
 
Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3
 
ORM in Django
ORM in DjangoORM in Django
ORM in Django
 
Understanding Web Cache
Understanding Web CacheUnderstanding Web Cache
Understanding Web Cache
 
Flyway
FlywayFlyway
Flyway
 
Alphorm.com Formation Big Data avec Apache Spark: Initiation
Alphorm.com Formation Big Data avec Apache Spark: InitiationAlphorm.com Formation Big Data avec Apache Spark: Initiation
Alphorm.com Formation Big Data avec Apache Spark: Initiation
 
HBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and CompactionHBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and Compaction
 
Flutter 是什麼?用 Flutter 會省到時間嗎? @ GDG Devfest2020
Flutter 是什麼?用 Flutter 會省到時間嗎? @ GDG Devfest2020Flutter 是什麼?用 Flutter 會省到時間嗎? @ GDG Devfest2020
Flutter 是什麼?用 Flutter 會省到時間嗎? @ GDG Devfest2020
 
Postgres Performance for Humans
Postgres Performance for HumansPostgres Performance for Humans
Postgres Performance for Humans
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
 
Apache Jackrabbit Oak - Scale your content repository to the cloud
Apache Jackrabbit Oak - Scale your content repository to the cloudApache Jackrabbit Oak - Scale your content repository to the cloud
Apache Jackrabbit Oak - Scale your content repository to the cloud
 
HTML5
HTML5HTML5
HTML5
 
Highly efficient backups with percona xtrabackup
Highly efficient backups with percona xtrabackupHighly efficient backups with percona xtrabackup
Highly efficient backups with percona xtrabackup
 
django
djangodjango
django
 
Crawling
CrawlingCrawling
Crawling
 
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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 
AtoM Implementations
AtoM ImplementationsAtoM Implementations
AtoM Implementations
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
 
Get to Know AtoM's Codebase
Get to Know AtoM's CodebaseGet to Know AtoM's Codebase
Get to Know AtoM's Codebase
Artefactual Systems - AtoM
 
Command-Line 101
Command-Line 101Command-Line 101
Command-Line 101
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
 
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
 
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
 

Mehr von Artefactual Systems - AtoM (18)

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
 
AtoM Implementations
AtoM ImplementationsAtoM Implementations
AtoM Implementations
 
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
 
Get to Know AtoM's Codebase
Get to Know AtoM's CodebaseGet to Know AtoM's Codebase
Get to Know AtoM's Codebase
 
Command-Line 101
Command-Line 101Command-Line 101
Command-Line 101
 
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
 
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
 
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)
 

Kürzlich hochgeladen

Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
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
 

Kürzlich hochgeladen (20)

Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
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 -...
 

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!