aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio <silvio@devlet.com.br>2010-04-08 11:55:02 -0300
committerSilvio <silvio@devlet.com.br>2010-04-08 11:55:02 -0300
commit1f0a5aa6b243e2b8bba66fc62bd029e2fa801e4b (patch)
tree42a49cfc1cf5422c5b42364b711c5b2597956cfb
parent923e3c23d05dc235f26d8cc3d96e4f43e1754b32 (diff)
downloadcinisis-1f0a5aa6b243e2b8bba66fc62bd029e2fa801e4b.tar.gz
cinisis-1f0a5aa6b243e2b8bba66fc62bd029e2fa801e4b.tar.bz2
Sorting out folder schene
-rw-r--r--classes/CinisisDb.php41
-rw-r--r--classes/PhpIsisDb.php4
-rw-r--r--index.php27
-rw-r--r--tests/index.php216
-rw-r--r--tests/malete.php181
-rw-r--r--tests/phpisis.php30
6 files changed, 275 insertions, 224 deletions
diff --git a/classes/CinisisDb.php b/classes/CinisisDb.php
index 3dead27..eb09f9e 100644
--- a/classes/CinisisDb.php
+++ b/classes/CinisisDb.php
@@ -23,16 +23,16 @@ class CinisisDb {
* Optional parameter to set alternative config file or array
* with configuration.
*/
- function __construct($config = 'config/config.yaml') {
+ function __construct($config = NULL) {
try {
// Check main configuration.
- $config = $this->parse($config);
+ $config = $this->parse($this->file($config));
// Set database implementation.
$this->implementation = $config['implementation'] .'Db';
// Check database schema.
- $schema = $this->parse('schemas/'. $config['database'] .'.yaml', $this->implementation);
+ $schema = $this->parse($this->file($config['database'] .'.yaml', 'schemas'), $this->implementation);
} catch (Exception $e) {
echo __CLASS__ .' caught exception: ', $e->getMessage(), "\n";
return FALSE;
@@ -106,4 +106,39 @@ class CinisisDb {
return $config;
}
+
+ /**
+ * Get library base folder.
+ *
+ * @return
+ * Return base folder.
+ */
+ public function base() {
+ global $cinisis_basedir;
+ return $cinisis_basedir;
+ }
+
+ /**
+ * Get a file path.
+ *
+ * @param $config
+ * Config file name (either relative to the library or absolute).
+ *
+ * @param $section
+ * Config file section (ignored for absolute files).
+ *
+ * @return
+ * Return the assembled file path.
+ */
+ public function file($config = NULL, $section = 'config') {
+ // Check for NULL or relative config path.
+ if ($config == NULL) {
+ $config = "$section/config.yaml";
+ }
+ elseif (substr($config, 0, 1) != '/') {
+ $config = "$section/$config";
+ }
+
+ return call_user_func(array(__CLASS__, 'base')) .'/'. $config;
+ }
}
diff --git a/classes/PhpIsisDb.php b/classes/PhpIsisDb.php
index a6b3c7e..c568743 100644
--- a/classes/PhpIsisDb.php
+++ b/classes/PhpIsisDb.php
@@ -32,7 +32,7 @@ class PhpIsisDb implements IsisDb {
// Open the database.
$name = $schema['db']['name'];
- $this->db = isis_open("db/$name/$name");
+ $this->db = isis_open(CinisisDb::file("$name/$name", 'db'));
}
/**
@@ -57,7 +57,7 @@ class PhpIsisDb implements IsisDb {
$data = $this->tag(isis_fetch_array($results));
// Charset conversion.
- array_walk_recursive($data, array('PhpIsisDb', 'charset'));
+ array_walk_recursive($data, array(__CLASS__, 'charset'));
// Return the result.
return $data;
diff --git a/index.php b/index.php
index e93d0eb..b045be7 100644
--- a/index.php
+++ b/index.php
@@ -20,30 +20,7 @@ function cinisis_autoload($class) {
// Register autoloader.
spl_autoload_register("cinisis_autoload");
-// Get a db instance.
-$isis = new CinisisDb();
+// Reference to the base path.
+$cinisis_basedir = dirname(__FILE__);
?>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=cp850" />
- </head>
- <body>
-<?php
-
-// Test connection.
-if ($isis->db) {
- $result = $isis->db->read(1);
- $rows = $isis->db->rows();
-
- // Format output.
- echo '<pre>';
- echo "Rows: $rows\n";
- print_r($result);
- echo '</pre>';
-}
-
-?>
-</body>
diff --git a/tests/index.php b/tests/index.php
index 195fbbc..0f7b243 100644
--- a/tests/index.php
+++ b/tests/index.php
@@ -1,207 +1,35 @@
<?php
/**
- * Test query script.
+ * Cinisis - Isis db reading tool.
*/
-
-// Import Malete Library
-require 'contrib/malete/php/Isis.php';
-
-// Import Spyc
-include('contrib/spyc/spyc.php');
-
-?>
-
-<html><head><title>Query</title></head><body>
-
-<?php
-
- // Create a db with field list ("fdt")
- $fdt_anu10 = array(
- 'Periodico' => 1,
- 'Data' => 2,
- 'Titulo' => 3,
- 'Autor' => 4,
- 'Assuntos primarios' => 5,
- 'Assuntos secundarios' => 6,
- 'Ilustrado' => 7,
- 'Caderno' => 8,
- 'Pagina' => 9,
- 'Arquivo digital' => 10,
- 'Forma documento' => 11,
- 'Local de publicacao' => 12,
- 'Observacoes' => 13,
- 'Descritores imagem' => 14,
- 'Termo geografico' => 16,
- 'Coluna' => 17,
- 'Recorte' => 19,
- 'Alimentador' => 20,
- 'Tema Anuario' => 21,
- );
-
- $fdt_tupi = array(
- 'cod.titulo' => 1,
- 'postopo' => 2,
- 'num.entrada' => 3,
- 'num.tombo' => 4,
- 'datain' => 5,
- 'dataex' => 6,
- 'acervo (DIF ou PRE)' => 7,
- 'cadarq' => 10,
- 'caddep' => 11,
- 'cadddl' => 12,
- 'outarq' => 13,
- 'categorias' => 15,
- 'presok' => 16,
- 'roteiro de locução' => 17,
- 'mat.acervo' => 18,
- 'mat.orig' => 19,
- 'titulo' => 20,
- 'outros titulos' => 22,
- 'data/série' => 24,
- 'conteudo/sinopse' => 25,
- 'descritores' => 26,
- 'descritores secundários' => 27,
- 'identidades' => 28,
- 'ndxlib' => 29,
- 'materiais' => 40,
- 'materiais' => 41,
- 'materiais' => 42,
- 'materiais' => 43,
- 'materiais' => 44,
- 'materiais' => 45,
- 'mat' => 46,
- 'mat' => 47,
- 'mat' => 48,
- 'mat' => 49,
- 'mat' => 50,
- 'mat' => 51,
- 'mat' => 52,
- 'mat' => 53,
- 'mat' => 54,
- 'mat' => 55,
- 'evol.estado tec.' => 56,
- 'movimentacao' => 57,
- 'movimentacao' => 58,
- 'obsmat' => 59,
- 'producao*' => 60,
- 'dir.arte*' => 61,
- 'fotografia*' => 62,
- 'musica*' => 63,
- 'som*' => 64,
- 'montagem*' => 65,
- 'direcao*' => 66,
- 'arg/roteiro*' => 67,
- 'distribuicao*' => 68,
- 'colab./outros' => 69,
- 'producao1' => 70,
- 'dir.arte1' => 71,
- 'fotografia1' => 72,
- 'musica1' => 73,
- 'som1' => 74,
- 'montagem1' => 75,
- 'producao2(res.p/expandir)' => 80,
- 'dir.arte2(res.p/expandir)' => 81,
- 'fotografia2(res.p/expandir)' => 82,
- 'musica2(res.p/expandir)' => 83,
- 'som2(res.p/expandir)' => 84,
- 'loc.prod.lan' => 85,
- 'dat.prod.lan' => 86,
- 'lab/est/locacoes' => 87,
- 'premios' => 88,
- 'fontes' => 89,
- 'certificados' => 95,
- 'examinador' => 98,
- 'observações' => 99,
- 'termos geográficos' => 165,
- 'quicktime' => 900,
- 'revisão' => 901,
- 'vídeo' => 902,
- );
-
- //$db = 'tupi';
- $db = 'anu10';
- $fdt = ${'fdt_'. $db};
- $yaml = Spyc::YAMLDump($fdt);
?>
-<h2>server</h2>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=cp850" />
+ </head>
+ <body>
<?php
- $db = new Isis_Db($fdt, $db, new Isis_Server());
- if (!$db->srv->sock) {
- echo "could not contact server\n";
- }
- else {
- //print_r($db);
-?>
-
-<h3>number of records...</h3>
-
-<?php
- $query = 'HORA';
- $recs = $db->num_recs($query);
- echo "got ",count($recs), " terms for '$query'</br>\n";
-?>
-<h3>terms beginning with...</h3>
+// Import Malete Library.
+require_once '../index.php';
-<?php
- $query = 'Hora';
- $terms = $db->terms(strtoupper($query));
- echo "got ",count($terms), " terms for '$query'</br>\n";
- foreach ($terms as $t) {
- list($cnt, $term) = explode("\t", $t);
- echo "'$term'($cnt) ";
- }
- echo "</br>\n";
-?>
-
-<h3>query reading records</h3>
-
-<?php
- $query = 'Corumbiara';
- $recs = $db->query(strtoupper($query));
- echo "got ",count($recs), " records for '$query'</br>\n";
- foreach ($recs as $r) {
- echo "<pre>---\n", $r->toString(), "---\n</pre>\n";
- }
-?>
-
-<h3>query reading a record</h3>
-
-<?php
- $r = $db->read(6);
- echo "<pre>---\n", $r->toString(), "---\n</pre><br>\n";
- echo '<pre>';
- //print_r($r);
- //print_r($r->val[8]);
- //print_r(preg_split('/\t/', $r->val[7]));
- //print_r(array_flip($fdt_anu10));
- echo '</pre>';
- } // end else could contact server
-
-?>
-
-<h3>Testing pecl-isis</h3>
-<?php
+// Get a db instance.
+$isis = new CinisisDb();
- $db = isis_open('db/anu10/anu10');
- //$db = isis_open('db/tupi/tupi');
- print_r(isis_last_mfn($db));
+// Test connection.
+if ($isis->db) {
+ $result = $isis->db->read(1);
+ $rows = $isis->db->rows();
- echo '<table>';
+ // Format output.
+ echo '<pre>';
+ echo "Rows: $rows\n";
+ print_r($result);
+ echo '</pre>';
+}
- $result = isis_search('$', $db);
- while ($record = isis_fetch_flat_array($result) ) {
- print (" <tr><td colspan=\"2\">MFN: $record[mfn]</td></tr>\n");
- for ($i=0; $i<count($record)-1; ++$i) { //-1 porque el mfn es +1
- list ($tag, $value) = $record[$i];
- print (" <tr>\n".
- " <td>$tag</td>\n".
- " <td>".htmlspecialchars($value)."</td>\n".
- " </tr>\n");
- }
- }
- echo '</table>';
?>
-</body></html>
+</body>
diff --git a/tests/malete.php b/tests/malete.php
new file mode 100644
index 0000000..03451f2
--- /dev/null
+++ b/tests/malete.php
@@ -0,0 +1,181 @@
+<?php
+/**
+ * Test query script.
+ */
+
+// Import Malete Library
+require 'contrib/malete/php/Isis.php';
+
+?>
+
+<html><head><title>Query</title></head><body>
+
+<?php
+
+ // Create a db with field list ("fdt")
+ $fdt_anu10 = array(
+ 'Periodico' => 1,
+ 'Data' => 2,
+ 'Titulo' => 3,
+ 'Autor' => 4,
+ 'Assuntos primarios' => 5,
+ 'Assuntos secundarios' => 6,
+ 'Ilustrado' => 7,
+ 'Caderno' => 8,
+ 'Pagina' => 9,
+ 'Arquivo digital' => 10,
+ 'Forma documento' => 11,
+ 'Local de publicacao' => 12,
+ 'Observacoes' => 13,
+ 'Descritores imagem' => 14,
+ 'Termo geografico' => 16,
+ 'Coluna' => 17,
+ 'Recorte' => 19,
+ 'Alimentador' => 20,
+ 'Tema Anuario' => 21,
+ );
+
+ $fdt_tupi = array(
+ 'cod.titulo' => 1,
+ 'postopo' => 2,
+ 'num.entrada' => 3,
+ 'num.tombo' => 4,
+ 'datain' => 5,
+ 'dataex' => 6,
+ 'acervo (DIF ou PRE)' => 7,
+ 'cadarq' => 10,
+ 'caddep' => 11,
+ 'cadddl' => 12,
+ 'outarq' => 13,
+ 'categorias' => 15,
+ 'presok' => 16,
+ 'roteiro de locução' => 17,
+ 'mat.acervo' => 18,
+ 'mat.orig' => 19,
+ 'titulo' => 20,
+ 'outros titulos' => 22,
+ 'data/série' => 24,
+ 'conteudo/sinopse' => 25,
+ 'descritores' => 26,
+ 'descritores secundários' => 27,
+ 'identidades' => 28,
+ 'ndxlib' => 29,
+ 'materiais' => 40,
+ 'materiais' => 41,
+ 'materiais' => 42,
+ 'materiais' => 43,
+ 'materiais' => 44,
+ 'materiais' => 45,
+ 'mat' => 46,
+ 'mat' => 47,
+ 'mat' => 48,
+ 'mat' => 49,
+ 'mat' => 50,
+ 'mat' => 51,
+ 'mat' => 52,
+ 'mat' => 53,
+ 'mat' => 54,
+ 'mat' => 55,
+ 'evol.estado tec.' => 56,
+ 'movimentacao' => 57,
+ 'movimentacao' => 58,
+ 'obsmat' => 59,
+ 'producao*' => 60,
+ 'dir.arte*' => 61,
+ 'fotografia*' => 62,
+ 'musica*' => 63,
+ 'som*' => 64,
+ 'montagem*' => 65,
+ 'direcao*' => 66,
+ 'arg/roteiro*' => 67,
+ 'distribuicao*' => 68,
+ 'colab./outros' => 69,
+ 'producao1' => 70,
+ 'dir.arte1' => 71,
+ 'fotografia1' => 72,
+ 'musica1' => 73,
+ 'som1' => 74,
+ 'montagem1' => 75,
+ 'producao2(res.p/expandir)' => 80,
+ 'dir.arte2(res.p/expandir)' => 81,
+ 'fotografia2(res.p/expandir)' => 82,
+ 'musica2(res.p/expandir)' => 83,
+ 'som2(res.p/expandir)' => 84,
+ 'loc.prod.lan' => 85,
+ 'dat.prod.lan' => 86,
+ 'lab/est/locacoes' => 87,
+ 'premios' => 88,
+ 'fontes' => 89,
+ 'certificados' => 95,
+ 'examinador' => 98,
+ 'observações' => 99,
+ 'termos geográficos' => 165,
+ 'quicktime' => 900,
+ 'revisão' => 901,
+ 'vídeo' => 902,
+ );
+
+ //$db = 'tupi';
+ $db = 'anu10';
+ $fdt = ${'fdt_'. $db};
+?>
+
+<h2>server</h2>
+
+<?php
+ $db = new Isis_Db($fdt, $db, new Isis_Server());
+ if (!$db->srv->sock) {
+ echo "could not contact server\n";
+ }
+ else {
+ //print_r($db);
+?>
+
+<h3>number of records...</h3>
+
+<?php
+ $query = 'HORA';
+ $recs = $db->num_recs($query);
+ echo "got ",count($recs), " terms for '$query'</br>\n";
+?>
+
+<h3>terms beginning with...</h3>
+
+<?php
+ $query = 'Hora';
+ $terms = $db->terms(strtoupper($query));
+ echo "got ",count($terms), " terms for '$query'</br>\n";
+ foreach ($terms as $t) {
+ list($cnt, $term) = explode("\t", $t);
+ echo "'$term'($cnt) ";
+ }
+ echo "</br>\n";
+?>
+
+<h3>query reading records</h3>
+
+<?php
+ $query = 'Corumbiara';
+ $recs = $db->query(strtoupper($query));
+ echo "got ",count($recs), " records for '$query'</br>\n";
+ foreach ($recs as $r) {
+ echo "<pre>---\n", $r->toString(), "---\n</pre>\n";
+ }
+?>
+
+<h3>query reading a record</h3>
+
+<?php
+ $r = $db->read(6);
+ echo "<pre>---\n", $r->toString(), "---\n</pre><br>\n";
+ echo '<pre>';
+ //print_r($r);
+ //print_r($r->val[8]);
+ //print_r(preg_split('/\t/', $r->val[7]));
+ //print_r(array_flip($fdt_anu10));
+ echo '</pre>';
+ } // end else could contact server
+
+?>
+
+</body></html>
diff --git a/tests/phpisis.php b/tests/phpisis.php
new file mode 100644
index 0000000..d04fbd9
--- /dev/null
+++ b/tests/phpisis.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Test query script.
+ */
+?>
+
+<h3>Testing pecl-isis</h3>
+<?php
+
+ $db = isis_open('db/anu10/anu10');
+ //$db = isis_open('db/tupi/tupi');
+ print_r(isis_last_mfn($db));
+
+ echo '<table>';
+
+ $result = isis_search('$', $db);
+ while ($record = isis_fetch_flat_array($result) ) {
+ print (" <tr><td colspan=\"2\">MFN: $record[mfn]</td></tr>\n");
+ for ($i=0; $i<count($record)-1; ++$i) { //-1 porque el mfn es +1
+ list ($tag, $value) = $record[$i];
+ print (" <tr>\n".
+ " <td>$tag</td>\n".
+ " <td>".htmlspecialchars($value)."</td>\n".
+ " </tr>\n");
+ }
+ }
+ echo '</table>';
+?>
+
+</body></html>