function theme_uc_cart_review_table in Ubercart 8.4
Same name and namespace in other branches
- 7.3 uc_cart/uc_cart_checkout_pane.inc \theme_uc_cart_review_table()
Formats the cart contents table on the checkout page.
Parameters
array $variables: An associative array containing:
- show_subtotal: TRUE or FALSE indicating if you want a subtotal row displayed in the table.
- items: An associative array of cart item information containing:
- qty: Quantity in cart.
- title: Item title.
- price: Item price.
- desc: Item description.
Return value
string The HTML output for the cart review table.
1 string reference to 'theme_uc_cart_review_table'
- uc_cart_theme in uc_cart/
uc_cart.module - Implements hook_theme().
2 theme calls to theme_uc_cart_review_table()
- CartPane::review in uc_cart/
src/ Plugin/ Ubercart/ CheckoutPane/ CartPane.php - Returns the review contents of a checkout pane.
- CartPane::view in uc_cart/
src/ Plugin/ Ubercart/ CheckoutPane/ CartPane.php - Returns the contents of a checkout pane.
File
- uc_cart/
uc_cart.theme.inc, line 26 - Theme functions for the uc_cart module.
Code
function theme_uc_cart_review_table(array $variables) {
$items = $variables['items'];
$show_subtotal = $variables['show_subtotal'];
$subtotal = 0;
// Set up table header.
$header = [
[
'data' => t('Quantity'),
'class' => [
'qty',
],
],
[
'data' => t('Products'),
'class' => [
'products',
],
],
[
'data' => t('Price'),
'class' => [
'price',
],
],
];
// Set up table rows.
// @todo Replace with Views.
foreach ($items as $item) {
$subtotal += $item->price->value * $item->qty->value;
$rows[] = [
'data' => [
[
'data' => [
'#theme' => 'uc_qty',
'#qty' => $item->qty->value,
],
'class' => [
'qty',
],
],
[
'data' => [
'#markup' => $item->title->value . uc_product_get_description($item),
],
'class' => [
'products',
],
],
[
'data' => [
'#theme' => 'uc_price',
'#price' => $item->price->value * $item->qty->value,
],
'class' => [
'price',
],
],
],
'no_striping' => TRUE,
];
}
// Add the subtotal in the table footer.
$footer = [];
if ($show_subtotal) {
$footer[] = [
'data' => [
// Cells.
[
'data' => [
'#markup' => t('Subtotal:'),
],
'colspan' => 2,
'class' => [
'subtotal-title',
],
],
[
'data' => [
'#theme' => 'uc_price',
'#price' => $subtotal,
],
'class' => [
'price',
],
],
],
// Row attributes.
'no_striping' => TRUE,
];
}
$table = [
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
'#footer' => $footer,
'#attributes' => [
'class' => [
'cart-review',
],
],
];
return drupal_render($table);
}