SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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 SystemsArtefactual Systems - AtoM
 
Introduction to AWS Cost Management
Introduction to AWS Cost ManagementIntroduction to AWS Cost Management
Introduction to AWS Cost ManagementAmazon Web Services
 
AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나
AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나
AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나Amazon Web Services Korea
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Hyoungjun Kim
 
Protecting Your Data With AWS KMS and AWS CloudHSM
Protecting Your Data With AWS KMS and AWS CloudHSM Protecting Your Data With AWS KMS and AWS CloudHSM
Protecting Your Data With AWS KMS and AWS CloudHSM Amazon Web Services
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearchpmanvi
 
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...Amazon Web Services Korea
 
Elasticsearch Query DSL - Not just for wizards...
Elasticsearch Query DSL - Not just for wizards...Elasticsearch Query DSL - Not just for wizards...
Elasticsearch Query DSL - Not just for wizards...clintongormley
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Guido Schmutz
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityAmazon Web Services
 
Text and metadata extraction with Apache Tika
Text and metadata extraction with Apache TikaText and metadata extraction with Apache Tika
Text and metadata extraction with Apache TikaJukka Zitting
 
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...Amazon Web Services
 
Building AWS Lambda Applications with the AWS Serverless Application Model (A...
Building AWS Lambda Applications with the AWS Serverless Application Model (A...Building AWS Lambda Applications with the AWS Serverless Application Model (A...
Building AWS Lambda Applications with the AWS Serverless Application Model (A...Amazon Web Services
 
ABD203_Real-Time Streaming Applications on AWS
ABD203_Real-Time Streaming Applications on AWSABD203_Real-Time Streaming Applications on AWS
ABD203_Real-Time Streaming Applications on AWSAmazon Web Services
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon Web Services Korea
 

Tendances (20)

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
 
AtoM Implementations
AtoM ImplementationsAtoM Implementations
AtoM Implementations
 
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
 
Introduction to AWS Cost Management
Introduction to AWS Cost ManagementIntroduction to AWS Cost Management
Introduction to AWS Cost Management
 
AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나
AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나
AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
 
Protecting Your Data With AWS KMS and AWS CloudHSM
Protecting Your Data With AWS KMS and AWS CloudHSM Protecting Your Data With AWS KMS and AWS CloudHSM
Protecting Your Data With AWS KMS and AWS CloudHSM
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
 
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
 
Elasticsearch Query DSL - Not just for wizards...
Elasticsearch Query DSL - Not just for wizards...Elasticsearch Query DSL - Not just for wizards...
Elasticsearch Query DSL - Not just for wizards...
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS Security
 
Deep Dive on Amazon S3
Deep Dive on Amazon S3Deep Dive on Amazon S3
Deep Dive on Amazon S3
 
Introducing Amazon EKS
Introducing Amazon EKSIntroducing Amazon EKS
Introducing Amazon EKS
 
Text and metadata extraction with Apache Tika
Text and metadata extraction with Apache TikaText and metadata extraction with Apache Tika
Text and metadata extraction with Apache Tika
 
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
Deep Dive on Amazon S3 Security and Management (E2471STG303-R1) - AWS re:Inve...
 
Digital Preservation with Archivematica: An Introduction
Digital Preservation with Archivematica: An IntroductionDigital Preservation with Archivematica: An Introduction
Digital Preservation with Archivematica: An Introduction
 
Building AWS Lambda Applications with the AWS Serverless Application Model (A...
Building AWS Lambda Applications with the AWS Serverless Application Model (A...Building AWS Lambda Applications with the AWS Serverless Application Model (A...
Building AWS Lambda Applications with the AWS Serverless Application Model (A...
 
ABD203_Real-Time Streaming Applications on AWS
ABD203_Real-Time Streaming Applications on AWSABD203_Real-Time Streaming Applications on AWS
ABD203_Real-Time Streaming Applications on AWS
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
 

Similaire à Creating custom themes in AtoM

Joomla Beginner Template Presentation
Joomla Beginner Template PresentationJoomla Beginner Template Presentation
Joomla Beginner Template Presentationalledia
 
Joomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesJoomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesAndy Wallace
 
Joomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic TemplatesJoomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic TemplatesChris 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 wayMarek 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 practicesSynapseindiappsdevelopment
 
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 UsabilityTeamstudio
 
Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Thomas Daly
 
Designing for magento
Designing for magentoDesigning for magento
Designing for magentohainutemicute
 
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 notesDamien 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 ChinaBysoft Technologies
 
Magento2 Basics for Frontend Development
Magento2 Basics for Frontend DevelopmentMagento2 Basics for Frontend Development
Magento2 Basics for Frontend DevelopmentKapil 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
 

Similaire à 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
 

Plus de Artefactual Systems - AtoM

Things I wish I'd known - AtoM tips, tricks, and gotchas
Things I wish I'd known - AtoM tips, tricks, and gotchasThings I wish I'd known - AtoM tips, tricks, and gotchas
Things I wish I'd known - AtoM tips, tricks, and gotchasArtefactual 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 VagrantArtefactual Systems - AtoM
 
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
 
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 futureArtefactual 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 workshopArtefactual 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
 
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 2015Artefactual 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
 

Plus de Artefactual Systems - AtoM (18)

Things I wish I'd known - AtoM tips, tricks, and gotchas
Things I wish I'd known - AtoM tips, tricks, and gotchasThings I wish I'd known - AtoM tips, tricks, and gotchas
Things I wish I'd known - AtoM tips, tricks, and gotchas
 
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
 
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...
 
AtoM Data Migrations
AtoM Data MigrationsAtoM Data Migrations
AtoM Data Migrations
 
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
 
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)
 

Dernier

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

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!