jueves, 21 de febrero de 2013

Formularios en Zend Framework (Básico) - Parte 1

Pues me dispongo a iniciar un proyecto con Zend Framework y el manejo de los formularios es un tanto "complicado" así que detallare algunas cosillas básicas para ir comenzando.

Primero crearemos nuestro proyecto con la ayuda de la consola que provee Zend.
Entonces, en el directorio desde donde se "sirven" los sitios de apache ( c:\xampp\htdocs en mi caso) le damos al siguiente comando, cambiando proyectozend por el nombre de nuestro proyecto:

zf create project proyectozend

Se crea entonces la estructura de directorios que Zend maneja por defecto.

Para poner a punto todo debemos tener configurados nuestros hosts virtuales ( CREAR UN HOST VIRTUAL).

No se debe olvidar copiar la carpeta de Zend al directorio library para que podamos usar todas las librerias que Zend pone a nuestra disposición.
Ahora crearemos un formulario. Para ello tecleamos desde la consola (c:\xampp\htdocs\proyectozend)

zf create form formulario

Editamos el formulario con el siguiente código:


<?php

class Application_Form_Formulario extends Zend_Form
{
    public function init()
    {
        // primero establecemos el metodo que utilizara nuestro formulario para enviarse (post o get)
        $this->setMethod('post');
       
        // añadimos un campo tipo texto
        $this->addElement(
                // elemento tipo text
                'text',
                // nombre del elemento
                'usuario',
                // vector con las opciones de configuracion y validacio de nuestro campo
                array(
                    // etiqueta que se mostrara con este campo
                    'label' => 'Nombre de Usuario',
                    // este elemento es requerido
                    'required' => true,
                    // filtros que se aplican al elemento
                    'filters'=> array(
                        // elimina los espacios extras al principio y al final de la cadena que se escriba enm este campo
                        'StringTrim'
                    ),
                    // validadores de nuestro campo
                    'validators' =>array (
                        // validamos que nuestro campo tenga entre 5 y 10caracteres
                        array('StringLength', true, array('min'=>5, 'max'=>10))
                    )
                )
        );
       
        // añadimos un boton de submit
        $this->addElement(
                // tipo boton submit
                'submit',
                // nombre de nuestro elemento
                'enviar'
        );
       
        // añadimos proteccion contra cross site request forgery (OPCIONAL)
        $this->addElement('hash', 'csrf', array(
            'ignore' => true,
        ));      
    }
}

Ahora veamos el formulario, editamos el controlador index (C:\xampp\htdocs\proyectozend\application\controllers\IndexController.php)para que se muestre nuestro formulario:

public function indexAction()
    {
        // creamos el objeto formulario
        $form = new Application_Form_Formulario();
       
       
        // pasamos nuestro formulario a la vista (en una variable f) para que se muestre
        $this->view->f = $form;
    }


Y por ultimo lo mostramos en nuestra vista (C:\xampp\htdocs\proyectozend\application\views\scripts\index\index.phtml):

<?php
    // mostramos el formulario (recordar que lo pasamos desde el controlador)
    echo $this->f;
?>

Crearemos por ultimo una nueva acción de bienvenida en index. Para ello desde la consola ejecutamos
zf create action bienvenido index

El código que tendrá nuestra vista de bienvenida es simple (C:\xampp\htdocs\proyectozend\application\views\scripts\index\bienvenido.phtml):

<h1>BIENVENIDO</h1>
<br>
<h3>Lograste crear un formulario (muy simple) y manejaste el evento submit y lograste redireccionar a otra acción.</h3>

Por ultimo editaremos nuestra accion index con el siguiente código (C:\xampp\htdocs\proyectozend\application\controllers\IndexController.php):


public function indexAction()
    {
        // creamos el objeto formulario
        $form = new Application_Form_Formulario();
       
        // verificamos si se presiono el boton de submit
        if($this->getRequest()->isPost()){
            // verificamos si el formulario es valido con los parametros que se nos envia
            if( $form->isValid($this->getRequest()->getParams()) ){
                //aca podriamos guardar en la base de datos, validar, etc.
               
                // redireccionamos a la accion bienvenido
                $this->forward('bienvenido');
               
            }
        }
       
        // pasamos nuestro formulario a la vista (en una variable f) para que se muestre
        $this->view->f = $form;
    }


