preprocess_* functions to change value of variable in *.tpl.php file

In the Drupal theme, template files (*.tpl.php) can be overridden to change the views of pages, nodes, and blocks. you can also do it by writing a function to override in the template.php file.

When you want to change the value of the variable in the *.tpl.php files, there are two ways, overriding *.tpl.php and using preprocess_* function in the template.php file. For example, when you want to add something to the $links variable for display nodes. ($links is a variable for the item list showing at the bottom of nodes)

When displaying the QR code of the showing page, I want to change the content of a block (a variable $block->content), I overrode it using the block-block-3.tpl.php file.

You can do the same thing by writing a preprocess_block function in template.php.

Writing the following function is executed before displaying a block to change content. This function replaces the content of a block with a generated QR code.

function nyanchew_preprocess_block(&$vars, $hook) {
  if ( ($vars['block']->module == "block") && ($vars['block']->delta == 3) ) {
    $path = trim($_GET['q'], '/');
    $path = drupal_get_path_alias($path);
    $path = 'http://nyanchew.com/' . $path;
    $arguments[] = array('name' => 'thisnode', 'data' => 'link', 'type' => 'qr', 'size' => 'small');
    $vars['block']->content = theme_mobilecode($path, $arguments). '
'.  $path;
  }
}
PAGE TOP