SlideShare una empresa de Scribd logo
V Jornadas Nacionales de Soberanía Tecnológica
                 JORNASTEC




                                       Por: Lenin Hernandez
¿Framework de Desarrollo?
Un Framework es un conjunto de codigo, librerías y
componentes probados y optimizados para facilitar y agilizar el
desarrollo de aplicaciones, basado en mejores prácticas de
desarrollo, que nos permitirán trabajar de forma uniforme,
organizada y con la mayor calidad posible. Normalmente
cuentan con documentación, una comunidad que lucha por su
desarrollo y mantenimiento.



       - Yii (PHP) - yiiframework.com
       - Symfony (PHP)- symfony-project.org
       - CakePHP (PHP) - cakephp.org
       - CodeIgniter (PHP) – codeigniter.com
       - Ruby on Rails (Ruby) – rubyonrails.org
       - Catalyst (Perl) – catalystframework.org
       - Django (Python) - djangoproject.com
Yii Framework
- Generación de CRUD → Create, Read, Update and Delete y más...
- Urls Amigables → jornastec.org.ve/sedes-2/distrito-capital/
- Seguridad → Inyección SQL, Cross-site Scripting, etc...
- Sistema de Cache, de session
- Extenciónes Soportadas y de terceros
- Scaffolding → crear un módulo entero basado en la descripción de una
tabla de la base de datos
- Mapeo Objeto Relacional → ORM Object-Relational mapping
- MVC → Modelo - Vista - Controlador
Yii Framework
Yii es un framework generico de programación Web que puede
ser utilzado para todo tipo de aplicaciones Web. Gracias a que
es liviano de correr y está equipado con soluciones de cacheo
sofisticadas, es adecuado para desarrollar aplicaciones de grán
tráfico como portales, foros, sistemas de administración de
contenidos (CMS), Sistemas de comercio electrónico (e-
commerce), etc. yiiframework.com



    - Simple, Sencillo, Humilde.
    - Curva de Aprendizaje no es empinada.
    - Esta hecho para funcionar por defecto.
    - Rápido (Puesta en Marcha y aplicación).
¿Que Necesitamos?



aptitude install apache2 php5 php5-cli postgresql-8.4 php5-pgsql pgadmin3


    1- Descargar, Descomprimir.
    2- www$yii/framework/yiic webapp tu_sistema
    3- chmod -R 777 tu_sistema → ojo en un servidor nunca colocar esta permisologia
    4- http://localhost/tu_sistema




  Si es todo lo que necesitamos
        comenzar con Yii,
      simple verdad como Yii
Configurando

      Archivo de configuración: /protected/config/main.php
- Habilitar GII - GiiModule is un modulo que proveee una interfaz Web con capacidad de
generación de codigo: localhost/tu_sistema/index.php?r=gii
- Comentar la base de datos por defecto y agregar la nuestra
- Agregar al final del archivo:
    'language'=>'es',
    'sourceLanguage'=>'en',
    'defaultController'=>'tu_modulo/admin',


      Agregar usuarios: /protected/components/UserIdentity.php
      Pagina Principal: /protected/views/layouts/main.php
      <link rel="shortcut icon" href="<?php echo Yii::app()->request->baseUrl; ?
      >/images/icon.png" type="image/x-icon" />
      <img src="<?php echo Yii::app()->request->baseUrl; ?>/images/jornastec.png" />
Ajustando Formularios
    /protected/view/nombre_modelo/_form.php
      Relaciones en formularios:
Reemplezar:
<?php //echo $form->textField($model,'ocupacion'); ?>
Por:
<?php echo $form->dropDownList($model, 'ocupacion',
CHtml::listData(Ocupacion::model()->findAll(), 'id_ocupacion', 'descripcion'), array('prompt' => 'Seleccione Ocupación') ); ?>


         Combos no vinculados a base de datos
echo $form->dropDownList($model,'sexo',array('M'=>'Masculino','F'=>'Femenino'), array('options' =>
array('2'=>array('selected'=>true))));

//echo $form->textField($model,'fecha_nacimiento');
 $this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model'=>$model,
