entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

KoolTreeView

Alguno de vosotros ha usado esta herramienta? Estamos creando una "Intranet Web" donde con una interfaz gráfica muy amigable tengan acceso todos los trabajadores a documentación, páginas web, contactos, etc. de la empresa. Por el momento funciona de la siguiente manera:

  • En la base de datos se almacena cada uno de los elementos del menú con un campo "ruta" que almacena la ruta a la que debe dirigir ese elemento, si es una carpeta en la intranet se guarda de forma Administration/Company Documents por ejemplo. Luego KoolTreeView accede a dicha carpeta y, en código, lista todos los archivos dándole a cada uno supuestamente la opción de hacer click y cargar ese archivo.

  • KoolTreeView monta el árbol de archivos y dependiendo del tipo de dato (4 para URL web por ejemplo) construye los vínculos de la siguiente manera:

foreach($files as $ind_file)
{
    if (($ind_file!='..') && ($ind_file!='.') && (substr($ind_file,0,1)!='~') && (substr($ind_file,0,5)!='Thumb'))
    {
        $node=$treeviewsub->Add('root',$ind_file,"<span class='menuitem' onclick='toggle(this)'>".substr($ind_file,0,strlen($ind_file)-4)."/span>",false,substr($ind_file,-3).'.gif',"");
        $node->addData("url",rawurlencode ($dir."/".$ind_file));
        $node->addData("type",'2');
    }
}

El tema es que no funciona correctamente no sé por qué, la verdad es la siguiente, he leído y releído el código y no tengo ni idea por qué el elemento tiene la función onclick='toggle(this)'; no tengo ni idea de para qué vale... la copio aquí por si os vale de referencia.

function toggle(obj)
{
    var node = treeview.getNode(obj.parentNode.parentNode.parentNode.id);         
    if(node.isExpanded())
        node.collapse();
    else
        node.expand();
} 

Si tenéis alguna otra idea de cómo hacer lo que necesito también será bienvenida. La base de datos está ya construída.

Un saludo y gracias

0voto

ankeorum comentado

Haciendo eso los archivos se convierten en vínculos con este código:

localexplorer:I:\Compliance\Audit\01 - Baker Tilly Leter Letter - 22-03-07.doc

Lo cual tampoco funciona, por qué está sustituyendo file:/// por localexplorer:? No lo entiendo

0voto

white comentado

Estas seguro que instalaste el plugin correcto en chrome? https://chrome.google.com/webstore/detail/locallinks/jllpkdkcdjndhggodimiphkghogcpida
por que no intentas tambien con firefox?

Puedes abrir un nuevo tema si sigues teniendo problemas, el problema actual parece ser diferente al original.

saludos!

0voto

ankeorum comentado

La extensión está instalada el problema es que a pesar de yo haber creado el a href con la forma file:/// cuando el navegador lo muestra muestra eso de localexplorer: que es lo que hace que no valga creo...

0voto

white comentado

posibles causas:

1: un plugin de chrome
2: un script que esta actuando de intermediario editando el atributo href

me voy mas a que es lo primero, desinstala el o los plugins en chrome, tambien prueba con firefox!, arriba te mencione que lo pruebes con firefox,

¿no funcionó? puedes abrir una nueva pregunta para evitar el offtopic en esta.

saludos!

0voto

ankeorum comentado

En firefox el a href se muestra correctamente como pongo a continuación:

file:///I:\Approved Documents\Admin Templates/Template.docx

Pero al hacer click igualmente no se abre... Quizás tenga la culpa esto?

if (url.substring(url.length,url.length-3) == "pdf2")
            {
                location.href = 'get_resolution.php?Path=' + url;
            }
            else
            {
                ggg = 'documents/' + url;
                //location.href = 'file://mplc05/intranet_docs/' + url;
                //alert(decodeURIComponent(url));

                window.open('file:///' + decodeURIComponent(url),'mywindow');
            }

Porque si quito el comentario de la "alert" se muestra la ruta de red...

1 Respuesta

1voto

white Puntos75880

1.- cambiar tu elemento <span> por <a>

$node=$treeviewsub->Add('root',$ind_file,"<a class='menuitem' href='file:///".urldecode($dir."/".$ind_file)."'>".substr($ind_file,0,strlen($ind_file)-4)."</a>",false,substr($ind_file,-3).'.gif',"");

metodo 1

2.- Instalar el plugin firefox https://addons.mozilla.org/es/firefox/addon/locallink/

3.- marcar como comentario el codigo que tienes:

/*if (url.substring(url.length,url.length-3) == "pdf2")
{
    location.href = 'get_resolution.php?Path=' + url;
}
else
{
    ggg = 'documents/' + url;
    //location.href = 'file://mplc05/intranet_docs/' + url;
    //alert(decodeURIComponent(url));

    window.open('file:///' + decodeURIComponent(url),'mywindow');
}*/

4.- dar click derecho al enlace file:/// click en open link in local context seleccionar in this tab

metodo 2

2.- abrir la direccion: %appdata%\Mozilla\Firefox\Profiles[identificador].default\
[identificador] es un identificar, buscar la carpeta dentro de: %appdata%\Mozilla\Firefox\Profiles\

3.- crear un archivo llamado user.js

4.- agregar el siguiente contenido:

user_pref("capability.policy.policynames", "localfilelinks");
user_pref("capability.policy.localfilelinks.sites", "<tu sitio>");
user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");

5.- reemplazar <tu sitio> por la url de tu servidor ( ejemplo: http://localhost )

6.- reiniciar firefox


Sugerencia: Por seguridad navegadores modernos no permiten abrir enlaces con protocolo file:///, la mejor solucion es crear un servidor ftp para tu intranet o subir los archivos al servidor principal.

0voto

ankeorum comentado

Esta es la mejor respuesta después de llevar una semana liado con esto y de estar muchas horas buscando información en internet pero sigue sin funcionar. Cuando hago eso en firefox muestra una página de error que dice lo siguiente:

Archivo no encontrado

Firefox no puede encontrar el archivo en /I:/Approved Documents/Admin
Templates/Lever Arch Labels.doc.

Compruebe que el nombre de archivo no tiene errores de escritura, incluyendo el uso de mayúsculas.
Compruebe si el archivo ha sido movido, renombrado o eliminado.

Marcaré como mejor respuesta pero no hemos solucionado el problema que tenía :-(

0voto

white comentado

intenta con este codigo:

$path_file = str_replace('\\', '/', urldecode($dir."/".$ind_file));
$node=$treeviewsub->Add('root',$ind_file,"<a class='menuitem' href='file:///".$path_file."'>".substr($ind_file,0,strlen($ind_file)-4)."</a>",false,substr($ind_file,-3).'.gif',"");

con eso bastaría.

PD: cersiorate de que exista el archivo I:/Approved Documents/Admin Templates/Lever Arch Labels.doc

0voto

ankeorum comentado

No funciona :(, sigue haciendo lo mismo

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta