Glossword

gw_splash.png

Glossword es un programa de creación de glosarios y diccionarios hecho por Dmitry N. Shilnikov, que usé para La Chuleta Venezolana. En un principio lo tenía como stand-alone, pero al crecer el número de visitantes, y por los comentarios que recibí, decidí integrarlo a Joomla, de manera de poder añadirle más funcionabilidad (foros, mailing list, etc.).

Ya Dmitry había publicado unas instrucciones de como integrar las versiones anteriores, hasta 1.7, pero abandonó el esfuerzo ya que piensa sacar una versión tipo Component de Joomla. Como las instrucciones de la integración glossword-joomla ya no están disponibles en su página, y para aquellos que desean empezar a usar este magnífico programa, aquí les transcribo paso a paso como hacerlo.

Problemas Conocidos:

  1. He comprobado que debido a la manera que se hace la integración,
    se pierde la validación XHTML de la página.
  2. Glossword usa UTF-8, mientras que la serie de Joomla 1.0.x es ISO. Esto
    genera problemas en la visualización de caractéres especiales
    en los menús y elementos de contenido cuando el componente de Glossword está siendo visualizado.

1. Creación de componente glossword en Joomla

Para facilitar las cosas, decidí usar como ejemplo la instalación:

http://www.supaginaweb.com/joomla/components/com_glossword

(asumiendo que su instalación de Joomla está en un directorio llamado ‘joomla’, y ‘supaginaweb‘ es su dominio propio)

Para comenzar, debe crear el directorio y el archivo

/joomla/components/com_glossword/glossword.php

con el contenido siguiente:

<?php
/**
* Glossword integration with joomla
*/
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.');
$tmp['this_dir'] = getcwd();
chdir('components/com_glossword');
include_once('index.php');
chdir($tmp['this_dir']);
mysql_select_db($mosConfig_db);
?>

Luego, deben conectarse a su servidor SQL e introducir el siguiente comando, que creará la entrada correspondiente al componente:

INSERT INTO jos_components (name, link, `option`, iscore) VALUES ('Glossword','option=com_glossword', 'com_glossword', 0);

Una vez hecho esto, ya se puede crear la entrada del menú correspondiente. Para ello deben ir a Menu Manager > Main Menu > Add Menu Item > Component > y seleccione la opción ‘Glossword’ de la lista de componentes. Una vez agregado, tome nota del itemid del componente, pues lo necesitará más adelante.

2. Instalación del programa Glossword en el directorio del componente

Para el momento de este tutorial, la última versión de Glossword es 1.8.6, y la pueden descargar en:

* Google Code

* SourceForge

Los pasos de instalación son los mismos que se describen en la documentación de la instalación.

  • Descomprima el paquete glossword-1.x.x.zip en la máquina local. Use una herramienta como 7-Zip para extraer los archivos.
  • Suba el contenido de la carpeta /glossword/1.x al alojamiento remoto.
  • Establezca permisos de escritura para la carpeta /glossword/gw_temp y varias subcarpetas. Se puede hacer con cualquier software cliente de FTP o desde la línea de comandos:

# chmod 0777 gw_temp
# chmod 0777 gw_temp/t
# chmod 0777 gw_temp/a
# chmod 0777 gw_temp/gw_cache_sql
# chmod 0777 gw_temp/gw_export

Nota: si las sub-carpetas a, t, gw_cache_sql y gw_export no existen, se deben crear, y luego hacerles el chmod.

  • Establezca permisos de escritura para el archivo /db_config.php:

# chmod 0666 db_config.php

File/Folder Name chmod value Permissions
* [DIR] gw_addon -
* [DIR] gw_admin -
* [DIR] gw_install -
* [DIR] gw_locale -
* [DIR] gw_temp 0777 drwxrwxrwx
* [DIR] gw_xml -
* [DIR] img -
* [DIR] inc -
* [DIR] lib -
* [DIR] templates -
* .htaccess -
* favicon.ico -
* css.php -
* custom_vars.php -
* db_config.php 0666 -rw-rw-rw-
* gw_admin.php -
* index.php -
* robots.txt -

  • Se requieren los niveles de chmod 0666 y 0777 a menos que su sistema use otros permisos. Por ejemplo, si usted utiliza CGIWrap que ejecuta sripts PHP con el UID del propietario del archivo en vez de con el UID del servidor, establezca chmod en 0644 y 0755.

3. Correr el instalador de Glossword

Yo recomiendo instalar glossword en la misma base de datos que la instalación de Joomla. El único problema es que las tablas de glossword (gw_) serán en UTF-8, mientras que las de joomla (jos_) estarán en ISO. Para correr el instalador, debe navegar a la página:

http://www.supaginaweb.com/joomla/components/com_glossword/gw_install

Siga las instrucciones y coloque la información de su base de datos y usuario administrador.

4. Hack de archivos de Glossword

Yo recomiendo hacer una copia de los archivos originales de la instalación, de manera de poder regresar a la condición original si alguno de estos pasos a continuación no salen bien.

Ubique el archivo:

/joomla/components/com_glossword/db_config.php

y haga el siguiente cambio (ajuste de acuerdo a su instalación):

$sys['server_proto'] = 'http://';
$sys['server_host'] = 'www.supaginaweb.com';
$sys['server_dir'] = '/joomla/components/com_glossword';
$sys['server_url'] = 'www.supaginaweb.com/joomla/components/com_glossword';
$sys['server_jurl'] = 'http://www.
supaginaweb.net/joomla';

Nota: todas las expresiones van sin ‘/’ al final.

La variable server_jurl es la dirección URL de la instalación de joomla. Se usa como vínculo en los correos electrónicos de contacto.

Ubique el archivo:

