Enterprise Portal in Saudi Arabia's Leading IT Organization

Last week we successfully implemented Drupal as an Enterprise Portal for one of the largest IT Organization (Saudi Business Machine - SBM) in Saudi Arabia. Portal is very much optimised to support  50,000+ user base, portal has been developed over the course of six months with handful of resources.

Intranet of 90K+ developed on Drupal for a Fortune 20 company

I am glad to be part of a team who deployed Drupal as an Intranet platform for a Fortune 20 telecom company.  This is the first time that Drupal was used on an open surce LAMP stack to create a corporate Intranet for over 90,000 employees. The project was a complete rewrite of the existing intranet that had been in operation for over half a decade. It was accomplished in less than 12 months from conception to full deployment, ramping up from just a one member team to a 17 person group with only 5 full time developers

Optimizing/Caching Poll's Block

We all know that Poll is a core module which ships with Drupal. After installing this module we can setup poll and we can place a "most recent poll" block any where in region, usually its on a front page. I investigated this module and I found that it takes 20-25 queries to load most recent poll block and when a user submits a vote on that poll it does a cache_clear_all. Which was like WOW, in addition to submitting a vote users were also clearing my cached data. Optimizing or Caching poll's block for any kind of user (authenticated or anonymous) is like piece of cake, but figuring out how to do it was really a big pain in a neck.

Advanced Workflow Management

Advance Workflow Management will help workflow admin define single workflow with states adding a layer of groups at top of that; access control will be based on groups. This module will create a new tab "Workflow Groups" through which admins can create various roles as workflow groups, assign group role to the user (author/editor/publishers) along with the role that manipulate workflow.

Index additional information using node_api hook

I was going through one of my projects and I came to know that how simple it is to insert additional information into your site's search indexes using hook_nodeapi. A comprehensive details about hook_nodeapi can be found here.

Following are the steps involved to make this happen:

  • Create a module that implements hook_nodeapi, lets say example_nodeapi()

function example_nodeapi($node, $op) {
  // Function definition here
}

Urdu (اردو) Translation on Drupal and Google

Recently we managed to get approval of Urdu translation on Drupal at Drupal Localization Project. We started with very few contributors who are working very hard to translate all strings/interfaces for Drupal Core and Drupal contributed modules.

Urdu translation for Drupal can be found here. I am looking for people who are good in english to urdu translation to contribute to this project.

Converting Texfield into autocomplete using Drupal's Form API

Inside Drupal APIs we can find separate set of APIs that deals with Forms, their elements and properties. Forms API reference guide has all the elements, properties and complete reference to the forms control structure where you can find easily a what properties all forms element carry. For more details please see Forms API Quick Start Guide.

Programmatically create blocks using hook_block

Drupal API provide a hook function hook_block that allow developers to create block or set of blocks their way. hook is a keyword that will replace by the module name, for example example.module file will implement this hook as example_block()

For further details about this hook please visit here

Create own Hooks and allow intervention from other modules

Drupal APIs and Drupal framework allows developer to provide means for other modules to interact or intervene using hooks. This can be done by simply using an API called module_invoke_all(), a comprehensive detail for this function can be found here. Details about hooks in drupal can be found here

Programmatically manipulating taxonomy terms in Drupal

Programmatically inserting, editing and deleting a taxonomy term using drupal api is as easy as A,B,C. After scanning taxonomy_term_save() function, it looks like that if we pass an associated array as an argument to this function with proper keys we can make this happen very easily.