2012-07-10 92 views
0

有沒有辦法找出html.tpl.php中父頁面的標題是什麼?我問,因爲我改變我的背景圖片取決於我的網頁上選擇的父母鏈接。 希望這是有道理的,網址是:http://quaaoutlodge.com/drupal-7.14/搞清楚html.tpl.php中的父鏈接

謝謝你,羅恩


沒弄清楚如何可以做到這一點......不得不修改我的架構,並採取必要的措施,完成我想要做的事...

+2

你能解釋一下「父頁面」是什麼意思嗎? – deefour 2012-07-10 04:26:15

回答

2

PHP是一種服務器端編程語言。當用戶請求一個頁面時,服務器會爲該頁面執行PHP並將生成的HTML發送給用戶。 PHP通信只能以這種方式發生。用戶只能看到生成的HTML。如果用戶需要與PHP交互(如更改頁面輸出),用戶必須發起另一個頁面請求。

Javascript是一種客戶端編程語言。在正常的服務器環境中,Javascript執行只發生在用戶的機器上(不在服務器上)。在PHP執行期間不會發生Javascript執行,所以你不能將Javascript代碼與PHP代碼混合。 Rab的建議使用Javascript並不能回答你的問題,你的回覆是試圖將Javascript與PHP混合使用。

在Drupal條款中,您可以通過有組織的菜單訪問站點上的節點集合。每當用戶查看特定一級菜單項的子頁面時,您都希望更改頁面上的特定圖像(我將假定Quaaout小屋標識)。例如,查看「我們的歷史」或「到達這裏」將加載(而不是默認的Quaaout Lodge標誌)以某種方式連接到「The Lodge」的父項目的不同圖像。

一個最簡單的解決方案,因爲它好像你是不是很熟悉的Drupal是指定的圖像在CSS,而不是作爲一個img元素的background-image屬性。每個頁面應該有一個唯一的類屬性應用於其頁面的body元素。例如,在「我們的歷史」頁面上,適用於body元素的類別之一是page-node-7page-node-7不適用於Drupal中的任何其他頁面。您可以快速查找每個頁面的唯一類,並添加CSS屬性以更改每個頁面的background-image等。如果您想使用此方法,但使其更清潔一些,則可以使用Node Class module來應用自定義類到每個頁面。您可以在「The Lodge」菜單項下創建的每個頁面添加一個「小屋圖像」類。這可以讓內容編輯人員更改特定頁面的圖像,而無需任何人直接修改CSS。我假設(我可能是錯的),Drupal7中的Node Class模塊會將一個類添加到body元素以及節點的HTML容器中。

或者,更好的解決方案是使用Drupal模塊根據特定菜單或路徑條件選擇徽標。這些僅在使用Drupal中的徽標配置選項(在外觀設置中)設置圖像時纔有效。最合適的模塊可能是Logo Tool,但它尚未針對Drupal7開發,所以它還不是一個選項。 Subsites module在開發中有一個Drupal7版本。 Dev版本通常不推薦用於生產站點,但似乎值得一試。

一些其他的方法,更好但會更困難的是:覆蓋/設置模板中的標誌。php預處理功能,編寫一個新的模塊來設置標識或創建一個自定義圖像塊(並添加一個新的區域到您的主題中顯示塊),自行將徽標工具轉換爲Drupal7,編寫一個新模塊以自動添加一個用於頁面菜單祖先的body元素的class屬性(除了創建菜單條目之外,不需要額外操作的CSS方法),還有一些我能想到的。

所以你有很多選擇。