/joomla/components/com_glossword/inc/config.inc.php

y haga el siguiente cambio:

$sys['ar_url_append'] = array('itemid' => 'coloque el itemid del componente aquí, ‘option’ => ‘com_glossword’);

ejemplo: array('itemid' => '3', 'option' => 'com_glossword')

Ubique el archivo:

/joomla/components/com_glossword/inc/lib.prepend.php

y haga el siguiente cambio:

$sys['page_index'] = $sys['server_dir'] .'/../../index.php';

Ubique el archivo:

/joomla/components/com_glossword/inc/constructor.inc.php

y haga el siguiente cambio:

busque la siguiente sección a partir de la línea 557:

$gw_this['href_show_printversion'] = $oHtml->url_normalize($sys['page_index'] .'?'. GW_ACTION. '=' .GW_A_PRINT .'&d='. $arDictParam['uri'] .'&t='. $listA['uri']);
$oHtml->setTag('a', 'onclick', "self.location='".$gw_this['href_show_printversion']."';return false");

y *REEMPLAZELA* por:

$gw_this['href_show_printversion'] = $sys['server_url'] . '/index.php?'. GW_ACTION. '=' .GW_A_PRINT .'&d='. $arDictParam['uri'] .'&t='. $listA['uri'];
$oHtml->setTag('a', 'onclick', "window.open('".$gw_this['href_show_printversion']."');return false");

Ubique el archivo:

/joomla/components/com_glossword/gw_addon/gw_feedback/index.php

y haga los siguientes cambios:

busque la línea 189:

$str_form .= $oForm->field('hidden', 'uid', $this->gw_this['vars']['uid']);

y agregue lo siguiente a continuación:

/* Append to URL */
foreach ($this->sys['ar_url_append'] as $k => $v)
{
$str_form .= $oForm->field('hidden', $k, $v);
}

busque la línea 334:

$mail_sig = '<a href="'.$this->sys['server_url'].'/" onclick="window.open(this);return false">'.$this->sys['site_name'] . ' - ' . $this->sys['site_desc'].'</a>';

y *REEMPLAZELA* por:

$mail_sig = '<a href="'.$this->sys['server_jurl'].'/" onclick="window.open(this);return false">'.$this->sys['site_name'] . ' - ' . $this->sys['site_desc'].'</a>';

5. Creación del tema visual de glossword para Joomla.

  • Ingrese a gw_admin usando sus credenciales de administrador. El URL de back-end es:

http://www.supaginaweb.com/joomla/components/com_glossword/gw_admin

En este ejemplo, modifiqué el tema pre-determinado llamado ‘Brand’. Las instrucciones son iguales con cualquier otro.

  • Exporte el tema a su escritorio. Para ello, navegue a: Visual Theme > Browse > Brand > Export. Seleccione todas los archivos para exportación, y haga “Save”. Luego le aparecerá el vínculo del archivo del tema exportado. Usualmente en el formato: gw_temp/gw_export/gw_brand.xml. Haga ‘right-click’ y grabe el archivo localmente en su computador.
  • Ubique el archivo XML generado y editelo, cambiando las siguientes opciones:

<style
id_theme="gw_glossword"
theme_name="Brand for Joomla"
theme_author="Guachiman"
theme_email="preguntas@guachiman.net"
theme_url="http://www.guachiman.net"
version="1.8.6">

  • Renombre el archivo a gw_joomword.xml
  • Importe el tema usando la opción Visual Theme > Import
  • Establezca el nuevo tema como predeterminado, usando la opción System > Configuration > Select new theme as default for system > Seleccione “Brand for Joomla”
  • Modifique los archivos del tema. Para ello vaya a Visual Theme > Browse > Brand for Joomla
  • En CADA UNO de los archivos debe remover el mismo código que se encuentra en las secciones de header y footer. El código a remover de cada archivo es:

Archivos a modificar: Title Page, Dictionary (estas página cambian todas las páginas secundarias, excepto la página Term Print)

Remover de la sección HEADER:

<?xml version="1.0" encoding="{%v:charset%}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html dir="{%v:text_direction%}" xml:lang="{%v:language%}" xmlns="http://www.w3.org/1999/xhtml">

y luego la sección:

<title>{%v:html_title%}</title>
<meta content="{%v:content_type%}; charset={%v:charset%}" http-equiv="Content-Type" />
<meta content="Glossword version {%v:glossword_version%}" name="generator" />
<meta content="{%v:meta_description%}" name="description" />
<meta content="{%v:meta_keywords%}" name="keywords" />
<meta content="index,noarchive" name="robots" />

y finalmente el tag

<body>

Remover de la sección FOOTER:

</body></html>

Editar el archivo CSS y BORRE la sección de BODY (hace conflicto con la sección de BODY de Joomla):

body {
text-align: center;
padding: 0em;
margin: 0;
color: {color_black};
background: #FAFAFA url({v:path_css}/bg_body.png);
cursor: default;
}

Por último, cambie el ancho del tema a 100% para que rellene el ancho de la pantalla del contenido principal de joomla. Este valor se encuentra en la sección:

.{v:visualtheme} {
text-align: {v:css_align_left};
margin: 0 auto;
font-size: 100%;
width: 100%;
border-left: 1px solid {color_5};
border-right: 1px solid {color_5};
}

Glossword 1.8.6 in Joomla Installationy Listo!! Lo más probable es que necesite ajustar más valores en el archivo del CSS de Glossword, para lograr la compleata integración de diseño con su instalación de Joomla. Nota: Los COLORES se editan desde el back-end del administrador, en el editor de Visual Theme, NO directamente en el archivo de CSS.

Espero les sea útil esta guía!

Leave a Reply

Your email address will not be published. Required fields are marked *