/** * Constructor * * The param should be an array of arrays (NOT assoc arrays) * * @param array $array */ function __construct($array) { if (!is_array($array)) { throw new Exception('Must pass an array'); } if (count($array) && air2_is_assoc_array($array[0])) { throw new Exception('Array objects mustnt be assoc arrays!'); } $this->input = $array; }
/** * Helper function to validate air2 json variables. Includes 4 tests. * * @param string|assoc-array $json_obj * @param string $name subname to identify the test */ function validate_json($json, $name) { if (is_string($json)) { $json = json_decode($json, true); } ok(air2_is_assoc_array($json), "{$name} json check - json OK"); ok(isset($json['radix']), "{$name} json check - radix"); ok(isset($json['meta']), "{$name} json check - metaData"); if (isset($json['meta']['total'])) { ok(!air2_is_assoc_array($json['radix']), "{$name} json check - multiple"); } else { ok(air2_is_assoc_array($json['radix']), "{$name} json check - single"); } }
function recursive_item_print($key, $val, $indent = 0) { $pad = str_pad('', $indent); // case 1 - list-array - print each item if (is_int($key)) { if (air2_is_assoc_array($val)) { foreach ($val as $subkey => $subval) { recursive_item_print($subkey, $subval, $indent); } } else { throw new Exception("Bad item format - {$key} - {$val}"); } } elseif (is_string($key)) { if (air2_is_assoc_array($val)) { echo "{$pad}<{$key}>\n"; foreach ($val as $subkey => $subval) { recursive_item_print($subkey, $subval, $indent + 1); } echo "{$pad}</{$key}>\n"; } elseif (is_array($val)) { foreach ($val as $subidx => $subval) { if (is_string($subval)) { if ($key == 'media') { echo "{$pad}<enclosure url='{$subval}' type='image/png' />\n"; } elseif ($key == 'guid') { echo "{$pad}<{$key} isPermaLink=\"false\"><![CDATA[" . $subval . "]]></{$key}>\n"; } else { echo "{$pad}<{$key}><![CDATA[" . $subval . "]]></{$key}>\n"; } } else { echo "{$pad}<{$key}>\n"; recursive_item_print($subidx, $subval, $indent + 1); echo "{$pad}</{$key}>\n"; } } } else { if ($key == 'media') { echo "{$pad}<enclosure url='{$val}' type='image/png' />\n"; } elseif ($key == 'guid') { echo "{$pad}<{$key} isPermaLink=\"false\"><![CDATA[" . $val . "]]></{$key}>\n"; } else { echo "{$pad}<{$key}><![CDATA[" . $val . "]]></{$key}>\n"; } } } else { throw new Exception("Bad item format - {$key} - {$val}"); } }
* @cfg array $radix data to print * @cfg array $header (optional) headers for csv * @cfg string $filename (optional) filename for download * * @author rcavis * @package default */ if (!isset($csv)) { throw new Exception('csv var not defined'); } if (!isset($csv['radix']) || count($csv['radix']) < 1) { throw new Exception('radix not defined'); } $csv_lines = array(); // make radix an array if (air2_is_assoc_array($csv['radix'])) { $csv['radix'] = array($csv['radix']); } // if there is a 'header' key, use that, otherwise array keys if (isset($csv['header'])) { $csv_lines[] = $csv['header']; } else { // add every key that doesn't point at an array $csv_lines[0] = array(); foreach ($csv['radix'][0] as $key => $val) { if (!is_array($val)) { $csv_lines[0][] = $key; } } } $width = count($csv_lines[0]);