Вывод дополнительных полей CCK в корзине Ubercart

Главные вкладки

Аватар пользователя bulinat@drupal.org bulinat@drupal.org 16 мая 2010 в 11:04

Подскажите, можно ли на странице корзины уберкарта /cart вывести дополнительные поля CCK, помимо названия товара,количества и цены?

Комментарии

Аватар пользователя Xermit Xermit 16 мая 2010 в 13:32

Можно все Smile

Ниже список функций которые можно темизировать

function uc_cart_theme() {
  return array(
    'uc_cart_block_title' => array(
      'arguments' => array('title' => NULL, 'icon_class' => FALSE, 'collapsible' => FALSE),
    ),
    'uc_cart_block_title_icon' => array(
      'arguments' => array(),
    ),
    'uc_cart_block_content_cachable' => array(
      'arguments' => array(),
    ),
    'uc_cart_block_content' => array(
      'arguments' => array(),
    ),
    'uc_cart_block_items' => array(
      'arguments' => array(),
    ),
    'uc_cart_block_summary' => array(
      'arguments' => array(),
    ),
    'uc_empty_cart' => array(
      'arguments' => array(),
    ),
    'uc_cart_view_form' => array(
      'arguments' => array('form' => NULL),
    ),
    'uc_cart_view_price' => array(
      'arguments' => array('form' => NULL),
    ),
    'address_pane' => array(
      'arguments' => array('form' => NULL),
    ),
    'cart_review_table' => array(
      'arguments' => array('show_subtotal' => TRUE),
    ),
    'uc_cart_checkout_form' => array(
      'arguments' => array('form' => NULL),
      'file' => 'uc_cart.pages.inc',
    ),
    'uc_cart_checkout_review' => array(
      'arguments' => array('panes' => NULL, 'form' => NULL),
      'file' => 'uc_cart.pages.inc',
    ),
    'uc_cart_complete_sale' => array(
      'arguments' => array('message' => ''),
    ),
  );
}

Насколько я поглядел вам наверное надо темизировать функцию theme_uc_cart_block_items
как раз в ней распечатывается кол-во, заголовок цена и описание
в этой функции видно что там загружается нода, и вместе с ней cck поля наверное тоже

function theme_uc_cart_block_items($items) {
  // If there are items in the shopping cart...
  if ($items) {
    $output = '<table class="cart-block-items"><tbody>';
    $row_class = 'odd';

    $context = array(
      'revision' => 'themed',
      'type' => 'price',
    );

    // Loop through each item.
    foreach ($items as $item) {
      $context['subject'] = array(
        'cart_item' => $item,
        'node' => node_load($item->nid),
      );
      // Add the basic row with quantity, title, and price.
      $output .= '<tr class="'. $row_class .'"><td class="cart-block-item-qty">'. $item['qty'] .'</td>'
                .'<td class="cart-block-item-title">'. $item['title'] .'</td>'
                .'<td class="cart-block-item-price">'. uc_price($item['price'], $context) .'</td></tr>';

      // Add a row of description if necessary.
      if ($item['desc']) {
        $output .= '<tr class="'. $row_class .'"><td colspan="3" class="cart-block-item-desc">'. $item['desc'] .'</td></tr>';
      }

      // Alternate the class for the rows.
      $row_class = ($row_class == 'odd') ? 'even' : 'odd';
    }

    $output .= '</tbody></table>';
  }
  else {
    // Otherwise display an empty message.
    $output = '<p>'. t('There are no products in your shopping cart.') .'</p>';
  }

  return $output;
}