Con esta acción verificamos si se realizo el submit, validamos los datos del fórmulario (que nuestro campo tenga entre 5 y 10 caracteres) y si todo estuviera bien redireccionamos a la pantalla de bienvenida.
Pantallla con errores:
Pantalla con los datos correctos (bienvenida)

Qué hacer a partir de acá. Puedes revisar que
Eso es todo por hoy, en unas semanas más realizare la parte dos de este pequeño tutorial. Espero que les sirva y no olviden dejar sus comentarios >_< Keep coding...



lunes, 18 de febrero de 2013

¿Cómo ingresar al BIOS?

Pues la primera vez que intente entrar al BIOS no fue tan sencillo, así que les dejo algunas formas de ingresar en los tipos de BIOS más conocidos.
AMI BIOS
Tecla Supr durante el POST (auto-verificación al encendido)

Award BIOS
Teclas Ctrl+Alt+Esc o Supr durante el POST

DTK BIOS
Tecla Esc durante el POST

IBM PS/2 BIOS
Ctrl+Alt+Insert después Ctrl+Alt+Supr

Phoenix BIOS
Ctrl+Alt+Esc o Ctrl+Alt+S o F1

domingo, 19 de junio de 2011

VIRTUALHOST EN WINDOWS 7 (Actualizado WINDOWS 8)

Bueno, estuve teniendo problemas al crear un host virtual en XAMPP y me decidí a escribir este pequeño tutorial de como lo logre :)

Para Windows 8 primero se debe desactivar Windows Defender (no siempre es necesario pero mejor hacerlo antes >_<). Presionas la tecla Windows, escribir "defender". Ingresar a la pestaña "configuración", hacer click en "administrador" y desmarcar el checkbox que dice "Usar este Programa". Presionar "Guardar". Luego seguir los pasos detallados debajo.


Primero, debemos ubicar el archivo host que se encuentra en c:\windows\system32\drivers\etc\hosts y no olvidar que se debe abrir este archivo con permisos de administrador. Para ello en el menú inicio buscar "cmd", click derecho y "ejecutar como administrador". una vez dentro escribir.
notepad c:\windows\system32\drivers\etc\hosts
Ya con el archivo abierto, anotar lo siguiente debajo de todo su contenido y guardar:
127.0.0.1    localhost
127.0.0.1    ejemplo.dev

La primera linea es el localhost y luego tengo un host virtual llamado ejemplo.dev
Ahora necesitamos ubicar el archivo httpd.conf que se encuentra en la carpeta donde instalaron XAMPP, en mi caso "g:\xampp\apache\conf". Abrirlo con cualquier editor de texto y ubicar la linea que dice Include "conf/extra/httpd-vhosts.conf", borrar "#" si se encuentra al principio de la linea y guardar.
Dentro de la carpeta en la que encontramos el archivo httpd.conf encontraremos una carpeta llamada extra que contiene el archivo httpd-vhosts.conf. Abrimos el archivo y añadimos las siguientes lineas:
ServerName 127.0.0.1
NameVirtualHost *:80

Luego establecemos la pagina de inicio de XAMPP, entre tags virtual hosts anotamos el documentroot que es la ubicacion de la pagina de inicio de este host y luego el nombre del servidor, en este caso simplemente localhost.
<VirtualHost *:80>
   DocumentRoot "g:\xampp\htdocs\xampp"
   ServerName localhost
</VirtualHost>

Ahora añadiremos el host virtual de nuestro proyecto
<VirtualHost *:80>
   DocumentRoot "g:\xampp\htdocs\SQUARE\public"
   ServerName ejemplo.dev
   ServerAlias ejemplo.dev
   <Directory "g:\xampp\htdocs\SQUARE\public">
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>


No olvidar que la dirección "g:\xampp\htdocs\SQUARE\public" es la ubicación de la pagina principal de mi proyecto(index), OJO cambiar de acuerdo a la ubicación de su proyecto.
Reiniciamos apache y ya debería funcionar.
Si escribimos en la barra de direcciones "ejemplo.dev" deberiamos ver la pantalla de inicio de nuestro proyecto y si escribimos "localhost" la pagina de inicio de XAMPP.
Bueno, es mi primer blog y espero que le sirva a alguien. Hasta pronto =D