'attribute'=>'fecha_nacimiento',
'value'=>$model->fecha_nacimiento,
'language' => 'es',
'htmlOptions' => array('readonly'=>"readonly"),
'options'=>array(
'autoSize'=>true,
'defaultDate'=>$model->fecha_nacimiento,
'dateFormat'=>'dd-mm-yy',
'buttonImage'=>Yii::app()->baseUrl.'/images/calendar.png',   Fechas seleccionables
'buttonImageOnly'=>true,
'buttonText'=>'Fecha',
'selectOtherMonths'=>true,
'showAnim'=>'slide',
'showButtonPanel'=>true,
'showOn'=>'button',
'showOtherMonths'=>true,
'changeMonth' => 'true',
'changeYear' => 'true',
//'minDate'=>'-50Y', //fecha minima
'maxDate'=> 'date("Y-m-d")',
//fecha maxima
),
Agregando Extenciones
    /protected/extensions                                           Agregaremos PDF's al sistema
  Agregar carpeta de extencion. Usaremos MPDF
En el Controller: protectecd/controller/ModuloController.php

Agregar
      public function actionPdf($id)
      {
            $this->render('pdf',array(
                  'model'=>$this->loadModel($id),
            ));
      }

Y Permitir ser visto:
      'actions'=>array('index','view','pdf'),


En las vistas:
Agregar el icono del PDF en el admin
              array(
         'class'=>'CButtonColumn',
                 'template' => '{view} {update} {delete} {pdf}',
             'buttons'=>array(
                     'pdf' => array(
                             'label'=>'Generar PDF',
                             'url'=>"CHtml::normalizeUrl(array('pdf', 'id'=> $data->id_persona))",
                             'imageUrl'=>Yii::app()->request->baseUrl.'/images/pdf.png',
                             'options' => array('class'=>'pdf'),
                     ),
            ),
      ),
Crear pdf.php
Y colocar:
<?php
$pdf = Yii::createComponent('application.extensions.MPDF52.mpdf');
$this->breadcrumbs=array(
       'Personas'=>array('index'),
       $model->id_persona,
);
$html = '
<link rel="stylesheet" type="text/css" href="'.Yii::app()->request->baseUrl.'/css/pdf.css" />
Htmllll '.$model->nombre.' '.$model->apellido.'</b><br>';
$mpdf=new mPDF();
$mpdf->WriteHTML($html);
$mpdf->Output();
exit;
Subir Imagen
          En los formularios: /protected/view/nombre_modelo/_form.php
  Reemplezar:
  <?php echo $form->textField($model,'foto',array('size'=>60,'maxlength'=>200)); ?>
  Por:
  <?php echo $form->fileField($model,'foto',array('size'=>25)); ?>

         En el controlador: /protected/controllers/NombreController.php
  Agregar en actionCreate y actionUpdate:
  $model->foto = CUploadedFile::getInstance($model, 'foto');
  $model->foto->saveAs(Yii::app()->basePath.'/../images/'.$model->foto);
  Quedaria asi:

         public function actionUpdate($id)
         {
               $model=$this->loadModel($id);

                // Uncomment the following line if AJAX validation is needed
                // $this->performAjaxValidation($model);

                if(isset($_POST['Persona']))
                {
                      $model->attributes=$_POST['Persona'];
                      $model->foto = CUploadedFile::getInstance($model, 'foto');
                      $model->foto->saveAs(Yii::app()->basePath.'/../images/'.$model->foto);

                       if($model->save())
                             $this->redirect(array('view','id'=>$model->id_persona));
                }

                $this->render('update',array(
                      'model'=>$model,
                ));
         }

En las vistas: /protected/views/view.php            y _view.php
                                 <img src="<?php echo Yii::app()->request->baseUrl.'/images/'.CHtml::encode($data->foto); ?>" >
 Ver la imgen en el listado: /protected/views/admin.php
 array('name'=>'foto','sortable'=>'true',
              'header'=>'Fotico', 'type'=>'image',
              'value'=>'"images/" . $data->foto',
              'htmlOptions'=>array('style'=>'text-align: center'),
           ),
Dudas, Preguntas,
 Sugerencias???


                    Por: Lenin Hernandez
Gracias Totales!!!
 Lenin Hernandez
  leninmhs@gmail.com
    Twitter: @leninmhs

Más contenido relacionado

Destacado

Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corporacion de Industrias Tecnologicas S.A.
 
Yii php framework
Yii php frameworkYii php framework
Yii php framework
KeaNy Chu
 
