2009-05-29 105 views
3

我想在Drupal網站上設計產品風格,但遇到問題。 我找不到節點(產品)視圖放在ubercart中的位置!Drupal/Ubercart ...節點樣式?

我使用的UC 5.x-1.7,我需要風格節點(產品)視圖頁面。目前在我的node.tpl.php文件中,我有

print $body;
,其中吐出所有的SKU,屬性,價格,圖片等。

問題是我需要有不同的風格 - 我必須工作到由設計師完成的設計。我已經開始重新做我自己的版本,使用像

$node->content['body']['#value']
等變量。

我遇到了麻煩,嘗試使用產品的各種屬性。我找不到如何將它們放到我的頁面上,或者從編碼器的角度來看如何使用它們的任何文檔。

有沒有更簡單的方法?我在哪裏尋找樣式現有的顯示(即$ body變量)?

編輯:我的主題是基於禪宗主題

回答

2

你會想看看這將是一個路徑下,如模板:

./sites/all/modules/ubercart/uc_product/views 

這將是一個開始。這就是節點可能建立的地方。

4

如果問題是純粹的風格,你可以寫你自己的CSS來做到這一點。

可以使用theamer module告訴你要使用的模板文件,我猜想,有一些它配備的Ubercart你可以重寫。查看信息的候選模板部分

最後,您可以使用hook_nodeapi op=view來控制實際進入頁面以顯示在$ body變量中的內容。

1

如果使用Devel模塊,您可以看到數組和對象的確切結構,並從$ node對象中準確獲取所需內容。然後創建一個node-product.tpl.php文件,並用這些部分替換$ content變量。大多數這些變量值都有完整的標記。

如果你想改變屬性的標記,你需要改變處理屬性div的預處理函數。如果你只是從開頭和結尾刪除ID =「屬性」(類可能?我忘了)div,他們將全部打印在他們自己的class =「attribute」包裝中。只需將其添加到您的template.php文件即可。

然後,您可以使用CSS將它們全部移動到頁面上,而不是將它們都捕獲到一個div中。

您也可以使用上面的方法打印單獨的頁面變量來移動標記中的不同元素。

很多,可以用純CSS來實現,但它是不錯的標記不破時,CSS錯誤顯示在惡劣的瀏覽器。

希望這是有幫助的。我不確定是否所有這些都可以在Drupal 5中使用,因爲我以6的方式完成了所有這些......希望如此。

+0

值得注意的螢火蟲的Drupal插件http://drupal.org/project/drupalforfirebug這個工具是相當不錯的。 – cgp 2009-09-11 14:31:17

1

下面是如由Jeremy法國提到使用hook_nodeapi的一個示例:在模塊/的Ubercart/uc_product/uc_product.module看到各種內容字段)

/** 
* Implements hook_nodeapi(). 
*/ 
function YOUR_MODULE_nodeapi(&$node, $op, $arg3 = NULL, $arg4 = NULL) { 
    switch ($op) { 
    case 'view': 
    // Don't show list price unless set. 
    if (isset($node->content['list_price']) && $node->list_price == 0) { 
     unset($node->content['list_price']); 
    } 
    break; 
    } 
} 

查找範圍uc_product_view(。