Revisión actual |
Tu texto |
Línea 1: |
Línea 1: |
| Documentación de KumbiaPHP 1.0 beta2 | | Documentación de KumbiaPHP 1.0 beta2 |
| | | |
− | | + | == '''Clase Html''' == |
− | == Migrando de la versión 1.0 Beta1 a Beta2 == | |
− |
| |
− | La versión 1.0 beta2 trae consigo correcciones y mejoras, nuevos helpers, clases y extensiones que facilitaran aun mas el trabajo.
| |
− | | |
− | Para realizar la migración de la versión 1.0beta1 a la versión 1.0beta2 solamente hay que tener presentes los cambios que se han realizado en cuanto a funcionamiento, la inclusión de nuevos helpers para las vistas y controllers.
| |
− | | |
− | Recordemos que todo lo que se incluye es con el fin de facilitar la curva de aprendizaje, la forma de trabajo y de poseer un framework con una semántica mucho mayor, claro esta que sigue sin perder su cualidades mvc y de scaffolding
| |
− | | |
− | === Autoload libs (Nuevo) ===
| |
− | | |
− | | |
− | En la versión 1.0 beta 2 las librerías se cargan automáticamente, siempre y cuando se encuentren en el directorio correspondiente “app/libs”, de igual modo se cargan las extensiones automáticamente “extensions/” y los helpers “helpers/”. Por esta razón el archivo “/config/boot.ini” ya no se usa en la versión 1.0 beta2
| |
− | | |
− | ==== Como se usa ====
| |
− | | |
− | Como verán se omite la carga de librerías y se crea directamente el objeto
| |
− | | |
− | '''Versión 1.0 beta 1''' | |
− | <source lang=php>
| |
− | Load::lib('session');
| |
− | $var = Session::get('var');</source>
| |
− | | |
− | '''Versión 1.0 beta 2'''
| |
− | <source lang=php>$var = Session::get('var');</source>
| |
− | | |
− | | |
− | ==== ¿Que debo cambiar? ====
| |
− | | |
− | Si se tiene una APP con la versión 1.0 beta1, solamente debe eliminar (ya que no sera necesario) el archivo “/config/boot.ini” la carga de librerías que se realizaba mediante load::lib(''); ya no es necesaria, así que estas también se pueden borrar.
| |
− | En resumen: eliminar todas las cargas de librerías que se hagan mediante load::lib(''); y boot.ini
| |
− | | |
− | | |
− | | |
− | === El Controlador principal cambio de nombre ===
| |
− | | |
− | Dentro de los cambios que encontraremos en las versiones beta 1 y beta 2 estar el cambio de nombre del archivo application.php por application_controller.php el cual mantendrá la funcionalidad, solo cambia el nombre del archivo que sigue siendo el controller principal
| |
− | | |
− | ¿porque se cambio? simple, es un controller y al igual que los demás debe llevar el sufijo _controller que identifica los controladores de kumbiaphp
| |
− | | |
− | === Nuevo árbol de directorios ===
| |
− | | |
− | Anteriormente los partials, templates y errors se almacenaban en 'app/views/' a pesar de que no eran vistas, debido a eso se creo el directorio '_shared' y se movió todo lo que no son vistas allí.
| |
− | | |
− | _shared es el directorio 'app/views/_shared' que ahora almacena partials, templates y errors
| |
− | | |
− | Así que en nuestra migración debemos mover los archivos correspondientes a dichos directorios
| |
− | Ejemplo: 'app/views/partials/menu.phtml' pasara al directorio 'app/views/_shared/partials/menu.phtml'
| |
− | (pueden ver el ejemplo básico dentro de su app con el partial footer.phtml que se encuentra en dicho directorio)
| |
− | | |
− | == Helpers ==
| |
− | Los helpers (ayudas) se usan en los views. Encapsulan código en métodos para su fácil reuso.
| |
− | KumbiaPHP ya viene con helpers creados.
| |
− | | |
− | Pero lo realmente útil, es que los usuarios se pueden crear sus propios helpers y colocarlos en app/extensions/helpers/. Y después usarlos tranquilamente en sus views, KumbiaPHP se encarga de cargar transparentemente sus helpers asi como los uses.
| |
− | === Clase Html ===
| |
| | | |
| Clase con métodos estáticos con la que podemos crear etiquetas HTML optimizadas respetando las convenciones de KumbiaPHP. | | Clase con métodos estáticos con la que podemos crear etiquetas HTML optimizadas respetando las convenciones de KumbiaPHP. |
| | | |
| | | |
− | ==== Html::img() ====
| + | === Html::img() === |
| Permite incluir una imagen | | Permite incluir una imagen |
| <pre> | | <pre> |
Línea 67: |
Línea 12: |
| $alt atruibuto alt para la imagen | | $alt atruibuto alt para la imagen |
| $attrs atributos adicionales | | $attrs atributos adicionales |
− |
| |
| img ($src, $alt=NULL, $attrs = NULL) | | img ($src, $alt=NULL, $attrs = NULL) |
| </pre> | | </pre> |
Línea 78: |
Línea 22: |
| | | |
| | | |
− | ==== Html::link() ====
| + | === Html::link() === |
| Permite incluir un link | | Permite incluir un link |
| <pre> | | <pre> |
Línea 84: |
Línea 28: |
| $text texto a mostrar | | $text texto a mostrar |
| $attrs atributos adicionales | | $attrs atributos adicionales |
− |
| |
| link ($action, $text, $attrs = NULL) | | link ($action, $text, $attrs = NULL) |
| </pre> | | </pre> |
Línea 94: |
Línea 37: |
| | | |
| | | |
− | ==== Html::lists() ====
| + | === Html::lists() === |
| Crea una lista html a partir de un array | | Crea una lista html a partir de un array |
| <pre> | | <pre> |
Línea 100: |
Línea 43: |
| $type por defecto ul, y si no ol | | $type por defecto ul, y si no ol |
| $attrs atributos adicionales | | $attrs atributos adicionales |
− |
| |
| lists($array, $type = 'ul', $attrs = NULL) | | lists($array, $type = 'ul', $attrs = NULL) |
| </pre> | | </pre> |
Línea 116: |
Línea 58: |
| //$ar el array que contiene los items de la lista | | //$ar el array que contiene los items de la lista |
| echo Html::lists($ar, $type = 'ol'); //Muestra una lista <ol></ol> | | echo Html::lists($ar, $type = 'ol'); //Muestra una lista <ol></ol> |
− |
| |
− |
| |
− | $ar2 = array('Abdomen','Brazos','Cabeza','Cuello','Genitales','Piernas','Tórax','Otros');
| |
− | echo Html::lists($ar2, $type = 'ol'); //Muestra una lista <ol></ol>
| |
| </source> | | </source> |
| | | |
| | | |
− | ==== Html::gravatar() ====
| + | === Html::includeCss() === |
− | Incluye imágenes de http://www.gravatar.com
| |
− | <pre>
| |
− | $email Correo para conseguir su gravatar
| |
− | $alt Texto alternativo de la imagen. Por defecto: gravatar
| |
− | $size Tamaño del gravatar. Un numero de 1 a 512. Por defecto: 40
| |
− | $default URL gravatar por defecto si no existe, o un default de gravatar. Por defecto: mm
| |
− | </pre>
| |
− | <source lang=php>
| |
− | echo Html::gravatar( $email ); // Simple
| |
− | echo Html::link( Html::gravatar($email), $url); // Un gravatar que es un link
| |
− | echo Html::gravatar( $email, $name, 20, 'http://www.example.com/default.jpg'); //Completo
| |
− | </source>
| |
− | | |
− | | |
− | ==== Html::includeCss() ====
| |
| Incluye los archivos CSS que previamente fueron cargados a la lista mediante Tag::css() | | Incluye los archivos CSS que previamente fueron cargados a la lista mediante Tag::css() |
| | | |
Línea 147: |
Línea 70: |
| | | |
| | | |
− | ==== Html::meta() ====
| + | === Html::headLink() === |
− | Crea un metatag y lo agrega a una lista estatica que sera añadida mas adelnate mediante Html::includeMetatags();
| + | Enlaza una acción |
| | | |
− | <pre>
| + | me falta info... |
− | $content contenido del metatag
| |
− | $attrs atributos adicionales del tag
| |
− | meta($content, $attrs = NULL)
| |
− | </pre>
| |
| | | |
− | <source lang=php>
| |
− | Html::meta('Kumbiaphp-team',"name = 'Author'"); //Agrega: <meta content="Kumbiaphp-team" name = 'Author'/>
| |
− | Html::meta('text/html; charset=UTF-8',"http-equiv = 'Content-type'"); //Agrega: <meta content="text/html; charset=UTF-8" http-equiv = 'Content-type'/>
| |
− | </source>
| |
| | | |
| + | === Html::headLinkAction() === |
| + | Enlaza una accion |
| | | |
− | ==== Html::includeMetatags() ====
| + | me falta info... |
− | Agrega los metatag que previamente se habia agregado
| |
| | | |
− | <source lang=php>
| |
− | Html::meta('Kumbiaphp-team',"name = 'Author'");
| |
− | Html::meta('text/html; charset=UTF-8',"http-equiv = 'Content-type'");
| |
− | echo Html::includeMetatags(); //Visualiza <meta content="Kumbiaphp-team" name = 'Author'/>
| |
− | </source>
| |
− |
| |
− | ==== Html::headLink() ====
| |
− | Agrega un elemento de vinculo externo de tipo [http://html.conclase.net/w3c/html401-es/struct/links.html#h-12.3 <link> ] a la cola de enlaces (para poder ser visualizado se requiere de Html::includeHeadLinks() de modo similar que Html::includeCss())
| |
| | | |
− | <pre>
| + | === Html::headLinkResource() === |
− | $href direccion url del recurso a enlazar
| + | Enlaza un recurso de la aplicacion |
− | $attrs atributos adicionales
| |
| | | |
− | headLink($href, $attrs = NULL)
| + | me falta info... |
− | </pre>
| |
| | | |
− | <source lang="php" line>
| |
− | //Se agrega a la cola de links el enlace a un recurso externo, en este caso la hoja de estilo ubicada en "http://www.kumbiaphp.com/public/style.css"
| |
− | Html::headlink('http://www.kumbiaphp.com/public/style.css',"rel='stylesheet',type='text/css' media='screen'");
| |
| | | |
− | /*Agrega a la cola de links "<link rel="alternate" type="application/rss+xml" title="KumbiaPHP Framework RSS Feed" href="http://www.kumbiaphp.com/blog/feed/" />" con lo cual podemos incluir un feed sin usar las convenciones de kumbiaphp */
| + | === Html::includeHeadLinks() === |
− | Html::headlink('http://www.kumbiaphp.com/blog/feed/',"rel='alternate' type='application/rss+xml' title='KumbiaPHP Framework RSS Feed'"); | + | Incluye los links para el head |
| | | |
− | Html::headlink('http://www.kumbiaphp.com/favicon.ico',"rel='shortcut icon',type='image/x-icon'"); //Agrega la etiqueta <link> para usar un favicon externo | + | <source lang=php> |
− | | + | echo Html::headLink('www.google.com'); |
− | echo Html::includeHeadLinks(); //Muestra los links que contiene la cola | + | echo Html::includeHeadLinks(); |
| </source> | | </source> |
| | | |
− | ==== Html::headLinkAction() ====
| |
− | Agrega un elemento de vinculo interno de tipo [http://html.conclase.net/w3c/html401-es/struct/links.html#h-12.3 <link> ] a la cola de enlaces (para poder ser visualizado se requiere de Html::includeHeadLinks() de modo similar que Html::includeCss()) respetando las convenciones de kumbiaphp
| |
− |
| |
− | <pre>
| |
− | $href direccion url del recurso a enlazar
| |
− | $attrs atributos adicionales
| |
− |
| |
− | headLinkAction($action, $attrs = NULL)
| |
− | </pre>
| |
− |
| |
− | <source lang="php" line>
| |
| | | |
− | /*Agrega a la cola de links "<link rel="alternate" type="application/rss+xml" title="KumbiaPHP Framework RSS Feed" href="http://www.kumbiaphp.com/blog/feed/" />" con lo cual podemos incluir un feed usando las convenciones de kumbiaphp.
| |
− | Siendo 'articulos/feed' el nombre de la vista con el contenido del feed */
| |
− | Html::headLinkAction('articulos/feed', "rel='alternate' type='application/rss+xml' title='KumbiaPHP Framework RSS Feed'");
| |
| | | |
− | | + | == '''Clase Tag''' == |
− | echo Html::includeHeadLinks(); //Muestra los links que contiene la cola
| |
− | </source>
| |
− | | |
− | | |
− | | |
− | ==== Html::headLinkResource() ====
| |
− | Agrega un elemento de vinculo a un recurso interno con la etiqueta [http://html.conclase.net/w3c/html401-es/struct/links.html#h-12.3 <link> ] a la cola de enlaces (para poder ser visualizado se requiere de Html::includeHeadLinks())
| |
− | | |
− | <pre>
| |
− | $resource ubicacion del recurso en public
| |
− | $attrs atributos adicionales
| |
− | | |
− | headLinkResource($resource, $attrs = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang="php" line>
| |
− | Html::headLinkResource('favicon.ico',"rel='shortcut icon',type='image/x-icon'"); //Agrega la etiqueta <link> para usar un favicon interno ubicado en el directorio '/public/'
| |
− | | |
− | echo Html::includeHeadLinks(); //Muestra los links que contiene la cola
| |
− | </source>
| |
− | | |
− | | |
− | | |
− | ==== Html::includeHeadLinks() ====
| |
− | Incluye los links que previamente se pusieron en cola
| |
− | | |
− | <source lang=php>
| |
− | | |
− | Html::headlink('http://www.kumbiaphp.com/favicon.ico',"rel='shortcut icon',type='image/x-icon'"); //Agrega la etiqueta <link> para usar un favicon externo
| |
− | | |
− | Html::headLinkAction('articulos/feed', "rel='alternate' type='application/rss+xml' title='KumbiaPHP Framework RSS Feed'");
| |
− | | |
− | echo Html::includeHeadLinks();
| |
− | </source>
| |
− | | |
− | === '''Clase Tag''' ===
| |
| | | |
| Esta clase nos va a permitir adicionar archivos JS y CSS a nuestro proyecto (como lo hacíamos con las funciones stylesheet_link_tag y javascript_include_tag de la Beta1), bien sean archivos que se encuentren en nuestro servidor o en un servidor externo. Tambien vamos a poder hacer | | Esta clase nos va a permitir adicionar archivos JS y CSS a nuestro proyecto (como lo hacíamos con las funciones stylesheet_link_tag y javascript_include_tag de la Beta1), bien sean archivos que se encuentren en nuestro servidor o en un servidor externo. Tambien vamos a poder hacer |
Línea 251: |
Línea 104: |
| Las funciones de esta clase son de tipo static lo que nos permite referenciarlas directamente de la forma como se presentan a continuación. | | Las funciones de esta clase son de tipo static lo que nos permite referenciarlas directamente de la forma como se presentan a continuación. |
| | | |
− | ==== Tag::css() ====
| + | === Tag::css() === |
| | | |
| Incluye un archivo CSS a la lista | | Incluye un archivo CSS a la lista |
Línea 259: |
Línea 112: |
| </source> | | </source> |
| | | |
− | ==== Tag::js() ====
| + | === Tag::js() === |
| Incluye un archivo JavaScript a la vista, partial o template | | Incluye un archivo JavaScript a la vista, partial o template |
| <source lang=php> | | <source lang=php> |
− | <?php echo Tag::js('jquery/html5shiv');?> //Adiciona un archivo javascript (app/public/javascript/jquery/html5shiv.js)
| + | Tag::js('jquery/jquery.kumbiaphp') //Adiciona un archivo javascript (app/public/javascript/jquery/jquery.kumbiaphp) |
− | // no poner la terminación js
| |
− | // no olvides de poner echo antes de TAG
| |
| </source> | | </source> |
| | | |
− | === '''Clase Form''' ===
| + | |
| + | == '''Clase Form''' == |
| Clase para el manejo y la creación de formularios | | Clase para el manejo y la creación de formularios |
| | | |
| | | |
− | ==== Form::open() ====
| + | === Form::open() === |
| Crea una etiqueta de formulario | | Crea una etiqueta de formulario |
| <pre> | | <pre> |
| $action acción a la que envía los datos, por defecto llama la misma acción de donde proviene | | $action acción a la que envía los datos, por defecto llama la misma acción de donde proviene |
− | $method 'POST', 'GET', 'DELETE', 'HEAD', 'PUT'. Por defecto se tiene en 'POST' | + | $method 'post' o 'get', por defecto se tiene en 'post' |
| $attrs atributos adicionales | | $attrs atributos adicionales |
− | | + | open($action = NULL, $method = 'post', $attrs = NULL) |
− | Form::open($action = NULL, $method = 'POST', $attrs = NULL)
| |
| </pre> | | </pre> |
| | | |
| <source lang=php> | | <source lang=php> |
| /*Ejemplo*/ | | /*Ejemplo*/ |
− | <?php echo Form::open(); ?>//inicia un formulario que enviara los datos a la acción que corresponde al controller actual
| + | echo Form::open();//inicia un formulario que enviara los datos a la acción que corresponde a la vista actual |
− | <?php echo Form::open('usuarios/nuevo'); ?> //inicia un formulario que enviara los datos al controller 'usuarios' y la acción 'nuevo'
| + | echo Form::open('usuarios/nuevo');//inicia un formulario que enviara los datos al controller 'usuario' y la acción 'nuevo' |
| </source> | | </source> |
| | | |
− | ==== Form::openMultipart() ====
| + | |
− | Crea una etiqueta de formulario multipart, este es ideal para formularios que contienen campos de subida de archivos | + | === Form::multipart() === |
| + | Crea una etiqueta de formulario multipart |
| <pre> | | <pre> |
| $action acción a la que envía los datos, por defecto llama la misma acción de donde proviene | | $action acción a la que envía los datos, por defecto llama la misma acción de donde proviene |
| $attrs atributos adicionales | | $attrs atributos adicionales |
− |
| |
| openMultipart ($action = NULL, $attrs = NULL) | | openMultipart ($action = NULL, $attrs = NULL) |
| </pre> | | </pre> |
Línea 298: |
Línea 149: |
| <source lang=php> | | <source lang=php> |
| /*Ejemplo*/ | | /*Ejemplo*/ |
− | echo Form::openMultipart();//inicia un formulario multipart que enviara los datos a la acción que corresponde a la vista actual | + | echo Form::multipart();//inicia un formulario multipart que enviara los datos a la acción que corresponde a la vista actual |
− | echo Form::openMultipart('usuarios/nuevo');//inicia un formulario multipart que enviara los datos al controller 'usuario' y la acción 'nuevo' | + | echo Form::multipart('usuarios/nuevo');//inicia un formulario multipart que enviara los datos al controller 'usuario' y la acción 'nuevo' |
| </source> | | </source> |
| | | |
| | | |
− | | + | === Form::close() === |
− | ==== Form::close() ====
| |
| Crea una etiqueta de cierre de formulario | | Crea una etiqueta de cierre de formulario |
| | | |
Línea 313: |
Línea 163: |
| | | |
| | | |
− | | + | === Form::input() === |
− | ==== Form::input() ====
| |
| Crea un campo de tipo input | | Crea un campo de tipo input |
| <pre> | | <pre> |
| $attrs atributos para el tag | | $attrs atributos para el tag |
| $content contenido interno | | $content contenido interno |
− |
| |
| input($attrs = NULL, $content = NULL) | | input($attrs = NULL, $content = NULL) |
| </pre> | | </pre> |
Línea 329: |
Línea 177: |
| | | |
| | | |
− | | + | === Form::text() === |
− | ==== Form::text() ====
| |
| Crea un campo de tipo input | | Crea un campo de tipo input |
| | | |
Línea 338: |
Línea 185: |
| $attrs atributos de campo | | $attrs atributos de campo |
| $value valor inicial para el input | | $value valor inicial para el input |
− |
| |
| text($field, $attrs = NULL, $value = NULL) | | text($field, $attrs = NULL, $value = NULL) |
| </pre> | | </pre> |
Línea 349: |
Línea 195: |
| </source> | | </source> |
| | | |
− | | + | = Migrando de 1.0 Beta 1 a 1.0 Beta 2 = |
− | | |
− | ==== Form::pass() ==== | |
− | Crea un campo de tipo Password
| |
− | <pre>
| |
− | $field nombre de campo
| |
− | $attrs atributos de campo
| |
− | $value valor inicial para el campo
| |
− | | |
− | pass($field, $attrs = NULL, $value = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | /*Ejemplo*/
| |
− | echo Form::pass('password'); //crea un campo de tipo password con el parametro name= "password"
| |
− | </source>
| |
− | | |
− | | |
− | | |
− | ==== Form::textarea() ====
| |
− | Crea un textarea
| |
− | <pre>
| |
− | $field nombre de campo
| |
− | $attrs atributos de campo
| |
− | $value valor inicial para el textarea
| |
− | | |
− | textarea($field, $attrs = NULL, $value = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | echo Form::textarea('detalles'); //Crea un textarea
| |
− | </source>
| |
− | | |
− | | |
− | | |
− | ==== Form::label() ====
| |
− | Crea un label y lo asocia a un campo
| |
− | <pre>
| |
− | $text texto a mostrar
| |
− | $field campo al que hace referencia
| |
− | $attrs array de atributos opcionales
| |
− | | |
− | label($text, $field, $attrs = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | echo Form::label('nombre de usuario:','nombre'); //Crea un label para el campo nombre con el texto 'nombre de usuario:'
| |
− | echo Form::text('nombre');
| |
− | </source>
| |
− | | |
− | | |
− | | |
− | ==== Form::hidden() ====
| |
− | Crea un campo hidden (campo oculto)
| |
− | <pre>
| |
− | $field nombre de campo
| |
− | $attrs atributos adicionales de campo
| |
− | $value valor inicial para el campo oculto
| |
− | | |
− | hidden($field, $attrs = NULL, $value = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | echo Form::hidden('id',null,12); //Crea un campo oculto con el name="id" y el value="12"
| |
− | </source>
| |
− | | |
− | | |
− | | |
− | ==== Form::dbSelect() ====
| |
− | Crea un select con los datos de la tabla relacionada.
| |
− | | |
− | La forma más simple usa convención, pero se puede configurar también. Ojo, no es necesario instanciar el modelo en el controller.
| |
− | | |
− | Ejemplos de uso:
| |
− | <source lang=php>Form::dbSelect('model.campo_id');</source>
| |
− | Esto carga el modelo(campo) y muestra el primer campo despues del pk(id), ordenado ascendentemente.
| |
− | | |
− | El 80-90% casos es suficiente.
| |
− | | |
− | Tambien se puede elegir poner en la tabla el siguiente campo (id,usuario,...)(id,ciudad,...)(id,pais,...)
| |
− | (id,departamento,...)(id,nombre,...).
| |
− | | |
− | | |
− | Para elegir otro campo, que no es el siguiente al pk.
| |
− | | |
− | Queda muy fácil asi:
| |
− | <source lang=php>Form::dbSelect('model.campo_id','campo');</source>
| |
− | En este caso le indigamos el campo a mostrar y se muestra ordenado ascendentemente.
| |
− | | |
− | | |
− | Para casos especiales también se puede configurar:
| |
− | <source lang=php>Form::dbSelect('model.campo_id','campo',array('modelo','metodo','param'));</source>
| |
− | Campo es el campo a mostrar.
| |
− | El array de datos para la conexión, $modelo->metodo(param).
| |
− | | |
− | En este último caso el único parámetro opcional es el 'param'.
| |
− | | |
− | KISS KumbiaPHP :).
| |
− | | |
− | ==== Form::select() ====
| |
− | Crea un campo Select (un combobox)
| |
− | <pre>
| |
− | $field nombre de campo
| |
− | $data array de valores para la lista desplegable
| |
− | $attrs atributos de campo
| |
− | $value valor inicial para el campo
| |
− | | |
− | select($field, $data, $attrs = NULL, $value = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $ar2 = array('Abdomen','Brazos','Cabeza','Cuello','Genitales','Piernas','Tórax','Otros');
| |
− | echo Form::Select('region', $ar2,'Cuello'); //Crea un campo Select (un combobox) con el nombre 'region' y teniendo preseleccionado 'Cuello'
| |
− | </source>
| |
− | Resultado:
| |
− | <pre>
| |
− | <select id="region" name="region">
| |
− | <option value="0">Abdomen</option>
| |
− | <option value="1">Brazos</option>
| |
− | [...]
| |
− | </select>
| |
− | </pre>
| |
− | Otra Posibilidad:
| |
− | <source lang=php>
| |
− | $ar2 = array('Abdomen'=>'Abdomen','Brazos'=>'Brazos','Cabeza'=>'Cabeza','Cuello'=>'Cuello','Genitales'=>'Genitales','Piernas'=>'Piernas','Tórax'=>'Tórax','Otros'=>'Otros');
| |
− | echo Form::Select('region', $ar2,'Cuello');
| |
− | </source>
| |
− | Resultado:
| |
− | <pre>
| |
− | <select id="region" name="region">
| |
− | <option value="Abdomen">Abdomen</option>
| |
− | <option value="Brazos">Brazos</option>
| |
− | [...]
| |
− | </select>
| |
− | </pre>
| |
− | | |
− | ==== Form::file() ====
| |
− | Crea campo File para subir archivos, el formulario se debe abrir con Form::openMultipart()
| |
− | <pre>
| |
− | $field nombre de campo
| |
− | $attrs atributos de campo
| |
− | | |
− | file($field, $attrs = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | echo Form::openMultipart(); //Abre el formulario multipart
| |
− | echo Form::file('subir'); crear el campo para subir archivos
| |
− | echo Form::close(); //Cierra el formulario
| |
− | </source>
| |
− | | |
− | ==== Form::button() ====
| |
− | Crea un botón
| |
− | <pre>
| |
− | $text texto del botón
| |
− | $attrs atributos del botón
| |
− | | |
− | button($text, $attrs = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | echo Form::button('calcular'); //Crea un botón con el texto 'calcular'
| |
− | </source>
| |
− | | |
− | | |
− | ==== Form::submitImage() ====
| |
− | Crea un botón de tipo imagen siguendo las convenciones de kumbiaphp, la imagen deberá estar dentro del directorio '/public/img/'
| |
− | <pre>
| |
− | $img ruta de la imagen que usa el botón
| |
− | $attrs atributos del botón
| |
− | | |
− | submitImage($img, $attrs = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | echo Form::submitImage('botones/edit.gif'); //Crea un botón con la imagen 'botones/edit.gif'
| |
− | </source>
| |
− | | |
− | ==== Form::submit() ====
| |
− | Crea un boton de submit para el formulario actual
| |
− | <pre>
| |
− | $text texto del botón
| |
− | $attrs atributos del botón
| |
− | | |
− | submit($text, $attrs = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | echo Form::submit('enviar'); //Crea un botón con el texto 'enviar'
| |
− | </source>
| |
− | | |
− | | |
− | ==== Form::reset() ====
| |
− | Crea un botón reset para el formulario actual
| |
− | <pre>
| |
− | $text texto del botón
| |
− | $attrs atributos del botón
| |
− | | |
− | reset($text, $attrs = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | echo Form::reset('reiniciar'); //Crea un botón con el texto 'reiniciar'
| |
− | </source>
| |
− | | |
− | | |
− | ==== Form::check() ====
| |
− | Crea un checkbox
| |
− | <pre>
| |
− | $field nombre de campo
| |
− | $value valor en el checkbox
| |
− | $attrs atributos de campo
| |
− | $checked indica si se marca el campo
| |
− | | |
− | check($field, $value, $attrs = NULL, $checked = NULL);
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | echo Form::check('recuerdame','1','',true); // Crea un check seleccionado con id="recuerdame" , name="recuerdame" y value="1"
| |
− | echo Form::check('recuerdame','1','',false); // Crea un check NO seleccionado con id="recuerdame" , name="recuerdame" y value="1"
| |
− |
| |
− | </source>
| |
− | | |
− | ==== Form::radio() ====
| |
− | Crea un radio button
| |
− | <pre>
| |
− | $field nombre de campo
| |
− | $value valor en el radio
| |
− | $attrs atributos de campo
| |
− | $checked indica si se marca el campo
| |
− | | |
− | radio($field, $value, $attrs = NULL, $checked = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $on = 'masculino';
| |
− | echo Form::radio("rdo", 'masculino', NULL, TRUE); //<input id="rdo1" name="rdo" type="radio" value="masculino" checked="checked">
| |
− | echo Form::radio("rdo", 'femenino'); //<input id="rdo2" name="rdo" type="radio" value="femenino">
| |
− | </source>
| |
− | | |
− | | |
− | | |
− | ----
| |
− | | |
− | Por supuesto... aun falta a esta documentación, por el momento les recomiendo que revisen el CRUD de la versión 1.0 beta 2 allí podrán ver otros cambios, estos se documentaran muy pronto [[Beta2_CRUD_en_KumbiaPHP_Framework| CRUD Beta2 KumbiaPHP]]
| |
− | | |
− | == Libreria Upload ==
| |
− | | |
− | La nueva implementación de Upload incluye ahora mayor seguridad y facilidad de uso. Existen dos adaptadores para subir archivos, el adaptador FileUpload y el adaptador ImageUpload.
| |
− | | |
− | === factory() ===
| |
− | Este metodo permite obtener un objeto Upload correspondiente al adaptador requerido. Los argumentos que acepta son los siguientes:
| |
− | | |
− | <pre>
| |
− | $name (string): el nombre del campo correspondiente al archivo en el formulario.
| |
− | $adapter (string): adaptador para upload (file, image)
| |
− | | |
− | factory($name, $adapter = 'file')
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | </source>
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | === Ejemplo simple ===
| |
− | Se presenta un ejemplo simple de uso de la libreria Upload.
| |
− | | |
− | Modelo '''archivador.php''':
| |
− | | |
− | <source lang=php>
| |
− | class Archivador
| |
− | {
| |
− | /**
| |
− | * Guardar archivo
| |
− | *
| |
− | * @return boolean
| |
− | */
| |
− | public static function guardar()
| |
− | {
| |
− | $file = Upload::factory('archivo');
| |
− | | |
− | // Guarda el archivo en el directorio "public/files/upload"
| |
− | if($file->save()) {
| |
− | Flash::valid('Operación Exitosa');
| |
− | return TRUE;
| |
− | }
| |
− | | |
− | return FALSE;
| |
− | }
| |
− | }
| |
− | </source>
| |
− | | |
− | Controlador '''archivador_controller.php''':
| |
− | | |
− | <source lang=php>
| |
− | class ArchivadorController extends ApplicationController
| |
− | {
| |
− | /**
| |
− | * Accion para subir archivo
| |
− | *
| |
− | */
| |
− | public function subir()
| |
− | {
| |
− | $archivador = Load::model('archivador');
| |
− | $archivador->guardar();
| |
− | }
| |
− | }
| |
− | </source>
| |
− | | |
− | En la vista '''subir.phtml''':
| |
− | | |
− | <source lang=php>
| |
− | <?php View::content() ?>
| |
− | | |
− | <h1>Subir Archivo</h1>
| |
− | | |
− | <?php echo Form::openMultipart() ?>
| |
− | <?php echo Form::file('archivo') ?>
| |
− | <?php echo Form::submit('Subir') ?>
| |
− | <?php echo Form::close() ?>
| |
− | </source>
| |
− | | |
− | === Adaptador File ===
| |
− | Este adaptador es utilizado para subir archivos de cualquier tipo, por defecto estos se guardan en el directorio '''public/files/upload'''. Este adaptador cuenta con los siguientes métodos:
| |
− | | |
− | ==== save() ====
| |
− | Guarda el archivo subido.
| |
− | | |
− | <pre>
| |
− | $name (string): nombre con el que se guardará el archivo, por defecto se guarda con su nombre original.
| |
− | | |
− | Retorna (boolean).
| |
− | | |
− | save($name = NULL)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | | |
− | // Guarda el archivo
| |
− | $file->save();
| |
− | </source>
| |
− | | |
− | ==== saveRandom() ====
| |
− | Guarda el archivo subido con un nombre aleatorio. El nombre del archivo se genera con la siguiente instrucción '''md5(time())''', por lo tanto cada nombre de archivo es único.
| |
− | | |
− | <pre>
| |
− | Retorna (boolean | string): si es exitoso retorna el nombre del archivo generado, si falla retorna FALSE.
| |
− | | |
− | saveRandom()
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | | |
− | // Guarda el archivo
| |
− | $fileName = $file->saveRandom();
| |
− | </source>
| |
− | | |
− | | |
− | ==== isUploaded() ====
| |
− | Verifica si el archivo esta subido de manera que posteriormente se pueda guardar.
| |
− | | |
− | <pre>
| |
− | Retorna (boolean).
| |
− | | |
− | isUploaded()
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | | |
− | if($file->isUploaded()) {
| |
− | echo 'Archivo listo para guardarse';
| |
− | }
| |
− | </source>
| |
− | | |
− | ==== setPath() ====
| |
− | Asigna la ruta al directorio de destino para el archivo. Por defecto se considera '''public/files/upload'''.
| |
− | | |
− | <pre>
| |
− | $path (string): ruta de destino
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | | |
− | // Nueva ruta de destino
| |
− | $file->setPath(APP_PATH . 'temp/archivos');
| |
− | </source>
| |
− | | |
− | ==== setAllowScripts() ====
| |
− | Indica si se permite subir archivos scripts ejecutables (php, phtml, php3, php4, js, shtml, pl, py, rb, rhtml). Por defecto no esta permitido.
| |
− | | |
− | <pre>
| |
− | $value (boolean): indica si se permite subir o no scripts.
| |
− | | |
− | setAllowScripts($value)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | | |
− | // Esto se hace bajo propio riesgo.
| |
− | $file->setAllowScripts(TRUE);
| |
− | </source>
| |
− | | |
− | ==== setMinSize() ====
| |
− | Indica el tamaño mínimo permitido para el archivo.
| |
− | | |
− | <pre>
| |
− | $size (string): tamaño del archivo (B, KB, MB, GB, PB). Ejemplo: "0.3 MB".
| |
− | | |
− | setMinSize($size)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | $file->setMinSize('0.3 MB');
| |
− | </source>
| |
− | | |
− | ==== setMaxSize() ====
| |
− | Indica el tamaño máximo permitido para el archivo.
| |
− | | |
− | <pre>
| |
− | $size (string): tamaño del archivo (B, KB, MB, GB, PB). Ejemplo: "0.3 MB".
| |
− | | |
− | setMaxSize($size)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | $file->setMaxSize('1 MB');
| |
− | </source>
| |
− | | |
− | ==== setTypes() ====
| |
− | Indica los tipos de archivos permitidos.
| |
− | | |
− | <pre>
| |
− | $value (array): lista de tipos de archivos permitidos según estándar MIME. Ejemplo: "text/plain".
| |
− | | |
− | setTypes($value)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | | |
− | // Documentos de texto
| |
− | $file->setTypes(array('text/plain', 'application/vnd.oasis.opendocument.text', 'application/msword'));
| |
− | </source>
| |
− | | |
− | ==== setExtensions() ====
| |
− | Indica las extensiones de archivos permitidas.
| |
− | | |
− | <pre>
| |
− | $value (array): lista de extensiones para archivos. Ejemplo: "png".
| |
− | | |
− | setExtensions($value)
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $file = Upload::factory('archivo');
| |
− | | |
− | // Documentos de texto
| |
− | $file->setExtensions(array('txt', 'dot', 'doc'));
| |
− | </source>
| |
− | | |
− | ==== Ejemplo ====
| |
− | En el siguiente ejemplo se muestra un caso donde se desea subir archivos de texto al servidor.
| |
− | | |
− | Modelo '''documento.php''':
| |
− | | |
− | <source lang=php>
| |
− | /**
| |
− | * Modelo para subir documentos de texto
| |
− | *
| |
− | */
| |
− | | |
− | // Carga la libreria Upload
| |
− | Load::lib('upload');
| |
− | | |
− | class Documento
| |
− | {
| |
− | /**
| |
− | * Guarda el documento
| |
− | *
| |
− | * @return boolean
| |
− | */
| |
− | public function guardar()
| |
− | {
| |
− | // Instancia con factory un objeto FileUpload
| |
− | $file = Upload::factory('documento');
| |
− | | |
− | // Verifica si se subió el documento
| |
− | if(!$file->isUploaded()) {
| |
− | return FALSE;
| |
− | }
| |
− | | |
− | // Tamaño máximo
| |
− | $file->setMaxSize('2MB');
| |
− | | |
− | // Tipos de archivos permitidos
| |
− | $file->setTypes(array('text/plain', 'application/vnd.oasis.opendocument.text', 'application/msword'));
| |
− | | |
− | // Extensiones permitidas
| |
− | $file->setExtensions(array('txt', 'dot', 'doc'));
| |
− | | |
− | // Guarda el archivo
| |
− | if($file->save()) {
| |
− | Flash::valid('Operación Exitosa');
| |
− | return TRUE;
| |
− | }
| |
− | | |
− | return FALSE;
| |
− | }
| |
− | }
| |
− | </source>
| |
− | | |
− | Controlador '''documento_controller.php''':
| |
− | | |
− | <source lang=php>
| |
− | class DocumentoController extends ApplicationController
| |
− | {
| |
− | /**
| |
− | * Accion para subir documento
| |
− | *
| |
− | */
| |
− | public function subir()
| |
− | {
| |
− | $documento = Load::model('documento');
| |
− | $documento->guardar();
| |
− | }
| |
− | }
| |
− | </source>
| |
− | | |
− | Vista '''subir.phtml''':
| |
− | | |
− | <source lang=php>
| |
− | <?php View::content() ?>
| |
| | | |
− | <h1>Subir Documento</h1>
| + | La versión 1.0 beta2 trae consigo correcciones y mejoras, nuevos helpers, clases y extensiones que facilitaran aun mas el trabajo. |
− |
| |
− | <?php echo Form::openMultipart() ?>
| |
− | <?php echo Form::file('documento') ?>
| |
− | <?php echo Form::submit('Subir') ?>
| |
− | <?php echo Form::close() ?>
| |
− | </source>
| |
| | | |
− | === Adaptador Image ===
| + | Para realizar la migración de la versión 1.0beta1 a la versión 1.0beta2 solamente hay que tener presentes los cambios que se han realizado en cuanto a funcionamiento, la inclusión de nuevos helpers para las vistas y controllers. |
− | Este adaptador es utilizado para subir archivos de imagen, por defecto estos se guardan en el directorio '''public/img/upload'''. Este adaptador cuenta con los siguientes métodos:
| |
| | | |
− | ==== save() ====
| + | Recordemos que todo lo que se incluye es con el fin de facilitar la curva de aprendizaje, la forma de trabajo y de poseer un framework con una semántica mucho mayor, claro esta que sigue sin perder su cualidades mvc y de scaffolding |
− | Guarda el archivo subido.
| |
| | | |
− | <pre>
| + | == Autoload libs (new) == |
− | $name (string): nombre con el que se guardará el archivo de imagen, por defecto se guarda con su nombre original.
| |
| | | |
− | Retorna (boolean).
| |
| | | |
− | save($name = NULL)
| |
− | </pre>
| |
| | | |
− | <source lang=php>
| + | En la versión 1.0 beta 2 las librerías se cargan automáticamente, siempre y cuando se encuentren en el directorio correspondiente “app/libs”, de igual modo se cargan las extensiones automáticamente “extensions/” y los helpers “helpers/”. Por esta razón el archivo “/config/boot.ini” ya no se usa en la versión 1.0 beta2 |
− | $img = Upload::factory('imagen', 'image');
| |
| | | |
− | // Guarda la imagen
| + | === ¿Que debo cambiar? === |
− | $img->save();
| |
− | </source>
| |
| | | |
− | ==== saveRandom() ====
| + | Si se tiene una APP con la versión 1.0 beta1, solamente debe eliminar (ya que no sera necesario) el archivo “/config/boot.ini” la carga de librerías que se realizaba mediante load::lib(''); ya no es necesaria, así que estas también se pueden borrar. |
− | Guarda el archivo de imagen subido con un nombre aleatorio. El nombre del archivo se genera con la siguiente instrucción '''md5(time())''', por lo tanto cada nombre de archivo es único.
| + | En resumen: eliminar todas las cargas de librerías que se hagan mediante load::lib(''); y boot.ini |
| | | |
− | <pre>
| + | === Como se usa === |
− | Retorna (boolean | string): si es exitoso retorna el nombre del archivo generado, si falla retorna FALSE.
| |
| | | |
− | saveRandom()
| + | Como verán se omite la carga de librerías y se crea directamente el objeto |
− | </pre>
| |
| | | |
| + | '''Versión 1.0 beta 1''' |
| <source lang=php> | | <source lang=php> |
− | $img = Upload::factory('imagen', 'image');
| + | Load::lib('util'); |
| + | $var = new util();</source> |
| | | |
− | // Guarda el archivo
| + | '''Versión 1.0 beta 2''' |
− | $fileName = $img->saveRandom();
| + | <source lang=php>$var = new util();</source> |
− | </source>
| |
− | | |
− | | |
− | ==== isUploaded() ====
| |
− | Verifica si el archivo de imagen esta subido de manera que posteriormente se pueda guardar.
| |
− | | |
− | <pre>
| |
− | Retorna (boolean).
| |
− | | |
− | isUploaded()
| |
− | </pre>
| |
− | | |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− | | |
− | if($img->isUploaded()) {
| |
− | echo 'Archivo listo para guardarse';
| |
− | }
| |
− | </source>
| |
− | | |
− | ==== setPath() ====
| |
− | Asigna la ruta al directorio de destino para el archivo de imagen. Por defecto se considera '''public/img/upload'''.
| |
− | | |
− | <pre>
| |
− | $path (string): ruta de destino
| |
− | </pre>
| |
− | | |
− | <source lang=php> | |
− | $img = Upload::factory('imagen', 'image'); | |
− | | |
− | // Nueva ruta de destino
| |
− | $img->setPath(APP_PATH . 'temp/fotos');
| |
− | </source> | |
− | | |
− | ==== setAllowScripts() ====
| |
− | Indica si se permite subir archivos scripts ejecutables (php, phtml, php3, php4, js, shtml, pl, py, rb, rhtml). Por defecto no esta permitido.
| |
| | | |
− | <pre>
| |
− | $value (boolean): indica si se permite subir o no scripts.
| |
− |
| |
− | setAllowScripts($value)
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− |
| |
− | // Esto se hace bajo propio riesgo.
| |
− | $img->setAllowScripts(TRUE);
| |
− | </source>
| |
− |
| |
− | ==== setMinSize() ====
| |
− | Indica el tamaño mínimo permitido para el archivo de imagen.
| |
− |
| |
− | <pre>
| |
− | $size (string): tamaño del archivo (B, KB, MB, GB, PB). Ejemplo: "0.3 MB".
| |
− |
| |
− | setMinSize($size)
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− | $img->setMinSize('0.3 MB');
| |
− | </source>
| |
− |
| |
− | ==== setMaxSize() ====
| |
− | Indica el tamaño máximo permitido para el archivo.
| |
− |
| |
− | <pre>
| |
− | $size (string): tamaño del archivo (B, KB, MB, GB, PB). Ejemplo: "0.3 MB".
| |
− |
| |
− | setMaxSize($size)
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− | $img->setMaxSize('1 MB');
| |
− | </source>
| |
− |
| |
− | ==== setTypes() ====
| |
− | Indica los tipos de archivos de imagen permitidos.
| |
− |
| |
− | <pre>
| |
− | $value (array): lista de tipos de archivos de imagen permitidos según estándar MIME. Ejemplo: "jpg".
| |
− |
| |
− | setTypes($value)
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− |
| |
− | // Archivos de imágenes
| |
− | // Para una mayor referencia del estándar MIME: http://www.w3schools.com/media/media_mimeref.asp
| |
− | $img->setTypes(array('jpeg', 'gif', 'png'));
| |
− | </source>
| |
− |
| |
− | ==== setExtensions() ====
| |
− | Indica las extensiones de archivos permitidas.
| |
− |
| |
− | <pre>
| |
− | $value (array): lista de extensiones para archivos. Ejemplo: "png".
| |
− |
| |
− | setExtensions($value)
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− |
| |
− | // Formatos de Imagenes
| |
− | $img->setExtensions(array('jpg', 'gif', 'png'));
| |
− |
| |
− | </source>
| |
− |
| |
− | ==== setMinWidth() ====
| |
− | Indica el ancho mínimo en pixeles permitido para el archivo de imagen.
| |
− |
| |
− | <pre>
| |
− | $value (int): ancho en pixeles.
| |
− |
| |
− | setMinWidth($value)
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− | $img->setMinWidth(200);
| |
− | </source>
| |
− |
| |
− | ==== setMaxWidth() ====
| |
− | Indica el ancho máximo en pixeles permitido para el archivo de imagen.
| |
− |
| |
− | <pre>
| |
− | $value (int): ancho en pixeles.
| |
− |
| |
− | setMaxWidth($value)
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− | $img->setMaxWidth(200);
| |
− | </source>
| |
− |
| |
− | ==== setMinHeight() ====
| |
− | Indica el alto mínimo en pixeles permitido para el archivo de imagen.
| |
− |
| |
− | <pre>
| |
− | $value (int): alto en pixeles.
| |
− |
| |
− | setMinHeight($value)
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− | $img->setMinHeight(200);
| |
− | </source>
| |
− |
| |
− | ==== setMaxHeight() ====
| |
− | Indica el alto máximo en pixeles permitido para el archivo de imagen.
| |
− |
| |
− | <pre>
| |
− | $value (int): alto en pixeles.
| |
− |
| |
− | setMaxHeight($value)
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− | $img->setMaxHeight(200);
| |
− | </source>
| |
− |
| |
− | ==== Ejemplo ====
| |
− | En el siguiente ejemplo se muestra un caso donde se desea subir una foto a un servidor.
| |
− |
| |
− | Modelo '''foto.php''':
| |
− |
| |
− | <source lang=php>
| |
− | /**
| |
− | * Modelo para subir fotos
| |
− | *
| |
− | */
| |
− |
| |
− | // Carga la libreria Upload
| |
− | Load::lib('upload');
| |
− |
| |
− | class Foto
| |
− | {
| |
− | /**
| |
− | * Guarda el documento
| |
− | *
| |
− | * @return boolean
| |
− | */
| |
− | public function guardar()
| |
− | {
| |
− | // Instancia con factory un objeto ImageUpload
| |
− | $img = Upload::factory('foto', 'image');
| |
− |
| |
− | // Verifica si se subió la imagen
| |
− | if(!$img->isUploaded()) {
| |
− | return FALSE;
| |
− | }
| |
− |
| |
− | // Tamaño máximo
| |
− | $img->setMaxSize('2MB');
| |
− |
| |
− | // Tipos de imagenes permitidas
| |
− | $img->setTypes(array('jpg', 'png'));
| |
− |
| |
− | // Extensiones permitidas
| |
− | $img->setExtensions(array('jpg', 'png'));
| |
− |
| |
− | // Guarda la imagen
| |
− | if($img->save()) {
| |
− | Flash::valid('Operación Exitosa');
| |
− | return TRUE;
| |
− | }
| |
− |
| |
− | return FALSE;
| |
− | }
| |
− | }
| |
− | </source>
| |
− |
| |
− | Controlador '''foto_controller.php''':
| |
− |
| |
− | <source lang=php>
| |
− | class FotoController extends ApplicationController
| |
− | {
| |
− | /**
| |
− | * Accion para subir foto
| |
− | *
| |
− | */
| |
− | public function subir()
| |
− | {
| |
− | $foto = Load::model('foto');
| |
− | $foto->guardar();
| |
− | }
| |
− | }
| |
− | </source>
| |
− |
| |
− | Vista '''subir.phtml''':
| |
− |
| |
− | <source lang=php>
| |
− | <?php View::content() ?>
| |
− |
| |
− | <h1>Subir Foto</h1>
| |
− |
| |
− | <?php echo Form::openMultipart() ?>
| |
− | <?php echo Form::file('foto') ?>
| |
− | <?php echo Form::submit('Subir') ?>
| |
− | <?php echo Form::close() ?>
| |
− | </source>
| |
− |
| |
− | == Libreria Session ==
| |
− |
| |
− | A la libreria Session se le modifican sus métodos quedando de la siguiente forma:
| |
− |
| |
− | === Session::set() ===
| |
− | Crear o especifica el valor para un indice de la sesión actual.
| |
− |
| |
− | <pre>
| |
− | $index Nombre para el indice.
| |
− | $value Valor a almacenar.
| |
− | $namespace Espacio individual donde se almacenara el indice.
| |
− |
| |
− | Session::set($index, $value, $namespace='default')
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | /* Ejemplo */
| |
− | Session::set('usuario', 'Administrador'); // Genera el indice 'usuario' que contendra 'Administrador'.
| |
− | </source>
| |
− |
| |
− | === Session::get() ===
| |
− | Obtiene el valor para un indice de la sesión actual.
| |
− |
| |
− | <pre>
| |
− | $index Nombre del indice a obtener.
| |
− | $namespace Espacio individual donde se almacena el indice.
| |
− |
| |
− | Session::get($index, $namespace='default')
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | /* Ejemplo */
| |
− | echo Session::get('usuario'); // Pinta 'Administrador'.
| |
− | </source>
| |
− |
| |
− | === Session::delete() ===
| |
− | Elimina el valor para un indice de la sesión actual.
| |
− |
| |
− | <pre>
| |
− | $index Nombre del indice a eliminar.
| |
− | $namespace Espacio individual donde se almacena el indice.
| |
− |
| |
− | Session::delete($index, $namespace='default')
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | /* Ejemplo */
| |
− | Session::delete('usuario'); // Elimina el indice 'usuario'.
| |
− | </source>
| |
− |
| |
− | === Session::has() ===
| |
− | Verifica que este definido el indice en la sesión actual.
| |
− |
| |
− | <pre>
| |
− | $index Nombre del indice a verificar.
| |
− | $namespace Espacio individual donde se almacena el indice.
| |
− |
| |
− | Session::has($index, $namespace='default')
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | /* Ejemplo */
| |
− | Session::has('id_usuario'); // Retorna FALSE.
| |
− | </source>
| |
| | | |
− | NOTA: '''$namespace''' es un espacio individual en el cual se pueden contener las variables de sesión, permitiendo evitar colisiones con nombres de variables.
| + | --[[Usuario:Onizukar|Onizukar]] 16:16 05 mar 2010 (UTC) |
| + | --[[Usuario:Ingjuanfelipe|Ingjuanfelipe]] 20:38 21 feb 2010 (UTC) |