Drupal 7 开发内部培训资料, 分头诗人

关于在Ubercart购物车显示额外信息的问题

赞成!
0
否决!

最近在测试Ubercart的过程中,我发现了这样一个问题,ubercart的主题修改很麻烦,尤其是购物车,很多地方都是Table布局,而且没有先关的tpl文件,这就为主题修改带来了很大的问题。

 

言归正传。

上图是Ubercart中的产品Book Name1的产品页面,Book Name1是属于分类Php Book下产品。那么怎样才能将 已加入购物车的Book Name1的分类信息显示在右侧的购物车Block中呢?或是更近一步在购物车Cart页面也显示分类信息呢?

 

Cart block主要由uc_cart.theme.inc定义,由行71开始,代码如下

/**
 * Themes the shopping cart block content.
 *
 * @param $variables
 *   An associative array containing:
 *   - help_text: Text to place in the small help text area beneath the cart
 *     block title or FALSE if disabled.
 *   - items: An associative array of cart item information containing:
 *     - qty: Quantity in cart.
 *     - title: Item title.
 *     - price: Item price.
 *     - desc: Item description.
 *   - item_count: The number of items in the shopping cart.
 *   - item_text: A textual representation of the number of items in the
 *     shopping cart.
 *   - total: The unformatted total of all the products in the shopping cart.
 *   - summary_links: An array of links used in the cart summary.
 *   - collapsed: TRUE or FALSE indicating whether or not the cart block is
 *     collapsed.
 *
 * @ingroup themeable
 */
function theme_uc_cart_block_content($variables) {
  $help_text = $variables['help_text'];
  $items = $variables['items'];
  $item_count = $variables['item_count'];
  $item_text = $variables['item_text'];
  $total = $variables['total'];
  $summary_links = $variables['summary_links'];
  $collapsed = $variables['collapsed'];

  $output = '';

  // Add the help text if enabled.
  if ($help_text) {
    $output .= '<span class="cart-help-text">' . $help_text . '</span>';
  }

  // Add a table of items in the cart or the empty message.
  $output .= theme('uc_cart_block_items', array('items' => $items, 'collapsed' => $collapsed));

  // Add the summary section beneath the items table.
  $output .= theme('uc_cart_block_summary', array('item_count' => $item_count, 'item_text' => $item_text, 'total' => $total, 'summary_links' => $summary_links));

  return $output;
}

 

由于对$variables的不了解,请大神能够稍微告知一下$variables都包含什么信息,是否包含 已加入购物车的商品的分类信息,即上图的catalog信息,如果包含,该怎么提取?

因为在UC中,没有cart_block.tpl文件,所有的购物车内容,都是直接传递给变量的,这一点让我很困恼,有太多的变量,又很难找到正确的变量获得想要的信息。

求大神给一点思路。

 

1 个回答

赞成!
0
否决!

开发要善用 devel 模块,想知道$variables 都包含什么,用 dsm($variables);输出看看就知道了