uc_product_handler_field_addtocart.inc 898 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. /**
  3. * @file
  4. * Views handler: "Add to cart" form as a field.
  5. */
  6. /**
  7. * Displays the "Add to cart" form like the product page.
  8. */
  9. class uc_product_handler_field_addtocart extends views_handler_field {
  10. /**
  11. * Overrides views_handler_field::query().
  12. */
  13. function query() {
  14. $this->ensure_my_table();
  15. $this->add_additional_fields();
  16. }
  17. /**
  18. * Overrides views_handler_field::render().
  19. */
  20. function render($values) {
  21. if (uc_product_is_product($values->{$this->aliases['type']})) {
  22. $type = node_type_get_type($values->{$this->aliases['type']});
  23. $base = $type->base;
  24. $product = node_load($values->{$this->aliases['nid']});
  25. if (function_exists($base . '_add_to_cart_form')) {
  26. $form = drupal_get_form($base . '_add_to_cart_form_' . $values->{$this->aliases['nid']}, $product);
  27. return drupal_render($form);
  28. }
  29. }
  30. }
  31. }