![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola,
Otra actualización curiosa aunque "Interna" únicamente. En efecto, me he puesto a escribir métodos "IsNull()", "IsArray()", etc., como loco, sin tener en cuenta que podía arreglarse (mejor) con un sólo método un "switch" la mar de chulo. Total, estos y otros pequeños cambios "internos" en esta última actualización, por si le interesa a alguien. ![]() |
|
#2
|
||||
|
||||
|
Hola,
Otra actualización tal vez curiosa. Al cabo he conseguido que los métodos "mágicos" puedan trabajar con los mismos argumentos que la función "filter_var()" de PHP. Esto quiere decir que el método "mágico" "Value()" puede retornar un valor "sanitizado", y los diferentes métodos "mágicos" "IsInteger()", "IsFloat()", etc., pueden trabajar con opciones, de manera que sea posible establecer las mismas opciones (rangos, valores mínimos y máximos, valores "por defecto") tal como puede hacerse con la función "filter_var()". Ea. Espero no ser demasiado pesado. ¬¬ |
|
#3
|
||||
|
||||
|
Hola,
Otra pequeña actualización que me gustaría comentar, en este caso, porque ha "tocado" la forma en que han de definirse los elementos de un formulario. Simplemente, se trata de identificar a cada elemento por su nombre (que ha de ser único, como es lógico, puesto que los elementos de un formulario no pueden "solaparse"), de manera que ahora cada "Array" de la definición del formulario que define un elemento, debe contar con una "clave", precisamente, el nombre de dicho elemento. Esto ya ha servido para eliminar cierta complejidad en los métodos "internos" "__set()" y "__unset()" que son ahora más eficientes y elegantes, aunque esté feo que yo lo diga, quien los viera y los vea ahora creo que pensará igual. Pero, también es posible que se utitlice esta nueva característica en la definición de los elementos de los formularios en el futuro, por ejemplo, para poder ordenar o resituar los elementos en base a su nombre. Al cabo creo que estoy logrando una clase más o menos curiosa. Entre otras cosas, algo que sólo pensaba pero he terminado haciendo es que la clase HtmlForm trabaje junto con la extensión "filter" de PHP. De este modo, pueden obtenerse valores "filtrados" y/o "validados", de hecho los métodos "IsInteger", "IsBoolean", "Value()", etc., todos aceptan los argumentos y opciones que acepta la función "filter_var()", ahorrándote el trabajo de tener que indicar el tipo de un determinado filtro, por ejemplo. Sin ir más lejos el método "Values()" permite ser utilizado como la función "filter_var_array()", de manera que se pueden filtrar y validar varios e incluso todos los elementos de un formulario de una sola tacada, y todo esto de la misma manera en que se haría utilizando las funciones mencionadas ("filter_var()", "filter_array()") por nuestra cuenta. En definitiva, que creo que la clase HtmlForm va quedando mejor incluso de lo que pensaba al principio que podía quedar. Me gustaría publicar incluso una "HtmlForm 2", pero no porque tenga que cambiar nada, sino de manera que la comentase (documentase) y la presentase aquí de otra forma, más sencilla, puesto que me parece que al principio solté un rollo tan grande que me temo que algunos de vosotros hayáis pasado de largo sin más y no sin razón. En fin, ya se verá. Disculpad otra vez si no consigo explicarme o me alargo demasiado. ¬¬ |
|
#4
|
||||
|
||||
|
Jau!
Conste que todavía no he probado la clase y que la necesito para ahorrame el trabajo de hacer yo una (pero con toda seguridad) que sustituya al conjunto de funciones para generar forms que uso actualmente. El conjunto de funciones que uso me permiten generar inputs, selects, textareas, etc, y según los parametros que les pase a dichas funciones dichos inputs pueden ser datepickers, colorpickers, option select tipo combobox, listbox, dbcombobox, etc, y los textareas pueden usar script wysiwyg como jwysiwyg (el mas ligero) , tinymce (el mas usado), spaw(el mejor), fckeditor (el engendro), o cualquier otro. Ademas, permiten valores por defecto, mensajes de alerta y/o ayuda, etc. Ademas, su aspecto va controlado vía .css lo que permite que un mismo form tenga una aapriencia totalmente distinta según el "theme" que se use. Todo eso y alguna cosa mas, pero esta hecho mas con el culo que con la cabeza, en plan código spaguetti, pues al principio las pretensiones eran bastate mas simples y he ido ampliando y complicando conforme han surgido necesidades, así que creo, estoy seguro de que necesito algo bien hecho. Por lo que dices creo, y sabiendo como haces las cosas estoy seguro, que tu clase puede o podrá hacer todo eso , y muy bien hecho. O sea, que aún no la he mirao, pero es mas que probable que termine usandola, XDDD Tu lo has querido XDD PD: deberías poner una demo en alguna web.
__________________
"la única iglesia que ilumina es la que arde" Anonimo |
|
#5
|
||||
|
||||
|
Hola,
Gracias por tus comentarios e inmerecidos aplausos Julián. Fíjate que sin haberla puesto aún en "producción", creo que esta clase, en efecto, terminaré usándola en algún que otro proyecto. Está quedando incluso mejor de lo que yo creía, y, hasta cierto punto, esto me asusta un poco, porque vaya que aparezca algo que lo jorobe... Sin embargo, tal como está ahora mismo (he trabajado en ella desde que publiqué mi primer mensaje aquí) la clase permite hacer una serie de cosas que voy a ver si resumo para que queden lo más claras posibles. Estas son las características conque ya puede contarse, tal vez las únicas, puesto que no quiero llenarla de cosas, sino en todo caso dejar que la clase sea "extensible". A ver: 1º La clase HtmlForm permite ahora mismo definir un formulario HTML con todos sus elementos. Estos elementos pueden ser todos los estándar, tanto de HTML 4 como de HTML 5, pudiéndose imprimir HTML o XHTML, aunque esto último es realmente sencillo: pero hay que hacerlo y puede hacerse. 2º La definición del formulario es un Array asociativo que contiene las propiedades del formulario (atributos: action, legend, method, etc.) y que también contiene los propios elementos del formulario, todos ellos identificados por su nombre. 3º En aras de evitar posibles restricciones cada elemento puede imprimir código "antes" y "después" que a sí mismo, además de contar con propiedades que no se corresponden con atributos de los elementos, pero, son "propiedades" que se utilizarán por la clase HtmlForm, por ejemplo y como he dicho ya: before, after, wrap y creo que alguna más... 4º No existen otros elementos que sean los estándar. La clase HtmlForm produce HTML puro y duro, estándar, que podrá en cualquier caso ser extendido mediante Javascript y al que se podrá aplicar el estilo CSS que se precise. Hay que tener en cuenta que los elementos estándar soportados son todos ellos: textarea, select (con opciones, claro), text, hidden, button, email, tel, date, datetime, etc. Todos los elementos se definen exactamente de la misma "intuitiva" forma. 5º La clase HtmlForm (esto es nuevo) trabaja junto con la extensión Filter de PHP. Esto quiere decir que es posible filtrar y validar los valores enviados en un formulario utilizando la extensión Filter y toda su potencia, y, sin embargo, siendo el planteamiento algo más sencillo, puesto que, por ejemplo: Código PHP:
6º Hacer uso de métodos mágicos de PHP como "__get()", "__set()" y "__call()", por ejemplo, permite escribir cosas como esta: Código PHP:
7º Como he mencionado, estos métodos trabajan junto con la función "filter_var()", lo que permite hacer cosas como esta para validar un determinado valor enviado junto al formulario: Código PHP:
8º Otro método útil es el método "Values()", que retornará todos los valores enviados en un formulario, pero, opcionalmente, se comportará igual que la función "filter_var_array()", que permite a su vez filtrar y/o validar todos los elementos de un formulario "a la vez". En definitiva, no siendo tan tonto como para pensar que no pueda hacerse de mejores formas, sí encuentro (modestia aparte) que la clase "HtmlForm", siendo una sola clase (ojo) y de no demasiadas líneas de código ni complejidad, cumple con su objetivo e incluso me atrevería a decir que no me ha quedado mal del todo, a falta claro está de algunas cosas que ya tengo pensadas, como la de dar la posibilidad de ordenar los elementos de un formulario, de añadirlos en un lugar determinado, permitir añadir HTML puro y duro (ya veremos cómo), etc., etc. Y no digo más que me enrrollo siempre más que las persianas. ¡Pues no he dicho que iba a ser breve, claro y conciso! Ah, que no lo he dicho. ![]() |
|
#6
|
||||
|
||||
|
Hola,
Tras otras cuantas actualizaciones (que no he referido aquí porque no ha habido más descargas) la clase HtmlForm se va perfilando. Hoy, entre otras cosas, la he "redocumentado" y el archivo "zip" incluye ahora la documentación generada con PhpDocumentor. Básicamente por si alguien está interesado, lo digo. ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| clase que contiene otra clase definida de forma posterior | astwin | OOP | 5 | 20-02-2009 11:26:55 |
| Crear eventos para una clase | DarkByte | OOP | 10 | 07-12-2005 20:02:28 |
| Clase para hacer ABM | mateamargo | OOP | 3 | 25-10-2005 22:34:23 |
| Ayuda para crear una clase | estebanx | OOP | 0 | 10-03-2005 16:36:49 |
| Conversión de tipo para clase inválida | scooterjgm | Conexión con bases de datos | 6 | 20-01-2005 15:33:55 |
|