0

親ページのタイトルが html.tpl.php にあるものを把握する方法はありますか? ページで選択された親リンクに応じて背景画像を変更するため、質問しています。URL はhttp://quaaoutlodge.com/drupal-7.14/です。

ありがとう、ロン


これを行う方法がわかりませんでした...アーキテクチャを修正し、やりたいことを達成するために必要な手順を実行する必要がありました...

4

1 に答える 1

2

PHP はサーバー側のプログラミング言語です。ユーザーがページを要求すると、サーバーはそのページの PHP を実行し、結果の HTML をユーザーに送信します。PHP 通信は、この方法でのみ発生します。ユーザーには、結果の HTML しか表示されません。ユーザーが PHP と対話する必要がある場合 (ページ出力の変更など)、ユーザーは別のページ要求を開始する必要があります。

Javascript はクライアント側のプログラミング言語です。通常のサーバー環境では、Javascript の実行はユーザーのマシン上でのみ行われます (サーバー上では行われません)。PHP の実行中に Javascript は実行されないため、Javascript コードと PHP コードを混在させることはできません。Javascript を使用するという Rab の提案はあなたの質問に答えていません。彼へのあなたの返信は、Javascript と PHP を混ぜようとしているというものでした。

Drupal の用語では、整理されたメニューからアクセスできるサイト上のノードのコレクションを持っています。ユーザーが特定の第 1 レベルのメニュー項目の子ページを表示しているときに、ページ上の特定の画像 (Quaaout Lodge のロゴを想定しています) を変更したいとします。たとえば、"Our History" または "Getting Here" を表示すると、(デフォルトの Quaaout Lodge ロゴの代わりに) "The Lodge" の親アイテムに何らかの方法で接続された別の画像が読み込まれます。

Drupal にあまり慣れていないように思われるので、最も簡単な解決策の 1 つは、画像を要素background-imageではなく CSS のプロパティとして指定することです。各ページには、そのページの要素にimg適用される一意のクラス属性が必要です。bodyたとえば、「私たちの歴史」ページでは、body要素に適用されるクラスの 1 つがpage-node-7. page-node-7Drupal の他のページには適用されません。各ページの一意のクラスをすばやく検索し、CSS プロパティを追加してそれぞれのクラスを変更することbackground-imageができます。この方法を使用したいが、少しきれいにしたい場合は、Node Class モジュールを使用して改善できる可能性があります。各ページにカスタム クラスを適用します。「The Lodge」メニュー項目の下に作成する各ページに「lodge-image」クラスを追加できます。これにより、コンテンツ エディターは、CSS を直接変更する必要なく、特定のページの画像を変更できます。Drupal7 の Node Class モジュールは、body 要素とノードの HTML コンテナーにクラスを追加すると想定しています (間違っているかもしれません)。

または、Drupal モジュールを使用して、特定のメニューまたはパスの条件に基づいてロゴを選択することをお勧めします。これらは、Drupal のロゴ設定オプション (外観設定) を使用して画像が設定されている場合にのみ機能します。最も適切なモジュールはおそらくLogo Toolでしょうが、Drupal7 用にまだ開発されていないため、まだオプションではありません。Subsites モジュールには、開発中のDrupal7 リリースがあります。Dev リリースは通常、運用サイトでの使用は推奨されませんが、試してみる価値があるようです。

より良いがより難しい他の方法は次のとおりです: template.php 前処理関数でロゴをオーバーライド/設定し、ロゴを設定するかカスタム画像ブロックを作成する新しいモジュールを記述します (そして新しい領域をブロックを表示するテーマ)、Logo Tool を自分で Drupal7 に変換し、ページのメニューの祖先の body 要素に class 属性を自動的に追加する新しいモジュールを作成します (メニュー エントリの作成以外に追加のアクションを必要としない CSS メソッド)。私が考えることができるいくつかのより多くの。

したがって、多くのオプションがあります。

于 2012-07-10T07:10:06.383 に答える