1

私はレストランのディレクトリ サイトに取り組んでいます。gmap、スライドショーなどを実装する必要があるレストランの詳細ページがあります。そのため、特定の page.tpl が必要で、テーマ開発者は以下の情報を提供します

代替テキスト 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>'
4

3 に答える 3

2

JavaScript コードを追加するだけの場合は、ほとんどのテーマで提供されている CSS クラスを使用できます。たとえば、禅はあなたに

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

jQueryで次のように検出できます

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

スライドショーに関しては、ページの領域に配置できるブロックを提供するViews Slideshowでうまくいきました。

于 2010-07-08T11:57:34.163 に答える
1

昨日も同様の質問がありました。

drupal の論理は、すべてのタイプのページとコンテンツ タイプにわたってページの共通要素をページに含める必要があるというものです。ページは最上位のテンプレートです。コンテンツ タイプごとに変更しようとすると、テーマが正しく分離されていない可能性があります。さまざまなタイプのノードを区別するためのノード テーマがあります。形式は node-[NODE TYPE].tpl.php です。

コンテンツ タイプ「レストラン」を作成しましたか? これを行うと、gmap などのモジュールが役立つことがあります。

于 2010-07-08T11:02:36.160 に答える
1

次の関数を template.php ファイルに追加します。「themename」をテーマの実際の名前に置き換えます。これは、「レストラン」用に別のコンテンツ タイプを作成したことを前提としています。以前の回答とコメントから収集したものです。編集した template.php ファイルをアップロードしてテーマ レジストリを更新すると、page-restaurant.tpl.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;
}
于 2010-07-08T22:19:34.537 に答える