Hola a todos.
Hace algún tiempo que reporté problemas al intentar establecer un enlace
(link) entre documentos cargados en el módulo mydms, ahora les escribo para
reportar que he encontrado una solución. Ignoro si es una buena solución
desde el punto de vista técnico, pues no soy conocedor de los lenguajes PHP,
Javascript y mucho menos conozco la lógica con que los desarrolladores han
diseñado el módulo. Por lo que espero sepan disculpar los horrores técnicos
de eficiencia que puedan apreciar a la solución que le he dado. En todo caso
agradezco sugerencias y debo decir que a nuestro interés logra el efecto
deseado.
Explico el asunto como sigue:
Entro al módulo “mydms”, hago una búsqueda de algún documento he intento
establecer un enlace con algún otro cargado en el sistema seleccionando el
botón <> de la página " out.ViewDocument.php"; Se supone que debe
aparecer una ventana en la que podrás navegar sobre la estructura de
carpetas que has generado en el sistema para, así, seleccionar el archivo
con el cual establecerás la relación. En efecto se abre una ventana pero en
la misma aparece el mensaje " invalid folderid".
Siguiendo la secuencia de guiones llamados por el sistema a partir de ese
punto, encontré lo siguiente:
- En botón <> llama el script “out.DocumentChooser.php “. El mensaje
de error es generado al no poder encontrar la variable $folderid, lo extraño
es que se supone que la misma es definida automáticamente. El asunto lo
solucioné así:
1.1) Agregué la siguiente línea en el archivo " out.DocumentChooser.php"
luego de la última línea include; específicamente la
{include(”…/inc/inc.Authentication.php”);} ubicado en el directorio
…/mydms/out/:
// Linea agregada para definir las variable $folderid
$folderid = (isset($_GET[‘folderid’])) ? $_GET[‘folderid’] : 1;
// Fin de las líneas de definición de las variables $folderid y $form
- Luego de ese cambio apareció la pantalla y un árbol mostrando la
estructura de carpetas definida en la instalación sobre la que se estoy
trabajando con los documentos cargados. Sin embargo al seleccionar un
archivo en particular no ocurre nada; simplemente no hace nada; aún que
puedes observar el la barra de estado de la ventana activa la llamada a la
función que habría de ejecutarse al hacer “click” sobre el nombre del
archivo que quieres enlazar. Luego de mucho revisar el código observé que el
asunto es la falta de definición de la variable $form. Por lo que procedí a
agregar la siguiente línea en el mismo archivo “out.DocumentChooser”:
// Linea agregada para definir la variable $form
$form = (isset($_GET[‘form’])) ? $_GET[‘form’] : 1;
//Fin definicion de la variable $form
-
Luego de ese cambio me fue posible, utilizar el botón <>, navegar
sobre las carpetas y documentos cargados en la instalación, seleccionar un
documento en particular haciendo click sobre el mismo. Con lo que la ventana
se cierra volviendo a la pantalla anterior (out.ViewDocument.php), la cual
muestra el nombre del documento seleccionado cargado en el campo “Choose
document:” de esa ventana.
-
Ahora al hacer “click” en el botón <> para que se realice el enlace
aparece una nueva pantalla con el mensaje de error: invalid documentid.
4.1) Al revisar el código en “op.AddDocumentLink.php” (Que es el script
llamado por el botón <>) observamos que hacía falta definir las
siguientes dos variables: $documentid y $docid, que son los parámetros que
le son enviados desde la llamada. Por lo que agregué las siguientes líneas:
// Lineas agregadas para resolver el error de la rutina de definir archivos
enlazados
$documentid = (isset($_GET[‘documentid’])) ? $_GET[‘documentid’] : 1;
$docid = (isset($_GET[‘docid’])) ? $_GET[‘docid’] : 1;
// Fin de las modificaciones
Lo cual finalmente resolvió el asunto de enlazar dos o más documentos en el
módulo “mydms” de eGroupWare.
- Análogamente a lo anterior se presenta un error al intentar remover o
eliminar un enlace definido entre dos documentos dados. Esta vez los cambios
hubo que hacerlos en el archivo “op.RemoveDocumentLink.php” para definir las
variables: $documentid y $linkid. Los cambios quedaron así:
// Lineas agregadas para definir las variables $documentid y $linkid
$documentid = (isset($_GET[‘documentid’])) ? $_GET[‘documentid’] : 1;
$linkid = (isset($_GET[‘linkid’])) ? $_GET[‘linkid’] : 1;
// Fin de definiciones agregadas
Finalmente todo queda así:
Archivo: out.DocumentCooser.php
Ubicado en: …/mydms/out/
Agregar después de la última instrucción include las líneas:
// Linea agregada para definir la variable $form
$folderid = (isset($_GET[‘folderid’])) ? $_GET[‘folderid’] : 1;
$form = (isset($_GET[‘form’])) ? $_GET[‘form’] : 1;
//Fin definicion de la variable $form
Archivo: op.AddDocumentLink.php
Ubicado en: …/mydms/op/
Agregar después de la última instrucción include las líneas:
// Lineas agregadas para resolver el error de la rutina de definir archivos
enlazados
$documentid = (isset($_GET[‘documentid’])) ? $_GET[‘documentid’] : 1;
$docid = (isset($_GET[‘docid’])) ? $_GET[‘docid’] : 1;
// Fin de las modificaciones
Archivo: op.RemoveDocumentLink.php
Ubicado en: …/mydms/po/
Agregar después de la última instrucción include las líneas:
// Lineas agregadas para definir las variables $documentid y $linkid
$documentid = (isset($_GET[‘documentid’])) ? $_GET[‘documentid’] : 1;
$linkid = (isset($_GET[‘linkid’])) ? $_GET[‘linkid’] : 1;
// Fin de definiciones agregadas
Esperando les sirva y ofreciendo disculpa por lo extenso
Alan Ruiz
–
Los Palos Grandes. Caracas-Venezuela.
Teléfono: (58212) 285 04 40
Tel/Fax: (58212) 286 97 70
Móvil: (58412) 708 43 78
correo-e: alan.mruiz@gmail.com, arsilva196@yahoo.es