Difference between revisions of "ABCD - versiones bases de datos"
Line 31: | Line 31: | ||
[[File:Cgi-bin.png|none]] | [[File:Cgi-bin.png|none]] | ||
− | Para acceder correctamente la version del cisis, el config.php utiliza | + | Para acceder correctamente la version del cisis, el config.php utiliza tres variables: |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 41: | Line 41: | ||
| $UNICODE | | $UNICODE | ||
| 0, el juego de caracteres es ansi<br>1, el juego de caracteres es utf8 | | 0, el juego de caracteres es ansi<br>1, el juego de caracteres es utf8 | ||
− | |- | + | |-style="vertical-align:top;" |
− | | | + | | $cisis_ver |
− | | | + | | Coloca la versión del cisis según las siguientes posibilidades: |
− | | | + | * Si está en blanco se asume la versión 16-60 y el parámetro $UNICODE establecerá si se lee desde la carpeta '''ansi''' o desde la carpeta '''utf8''' |
+ | * Si tiene otro valor (ffi, bigisis) se utiliza el mismo para direccionar al directorio donde está instalado la versión a utilizar | ||
+ | |-style="vertical-align:top;" | ||
+ | |$exe_ext | ||
+ | | coloca la extensión del ejecutable '''wxis'''<br> si es windows tiene el valor '''.exe'''; <br> si es linux, está vacío | ||
|} | |} | ||
Para determinar cuál versión de cisis va a utilizarse para gestionar una base de datos, en el archivo config.php se toman las siguientes decisiones: | Para determinar cuál versión de cisis va a utilizarse para gestionar una base de datos, en el archivo config.php se toman las siguientes decisiones: | ||
− | + | * Se define el path a la carpeta cgi-bin mediante la asignación | |
+ | '''$cgibin_path=$ABCD_path."www/cgi-bin/"; ''' | ||
+ | ::$ABCD_path es el camino de acceso a la carpeta donde está instalado ABCD y se define a principio del script | ||
− | + | * Se lee el archivo abcd.def donde deben figurar los parámetros | |
− | + | '''$def["UNICODE"]''' y | |
− | + | '''$def["CISIS_VERSION"]''' | |
+ | |||
+ | * Se incorpora el script config_extended.php y si hay alguna base de datos activa ($_REQUEST["base"]) se lee el archivo '''dr_path.dat''' que puede reconfigurar los parámetros '''$def["UNICODE"]''' y '''$def["CISIS_VERSION"]''' | ||
+ | * A partir de aquí se toman las siguientes decisiones: | ||
::: si $def["UNICODE"] no está definida o tiene un valor 0 o ansi, entonces se define | ::: si $def["UNICODE"] no está definida o tiene un valor 0 o ansi, entonces se define | ||
$unicode='ansi'; | $unicode='ansi'; | ||
Line 63: | Line 72: | ||
Con estos valores se puede establecer la ruta hacia el ejecutable a utilizar para gestionar la base de datos: | Con estos valores se puede establecer la ruta hacia el ejecutable a utilizar para gestionar la base de datos: | ||
$cisis_path=$cgibin_path.$unicode."/".$cisis_ver."/"; | $cisis_path=$cgibin_path.$unicode."/".$cisis_ver."/"; | ||
− | + | ||
+ | Entonces, el ejecutable se forma de la siguiente manera: | ||
+ | |||
+ | cuando el método es post: | ||
+ | $wxisUrl=$server_url."/cgi-bin/".$cisis_ver.$wxis_exec; | ||
+ | si el método es GET | ||
+ | $Wxis=$cisis_path.$wxis_exec; | ||
+ | |||
'''HTML - Content-Type''' | '''HTML - Content-Type''' | ||
− | Hay una tercera variable importante que viene del php.ini y se denomina '''default_charset''' que en algunos servidores viene como '''UTF-8''' y en otros como ISO-8859-1. Si es UTF-8 entonces hay que incluir el | + | Hay una tercera variable importante que viene del php.ini y se denomina '''default_charset''' que en algunos servidores viene como '''UTF-8''' y en otros como ISO-8859-1. Si es UTF-8 entonces hay que incluir el comando y las bases de datos y archivos de mensajes están en '''ansi''' |
header('Content-Type: text/html; charset=iso-8859-1'); | header('Content-Type: text/html; charset=iso-8859-1'); | ||
− | + | al inicio del config.php del módulo central porque los mensajes del sistema están en iso-8859-1 y no en utf-8. Igual ocurre con las bases de datos que se han desarrollado usando 1660-ansi. Por eso es que a veces reportan que los caracteres aparecen distorsionados. | |
− | Este comando se debe incluir en el config.php porque todos los scripts lo leen al principio y ese debe ser el primer comando de la página generada. Entonces, | + | Este comando se debe incluir en el config.php porque todos los scripts lo leen al principio y ese debe ser el primer comando de la página generada. Entonces, la variable '''default_charset''' ayudaría a generar el '''header''' correctamente. Esto tiene relación con el '''encoding''' de la página el cual debe coincidir con el charset de las bases de datos que debe ser igual al de los archivos y demás páginas que se muestran tanto en central como en OPAC-ABCD. |
− | En wxis_llamar.php se agregó una rutina que | + | En '''wxis_llamar.php''' se agregó una rutina que que permite trabajar bases de datos en ANSI cuando el juego de caracteres establecido. |
$cset=strtoupper($charset); | $cset=strtoupper($charset); | ||
Line 91: | Line 107: | ||
− | # Se lee el charset | + | # Se lee el charset establecido para la página ($cset=strtoupper($charset)) |
# Se lee el charset de la base de datos, $charset_db, (leído del dr_path.dat). Si no está definido se asume '''ANSI''' | # Se lee el charset de la base de datos, $charset_db, (leído del dr_path.dat). Si no está definido se asume '''ANSI''' | ||
# Si el charset de la la base de datos no es igual al charset de la página se convierte la salida del wxis ($contenido) al charset de la página | # Si el charset de la la base de datos no es igual al charset de la página se convierte la salida del wxis ($contenido) al charset de la página | ||
+ | NOTA: la conversion de utf-8 a ansi puede generar inconsistencias |
Revision as of 12:26, 1 March 2020
Para Windows
charset | Versión Cisis |
---|---|
ansi | 16-60 bigisis ffi |
utf8 | 16-60 ffi |
Para Linux
charset | Versión Cisis |
---|---|
ansi | 16-60 bigisis ffi |
utf8 | 16-60 bigisis |
Desde el punto de vista de la instalación el directorio cgi-bin se presenta de la siguiente manera:
Para acceder correctamente la version del cisis, el config.php utiliza tres variables:
Variable | Valoe |
---|---|
$UNICODE | 0, el juego de caracteres es ansi 1, el juego de caracteres es utf8 |
$cisis_ver | Coloca la versión del cisis según las siguientes posibilidades:
|
$exe_ext | coloca la extensión del ejecutable wxis si es windows tiene el valor .exe; si es linux, está vacío |
Para determinar cuál versión de cisis va a utilizarse para gestionar una base de datos, en el archivo config.php se toman las siguientes decisiones:
- Se define el path a la carpeta cgi-bin mediante la asignación
$cgibin_path=$ABCD_path."www/cgi-bin/";
- $ABCD_path es el camino de acceso a la carpeta donde está instalado ABCD y se define a principio del script
- Se lee el archivo abcd.def donde deben figurar los parámetros
$def["UNICODE"] y $def["CISIS_VERSION"]
- Se incorpora el script config_extended.php y si hay alguna base de datos activa ($_REQUEST["base"]) se lee el archivo dr_path.dat que puede reconfigurar los parámetros $def["UNICODE"] y $def["CISIS_VERSION"]
- A partir de aquí se toman las siguientes decisiones:
- si $def["UNICODE"] no está definida o tiene un valor 0 o ansi, entonces se define
$unicode='ansi';
$charset="ISO-8859-1";
- si $def["UNICODE"] vale 1, entonces se define
$unicode='utf8';
$charset="UTF-8";
Con estos valores se puede establecer la ruta hacia el ejecutable a utilizar para gestionar la base de datos:
$cisis_path=$cgibin_path.$unicode."/".$cisis_ver."/";
Entonces, el ejecutable se forma de la siguiente manera:
cuando el método es post:
$wxisUrl=$server_url."/cgi-bin/".$cisis_ver.$wxis_exec;
si el método es GET
$Wxis=$cisis_path.$wxis_exec;
HTML - Content-Type
Hay una tercera variable importante que viene del php.ini y se denomina default_charset que en algunos servidores viene como UTF-8 y en otros como ISO-8859-1. Si es UTF-8 entonces hay que incluir el comando y las bases de datos y archivos de mensajes están en ansi
header('Content-Type: text/html; charset=iso-8859-1');
al inicio del config.php del módulo central porque los mensajes del sistema están en iso-8859-1 y no en utf-8. Igual ocurre con las bases de datos que se han desarrollado usando 1660-ansi. Por eso es que a veces reportan que los caracteres aparecen distorsionados.
Este comando se debe incluir en el config.php porque todos los scripts lo leen al principio y ese debe ser el primer comando de la página generada. Entonces, la variable default_charset ayudaría a generar el header correctamente. Esto tiene relación con el encoding de la página el cual debe coincidir con el charset de las bases de datos que debe ser igual al de los archivos y demás páginas que se muestran tanto en central como en OPAC-ABCD.
En wxis_llamar.php se agregó una rutina que que permite trabajar bases de datos en ANSI cuando el juego de caracteres establecido.
$cset=strtoupper($charset); if (!isset( $charset_db)or $charset_db=="") $charset_db="ANSI"; $cset_db=strtoupper($charset_db); if ($cset_db!=$cset){ foreach ($contenido as $value) { if ($cset=="UTF-8" and $cset_db=="ISO-8859-1"){ $cont_cnv[]=utf8_encode($value); } else{ $cont_cnv[]=utf8_decode($value) } } if (isset($cont_cnv) and count($cont_cnv)>0) $contenido=$cont_cnv; }
- Se lee el charset establecido para la página ($cset=strtoupper($charset))
- Se lee el charset de la base de datos, $charset_db, (leído del dr_path.dat). Si no está definido se asume ANSI
- Si el charset de la la base de datos no es igual al charset de la página se convierte la salida del wxis ($contenido) al charset de la página
NOTA: la conversion de utf-8 a ansi puede generar inconsistencias