<?php
/**
 * Test query script.
 */

// 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>

<?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

?>

<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>