aboutsummaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorSilvio <silvio@devlet.com.br>2010-08-23 16:21:12 -0300
committerSilvio <silvio@devlet.com.br>2010-08-23 16:21:12 -0300
commit9fb011b14ef82caf9adf266d81a4984b17280822 (patch)
tree4cedf7656f254a731a681c73e1eb41c7f653331a /classes
parent3fa521d2a74df3e243f36bbf6995eea8082573cb (diff)
downloadcinisis-9fb011b14ef82caf9adf266d81a4984b17280822.tar.gz
cinisis-9fb011b14ef82caf9adf266d81a4984b17280822.tar.bz2
Refactoring CSV app using IsisConnector
Diffstat (limited to 'classes')
-rw-r--r--classes/IsisConnector.php2
-rw-r--r--classes/IsisReader.php14
-rw-r--r--classes/helpers/CinisisDisplayHelper.php72
3 files changed, 86 insertions, 2 deletions
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);
@@ -61,6 +64,17 @@ class IsisReader {
/**
* 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.
*
* @param &$values
* Array with bracketed strings.
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();
+ }
+ }
}