Taller de laravel
Taller de laravelTaller de laravel
Taller de laravel
Sebastian Zamorano Jara
 
.Net framework
.Net framework.Net framework
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
omicx
 
Cakephp 3
Cakephp 3 Cakephp 3
Cakephp 3
Amilkar Shegrid
 
PPT - A slice of cake php
PPT - A slice of cake phpPPT - A slice of cake php
PPT - A slice of cake php
Konstant Infosolutions Pvt. Ltd.
 
Cakephp
CakephpCakephp
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
Facundo E. Goñi Perez
 
Documentacion de Codeigniter en español
Documentacion de Codeigniter en españolDocumentacion de Codeigniter en español
Documentacion de Codeigniter en español
Franklin W. Vasquez Obregon
 

Destacado (10)

Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Yii php framework
Yii php frameworkYii php framework
Yii php framework
 
Taller de laravel
Taller de laravelTaller de laravel
Taller de laravel
 
.Net framework
.Net framework.Net framework
.Net framework
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
Cakephp 3
Cakephp 3 Cakephp 3
Cakephp 3
 
PPT - A slice of cake php
PPT - A slice of cake phpPPT - A slice of cake php
PPT - A slice of cake php
 
Cakephp
CakephpCakephp
Cakephp
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Documentacion de Codeigniter en español
Documentacion de Codeigniter en españolDocumentacion de Codeigniter en español
Documentacion de Codeigniter en español
 

Similar a Presentacion YII

Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladores
Pedro Cambra
 
9.laravel
9.laravel9.laravel
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
Gabriel Atilio Carrillo Seijas
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesdeivit86
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
Ricard Luquero
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
Joaquim Rocha
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipster
Adolfo Sanz De Diego
 
Tips Bootstrap 3 en Drupal 7
Tips Bootstrap 3 en Drupal 7Tips Bootstrap 3 en Drupal 7
Tips Bootstrap 3 en Drupal 7
SuperSoft
 
Doctrine2 sf2Vigo
Doctrine2 sf2VigoDoctrine2 sf2Vigo
Doctrine2 sf2Vigo
Ignacio Martín
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
Jorge Iván Meza Martínez
 
Clase 14 bundles útiles
Clase 14 bundles útilesClase 14 bundles útiles
Clase 14 bundles útiles
hydras_cs
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.js
Carlos Azaustre
 
EXAMEN
EXAMENEXAMEN
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
paulcuenca9
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
MarlonAlbertoGalvis
 
Javascript y AJAX en Wordpress
Javascript y AJAX en WordpressJavascript y AJAX en Wordpress
Javascript y AJAX en Wordpress
Javier Arques Hernández
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
Mauro Gomez Mejia
 

Similar a Presentacion YII (20)

Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
 
Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladores
 
9.laravel
9.laravel9.laravel
9.laravel
 
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Introducción a DJango
Introducción a DJangoIntroducción a DJango
Introducción a DJango
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipster
 
Tips Bootstrap 3 en Drupal 7
Tips Bootstrap 3 en Drupal 7Tips Bootstrap 3 en Drupal 7
Tips Bootstrap 3 en Drupal 7
 
Doctrine2 sf2Vigo
Doctrine2 sf2VigoDoctrine2 sf2Vigo
Doctrine2 sf2Vigo
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Clase 14 bundles útiles
Clase 14 bundles útilesClase 14 bundles útiles
Clase 14 bundles útiles
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.js
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Javascript y AJAX en Wordpress
Javascript y AJAX en WordpressJavascript y AJAX en Wordpress
Javascript y AJAX en Wordpress
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 

Más de Lenin Hernandez

Presentación Live CDs - 2005
Presentación Live CDs - 2005Presentación Live CDs - 2005
Presentación Live CDs - 2005
Lenin Hernandez
 
PostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidadPostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidad
Lenin Hernandez
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Lenin Hernandez
 
Tripticos komunal
Tripticos komunalTripticos komunal
Tripticos komunal
Lenin Hernandez
 
Manual de usuario Komunal
Manual de usuario KomunalManual de usuario Komunal
Manual de usuario Komunal
Lenin Hernandez
 
Alta disponibilidad-postgres
Alta disponibilidad-postgresAlta disponibilidad-postgres
Alta disponibilidad-postgresLenin Hernandez
 
