Programación
Me cambie de doninio a capynet.wordpress.com
Me cambie de doninio a capynet.wordpress.com
Hoy comencé a hacer mi propio FILE MANAGER EN PHP y AJAX
He buscado, juro por dios que he buscado un file manager que ande como la gente, pero no he encontrado mas que buenas intenciones e intentos nunca acabados (esa va por extplorer que falla en cualquier versión de IE).
Dicho lo anterior, me dispongo a hacer un file manager que sea:
-
Lo mas liviano posible para poder manejar carpetas con cantidades ENORMES de carpetas (unas 200000 en una de ellas).
-
Que sea SIMPLE. Cuando digo simple, me refiero a lo justo y necesario para que cumpla con mis necesidades y las de mi empresa que patrocina mi trabajo:)
-
que aproveche HTML 5, como el Drag&Drop o el almacenamiento local de datos. – esto no es estrictamente necesario, pero tomando en cuenta que va a ser de uso interno, nada me impide hacer mis primeros pasos en el -.
-
Que para búsquedas en toda la estructura de directorios no se queme una hora de micro ni de tiempo (esa va por vos OWL).
-
Que tenga un cache como la gente y que se genere por medio de accesos (eso es: la primera ves que entras en un directorio sera un poco lento pero guardará el cache a partir de ese momento) y que por la noche o a la hora de menos movida re indexe el contenido de las búsquedas y las estructuras de directorios.
-
Que tenga servicios Web para compartir información de archivos o los archivos mismos con otros programas.
-
Que tenga un DECENTE saneo de caracteres especiales.
-
LDAP y/o XML-RPC
-
Exportación de listados en xml, pdf, y basta.
-
Logs de quien borra o modifica
-
Plantillas XHTML/CSS joder!.
-
Papelera para recuperar metidas de patas (no olvidemos la gente es gente)
-
Gestión de usuarios y permisos claro está.
-
Descargar una carpeta entera.
-
Nada de “previews”, es un file manager, no un “hay mira que linda que se ve la miniatura de la imagen”….
-
ademas de permisos de usuarios necesito permisos de carpetas como por ejemplo listas blancas (dejar subir a un determinado directorio o estructura un cierto tipo de archivo)
-
siguiendo con los permisos de carpetas, a veces es necesario (insisto, es para mi empresa
) solicitar que en determinadas carpetas, haya una lista de archivos requeridos. Bueno, eso. -
Carga masiva (hola zip y tar.gz de un GB!), y carga múltiple (chau andar seleccionando de a uno los archivos)
-
queda sobradamente claro que no se puede acceder directamente a la estructura de directorios.
Bueno ahora mismo estoy en los cimientos, por lo que cualquier recomendación la voy a querer aprecias adoptar alimentar y utilizar si es buena.
Y la frutilla del postre es que pienso liberarla bajo GPL cuando sea estable
Por cierto, lo voy a desarrollar en PHP 5, jQuery, MySql, y el sistema de archivos va a tener que ser mixto (Linux, Windows).
Detectar la resolución de pantalla en Drupal 6 y PHP en general
Aveces por misteriosos motivos de los que me da miedo hablar, necesitamos conocer la resolución de pantalla antes que se genere cualquier contenido.
El problema es que por lo menos yo no he encontrado ninguna forma limpia de hacerlo en PHP…
En fin, tuve que apañármelas con lo que tenía. Un poquito de HTML, otro poco de PHP, y una pizca de JavaScript.
Vamos a lo nuestro:
Primero creamos un archivo HTML con esta pinta:
<html>
<head></head>
<body></body>
<script type='text/javascript'>
/* <![CDATA[ */
document.getElementsByTagName("body")[0].innerHTML = screen.width;
/* ]]> */
</script>
</html>
Guardamos como resolucion.htm. Lo único que hace es introducir en el body la resolución que SI puede obtenerse por javascript pero NO por PHP.
Segundo vamos a agregar a nuestro modulo en el hook_init las siguientes lineas. ¿Acaso olvide comentar que hay que implementar esto en un modulo….? Ya liberare un modulito súper simple para que no tengan que programarse uno ustedes
mimodulo_init(){
$_GLOBALS['resolucion'] = file_get_contents('ruta/hasta/mi/archivo/que/seguramente/lo/tengo/en/la/raiz/para/no/complicarme/la/vida/resolucion.htm');
}
Lo que hemos hecho es que en la carga del modulo (si está habilitado va a ejecutarse en todas las vistas) se setee en la variable global $_GLOBALS['resolucion'] con la resolucion que se impríma en el archivo html creado anteriormente.
y gualá, ya sabemos del lado de PHP cual es la resolución.
Antes que me critiquen lo vagamente seguro que es este codigo y lo poco elegante, he de alegar en mi defenza que lo implementé hace unas horas con mucho mas amor y elegancia y seguridad que lo expuesto en este post, pero ya es tarde, estoy cansado, y la vida es muy corta como para dedicarle tanto esmero a un apunte “personal”
.
Que lo disfruten!.
</html>