uc_termsofservice.rules.inc in Ubercart Terms of Service 7
Conditional Actions hooks and functions for the terms of service panes.
File
uc_termsofservice.rules.incView source
<?php
/**
* @file
* Conditional Actions hooks and functions for the terms of service panes.
*/
/**
* Implements hook_ca_predicate().
*/
function uc_termsofservice_ca_predicate() {
$predicates['uc_termsofservice_display_pane'] = array(
'#title' => t('Display pane depending on the product classes'),
'#class' => 'uc_termsofservice',
'#trigger' => 'uc_termsofservice_display_pane',
'#status' => 1,
'#conditions' => array(
'#operator' => 'AND',
'#conditions' => array(
array(
'#name' => 'uc_termsofservice_condition_product_class',
'#title' => t('Check if there are products of the selected product classes.'),
'#argument_map' => array(
'cart' => 'cart',
),
'#settings' => array(
'negate' => FALSE,
'class' => array(
'product',
),
),
),
),
),
'#actions' => array(),
);
return $predicates;
}
/**
* Implements hook_ca_trigger().
*/
function uc_termsofservice_ca_trigger() {
$triggers['uc_termsofservice_display_pane'] = array(
'#title' => t('Display checkout or cart panes'),
'#category' => t('Checkout'),
'#arguments' => array(
'cart' => array(
'#entity' => 'cart',
'#title' => t('Cart'),
),
),
);
return $triggers;
}
/**
* Implements hook_ca_condition().
*/
function uc_termsofservice_ca_condition() {
$conditions['uc_termsofservice_condition_product_class'] = array(
'#title' => t('Order has a product of a particular class'),
'#category' => t('Order: Product'),
'#callback' => 'uc_termsofservice_condition_product_class',
'#arguments' => array(
'cart' => array(
'#entity' => 'cart',
'#title' => t('Cart'),
),
),
);
return $conditions;
}
/**
* Condition Callbacks and Forms.
*/
/**
* Checks that an order has a product of the selected class.
*
* @see uc_termsofservice_condition_product_class_form()
*/
function uc_termsofservice_condition_product_class($cart, $settings) {
foreach ($cart as $cart_item) {
if ($cart_item->nid) {
$type = db_result(db_query("SELECT type FROM {node} WHERE nid = %d", $cart_item->nid));
if (in_array($type, array_values($settings['class']), TRUE)) {
return TRUE;
}
}
}
return FALSE;
}
/**
* @see uc_termsofservice_condition_product_class()
*/
function uc_termsofservice_condition_product_class_form($form_state, $settings = array()) {
$form['class'] = array(
'#type' => 'checkboxes',
'#title' => t('Product class'),
'#options' => uc_product_type_names(),
'#default_value' => $settings['class'],
'#multiple' => TRUE,
);
return $form;
}
Functions
Name![]() |
Description |
---|---|
uc_termsofservice_ca_condition | Implements hook_ca_condition(). |
uc_termsofservice_ca_predicate | Implements hook_ca_predicate(). |
uc_termsofservice_ca_trigger | Implements hook_ca_trigger(). |
uc_termsofservice_condition_product_class | Checks that an order has a product of the selected class. |
uc_termsofservice_condition_product_class_form |