0

In the template.php file I inserted the code below: I found a tutorial online that gives the code, but I'm confused on how to get it to work.

I copied the code below and inserted it into the template.php from the theme HTML5_base. I duplicated the page.tpl.php file and created custom pages -- page-gallery.tpl.php and page-articles.tpl.php. I inserted some text to the files just see that I've navigated to the pages w/ the changes. It looks like Drupal is not recognizing gallery.tpl.php and page-articles.tpl.php.

In the template.php there are the following functions:

html5_base_preprocess_page()

html5_base_preprocess_node()

html5_base_preprocess_block()

In the tutorial it uses these functions:

phptemplate_preprocess_page()

phptemplate_preprocess_block()

phptemplate_preprocess_node()

 function phptemplate_preprocess_page(&$vars)

{
    //code block from the Drupal handbook

    //the path module is required and must be activated
    if(module_exists('path'))
    {
        //gets the "clean" URL of the current page
        $alias = drupal_get_path_alias($_GET['q']);

        $suggestions = array();
        $template_filename = 'page';
        foreach(explode('/', $alias) as $path_part)
        {
            $template_filename = $template_filename.'-'.$path_part;
            $suggestions[] = $template_filename;
        }

        $vars['template_files'] = $suggestions;
    }
}

function phptemplate_preprocess_node(&$vars)
{
    //default template suggestions for all nodes
    $vars['template_files'] = array();
    $vars['template_files'][] = 'node';

    //individual node being displayed
    if($vars['page'])
    {    
        $vars['template_files'][] = 'node-page';
        $vars['template_files'][] = 'node-'.$vars['node']->type.'-page';
        $vars['template_files'][] = 'node-'.$vars['node']->nid.'-page';
    }
    //multiple nodes being displayed on one page in either teaser
    //or full view
    else
    {
        //template suggestions for nodes in general
        $vars['template_files'][] = 'node-'.$vars['node']->type;
        $vars['template_files'][] = 'node-'.$vars['node']->nid;

        //template suggestions for nodes in teaser view
        //more granular control
        if($vars['teaser'])
        {
            $vars['template_files'][] = 'node-'.$vars['node']->type.'-teaser';    
            $vars['template_files'][] = 'node-'.$vars['node']->nid.'-teaser';
        }
    }
}

function phptemplate_preprocess_block(&$vars)
{
    //the "cleaned-up" block title to be used for suggestion file name
    $subject = str_replace(" ", "-", strtolower($vars['block']->subject));

    $vars['template_files'] = array('block', 'block-'.$vars['block']->delta, 'block-'.$subject);    
}
jc70
  • 255
  • 2
  • 13
  • 32

1 Answers1

0

Ah! That's a lot of pain to do this.

Why don't you try the Ctools and Panels modules.

Ctools has a lot of useful modules, the one you'd make good use of is called "Page Manager". It will allow you to create custom pages of your choice, and apply custom layouts using the Panels module.

Hope this simplifys things.

Mohammed J. Razem
  • 342
  • 1
  • 4
  • 19
  • i'm running to the problem where the pages i'm creating from "Page Manager" is not showing up in my primary links – jc70 Dec 26 '10 at 00:13
  • You'll have to manually add the pages, from Administer > Site building > Menus (admin/build/menu) and enter the path you specified in Page Manager when you created the pages. Drupal does not automatically add Menus, you'll have to do that manually. – Mohammed J. Razem Dec 26 '10 at 09:43