SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Hong Kong Drupal User Group
(HKDUG)

Workshop & Sharing
2014 March 8th
Presenter
●

Wong Hoi Sing Edison

●

CEO, PantaRei Design
–

●

Drupal developer & contributor
–

●

hswong3i@pantarei-design.com
https://drupal.org/user/33940

HKDUG Co-founder
Outline
●

What is Drupal?

●

Evaluate Drupal Project Online

●

Scalable & Modularized Architecture

●

Export Settings with Features

●

Revision Control with GIT
What is Drupal?
●

●

●

Drupal is an open-source platform and content
management system (CMS) for building dynamic web
sites
Distributed under the terms of the GNU General
Public License (or "GPL"), which means anyone is
free to download it and share it with others
To easily organize, manage and publish your content,
with an endless variety of customization
Evaluate Drupal Project Online
●

http://simplytest.me/

●

On-demand sandbox environments

●

No overhead for setup LAMP stack

●

Simple, fast and for free!

●

Let's try it now!
–

http://simplytest.me/project/drupal/7.x

–

http://simplytest.me/project/drupal/8.x

–

http://simplytest.me/project/drustack/7.x-26.x
Evaluate Drupal Project Online
(cont.)
●

Check “Status report” page

●

Add new article

●

Add new main menu link

●

Add new block to region

●

Add new user

●

Change look & feel (theme)

●

Change system settings
Scalable & Modularized
Architecture
●

Why?
–
–

Reduce team development overhead

–
●

Easy for implementation
Managable and redeployable

How?
–

Categorizing changes in different level

–

Export data/settings with Features

–

Manage revision with GIT
Scalable & Modularized
Architecture (cont.)
●

Categorizing
–

Global modules configuration (Module)

–

Content types (CCK)

–

Dummy data (UUID Features)

–

Filtering logics (Views)

–

Contextual conditions and reactions (Context)

–

MISC

–

Look & feel (Theme)
Module
●
●

Review your project requirement
Choose which modules/distribution would be suitable,
e.g.
–
–

https://drupal.org/project/commons

–
●

https://drupal.org/project/commerce_kickstart
https://drupal.org/project/drustack

Enable and configure
–

admin/config

–

admin/structure
Content Construction Kit (CCK)
●

Content type is the main container for CMS
–

●

admin/structure/types

Group your content type by functionality
–

i.e. share same fields structure

–

Moreover, use Taxonomy to label different purpose

●

Keep It Simple Stupid (KISS)

●

Less is More

●

CCK is in Drupal 7 core!
UUID Features
●
●

Node/Term with UUID = Features exportable
Taxonomy term related to filtering logic should
be export with UUID Features
–

●

Usually, only basic pages should be export with
UUID Features
–

●

i.e. can remap with UUID in Views

Dynamic content migration should consider Migrate

Patches required
Views
●

Filter content with no custom code nor SQL
required
–

admin/structure/views

●

Manage with GUI

●

Supported by most 3rd party modules

●

Exportable with Features
–

●

Good combo with Taxonomy + UUID Features!

Views is in Drupal 8 Core!
Context
●

Manage contextual conditions and reactions for
different portions
–

●

Very flexible and powerful (i.e. by rules)
–

●

Drupal default with by blocks

Reuse theme predefined regions
–

●

admin/structure/context

Panels default custom layout and design

Exportable with Features
–

Good combo with Taxonomy + UUID Features!
MISC
●

Custom blocks
–

https://drupal.org/project/boxes

–

https://drupal.org/project/bean

●

Custom modules

●

Additional functionality
Theme
●

●

Site should work well even with Drupal default
theme
Keep away from custom PHP logic
–
–

●

Try to implement with previous level
Reduce backend dependency

Don't hack core
–

Overriding with themable output
Export Settings with Features
●

By default, modules settings store in database
–

●

Features can export these dynamic changes into a
new custom module (a.k.a. Features export)
–

●

variable_get(), variable_set(), variable_del()

https://drupal.org/project/features

After export, latest changes can compare with
archived version, and (partly) rollback or recreate
Export Settings with Features
(cont.)
●

With Scalable & Modularized Architecture
–

●

Team development can be workout by sharing code,
and maintain own environment independently
–

●

Export each layer, each group of configuration, individually

