In the simplest terms I am trying to add a ‘vendor’ column to the order view table in Ubercart which will display the author of each line item product.
Below is the table of interest. I have hacked the direct code contained in uc_order.order_pane.inc
but will refactor with hooks the drupal way ASAP. I have added my comments in the code below.
function uc_op_products_view_table($order) { dpm($order); $table = array( '#type' => 'tapir_table', '#attributes' => array('class' => array('order-pane-table')), ); $table['#columns']['qty'] = array( 'cell' => array( 'data' => theme('uc_qty_label'), 'class' => array('qty'), ), 'weight' => 0, ); $table['#columns']['product'] = array( 'cell' => array( 'data' => t('Product'), 'class' => array('product'), ), 'weight' => 1, );
Added by me:
$table['#columns']['Vendor'] = array( 'cell' => array( 'data' => t('Vendor'), 'class' => array('vendor'), ), 'weight' => 1.5, );
.
$table['#columns']['model'] = array( 'cell' => array( 'data' => t('SKU'), 'class' => array('sku'), ), 'weight' => 2, ); if (user_access('administer products')) { $table['#columns']['cost'] = array( 'cell' => array( 'data' => t('Cost'), 'class' => array('cost'), ), 'weight' => 3, ); } $table['#columns']['price'] = array( 'cell' => array( 'data' => t('Price'), 'class' => array('price'), ), 'weight' => 4, ); $table['#columns']['total'] = array( 'cell' => array( 'data' => t('Total'), 'class' => array('total'), ), 'weight' => 5, ); if (!empty($order->products)) { $build = entity_view('uc_order_product', $order->products);
This is the entity I want to edit. uc_order_product
needs to have a field for Author / Vendor to make my table look right.
dpm($build); $table['#rows'] = $build['uc_order_product']; } else { $table['#rows'][]['product'] = array( '#markup' => t('This order contains no products.'), '#cell_attributes' => array('colspan' => 'full'), ); } return $table; }