Drupal Global Training Day by Drupal Mumbai 6th Sep - Drupal Administration
Hong Kong Drupal User Group - 2014 March 8th
-
Upload
wong-hoi-sing-edison -
Category
Technology
-
view
814 -
download
1
Transcript of Hong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group
(HKDUG)
Workshop & Sharing
2014 March 8th
Presenter
Wong Hoi Sing Edison
CEO, PantaRei [email protected]
Drupal developer & contributorhttps://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?Easy for implementation
Reduce team development overhead
Managable and redeployable
How?Categorizing changes in different level
Export data/settings with Features
Manage revision with GIT
Scalable & Modularized Architecture (cont.)
CategorizingGlobal 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/commerce_kickstart
https://drupal.org/project/commons
https://drupal.org/project/drustack
Enable and configureadmin/config
admin/structure
Content Construction Kit (CCK)
Content type is the main container for CMSadmin/structure/types
Group your content type by functionalityi.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 Featuresi.e. can remap with UUID in Views
Usually, only basic pages should be export with UUID FeaturesDynamic content migration should consider Migrate
Patches required
Views
Filter content with no custom code nor SQL requiredadmin/structure/views
Manage with GUI
Supported by most 3rd party modules
Exportable with FeaturesGood combo with Taxonomy + UUID Features!
Views is in Drupal 8 Core!
Context
Manage contextual conditions and reactions for different portionsadmin/structure/context
Very flexible and powerful (i.e. by rules)Drupal default with by blocks
Reuse theme predefined regionsPanels default custom layout and design
Exportable with FeaturesGood combo with Taxonomy + UUID Features!
MISC
Custom blockshttps://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 logicTry to implement with previous level
Reduce backend dependency
Don't hack coreOverriding with themable output
Export Settings with Features
By default, modules settings store in databasevariable_get(), variable_set(), variable_del()
Features can export these dynamic changes into a new custom module (a.k.a. Features export)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 ArchitectureExport each layer, each group of configuration, individually
Team development can be workout by sharing code, and maintain own environment independentlyShared testbed (i.e. single copy of code + database) no longer required
Redeployablei.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 worseNeed to extract before compare the changes
Share progress with co-workers become nightmare
Revision Control with GIT (cont.)
CSVManage 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.)
SVNManage revision per folder
Remote repository server required
Single commit management
A bit better than CSV, but branching model still looks crazyAt least, we now have GIT, why still using SVN?
Revision Control with GIT (cont.)
GITManage revision per entire project
Remote/local repository supportedgit 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 Communityhttps://drupal.org/documentation
Join Hong Kong Drupal User Grouphttp://www.meetup.com/Hong-Kong-Drupal-User-Group/
https://groups.drupal.org/hong-kong
Contact us for one (1) month free-trial support [email protected]