SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette (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
 

Similaire à Presentacion YII

Similaire à 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
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
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
 

Plus de Lenin Hernandez

Presentación Live CDs - 2005
Presentación Live CDs - 2005Presentación Live CDs - 2005
Presentación Live CDs - 2005Lenin Hernandez
 
PostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidadPostgreSQL - El camino de la disponibilidad
PostgreSQL - El camino de la disponibilidadLenin 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 PiernasLenin Hernandez
 
Manual de usuario Komunal
Manual de usuario KomunalManual de usuario Komunal
Manual de usuario KomunalLenin 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-IILenin Hernandez
 

Plus 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
 

Dernier

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Dernier (13)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

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