Friday, December 17, 2010

DrupalCon Session: Maintaining the codebase and updates of a Drupal Website

Drupal stores most of the configurations and settings in the database. Deploying and Managing a Drupal website requires both code updates as well as interface updates. Changing permissions, adding fields to your content types, modify an existing view, installing and configuring a new module are some of the typical interface updates that needs to be moved from the Development Server to the Test servers and then further in the Live servers. In this session I would like to present solutions that would facilitate the update process to be people independent and totally maintained under version control.

Want to Checkout solutions to ease the maintenance of a Drupal Website VOTE FOR my DrupalCon Session at http://chicago2011.drupal.org/sessions/maintaining-codebase-and-updates-drupal-website

Questions answered by this session would include:

How to have a Drupal update process that is people independent and totally maintained under version control? 
Question 2: 
How to use Drush to improve the Update Deployment Process for a Drupal website? 
What are Features and Strongram modules? 
How to use update.php to trigger database script updates? What are the cache flush routines that need to be called after the database updates? 
What are status of Drush, Features modules in Drupal 7?

Drupal Workshop for Academicians and Researchers at NCAR


It was indeed a unique experience presenting and conducting a Workshop on Drupal to a group of Academicians and Researchers. The Workshop was organised by Free Software Movement of India at NCAR Hyderabad, India. It gives me great pride that I participated in a Workshop that was inaugurated by Dr. A.P.J Abdul Kalam.
Siva from Drupal Hyderbad and I conducted this Workshop together. We only met in the morning, but we were so much in Synch and Conducted the workshop as though we had always worked together! Wondering what brought this togetherness, it was ofcourse the fact that both of us were Drupalers! Drupal brought us together.

Both Siva and I had short Presentations and we also helped our participants have a handson on Drupal, trying out a Drupal installation from scratch, changing the theme, enabling modules and actually feeling the power of Drupal.


My Presentation

The most exiting part of these Workshops are always the Question Answer Sessions. Some of the interesting Questions were:

How can Drupal help Academicians and Researchers?
How is Drupal different from Moodle?
How can I change the look and feel of my Drupal site?
How do you install new modules?

Thursday, November 25, 2010

Drupal's Installation Profiles

What is a Drupal installation Profile?

It is a set of Drupal modules, predefined themes, configurations bundled together into a single installation. When you install this bundled installation, all the modules in it will get installed, preconfigured and you have a ready to use Drupal website. These installation profiles could cater to specific requirements that Drupal could be used to meet, like a Newspaper website, a Wiki Website, an Intranet portal, etc. Check out Drupal Installation profiles at http://drupal.org/project/installation%2Bprofiles

Components of a Drupal Installation Profile

Install profiles are located in the 'profiles' directory of a core Drupal installation. They are named profilename.profile. A profile will contain the below set of Functions:

profilename_profile_modules() - This function defines all the modules that get installed with the profile. First the Core modules are installed, followed by Contributed, followed by Custom modules.

profilename_profile_details() - This function defines the name and a short description of the Profile. The Default profile is the Drupal profile that comes with every Drupal installation.

profilename_profile_tasks() - At this stage the modules specified in profilename_profile_modules() have been installed. And you have access to the full Drupal API so you could define any custom content types, create vocabularies and terms, change variable settings to your liking, etc

We could have database updates like:

1) Set configurations (variable_set)
2) Create predefines roles and access control
3) Create preconfigured Menus
4) Create preconfigured Blocks and CCK
5) Create preconfigured content or content types
6) Configure predefine theme

This should be followed with Cache clear and Database rebuild.

1. Rebuild menu
2. Clear Cache: run cron to clear cache or write explicit cache clear code as in the systems.module in Drupal core
DONOT use drupal_flush_all_caches(): would result in all themes being disabled
3. Based on the contributed modules enabled, we must also make sure and handle any other table that requires a rebuild following their installation.

Reference: Writing a Drupal installation Profile Handbook Page

