uc_product.rules.inc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * @file
  4. * Rules hooks for uc_product.module.
  5. */
  6. /**
  7. * Implements hook_rules_event_info().
  8. */
  9. function uc_product_rules_event_info() {
  10. $events['uc_product_load'] = array(
  11. 'label' => t('A product is being loaded'),
  12. 'group' => t('Node'),
  13. 'variables' => array(
  14. 'node' => array(
  15. 'type' => 'node',
  16. 'label' => t('Node'),
  17. 'skip save' => TRUE,
  18. ),
  19. ),
  20. );
  21. return $events;
  22. }
  23. /**
  24. * Implements hook_rules_condition_info().
  25. */
  26. function uc_product_rules_condition_info() {
  27. $items['node_is_product'] = array(
  28. 'label' => t('Content is a product'),
  29. 'base' => 'uc_product_rules_condition_node_is_product',
  30. 'parameter' => array(
  31. 'node' => array('type' => 'node', 'label' => t('Content')),
  32. ),
  33. 'group' => t('Node'),
  34. 'access callback' => 'rules_node_integration_access',
  35. );
  36. return $items;
  37. }
  38. /**
  39. * Condition: Check for product content types.
  40. */
  41. function uc_product_rules_condition_node_is_product($node) {
  42. return in_array($node->type, uc_product_types());
  43. }
  44. /**
  45. * Provides the content types of products as asserted metadata.
  46. */
  47. function uc_product_rules_condition_node_is_product_assertions($element) {
  48. return array('node' => array('bundle' => uc_product_types()));
  49. }