Revisión actual |
Tu texto |
Línea 50: |
Línea 50: |
| Ejemplo: 'app/views/partials/menu.phtml' pasara al directorio 'app/views/_shared/partials/menu.phtml' | | 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) | | (pueden ver el ejemplo básico dentro de su app con el partial footer.phtml que se encuentra en dicho directorio) |
| + | |
| + | |
| + | |
| | | |
| == Helpers == | | == 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 Html === |
| | | |
Línea 122: |
Línea 122: |
| </source> | | </source> |
| | | |
− |
| |
− | ==== Html::gravatar() ====
| |
− | 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>
| |
| | | |
| | | |
Línea 167: |
Línea 153: |
| <source lang=php> | | <source lang=php> |
| Html::meta('Kumbiaphp-team',"name = 'Author'"); | | Html::meta('Kumbiaphp-team',"name = 'Author'"); |
− | Html::meta('text/html; charset=UTF-8',"http-equiv = 'Content-type'");
| + | charset=UTF-8" http-equiv = 'Content-type'/> |
| echo Html::includeMetatags(); //Visualiza <meta content="Kumbiaphp-team" name = 'Author'/> | | echo Html::includeMetatags(); //Visualiza <meta content="Kumbiaphp-team" name = 'Author'/> |
| </source> | | </source> |
| + | |
| + | |
| | | |
| ==== Html::headLink() ==== | | ==== Html::headLink() ==== |
Línea 182: |
Línea 170: |
| | | |
| <source lang="php" line> | | <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'"); //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 */ | | /*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 */ |
Línea 244: |
Línea 231: |
| echo Html::includeHeadLinks(); | | echo Html::includeHeadLinks(); |
| </source> | | </source> |
| + | |
| + | |
| + | |
| | | |
| === '''Clase Tag''' === | | === '''Clase Tag''' === |
Línea 262: |
Línea 252: |
| 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> |
| | | |
Línea 287: |
Línea 275: |
| </source> | | </source> |
| | | |
− | ==== Form::openMultipart() ==== | + | ==== Form::multipart() ==== |
| Crea una etiqueta de formulario multipart, este es ideal para formularios que contienen campos de subida de archivos | | Crea una etiqueta de formulario multipart, este es ideal para formularios que contienen campos de subida de archivos |
| <pre> | | <pre> |
Línea 298: |
Línea 286: |
| <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> |
| | | |
Línea 418: |
Línea 406: |
| | | |
| ==== Form::dbSelect() ==== | | ==== Form::dbSelect() ==== |
− | Crea un select con los datos de la tabla relacionada. | + | Crea campo Select que toma los valores de un array de objetos de ActiveRecord |
| + | <pre> |
| + | $field nombre de campo |
| + | $data array de valores para la lista desplegable |
| + | $show campo que se mostrara |
| + | $blank campo en blanco |
| + | $attrs atributos de campo |
| + | $value valor inicial para el campo oculto |
| | | |
− | La forma más simple usa convención, pero se puede configurar también. Ojo, no es necesario instanciar el modelo en el controller.
| + | dbSelect($field, $data, $show, $blank = NULL, $attrs = NULL, $value = NULL) |
| + | </pre> |
| | | |
− | Ejemplos de uso:
| + | <source lang=php> |
− | <source lang=php>Form::dbSelect('model.campo_id');</source> | + | ejemplo pendiente... |
− | Esto carga el modelo(campo) y muestra el primer campo despues del pk(id), ordenado ascendentemente.
| + | </source> |
− | | |
− | 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() ==== | | ==== Form::select() ==== |
Línea 463: |
Línea 437: |
| echo Form::Select('region', $ar2,'Cuello'); //Crea un campo Select (un combobox) con el nombre 'region' y teniendo preseleccionado 'Cuello' | | echo Form::Select('region', $ar2,'Cuello'); //Crea un campo Select (un combobox) con el nombre 'region' y teniendo preseleccionado 'Cuello' |
| </source> | | </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() ==== | | ==== Form::file() ==== |
Línea 499: |
Línea 453: |
| echo Form::close(); //Cierra el formulario | | echo Form::close(); //Cierra el formulario |
| </source> | | </source> |
| + | |
| | | |
| ==== Form::button() ==== | | ==== Form::button() ==== |
Línea 515: |
Línea 470: |
| | | |
| ==== Form::submitImage() ==== | | ==== Form::submitImage() ==== |
− | Crea un botón de tipo imagen siguendo las convenciones de kumbiaphp, la imagen deberá estar dentro del directorio '/public/img/' | + | Crea un botón de tipo imagen siguendo las convenciones de kumbiaphp, la imagen devera estar dentro del directorio '/public/img/' |
| <pre> | | <pre> |
| $img ruta de la imagen que usa el botón | | $img ruta de la imagen que usa el botón |
Línea 526: |
Línea 481: |
| echo Form::submitImage('botones/edit.gif'); //Crea un botón con la imagen 'botones/edit.gif' | | echo Form::submitImage('botones/edit.gif'); //Crea un botón con la imagen 'botones/edit.gif' |
| </source> | | </source> |
| + | |
| | | |
| ==== Form::submit() ==== | | ==== Form::submit() ==== |
Línea 563: |
Línea 519: |
| $checked indica si se marca el campo | | $checked indica si se marca el campo |
| | | |
− | check($field, $value, $attrs = NULL, $checked = NULL); | + | check($field, $value, $attrs = NULL, $checked = NULL) |
| </pre> | | </pre> |
| | | |
Línea 585: |
Línea 541: |
| <source lang=php> | | <source lang=php> |
| $on = 'masculino'; | | $on = 'masculino'; |
− | echo Form::radio("rdo", 'masculino', NULL, TRUE); //<input id="rdo1" name="rdo" type="radio" value="masculino" checked="checked"> | + | echo Form::radio("rdo", 'masculino', $on); //<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"> | + | echo Form::radio("rdo", 'femenino', $on); //<input id="rdo2" name="rdo" type="radio" value="femenino"> |
| </source> | | </source> |
| | | |
Línea 594: |
Línea 550: |
| | | |
| 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]] | | 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>
| |
− |
| |
− | <?php echo Form::openMultipart() ?>
| |
− | <?php echo Form::file('documento') ?>
| |
− | <?php echo Form::submit('Subir') ?>
| |
− | <?php echo Form::close() ?>
| |
− | </source>
| |
− |
| |
− | === Adaptador Image ===
| |
− | 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() ====
| |
− | Guarda el archivo subido.
| |
− |
| |
− | <pre>
| |
− | $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>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− |
| |
− | // Guarda la imagen
| |
− | $img->save();
| |
− | </source>
| |
− |
| |
− | ==== saveRandom() ====
| |
− | 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.
| |
− |
| |
− | <pre>
| |
− | Retorna (boolean | string): si es exitoso retorna el nombre del archivo generado, si falla retorna FALSE.
| |
− |
| |
− | saveRandom()
| |
− | </pre>
| |
− |
| |
− | <source lang=php>
| |
− | $img = Upload::factory('imagen', 'image');
| |
− |
| |
− | // Guarda el archivo
| |
− | $fileName = $img->saveRandom();
| |
− | </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.
| |