aboutsummaryrefslogtreecommitdiff
path: root/classes/PhpIsisDb.php
diff options
context:
space:
mode:
authorSilvio <silvio@devlet.com.br>2010-08-18 15:22:43 -0300
committerSilvio <silvio@devlet.com.br>2010-08-18 15:22:43 -0300
commitad8d8568b683e6935bec64abe88f79bf31706dd7 (patch)
tree43d00493cf8676acbcf4bec74bf44c717107ecd6 /classes/PhpIsisDb.php
parent219aa7f6b4a19b723b0c25683801b1b5d502e9f4 (diff)
downloadcinisis-ad8d8568b683e6935bec64abe88f79bf31706dd7.tar.gz
cinisis-ad8d8568b683e6935bec64abe88f79bf31706dd7.tar.bz2
Adding audit and finder classes, cleanup and organization
Diffstat (limited to 'classes/PhpIsisDb.php')
-rw-r--r--classes/PhpIsisDb.php158
1 files changed, 0 insertions, 158 deletions
diff --git a/classes/PhpIsisDb.php b/classes/PhpIsisDb.php
deleted file mode 100644
index 41319cc..0000000
--- a/classes/PhpIsisDb.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-
-/**
- * PHP-Isis implementation of IsisDb.
- *
- * @warning
- * This implementation is currently outdated and lacks
- * basic functionalities such as subfield handling and
- * therefore it's use is not recommended.
- */
-class PhpIsisDb implements IsisDb {
- /**
- * @var $db
- * Database resource.
- */
- var $db;
-
- /**
- * @var $format
- * Database format, derived from $schema.
- */
- var $format;
-
- /**
- * @var $log
- * Class action log.
- */
- var $log;
-
- /**
- * Constructor.
- *
- * @see IsisDb::__construct()
- */
- public function __construct($schema) {
- // Save db schema.
- $this->format = $schema;
-
- // Setup $fdt.
- foreach ($schema['fields'] as $field => $info) {
- $this->fdt[$field] = $info['name'];
- }
-
- // Open the database.
- $name = $schema['db']['name'];
- $this->db = isis_open(CinisisDb::file("$name/$name", 'db'));
- }
-
- /**
- * Read an entry.
- *
- * The PHP-Isis API doen't implement such feature so we
- * have to emulate it by geting all entries and using
- * isis_data_seek() to get the desired record.
- *
- * @see IsisDb::read()
- *
- * @todo
- * Subfield handling.
- */
- public function read($id) {
- $results = isis_search('$', $this->db);
- if (!isis_data_seek($results, $id - 1)) {
- return FALSE;
- }
-
- // Tag results.
- $data = $this->tag(isis_fetch_array($results));
-
- // Charset conversion.
- array_walk_recursive($data, array(__CLASS__, 'charset'));
-
- // Return the result.
- return $data;
- }
-
- /**
- * Return number of entries in the database.
- *
- * @see IsisDb::entries()
- */
- public function entries() {
- return isis_last_mfn($this->db);
- }
-
- /**
- * Return an example schema.
- *
- * @see IsisDb::example()
- */
- public function example() {
- return SchemaDb::example();
- }
-
- /**
- * Check configuration.
- *
- * @see IsisDb::check()
- */
- static function check($schema, $section = NULL) {
- // Check API availability.
- if (!function_exists('isis_open')) {
- throw new Exception('Could not find function isis_open. Please check your php-isis installation.');
- return FALSE;
- }
-
- // Check schema configuration.
- return SchemaDb::check($schema, $section);
- }
-
- /**
- * Tag results of a db query.
- *
- * This function converts the keys of query result from field
- * numbers to names.
- *
- * @param $results
- * Database query results.
- *
- * @return
- * Tagged database result.
- */
- function tag($results) {
- foreach ($results as $key => $value) {
- if ($key != 'mfn') {
- $name = $this->format['fields'][$key]['name'];
- $data[$name] = $value;
- }
- }
-
- return $data;
- }
-
- /**
- * Charset conversion.
- *
- * Converts a string from the database charset to UTF-8.
- *
- * @param $data
- * String to be converted.
- *
- * @return
- * String converted to UTF-8.
- */
- function charset(&$data) {
- $data = iconv($this->format['db']['charset'], 'UTF-8', $data);
- }
-
- /**
- * Class logger.
- *
- * @param $message
- * Log message.
- */
- function logger($message) {
- $this->log[] = $message;
- }
-}