SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
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

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

Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
deivit86
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
paulcuenca9
 

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
 
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
 

Más de Lenin Hernandez

Alta disponibilidad-postgres
Alta disponibilidad-postgresAlta disponibilidad-postgres
Alta disponibilidad-postgres
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

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 

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