Alta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-IIAlta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-II
Lenin Hernandez
 

Más de Lenin Hernandez (7)

Presentación Live CDs - 2005
Presentación Live CDs - 2005Presentación Live CDs - 2005
Presentación Live CDs - 2005
 
PostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidadPostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidad
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
 
Tripticos komunal
Tripticos komunalTripticos komunal
Tripticos komunal
 
Manual de usuario Komunal
Manual de usuario KomunalManual de usuario Komunal
Manual de usuario Komunal
 
Alta disponibilidad-postgres
Alta disponibilidad-postgresAlta disponibilidad-postgres
Alta disponibilidad-postgres
 
Alta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-IIAlta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-II
 

Último

EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 

Último (20)

EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 

Presentacion YII

  • 1. V Jornadas Nacionales de Soberanía Tecnológica JORNASTEC Por: Lenin Hernandez
  • 2. ¿Framework de Desarrollo? Un Framework es un conjunto de codigo, librerías y componentes probados y optimizados para facilitar y agilizar el desarrollo de aplicaciones, basado en mejores prácticas de desarrollo, que nos permitirán trabajar de forma uniforme, organizada y con la mayor calidad posible. Normalmente cuentan con documentación, una comunidad que lucha por su desarrollo y mantenimiento. - Yii (PHP) - yiiframework.com - Symfony (PHP)- symfony-project.org - CakePHP (PHP) - cakephp.org - CodeIgniter (PHP) – codeigniter.com - Ruby on Rails (Ruby) – rubyonrails.org - Catalyst (Perl) – catalystframework.org - Django (Python) - djangoproject.com
  • 3. Yii Framework - Generación de CRUD → Create, Read, Update and Delete y más... - Urls Amigables → jornastec.org.ve/sedes-2/distrito-capital/ - Seguridad → Inyección SQL, Cross-site Scripting, etc... - Sistema de Cache, de session - Extenciónes Soportadas y de terceros - Scaffolding → crear un módulo entero basado en la descripción de una tabla de la base de datos - Mapeo Objeto Relacional → ORM Object-Relational mapping - MVC → Modelo - Vista - Controlador
  • 4. Yii Framework Yii es un framework generico de programación Web que puede ser utilzado para todo tipo de aplicaciones Web. Gracias a que es liviano de correr y está equipado con soluciones de cacheo sofisticadas, es adecuado para desarrollar aplicaciones de grán tráfico como portales, foros, sistemas de administración de contenidos (CMS), Sistemas de comercio electrónico (e- commerce), etc. yiiframework.com - Simple, Sencillo, Humilde. - Curva de Aprendizaje no es empinada. - Esta hecho para funcionar por defecto. - Rápido (Puesta en Marcha y aplicación).
  • 5. ¿Que Necesitamos? aptitude install apache2 php5 php5-cli postgresql-8.4 php5-pgsql pgadmin3 1- Descargar, Descomprimir. 2- www$yii/framework/yiic webapp tu_sistema 3- chmod -R 777 tu_sistema → ojo en un servidor nunca colocar esta permisologia 4- http://localhost/tu_sistema Si es todo lo que necesitamos comenzar con Yii, simple verdad como Yii
  • 6. Configurando Archivo de configuración: /protected/config/main.php - Habilitar GII - GiiModule is un modulo que proveee una interfaz Web con capacidad de generación de codigo: localhost/tu_sistema/index.php?r=gii - Comentar la base de datos por defecto y agregar la nuestra - Agregar al final del archivo: 'language'=>'es', 'sourceLanguage'=>'en', 'defaultController'=>'tu_modulo/admin', Agregar usuarios: /protected/components/UserIdentity.php Pagina Principal: /protected/views/layouts/main.php <link rel="shortcut icon" href="<?php echo Yii::app()->request->baseUrl; ? >/images/icon.png" type="image/x-icon" /> <img src="<?php echo Yii::app()->request->baseUrl; ?>/images/jornastec.png" />
  • 7. Ajustando Formularios /protected/view/nombre_modelo/_form.php Relaciones en formularios: Reemplezar: <?php //echo $form->textField($model,'ocupacion'); ?> Por: <?php echo $form->dropDownList($model, 'ocupacion', CHtml::listData(Ocupacion::model()->findAll(), 'id_ocupacion', 'descripcion'), array('prompt' => 'Seleccione Ocupación') ); ?> Combos no vinculados a base de datos echo $form->dropDownList($model,'sexo',array('M'=>'Masculino','F'=>'Femenino'), array('options' => array('2'=>array('selected'=>true)))); //echo $form->textField($model,'fecha_nacimiento'); $this->widget('zii.widgets.jui.CJuiDatePicker', array( 'model'=>$model, 'attribute'=>'fecha_nacimiento', 'value'=>$model->fecha_nacimiento, 'language' => 'es', 'htmlOptions' => array('readonly'=>"readonly"), 'options'=>array( 'autoSize'=>true, 'defaultDate'=>$model->fecha_nacimiento, 'dateFormat'=>'dd-mm-yy', 'buttonImage'=>Yii::app()->baseUrl.'/images/calendar.png', Fechas seleccionables 'buttonImageOnly'=>true, 'buttonText'=>'Fecha', 'selectOtherMonths'=>true, 'showAnim'=>'slide', 'showButtonPanel'=>true, 'showOn'=>'button', 'showOtherMonths'=>true, 'changeMonth' => 'true', 'changeYear' => 'true', //'minDate'=>'-50Y', //fecha minima 'maxDate'=> 'date("Y-m-d")', //fecha maxima ),
  • 8. Agregando Extenciones /protected/extensions Agregaremos PDF's al sistema Agregar carpeta de extencion. Usaremos MPDF En el Controller: protectecd/controller/ModuloController.php Agregar public function actionPdf($id) { $this->render('pdf',array( 'model'=>$this->loadModel($id), )); } Y Permitir ser visto: 'actions'=>array('index','view','pdf'), En las vistas: Agregar el icono del PDF en el admin array( 'class'=>'CButtonColumn', 'template' => '{view} {update} {delete} {pdf}', 'buttons'=>array( 'pdf' => array( 'label'=>'Generar PDF', 'url'=>"CHtml::normalizeUrl(array('pdf', 'id'=> $data->id_persona))", 'imageUrl'=>Yii::app()->request->baseUrl.'/images/pdf.png', 'options' => array('class'=>'pdf'), ), ), ), Crear pdf.php Y colocar: <?php $pdf = Yii::createComponent('application.extensions.MPDF52.mpdf'); $this->breadcrumbs=array( 'Personas'=>array('index'), $model->id_persona, ); $html = ' <link rel="stylesheet" type="text/css" href="'.Yii::app()->request->baseUrl.'/css/pdf.css" /> Htmllll '.$model->nombre.' '.$model->apellido.'</b><br>'; $mpdf=new mPDF(); $mpdf->WriteHTML($html); $mpdf->Output(); exit;
  • 9. Subir Imagen En los formularios: /protected/view/nombre_modelo/_form.php Reemplezar: <?php echo $form->textField($model,'foto',array('size'=>60,'maxlength'=>200)); ?> Por: <?php echo $form->fileField($model,'foto',array('size'=>25)); ?> En el controlador: /protected/controllers/NombreController.php Agregar en actionCreate y actionUpdate: $model->foto = CUploadedFile::getInstance($model, 'foto'); $model->foto->saveAs(Yii::app()->basePath.'/../images/'.$model->foto); Quedaria asi: public function actionUpdate($id) { $model=$this->loadModel($id); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if(isset($_POST['Persona'])) { $model->attributes=$_POST['Persona']; $model->foto = CUploadedFile::getInstance($model, 'foto'); $model->foto->saveAs(Yii::app()->basePath.'/../images/'.$model->foto); if($model->save()) $this->redirect(array('view','id'=>$model->id_persona)); } $this->render('update',array( 'model'=>$model, )); } En las vistas: /protected/views/view.php y _view.php <img src="<?php echo Yii::app()->request->baseUrl.'/images/'.CHtml::encode($data->foto); ?>" > Ver la imgen en el listado: /protected/views/admin.php array('name'=>'foto','sortable'=>'true', 'header'=>'Fotico', 'type'=>'image', 'value'=>'"images/" . $data->foto', 'htmlOptions'=>array('style'=>'text-align: center'), ),
  • 10. Dudas, Preguntas, Sugerencias??? Por: Lenin Hernandez
  • 11. Gracias Totales!!! Lenin Hernandez leninmhs@gmail.com Twitter: @leninmhs