From 9fb011b14ef82caf9adf266d81a4984b17280822 Mon Sep 17 00:00:00 2001 From: Silvio Date: Mon, 23 Aug 2010 16:21:12 -0300 Subject: Refactoring CSV app using IsisConnector --- classes/IsisConnector.php | 2 + classes/IsisReader.php | 14 +++++++ classes/helpers/CinisisDisplayHelper.php | 72 +++++++++++++++++++++++++++++++- 3 files changed, 86 insertions(+), 2 deletions(-) (limited to 'classes') diff --git a/classes/IsisConnector.php b/classes/IsisConnector.php index 901e15b..2ab2ee8 100644 --- a/classes/IsisConnector.php +++ b/classes/IsisConnector.php @@ -116,6 +116,8 @@ class IsisConnector extends IsisMap { * Field data. */ public function getMainItems($field) { + $values = array(); + foreach (new IsisRowIterator($this, $field) as $row) { $values[$row] = $this->getMainItem($field, $row); } diff --git a/classes/IsisReader.php b/classes/IsisReader.php index bb818a5..9926d3b 100644 --- a/classes/IsisReader.php +++ b/classes/IsisReader.php @@ -52,6 +52,9 @@ class IsisReader { * * @param $value * Array with bracketed strings. + * + * @return + * Array with strings without brackets. */ public function removeBrackets($value) { $value = str_replace('<', '', $value); @@ -59,6 +62,17 @@ class IsisReader { return $value; } + /** + * Remove brackets from strings whithin an array. + * Callback version + * + * @param $value + * Array with bracketed strings. + */ + public function removeBracketsCallback(&$value = NULL) { + $value = $this->removeBrackets($value); + } + /** * Remove brackets from strings whithin an array. * diff --git a/classes/helpers/CinisisDisplayHelper.php b/classes/helpers/CinisisDisplayHelper.php index 0a4b7f7..2f8fa65 100644 --- a/classes/helpers/CinisisDisplayHelper.php +++ b/classes/helpers/CinisisDisplayHelper.php @@ -11,8 +11,10 @@ class CinisisDisplayHelper { * Page title; */ function __construct($title) { - $this->header($title); - $this->title($title); + if ($title != NULL) { + $this->header($title); + $this->title($title); + } } /** @@ -347,4 +349,70 @@ class CinisisDisplayHelper { protected static function cliDump($var) { print_r($var); } + + /** + * Set the response helper. + * + * @param $mime + * MIME type. + * + * @param $filename + * File name. + */ + protected static function webHttpHeader($mime, $filename) { + header("Content-type: $mime"); + header("Content-Disposition: attachment; filename=$filename"); + header("Pragma: no-cache"); + header("Expires: 0"); + } + + /** + * Display a value with CSV format. + * + * @param $value + * Value entry. + */ + protected static function webCsv($value = NULL) { + echo '"'. preg_replace('/"/', '""', $value) .'",'; + } + + /** + * Display CSV titles. + * + * @param $format + * ISIS database format. + */ + protected static function webCsvTitles($format) { + // Format fields. + foreach ($format['fields'] as $field) { + self::csv($field['name']); + if (isset($field['subfields']) && is_array($field['subfields'])) { + foreach ($field['subfields'] as $key => $value) { + self::csv($field['name'] .': '. $value); + } + } + } + } + + /** + * Display a new CSV row. + */ + protected static function webCsvRow() { + echo "\n"; + } + + /** + * Merge items in a CSV roll. + * + * @param $items + * Array with items to be merged. + */ + protected function webMergeCsvItems($items) { + if (!empty($items)) { + self::csv(implode(';', $items)); + } + else { + self::csv(); + } + } } -- cgit v1.2.3