views:

131

answers:

1

I haven't worked to much within the template.php file in the Drupal installation, but this time I need to theme a node form. Following an excellent guide I found at http://drupal.org/node/601646, I set up the following snippet.

function amity_island_theme($existing, $type, $theme, $path) {
  if ((arg(0) == 'node') && (arg(1) == 'add') && (arg(2) == 'service-request')){
  return array(
    'service_request_node_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'node-add_service_request' ));
    }
}

prior to adding the if statement, the site served node-add_service_request.tpl.php for every request. After I added the IF statement, my screen just went completely white (I have PHP errors ON - no errors)

Has this happened to anyone...?

+1  A: 

A little tinkering revealed that it didn't like calling the function, and then evaluating the if statement. When it evaluated to FALSE, it just returned a blank HTML skeleton. With Drupal, once this happens, you have to go into the DB and manually wipe the cache table. Simply fixing the template.php file won't work - your screen will still come up white. The answer was to put the IF statement before the function...

if ((arg(0) == 'node') && (arg(1) == 'add') && (arg(2) == 'service-request')){
function amity_island_theme($existing, $type, $theme, $path) {
  return array(
    'service_request_node_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'node-add_service_request' ));
    }
}
cinqoTimo