- $dao = CRM_Core_DAO::executeQuery("
- SELECT ppt.class_name, ppt.name as processor_name, pp.id AS processor_id
- FROM civicrm_payment_processor_type ppt
- INNER JOIN civicrm_payment_processor pp
- ON pp.payment_processor_type_id = ppt.id
- AND pp.is_active
- AND pp.is_test = %1
- WHERE ppt.name = %2
- ",
- array(
- 1 => array($mode == 'test' ? 1 : 0, 'Integer'),
- 2 => array($params['processor_name'], 'String'),
- )
- );
+ $sql = "SELECT ppt.class_name, ppt.name as processor_name, pp.id AS processor_id
+ FROM civicrm_payment_processor_type ppt
+ INNER JOIN civicrm_payment_processor pp
+ ON pp.payment_processor_type_id = ppt.id
+ AND pp.is_active
+ AND pp.is_test = %1";
+ $args[1] = array($mode == 'test' ? 1 : 0, 'Integer');
+
+ if (isset($params['processor_id'])) {
+ $sql .= " WHERE pp.id = %2";
+ $args[2] = array($params['processor_id'], 'Integer');
+ $notfound = "No active instances of payment processor ID#'{$params['processor_id']}' were found.";
+ }
+ else {
+ $sql .= " WHERE ppt.name = %2";
+ $args[2] = array($params['processor_name'], 'String');
+ $notfound = "No active instances of the '{$params['processor_name']}' payment processor were found.";
+ }
+
+ $dao = CRM_Core_DAO::executeQuery($sql, $args);