2012-08-15 93 views
0

我正在創建一個內容類型,其中包含一個圖像文件的字段 - 很簡單。但是,我希望此圖像文件可以顯示爲背景圖像。我是否必須創建一個自定義node.tpl並將圖像源包含在內嵌的style="background: url(sites/all/themes/theme/images/image.png);"中,還是有一種更優雅的方式來執行此操作,可能包括使用JavaScript從字段中寫入樣式表?具有創建自己的CSS的字段的自定義內容類型?

回答

1

可以使用drupal_add_css在hook_node_view功能,節點預處理腳本或節點模板直接添加樣式:

$css = "#bg-img { 
    background: url(/sites/all/themes/theme/images/image.png) left top no-repeat; 
};" 
drupal_add_css($css, 'inline'); 

或者,你可以使用Drupal的設置,然後在jQuery腳本引用它;查找drupal_add_js使用與 '設置' 選項&的例子:使用Drupal.settings.moduleName [ 'bgImg']

IMO調整node.tpl.php你描述是在jQuery的

drupal_add_js(array("moduleName" => array('bgImg' => $absolute_url)), 'setting'); 

參考完全合情合理。使用drupal_add_css可讓您在節點外的元素(例如整個頁面)上設置背景圖像。當我需要更高級的定位/調整大小選項時,我使用了jquery。

+0

感謝您的幫助!不知道drupal_add_css,看起來很有用。 – alexvance 2012-08-20 15:09:38

1

不是讀單證和挖掘到代碼,只需使用場格式CSS模塊(https://drupal.org/project/field_formatter_class),並把它在幾分鐘內完成。這是一個寶石,你會發現自己反覆使用它。它允許您在自定義內容類型的「管理顯示」中向每個字段添加css類和其他選項。至於爲用戶上傳的圖像提供背景服務的特定情況,此處爲屏幕截圖。將一個類添加到Field Formatter Class字段中,然後您應該能夠使用css和jquery進一步重新定位和調整大小。

enter image description here

相關問題