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.

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

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