/** * @param $result * * @return string */ public static function output(&$result) { $requestParams = CRM_Utils_Request::exportValues(); $hier = FALSE; if (is_scalar($result)) { if (!$result) { $result = 0; } $result = self::simple(array('result' => $result)); } elseif (is_array($result)) { if (CRM_Utils_Array::isHierarchical($result)) { $hier = TRUE; } elseif (!array_key_exists('is_error', $result)) { $result['is_error'] = 0; } } else { $result = self::error('Could not interpret return values from function.'); } if (!empty($requestParams['json'])) { header('Content-Type: application/json'); if (!empty($requestParams['prettyprint'])) { // Used by the api explorer return self::jsonFormated(array_merge($result)); } return json_encode(array_merge($result)); } if (isset($result['count'])) { $count = ' count="' . $result['count'] . '" '; } else { $count = ""; } $xml = "<?xml version=\"1.0\"?>\n <ResultSet xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" {$count}>\n "; // check if this is a single element result (contact_get etc) // or multi element if ($hier) { foreach ($result['values'] as $n => $v) { $xml .= "<Result>\n" . CRM_Utils_Array::xml($v) . "</Result>\n"; } } else { $xml .= "<Result>\n" . CRM_Utils_Array::xml($result) . "</Result>\n"; } $xml .= "</ResultSet>\n"; return $xml; }
function output( &$config, &$result ) { $hier = false; if ( is_scalar( $result ) ) { if ( ! $result ) { $result = 0; } $result = self::simple( array( 'result' => $result ) ); } else if ( is_array( $result ) ) { if ( CRM_Utils_Array::isHierarchical( $result ) ) { $hier = true; } else if ( ! array_key_exists( 'is_error', $result ) ) { $result['is_error'] = 0; } } else { $result = self::error( 'Could not interpret return values from function.' ); } if ( CRM_Utils_Array::value( 'json', $_REQUEST ) ) { header( 'Content-Type: text/javascript' ); $json = json_encode(array_merge($result)); return str_replace (",{","\n,{",$json); } $xml = "<?xml version=\"1.0\"?> <ResultSet xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> "; // check if this is a single element result (contact_get etc) // or multi element if ( $hier ) { /* foreach ( $result as $n => $v ) { $xml .= "<Result>\n" . CRM_Utils_Array::xml( $v ) . "</Result>\n"; } */ $xml .= "<Result>\n" . CRM_Utils_Array::xml( $result ) . "</Result>\n"; } else { $xml .= "<Result>\n" . CRM_Utils_Array::xml( $result ) . "</Result>\n"; } $xml .= "</ResultSet>\n"; return $xml; }