2010-07-08 25 views
1

Je travaille sur un site de répertoire de restaurants. J'ai informations sur le restaurant page que je dois mettre en œuvre gmap, diaporama, etc. Je besoin d'un page.tpl spécifique et Thème Developer donne l'info comme ci-dessousDrupal 6: Développeur de thème donne un nom de candidat trop commun, rien de spécifique

alt text http://img.skitch.com/20100708-b9af98fb8mpckai5wfpmktxwgf.jpg

mais le site est à peu près nous, contactez-nous, FAQ , etc pages a le même nom de candidat que page-node.tpl.php. Je ne peux pas l'utiliser:/

Pourquoi ISNT-il quelque chose comme en page restaurant.tpl.php

comment puis-je résoudre ce problème? Apprécier aide tellement! Merci beaucoup!


[TRIEE]

<script type="text/javascript"> 
    window.onload = function() { 
     load(); 
    } 
    window.onunload = function() { 
     GUnload(); 
    } 
    </script>' 

Répondre

1

Nous avions une question similaire yesterday. La logique de drupal est que la page doit être pour les éléments communs d'une page à travers tous les types de page et les types de contenu. La page est le modèle de niveau supérieur, si vous essayez de changer cela par type de contenu, vous n'avez peut-être pas séparé votre thème correctement. Vous avez un thème de nœud pour différencier les différents types de nœuds. Le format est node- [NODE TYPE] .tpl.php

Avez-vous créé un type de contenu "restaurant"? Si vous faites cela, vous pouvez trouver des modules comme gmap vous aider.

+0

Merci de donner le temps Jeremy! J'ai déjà node-restaurant.tpl.php pour éditer la partie content, mais j'ai aussi besoin de page.tpl car j'ai besoin d'ajouter js à

+0

Pouvez-vous détailler ce que vous devez faire dans le question, par exemple ajouter js peut être fait avec drupal_add_js plutôt que le modèle. –

+0

Si vous n'avez pas besoin de modifier * lourdement *, il n'est pas nécessaire de toucher le page.tpl. Il y a des fonctions pour la plupart de ces choses, par ex. pour ajouter javascript, utilisez http://api.drupal.org/api/function/drupal_add_js/6 – DrColossos

2

Si vous souhaitez simplement ajouter du code Javascript, vous pouvez utiliser la classe CSS fournie avec la plupart des thèmes. Par exemple, Zen vous donnera

<body class="not-front logged-in node-type-restaurant two-sidebars page-restaurant">...</body> 

que vous pouvez détecter avec jQuery

$(document).ready() { $('.page-restaurant').Myfunction(); } 

En ce qui concerne le diaporama, j'ai eu bonne chance avec Views Slideshow, qui fournit un bloc, vous pouvez simplement placer dans un région sur votre page.

1

Ajoutez la fonction suivante à votre fichier template.php. Remplacer "themename" avec le nom réel de votre thème. Cela suppose que vous avez créé un type de contenu distinct pour "restaurant" - je suppose que vous avez des réponses et des commentaires précédents. Vous obtiendrez une option pour utiliser page-restaurant.tpl.php une fois que vous aurez téléchargé le fichier template.php modifié et actualisé le registre des thèmes.

function themename_preprocess(&$vars, $hook) { 
    switch ($hook){ 
     case 'page': 
      // Add a content-type page template in second to last. 
      if ('node' == arg(0)) { 
       $node_template = array_pop($vars['template_files']); 
       $vars['template_files'][] = 'page-' . $vars['node']->type; 
       $vars['template_files'][] = $node_template; 
      } 
      break; 

    } 
    return $vars; 
}