Shared testbed (i.e. single copy of code + database) no
longer required

Redeployable
–

i.e. Continous Integration (CI) possible
Export Settings with Features
(cont.)
●

Knowledge management become possible

●

Reduce development risk

●

Reduce on going maintenance overhead
Revision Control with GIT
●

Manage code changes by rename file will soon
reach its limitation, e.g.
–
–

●

mycode-20140308.php
mycode-201403080930.php

Archive entire folder will make case even worse
–

●

Need to extract before compare the changes

Share progress with co-workers become
nightmare
Revision Control with GIT (cont.)
●

CSV
–

Manage revision per file (rename not support)

–

Remote repository server required (no local folder
offline management)

–

Single commit management (other else contribute
by submit patches)

–

TOOOOO OLD (well...)
●
●

Used by Drupal during 7.x development cycle
After Drupal 7 released, soon migrated to GIT
Revision Control with GIT (cont.)
●

SVN
–

Manage revision per folder

–

Remote repository server required

–

Single commit management

–

A bit better than CSV, but branching model still
looks crazy
●

At least, we now have GIT, why still using SVN?
Revision Control with GIT (cont.)
●

GIT
–

Manage revision per entire project

–

Remote/local repository supported
●
●
●
●
●

git init
git add --all .
git commit -am 'Initial commit'
git log
git status

–

Distributed workflows

–

Used by https://drupal.org/ since Drupal 7

–

You also know https://github.com/, isn't it?
Revision Control with GIT (cont.)
●

Drupal configuration goes dynamic

●

Features export make it as static files

●

Static files revision control by GIT

●

●

Team members can therefore share progress
by managed code with GIT
Project manager (PM) can review individual pull
request submitted by team members, and fully
test before commit to main stream
Q&A
I Need More Help!
●

Read documents from Drupal Community
–

●

https://drupal.org/documentation

Join Hong Kong Drupal User Group
–
–

●

http://www.meetup.com/Hong-Kong-Drupal-User-Group
https://groups.drupal.org/hong-kong

Contact us for one (1) month free-trial support
service
–

sales@pantarei-design.com

Weitere ähnliche Inhalte

Was ist angesagt?

WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
Igalia
 

Was ist angesagt? (20)

Using GIT for Everyone
Using GIT for EveryoneUsing GIT for Everyone
Using GIT for Everyone
 
uPortal Q1 2018 Quarterly Briefing
uPortal Q1 2018 Quarterly BriefinguPortal Q1 2018 Quarterly Briefing
uPortal Q1 2018 Quarterly Briefing
 
You're doing it wrong! Git it right!
You're doing it wrong! Git it right!You're doing it wrong! Git it right!
You're doing it wrong! Git it right!
 
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro WorkshopOpen Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
 
Flow
FlowFlow
Flow
 
It's a Breeze to develop Apache Airflow (Apache Con Berlin)
It's a Breeze to develop Apache Airflow (Apache Con Berlin)It's a Breeze to develop Apache Airflow (Apache Con Berlin)
It's a Breeze to develop Apache Airflow (Apache Con Berlin)
 
Drupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development ToolsDrupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development Tools
 
Kernel Recipes 2016 - Maintainer’s Don’t Scale
Kernel Recipes 2016 -  Maintainer’s Don’t ScaleKernel Recipes 2016 -  Maintainer’s Don’t Scale
Kernel Recipes 2016 - Maintainer’s Don’t Scale
 
Git'in in 15
Git'in in 15Git'in in 15
Git'in in 15
 
Deploying Joomla sites with GIT
Deploying Joomla sites with GITDeploying Joomla sites with GIT
Deploying Joomla sites with GIT
 
Praes
PraesPraes
Praes
 
Git'in on Windows
Git'in on WindowsGit'in on Windows
Git'in on Windows
 
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumIntroduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
 
Kernel Recipes 2016 - Control Group Status Update
Kernel Recipes 2016 -  Control Group Status UpdateKernel Recipes 2016 -  Control Group Status Update
Kernel Recipes 2016 - Control Group Status Update
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
 
Version Control != Dependency Management
Version Control != Dependency ManagementVersion Control != Dependency Management
Version Control != Dependency Management
 
Mono Repo
Mono RepoMono Repo
Mono Repo
 
