hong kong drupal user group - 2014 march 8th

Download Hong Kong Drupal User Group - 2014 March 8th

If you can't read please download the document

Upload: wong-hoi-sing-edison

Post on 16-Apr-2017

814 views

Category:

Technology


1 download

TRANSCRIPT

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]