Exemple #1
0
 /**
  * @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;
 }
Exemple #2
0
    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;
    }