How to sell drupal 8
How to sell drupal 8How to sell drupal 8
How to sell drupal 8
 
Waylandifying Chromium: From downstream to shipping (ELCE 2020)
Waylandifying Chromium: From downstream to shipping (ELCE 2020)Waylandifying Chromium: From downstream to shipping (ELCE 2020)
Waylandifying Chromium: From downstream to shipping (ELCE 2020)
 

Andere mochten auch

Andere mochten auch (18)

Entrepreneurship Talk
Entrepreneurship TalkEntrepreneurship Talk
Entrepreneurship Talk
 
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
 
Barcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GITBarcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to GIT
 
Hong Kong Drupal User Group - Sep 13th
Hong Kong Drupal User Group - Sep 13thHong Kong Drupal User Group - Sep 13th
Hong Kong Drupal User Group - Sep 13th
 
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile DevelopmentCUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
 
Hong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8thHong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8th
 
drustack a mobile-friendly web content management system (cms)
drustack   a mobile-friendly web content management system (cms)drustack   a mobile-friendly web content management system (cms)
drustack a mobile-friendly web content management system (cms)
 
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.x
 
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team][20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
 
The World We Live In
The World We Live InThe World We Live In
The World We Live In
 
OSS Community Meeting - OSS Community Management for Dummy
OSS Community Meeting - OSS Community Management for DummyOSS Community Meeting - OSS Community Management for Dummy
OSS Community Meeting - OSS Community Management for Dummy
 
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management SystemBarcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
 
BarCamp Hong Kong 2015 - AuthBucket - Open Source Identity Management System
BarCamp Hong Kong 2015 - AuthBucket - Open Source Identity Management SystemBarCamp Hong Kong 2015 - AuthBucket - Open Source Identity Management System
BarCamp Hong Kong 2015 - AuthBucket - Open Source Identity Management System
 
Hong Kong Drupal User Group - 2014 April 12th
Hong Kong Drupal User Group - 2014 April 12thHong Kong Drupal User Group - 2014 April 12th
Hong Kong Drupal User Group - 2014 April 12th
 
Barcamp Macau 2014 - Introduction to AWS
Barcamp Macau 2014 - Introduction to AWSBarcamp Macau 2014 - Introduction to AWS
Barcamp Macau 2014 - Introduction to AWS
 
Open Source.HK Workshop - 2014 Oct 11th
Open Source.HK Workshop - 2014 Oct 11thOpen Source.HK Workshop - 2014 Oct 11th
Open Source.HK Workshop - 2014 Oct 11th
 
Fiscalización Ejercito
Fiscalización Ejercito  Fiscalización Ejercito
Fiscalización Ejercito
 

Ähnlich wie Hong Kong Drupal User Group - 2014 March 8th

Plone at the University of Washington
Plone at the University of WashingtonPlone at the University of Washington
Plone at the University of Washington
mwinkle1
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
Fedir RYKHTIK
 

Ähnlich wie Hong Kong Drupal User Group - 2014 March 8th (20)

Plone Intranet under the hood
Plone Intranet under the hoodPlone Intranet under the hood
Plone Intranet under the hood
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
Open Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26thOpen Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26th
 
Drupal training-1-in-mumbai
Drupal training-1-in-mumbaiDrupal training-1-in-mumbai
Drupal training-1-in-mumbai
 
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GIT[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
 
Speedrun: Build a Website with Panels, Media, and More in 45 Minutes
Speedrun: Build a Website with Panels, Media, and More in 45 MinutesSpeedrun: Build a Website with Panels, Media, and More in 45 Minutes
Speedrun: Build a Website with Panels, Media, and More in 45 Minutes
 
Decoupled drupal + vue.js
Decoupled drupal + vue.jsDecoupled drupal + vue.js
Decoupled drupal + vue.js
 
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
 
Beginners Guide to Drupal
Beginners Guide to DrupalBeginners Guide to Drupal
Beginners Guide to Drupal
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
 
01 - Git vs SVN
01 - Git vs SVN01 - Git vs SVN
01 - Git vs SVN
 
Plone at the University of Washington
Plone at the University of WashingtonPlone at the University of Washington
Plone at the University of Washington
 
Enterprise Griffon
Enterprise GriffonEnterprise Griffon
Enterprise Griffon
 
Puppet managed loadays
Puppet managed loadaysPuppet managed loadays
Puppet managed loadays
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
 

Mehr von Wong Hoi Sing Edison

Mehr von Wong Hoi Sing Edison (11)

[HKOSCON][20220611][AlviStack: Hong Kong Based Kubernetes Distribution]
[HKOSCON][20220611][AlviStack: Hong Kong Based Kubernetes Distribution][HKOSCON][20220611][AlviStack: Hong Kong Based Kubernetes Distribution]
[HKOSCON][20220611][AlviStack: Hong Kong Based Kubernetes Distribution]
 
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes][HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
 
[HKOSCON][20200613][ Ansible: From VM to Kubernetes]
[HKOSCON][20200613][ Ansible: From VM to Kubernetes][HKOSCON][20200613][ Ansible: From VM to Kubernetes]
[HKOSCON][20200613][ Ansible: From VM to Kubernetes]
 
[HKOSCON][20190615][DevOps with Ansible, From Native to Kubernetes]
[HKOSCON][20190615][DevOps with Ansible, From Native to Kubernetes][HKOSCON][20190615][DevOps with Ansible, From Native to Kubernetes]
[HKOSCON][20190615][DevOps with Ansible, From Native to Kubernetes]
 
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes][BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
 
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
 
[HKDUG] #20161210 - BarCamp Hong Kong 2016 - What's News in PHP?
[HKDUG] #20161210 - BarCamp Hong Kong 2016 - What's News in PHP?[HKDUG] #20161210 - BarCamp Hong Kong 2016 - What's News in PHP?
[HKDUG] #20161210 - BarCamp Hong Kong 2016 - What's News in PHP?
 
DruStack- a mobile-friendly web content management system (cms
DruStack- a mobile-friendly web content management system (cmsDruStack- a mobile-friendly web content management system (cms
DruStack- a mobile-friendly web content management system (cms
 
IT Entrepreneurship Talk - City University of Hong Kong
IT Entrepreneurship Talk - City University of Hong KongIT Entrepreneurship Talk - City University of Hong Kong
IT Entrepreneurship Talk - City University of Hong Kong
 
Hong Kong Drupal User Group - Sep 13th
Hong Kong Drupal User Group - Sep 13thHong Kong Drupal User Group - Sep 13th
Hong Kong Drupal User Group - Sep 13th
 
Hong Kong Drupal User Group - 2014 June 14th
Hong Kong Drupal User Group - 2014 June 14thHong Kong Drupal User Group - 2014 June 14th
Hong Kong Drupal User Group - 2014 June 14th
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Hong Kong Drupal User Group - 2014 March 8th

  • 1. Hong Kong Drupal User Group (HKDUG) Workshop & Sharing 2014 March 8th
  • 2. Presenter ● Wong Hoi Sing Edison ● CEO, PantaRei Design – ● Drupal developer & contributor – ● hswong3i@pantarei-design.com https://drupal.org/user/33940 HKDUG Co-founder
  • 3. Outline ● What is Drupal? ● Evaluate Drupal Project Online ● Scalable & Modularized Architecture ● Export Settings with Features ● Revision Control with GIT
  • 4. What is Drupal? ● ● ● Drupal is an open-source platform and content management system (CMS) for building dynamic web sites Distributed under the terms of the GNU General Public License (or "GPL"), which means anyone is free to download it and share it with others To easily organize, manage and publish your content, with an endless variety of customization
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Evaluate Drupal Project Online ● http://simplytest.me/ ● On-demand sandbox environments ● No overhead for setup LAMP stack ● Simple, fast and for free! ● Let's try it now! – http://simplytest.me/project/drupal/7.x – http://simplytest.me/project/drupal/8.x – http://simplytest.me/project/drustack/7.x-26.x
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Evaluate Drupal Project Online (cont.) ● Check “Status report” page ● Add new article ● Add new main menu link ● Add new block to region ● Add new user ● Change look & feel (theme) ● Change system settings
  • 20. Scalable & Modularized Architecture ● Why? – – Reduce team development overhead – ● Easy for implementation Managable and redeployable How? – Categorizing changes in different level – Export data/settings with Features – Manage revision with GIT
  • 21. Scalable & Modularized Architecture (cont.) ● Categorizing – Global modules configuration (Module) – Content types (CCK) – Dummy data (UUID Features) – Filtering logics (Views) – Contextual conditions and reactions (Context) – MISC – Look & feel (Theme)
  • 22. Module ● ● Review your project requirement Choose which modules/distribution would be suitable, e.g. – – https://drupal.org/project/commons – ● https://drupal.org/project/commerce_kickstart https://drupal.org/project/drustack Enable and configure – admin/config – admin/structure
  • 23. Content Construction Kit (CCK) ● Content type is the main container for CMS – ● admin/structure/types Group your content type by functionality – i.e. share same fields structure – Moreover, use Taxonomy to label different purpose ● Keep It Simple Stupid (KISS) ● Less is More ● CCK is in Drupal 7 core!
  • 24. UUID Features ● ● Node/Term with UUID = Features exportable Taxonomy term related to filtering logic should be export with UUID Features – ● Usually, only basic pages should be export with UUID Features – ● i.e. can remap with UUID in Views Dynamic content migration should consider Migrate Patches required
  • 25. Views ● Filter content with no custom code nor SQL required – admin/structure/views ● Manage with GUI ● Supported by most 3rd party modules ● Exportable with Features – ● Good combo with Taxonomy + UUID Features! Views is in Drupal 8 Core!
  • 26. Context ● Manage contextual conditions and reactions for different portions – ● Very flexible and powerful (i.e. by rules) – ● Drupal default with by blocks Reuse theme predefined regions – ● admin/structure/context Panels default custom layout and design Exportable with Features – Good combo with Taxonomy + UUID Features!
  • 28. Theme ● ● Site should work well even with Drupal default theme Keep away from custom PHP logic – – ● Try to implement with previous level Reduce backend dependency Don't hack core – Overriding with themable output
  • 29. Export Settings with Features ● By default, modules settings store in database – ● Features can export these dynamic changes into a new custom module (a.k.a. Features export) – ● variable_get(), variable_set(), variable_del() https://drupal.org/project/features After export, latest changes can compare with archived version, and (partly) rollback or recreate
  • 30.
  • 31. Export Settings with Features (cont.) ● With Scalable & Modularized Architecture – ● Team development can be workout by sharing code, and maintain own environment independently – ● Export each layer, each group of configuration, individually Shared testbed (i.e. single copy of code + database) no longer required Redeployable – i.e. Continous Integration (CI) possible
  • 32. Export Settings with Features (cont.) ● Knowledge management become possible ● Reduce development risk ● Reduce on going maintenance overhead
  • 33. Revision Control with GIT ● Manage code changes by rename file will soon reach its limitation, e.g. – – ● mycode-20140308.php mycode-201403080930.php Archive entire folder will make case even worse – ● Need to extract before compare the changes Share progress with co-workers become nightmare
  • 34. Revision Control with GIT (cont.) ● CSV – Manage revision per file (rename not support) – Remote repository server required (no local folder offline management) – Single commit management (other else contribute by submit patches) – TOOOOO OLD (well...) ● ● Used by Drupal during 7.x development cycle After Drupal 7 released, soon migrated to GIT
  • 35. Revision Control with GIT (cont.) ● SVN – Manage revision per folder – Remote repository server required – Single commit management – A bit better than CSV, but branching model still looks crazy ● At least, we now have GIT, why still using SVN?
  • 36. Revision Control with GIT (cont.) ● GIT – Manage revision per entire project – Remote/local repository supported ● ● ● ● ● git init git add --all . git commit -am 'Initial commit' git log git status – Distributed workflows – Used by https://drupal.org/ since Drupal 7 – You also know https://github.com/, isn't it?
  • 37.
  • 38.
  • 39. Revision Control with GIT (cont.) ● Drupal configuration goes dynamic ● Features export make it as static files ● Static files revision control by GIT ● ● Team members can therefore share progress by managed code with GIT Project manager (PM) can review individual pull request submitted by team members, and fully test before commit to main stream
  • 40.
  • 41. Q&A
  • 42. I Need More Help! ● Read documents from Drupal Community – ● https://drupal.org/documentation Join Hong Kong Drupal User Group – – ● http://www.meetup.com/Hong-Kong-Drupal-User-Group https://groups.drupal.org/hong-kong Contact us for one (1) month free-trial support service – sales@pantarei-design.com