Drupal 6: Theme Developer дает слишком общее имя кандидата, ничего конкретного - PullRequest
1 голос
/ 08 июля 2010

Я работаю на сайте каталога ресторанов.У меня есть страница с описанием ресторана, которая мне нужна для реализации gmap, слайд-шоу и т. Д. Поэтому мне нужен конкретный page.tpl, и Theme Developer предоставляет информацию, как показано ниже

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

, носайт о нас, свяжитесь с нами, часто задаваемые вопросы, и т. д. страницы имеют то же имя кандидата, что и page-node.tpl.php .Поэтому я не могу использовать это: /

Почему нет ничего похожего на page-restaurant.tpl.php

как я могу решить это?Ценить помогает так много!Большое спасибо!


[отсортировано]

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

Ответы [ 3 ]

2 голосов
/ 08 июля 2010

Если вы просто хотите добавить код Javascript, вы можете использовать класс CSS, предоставляемый с большинством тем. Например, дзен даст вам

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

, который вы можете определить с помощью jQuery как

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

Что касается слайд-шоу, мне повезло с Слайд-шоу просмотров , которое предоставляет блок, который вы можете просто разместить в регионе на своей странице.

1 голос
/ 09 июля 2010

Добавьте следующую функцию в ваш файл template.php.Замените «themename» фактическим названием вашей темы.Это предполагает, что вы создали отдельный тип контента для «ресторана» - я полагаю, что у вас есть из предыдущих ответов и комментариев.Вы получите возможность использовать page-restaurant.tpl.php после загрузки отредактированного файла template.php и обновления реестра тем.

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;
}
1 голос
/ 08 июля 2010

У нас был похожий вопрос вчера .

Логика drupal заключается в том, что страница должна соответствовать общим элементам страницы для всех типов страниц и типов контента.Страница - это шаблон верхнего уровня, если вы пытаетесь изменить его для каждого типа контента, возможно, вы неправильно разделили свою тему.У вас есть тематические узлы для различения разных типов узлов.Формат - узел- [NODE TYPE] .tpl.php

Вы создали тип контента "restaurant"?Если вы сделаете это, вы можете найти такие модули, как gmap, которые вам помогут.

...