Supporter modules:
Installation Profile API
Profile Generator

Why Create Drupal Profiles?

Drupal Profiles provide a easy maintainable suite that can be replicated for multiple users. The readily available Installation Profiles in Drupal allow a quick and easy base website.

Some Good Installation Profiles:
Drupal Commons Maintained by Acquia: This Profile provides social business software providing organizations with a complete solution for forming collaborative communities.

Open Publish: a packaged distribution of the popular open source social publishing platform, Drupal, that has been tailored to the needs of today's online publishers and Newspaper companies.

Related Links:
http://www.lullabot.com/articles/5-step-drupal-distributions
http://www.lullabot.com/podcasts/lullabot-podcast-75-drupal-distributions-and-features
http://buytaert.net/drupal-distributions
Business models around installation profiles: http://buytaert.net/on-business-models-for-drupal-distributions
Acquia partner ship programs around Drupal distributions: http://acquia.com/blog/drupal-software-publishing

Tuesday, November 23, 2010

Architecting a solution in Drupal

Architecting a solution in Drupal is not always straight forward. The main parameters that are key to a well Architected solution in Drupal are:

1. Understanding of Drupal
2. Maintainability
3. Performance
4. Working with Open source

Understanding Drupal's architecture and functionality is a key in architecting a solution in Drupal. I guess to leverage any technology a deep understanding of how the technology functions is must to use it optimally.

Main aspects of Maintainability

1. Use of well maintained modules and Plugins
2. Minimize configuration and move as much to code as possible, anything in code can be version controlled
3. Custom modules should be simplified elements, in sink with Drupals architecture
- Identifying the configuration parameters
- Use of Drupal Hooks and Drupal functionality
- Separating the Theme and the coding Layer
- Following Drupal's coding standards

The result of a well written and maintainable code should be that any Drupal programmer can pick up the module and start working with it.

Main aspects of Performance are

1. Database design:
2. Optimizing the Queries
3. Building of custom caching layer or efficient use of Drupal's Caching mechanism
4. Using appropriate technologies to make do for mysql's deficiencies - like using Apache Solr for Search
5. Server side Performance enhancements

Working with Open source

Need to be able to leverage the community to give and find solutions.
You have an opportunity to learn from the solutions used by similar interested communities and their real time experience, which could also play a role in the architecture of your solution.


A Related and interesting Blog on Evaluating Drupal Modules by my colleague: read on at http://rajeev-kottayil.blogspot.com/2010/10/evaluating-drupal-modules.html

Wednesday, August 25, 2010

Drupal 7 and it’s Extremely friendly and Intuitive Admin interface

What's in Drupal 7? Most definitely an extremely friendly and Intuitive Admin Interface!

My first impressions of Drupal 7 as Drupal Admin:

1. Extremely friendly and Intuitive Admin interface!
2. More Trendy: Extensive use of Jquery, a very interactive design
3. Navigation: Multiple Navigation points

Improved and Multiple Navigation points like:

1. Tool Bar (The Admin menu in Drupal 6)
2. Dashboard
3. Shortcuts and
4. Contextual links!
5. Admin Interface with additional TAB interface
6. Use of Overlay to display information
7. Vertical tabs in the content edit interface


Some Key Functionality in Drupal 7 core:

1. Better media handling - Image filed and Image cache is in Core
2. Custom content types in core
3. WYSIWYG Editor
4. Better Performance
5. Better tools to structure/organize content
6. Basic Views like module

Also in Core implies all these will be maintained by the Core team and be available with Drupal releases!

Reference Links:
1. Creating Drupal 7.x modules
2. Theming Drupal 6 and 7
3. Converting 6.x themes to 7.x
4. Converting 6.x modules to 7.x - Categorical
5. Menu path changes from 6.x to 7.x
6. A peek at Drupal 7 theme system changes

Search This Blog

Chennai Drupal Community

drupal.org - Community plumbing

Shyamala's Drupal SEO