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