cart_link.inc 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. $plugin = array(
  3. 'title' => t('Ubercart Cart Link'),
  4. 'render callback' => 'uc_cartlinksbuilder_cart_link_render',
  5. 'edit form' => 'uc_cartlinksbuilder_cart_link_edit_form',
  6. 'category' => t('Node'),
  7. 'no title override' => FALSE,
  8. 'single' => TRUE,
  9. 'required context' => new ctools_context_required(t('Node'), 'node'),
  10. );
  11. function uc_cartlinksbuilder_cart_link_render($subtype, $conf, $args, $context) {
  12. $office = $context->data;
  13. $content = new stdClass();
  14. $cart_link_path = 'cart/add/p' . $context->data->nid . '_q' . $conf['quantity'];
  15. $link = l($conf['link_label'], $cart_link_path, array('query' => array('destination' => $conf['link_destination'])));
  16. $content->content = $link;
  17. return $content;
  18. }
  19. function uc_cartlinksbuilder_cart_link_edit_form($form, $form_state) {
  20. $conf = $form_state['conf'];
  21. $form['link_label'] = array(
  22. '#type' => 'textfield',
  23. '#title' => t('Link Label'),
  24. '#default_value' => $conf['link_label'],
  25. );
  26. $form['link_destination'] = array(
  27. '#type' => 'textfield',
  28. '#title' => t('Link Destination'),
  29. '#default_value' => $conf['link_destination'],
  30. );
  31. $form['quantity'] = array('#type' => 'textfield', '#title' => t('Quantity'), '#default_value' => $conf['quantity']);
  32. return $form;
  33. }
  34. function uc_cartlinksbuilder_cart_link_edit_form_submit(&$form, &$form_state) {
  35. foreach (element_children($form) as $key) {
  36. if (!empty($form_state['values'][$key])) {
  37. $form_state['conf'][$key] = $form_state['values'][$key];
  38. }
  39. }
  40. }