views:

66

answers:

4

sys info: drupal 6 installation, with tons of modules... too many to list.

the problem: only a certain content type will not load it's template file correctly. some nodes that would be displayed on these pages through views are making it to the markup. they are the only content that gets loaded. the template file that this content falls back on is node-event.tpl

the objective: to load page-team.tpl.php

template suggestions are loaded in two ways in template.php through preprocessing via

mytheme_preprocess_page(&$vars, $hook)

converted from _phptemplate_variables () in a drupal 5 installation.

method 1:

if (module_exists('path')) {
  $alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
  if ($alias != $_GET['q']) {
    $template_filename = 'page';
    foreach (explode('/', $alias) as $path_part) {
      $template_filename = $template_filename . '-' . $path_part;
      $vars['template_files'][] = $template_filename;
    }
  }
}

method 2:

if ($vars['node']->og_groups['0'] || preg_match('/fdl\//',$vars['node']->path) || (preg_match('/og\/manage/',$alias) || preg_match('/og\/invite/',$alias) || preg_match('/og\/users/',$alias)) || (preg_match('/node\/add/',$alias) && $_GET['gids'] != '') || $vars['node']->og_description || (arg(0) == 'user' && is_numeric(arg(1)))) { 
  $vars['template_files'][] = 'page-team';

}

page-team is the tpl that is missing, and i suspect there may be an error with my code above (method 2).

i'm attempting to load this template for all pages with the first path argument of "fdl" so site.com/fdl and all children of fdl.

i know there are lots of possibilities. but i have a feeling the error is here. thanks for any help you can offer.

+1  A: 

Well, did you clear cache? Because when dealing with themes, drupal usually catches newly added themes and templates after clearing cache.

And if you are not sure about your reg. exp., i believe you can simply write this:


if(strpos(drupal_get_path_alias($_GET['q']),'fdl')===0){
    $vars['template_files'][] = 'page-team';
}

And clear cache.

angryobject
i had cleared cache, to no avail. thank for your snippet, but no luck there either. the page still loads only the node template and not the page template.
matt ryan
It should work. I have just tested it in my project. See below the whole example.
angryobject
+1  A: 
angryobject
yeah, the query is correct, but still the page tpl is not loading.you think because it is a custom content type there is an issue?
matt ryan
Not really. I dont think a custom content type could make something wrong. And i just cant figure out why this is not working for you.
angryobject
so strange, by removing the node template the page template was available. i would still like to know what exactly gave the node precedence but, thanks for your help angry.
matt ryan
If this is the case, then propably the node template somehow appears to be the last element of the $vars['template_files'] array. Because templates are applied in the reverse order they go in this array. But yep, this is still stange. And i never faced this before somehow. I think i'll try to create both the node and the page templates and see wheather it works.
angryobject
yes, but I need both. the page and the nodes on it to be templated
matt ryan
I'm sorry for being away for so long, just had a lot of work to do. But i tried something and it worked. See the answer below. If if will not work for you... Well, i even don't know how else to help(
angryobject
A: 
angryobject
A: 

i found a deprecated link function in the template. updating the parameters fixed everything.

matt ryan