50
ELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno: Edgar Ramos Luna Carrera: Tecnologías De la Información y Comunicación (Área Multimedia y Comercio Electrónico). Universidad Tecnología de Coahuila. 1

 · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

ELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER

Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos.

Alumno: Edgar Ramos Luna

Carrera: Tecnologías De la Información y Comunicación (Área Multimedia y Comercio Electrónico).

Universidad Tecnología de Coahuila.

1

Page 2:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

ELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER

Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos.

Alumno: Edgar Ramos Luna

Carrera: Tecnologías De la Información y Comunicación (Área Multimedia y Comercio Electrónico).

Universidad Tecnología de Coahuila.

2

Page 3:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Indice

ÍNDICEELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER..................1

Haciendo uso de las tecnologías web para aplicaciones dinámicas y

compatibles con múltiples dispositivos.................................................................1

ELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER..................2

Haciendo uso de las tecnologías web para aplicaciones dinámicas y

compatibles con múltiples dispositivos.................................................................2

Capitulo 1................................................................................................................4

1.1 Introducción...................................................................................................4

1.2 Análisis de la situación..................................................................................5

1.2.1 Antecedentes..............................................................................................5

1.2.2 Área de Oportunidad...................................................................................5

1.2.3 Evaluación Diagnostica...............................................................................5

1.3 Justificación...................................................................................................6

1.3.1.....................................................................................................................6

1.4 Objetivos........................................................................................................7

3

Page 4:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Capítulo 1

1.1 IntroducciónSe realizara la elaboración de un Web Blog dinámico con la finalidad de compartir

información de interés dentro de la empresa. A si como opiniones, sugerencias,

comentarios con la finalidad de compartir conocimiento que sea de utilidad para

los empleados de la empresa. Para ello se empleara el uso de las tecnologías

web mediante un FRAMEWORK llamado codeigniter el cual utiliza las tecnologías

de

HTML5 , PHP, CSS .

4

Page 5:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

1.2 Análisis de la situación1.2.1 Antecedentes.

La empresa Click It Smart Technologies fue fundada hace 2 años por el ingeniero

en sistemas Alfonso Mauro Valdés Carrales con la finalidad de ofrecer soluciones

web para todos los negocios que necesiten publicidad web así como el desarrollo

de aplicaciones móviles y mantenimiento a servidores.

En la empresa se trabajara en el puesto de Web Developer (Desarrollador Web).

Aplicando los conocimientos adquiridos en la carrera.

1.2.2 Área de Oportunidad.Se detectó la falta de comunicación de información dentro de la empresa por lo

cual se propuso por la misma empresa elaborar un web blog interno.

1.2.3 Evaluación Diagnostica.Análisis F.O.D.A

5

Gran Cantidad de

Desarrolladores y

programadores.

Clientes Satisfechos

Accesibilidad.

Gran demanda de sitios web

Gran cantidad de clientes

solicitan los servicios de la

empresa

El Personal tiene dificultades en

cuanto el idioma inglés.

Falta personal mejor capacitado.

Falta de responsabilidad del

personal.

No es muy popular la empresa

Muchos competidores

Nuevas empresas ofreciendo

los mismos servicios

Page 6:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

1.3 Justificación1.3.1En el tiempo transcurrido laborando dentro de la empresa se observó que no

contaba con un medio para el compartimiento de información, tutoriales, opiniones

de temas de interés etc. Para eso se propuso la elaboración de un Web Blog con

la finalidad de la interacción y apoyo entre los mismos empleados de la empresa

para poder ayudar a los nuevos empleados así como para reforzar el

conocimiento y promover el aprendizaje de nuevas tecnologías.

6

Page 7:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

1.4 ObjetivosEl Objetivo de este proyecto es promover la comunicación y colaboración entre

los integrantes de la empresa para una mejor capacitación más fácil con ayuda

del mismo personal que cuenta con más experiencia esto beneficiara a los nuevos

empleados en capacitación.

1. Promover la comunicación de información de interés entre los mimos

miembros de la empresa.

2. Facilitar la capacitación del nuevo personal.

3. Ampliar la comunicación entre los empleados con el fin de aprender y

reforzar conocimientos.

CAPÍTULO 2

7

Page 8:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

2.1 DESARROLLO DEL PROYECTO

2.1.1 METODOLOGÍA

Lluvia de ideas: Este apartado se dio para captar las ideas de cómo llevar acabo

la creación del proyecto y así poderlas plasmar de manera correcta y evitar las

correcciones lo menor posible.

Planteamiento de ideas: Ya modificada la presentación de ideas con los puntos

afijos de parte de los solicitantes.

Desarrollo: Cuando ya está listo la parte de las ideas se empezó con la parte del

desarrollo, este apartado se trató de creación y modificaciones del blog conforme

se fueran dando.

Correcciones: Este apartado se utilizó dado a las modificaciones por si no se

llegara a captar las ideas que se nos dieron a la hora de plantearnos sus ideas y

también se podrían realizar por las observaciones de nuestros supervisores.

Revisión: Ya terminado el desarrollo sigue la parte de revisar cada uno de los

puntos del proyecto realizado para así evitar errores a la hora de presentarlo.

8

Page 9:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

9

Page 10:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

2.1.2 MARCO TEÓRICO

El Blog como recurso de enseñanza y aprendizaje. ¿Qué es un Blog?

El término Blog (procedente de la palabra inglesa Web Blog), o Bitácora en

castellano, se refiere a sitios web actualizados periódicamente que recopilan

cronológicamente textos o artículos de uno o varios autores donde lo más reciente

aparece primero, con un uso o temática en particular, siempre conservando el

autor la libertad de dejar publicado lo que crea pertinente.(Conejo, 2006). Estos

artículos por lo general incluyen la posibilidad de que los visitantes del blog

añadan comentarios a los mismos, fomentando así la interacción entre el autor y

el lector.

Los blogs se asemejan a diarios en los que se van realizando anotaciones, que

permiten incluir textos, imágenes y sonido. Una característica que hace muy

peculiar su estructura es que los artículos añadidos aparecen publicados en una

secuencia inversa al orden de introducción.

Lo último introducido es lo primero que se muestra, uno de los principales motivos

de la rápida expansión de este medio de comunicación ha tenido es la relativa

facilidad que ofrecen para ser creados y manejados por cualquier usuario con

conocimientos básicos de Internet aún sin tener conocimientos sobre el diseño de

páginas web; esto ha hecho que todo aquel que quiera tener un espacio en la red

para expresarse, haya encontrado en los blogs un medio ideal para hacerlo

(Gallego Torres, 2006).

La facilidad de su manejo, la posibilidad de compartir textos, imágenes y sonido,

aunado a la interacción entre quien publica y los visitantes, convierte a los blogs

en un poderoso recurso educativo al alcance de docentes y estudiantes.

Elementos de un Blog.

En un blog los artículos aparecen ordenados cronológicamente, pero en sentido

inverso; lo más reciente es lo que se encuentra publicado en la parte superior de

la página, inmediatamente después del título del blog. Todos los artículos están

en una columna central y por lo general pueden leerse completos sin necesidad

de acceder a otro enlace. También se puede observar una columna lateral con

10

Page 11:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

información extra; datos de identificación del autor, enlaces de interés a otras

páginas y blogs, acceso al archivo de lo anteriormente publicado, buscador, Chat,

álbum de fotos, libro de visitas, estadísticas; etc., todo lo que el autor considere

apropiado para la temática de la página o su gusto personal.

La estructura básica de los artículos es similar a una noticia de prensa, con titular,

fecha y cuerpo del artículo.

En la parte inferior del mismo se puede encontrar el nombre del autor, la

categoría, etiquetas (palabras claves) y un elemento que permite la interacción

entre el autor y el lector: los comentarios.

Al igual que el resto de las utilidades del blog, la manera en que se van a manejar

los comentarios puede ser definida por el autor.

Por eso encontramos blogs que tienen acceso libre para comentar incluso de

manera anónima y en otros hay que ser usuario registrado del servidor del

servicio de blog, También el autor tiene la opción de moderar los comentarios que

serán publicados, o solicitar una clave de confirmación para evitar comentarios

automáticos o spa.

Lo que no puede el autor es limitar el libre acceso a su blog una vez creado; de

ser esa su intención le estaría quitando la esencia al blog como medio de

comunicación.

Creación y publicación de un blog.

Para crear un blog se puede seleccionar entre los proveedores de servicio

gratuito. Según Gallego Torres (2006) los más populares son:

•Bleger (www.blogger.com)

•Bitácoras (www.bitacoras.com)

•Blog alía (www.blogalia.com)

•Blog (www.myblog.es) Hay que llenar un formato de registro, similar al que se

utiliza para abrir una cuenta de correo electrónico; una vez registrado el usuario

tiene la posibilidad de crear uno o más blogs, asignarle un título según la temática

el gusto del autor y acceder a las opciones del panel, desde el cual se administra

el blog: creación de artículos, selección y edición de la plantilla, moderación de

comentarios e incluso compartir el manejo del blog con otros autores.

11

Page 12:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Además de esas opciones básicas, cada proveedor de blogs ofrece servicios

particulares, una sección de ayuda y preguntas frecuentes, tutoriales e incluso un

blog sobre el uso del servicio. A continuación una breve descripción de las

opciones principales:

•Creación de artículos: Es la opción base de todo blog, permite publicar toda la

información que desee el autor, ya sea al instante o guardarlas como borrador

para publicación posterior. Además, toda información puede ser editada

posteriormente.

Se necesita de algunos conocimientos básicos de HTML para darle un uso más

profesional y personal y es lo que permite, además de textos, poder incorporar

imágenes y sonido; el autor puede apoyarse en la sección de ayuda del panel, la

cual ofrece ejemplos sencillos.

•Selección y edición de la plantilla: La plantilla es el aspecto visual-estético del

blog y la base a la que puede personalizar agregando cuantas opciones considere

necesarias según el uso que quiera dar leal blog (enlaces, álbum de fotos, libros

de visitas, estadísticas, etc.) En el panel de control el proveedor pone a

disposición algunos modelos de plantillas, los cuales requieren de conocimientos

básicos en HTML para ser modificadas; también puede consultarse la sección de

ayuda para lo referente a partes y códigos de la plantilla que pueden ser

modificados. La mayoría de los proveedores de servicio blog ofrecen la opción de

moderar los comentarios antes de ser publicados, el acceso de usuarios

registrados e incluso permitir comentarios anónimos si el administrador del blog lo

desea.

CodeIgniter

CodeIgniter, un FRAMEWORK PHP para el desarrollo rápido de aplicaciones

web.

Codeigniter es un FRAMEWORK para el desarrollo de aplicaciones en PHP que

utiliza el MVC. Permite a los programadores Web mejorar la forma de trabajar y

hacerlo a mayor velocidad.

Al igual que cualquier FRAMEWORK está pensado para gente que tiene un

dominio, al menos medio, del lenguaje de programación PHP. Siempre hay que

12

Page 13:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

controlar PHP “a pelo” para empezar a trabajar de forma eficiente con este

FRAMEWORK (o cualquier otro).

¿Qué es MVC?

El Modelo Vista Controlador es un estilo de programación en el que la aplicación

está dividida en 3 capas:

Modelo: es dónde se procesa y obtienen los datos, la conexión con la bd.

Vista: presenta los datos en pantalla, es donde va el código HTML.

Controlador: controla los datos, dicho de forma rápida obtiene datos de un

modelo, los procesa, y se los pasa a la vista.

 

Ventajas de utilizar un FRAMEWORK como CodeIgniter 

Las páginas se procesan más rapido, el núcleo de CodeIgniter es bastante ligero.

Es sencillo de instalar, basta con subir los archivos al ftp y tocar un archivo de

configuración para definir el acceso a la bd.

Reutilización de código, desarrollo ágil.

Existe abundante documentación en la red.

Facilidad de edición del código ya creado.

13

Page 14:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Facilidad para crear nuevos módulos, páginas o funcionalidades.

Acceso a librerías públicas y clases. Entre otras, hay librerías para el login,

paginador, calendarios, fechas,….

Estandarización del código. Fundamental cuando hay que tocar código hecho por

otra persona o cuando trabaja más de una persona en un mismo proyecto.

URLs amigables con SEO. Hoy en día creo que nadie duda de la importancia del

posicionamiento web.

Separación de la lógica y arquitectura de la web, el MVC.

CodeIgniter es bastante menos rígido que otros FRAMEWORKs. Define una

manera de trabajar, pero podemos seguirla o no(esto puede convertirse en un

inconveniente también)

Cualquier servidor que soporte PHP+MySQL sirve para CodeIgniter.

CodeIgniter se encuentra bajo una licencia open source, es código libre.

CodeIgniter usa una versión modificada del Patrón de Base de Datos Active

Record. Este patrón permite obtener, insertar y actualizar información in tu base

de datos con mínima codificación. Permite queries más seguras, ya que los

valores son escapadas automáticamente por el sistema.

HTML 5

HTML5  es la última versión de HTML. El término representa dos conceptos diferentes:

Se trata de una nueva versión de HTML, con nuevos elementos, atributos y comportamientos.

Contiene un conjunto más amplio de tecnologías que permite a los sitios Web y a las aplicaciones ser más diversas y de gran alcance. A este conjunto se le llama HTML5 y amigos, a menudo reducido a HTML5 .

Diseñado para ser utilizable por todos los desarrolladores de Open Web, esta página referencía a numerosos recursos sobre las tecnologías de HTML5, que se clasifican en varios grupos según su función.

Semántica: Permite describir con mayor precisión cual es su contenido. Conectividad: Permite comunicarse con el servidor de formas nuevas e

innovadoras.

14

Page 15:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Sin conexión y almacenamiento: Permite a las páginas web almacenar datos localmente en el lado del cliente y operar sin conexión de manera más eficiente.

Multimedia: Nos otorga un excelente soporte para utilizar contenido multimedia como lo son audio y video nativamente.

Gráficos y efectos 2D/3D: Proporciona una amplia gama de nuevas características que se ocupan de los gráficos en la web como lo son canvas 2D, WebGL, SVG, etc.

Rendimiento e Integración: Proporciona una mayor optimización de la velocidad y un mejor uso del hardware.

Acceso al dispositivo: Proporciona APIs para el uso de varios compomentes internos de entrada y salida de nuestro dispositivo.

CSS3: Nos ofrece una nueva gran variedad de opciones para hacer diseños más sofisticados.

PHP

¿QUÉ ES PHP? ¿PARA QUÉ SIRVE PHP?

PHP es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede ser incrustado en HTML. Es popular porque un gran número de páginas y portales web están creadas con PHP. Código abierto significa que es de uso libre y gratuito para todos los programadores que quieran usarlo. Incrustado en HTML significa que en un mismo archivo vamos a poder combinar código PHP con código HTML, siguiendo unas reglas.

 

PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página estática a aquella cuyos contenidos permanecen siempre igual, mientras que llamamos páginas dinámicas a aquellas cuyo contenido no es el mismo siempre. Por ejemplo, los contenidos pueden cambiar en base a los cambios que haya en una base de datos, de búsquedas o aportaciones de los usuarios, etc.

¿Cómo trabaja PHP? El lenguaje PHP se procesa en servidores, que son potentes ordenadores con un software y hardware especial. Cuando se escribe una dirección tipo http://www.aprenderaprogramar.com/index.PHP en un navegador web como Internet Explorer, Firefox o Chrome, ¿qué ocurre? Se envían los datos de la solicitud al servidor que los procesa, reúne los datos (por

15

Page 16:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

eso decimos que es un proceso dinámico) y el servidor lo que devuelve es una página HTML como si fuera estática.

El esquema es: Petición de página web al servidor --> El servidor recibe la petición, reúne la información necesaria consultando a bases de datos o a otras páginas webs, otros servidores, etc --> El servidor responde enviando una página web “normal” (estática) pero cuya creación ha sido dinámica (realizando procesos de modo que la página web devuelta no siempre es igual).

En resumen:

Páginas estáticas: Petición --> Respuesta

Páginas dinámicas: Petición --> Procesado y preparación --> Respuesta

 

 

En un sitio dinámico, la información generalmente está contenida en una base de datos. Cada vez que mostramos la página, como por ejemplo una página de noticas, buscamos en la base de datos las últimas noticias que tenemos ingresadas para mostrar en el navegador del visitante. Ahora bien, ¿cómo se consigue que la página vaya mostrando noticias nuevas? Simplemente cargando las mismas en la base de datos, por ejemplo, a través de un formulario que rellena una persona y que una vez relleno cuando pulsa “Enviar” implica que lo que haya escrito se guarde en nuestra base de datos. De esta manera, cuando solicitamos la página web y el servidor consulte la base de datos, encontrará esta nueva información y mostrará nuestra página de forma distinta a como se veía anteriormente.

Por regla general este tipo de lenguaje suele ser utilizado para crear contenido dinámico y poder interactuar con el usuario.

16

Page 17:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

2.1.3 Desarrollo

El proyecto fue plateado por mi superior con la finalidad de ampliar los

conocimientos de un FRAMEWORK llamado CODEIGNITER, partiendo de este

punto se solicitó el desarrollo de un blog o web blog desarrollado en este

FRAMEWORK para poder compartir información, tutoriales, tips, consejos etc.

Y así facilitar el aprendizaje y capacitación de una manera más eficiente, cabe a

mencionar el gran potencial de algunos empleados que cuentan con la

disponibilidad de poder compartir sus conocimientos para el beneficio común de la

empresa.

Para la realización de este proyecto fue de vital importancia la capacitación y el

aprendizaje de nuevas tecnologías y la aplicación de los previos conocimientos

adquiridos a lo largo de la carrera.

Se realizó una capacitación de 15 días para aprender el uso y manejo de este

software basado en el lenguaje de programación interpretado PHP.

En la primera parte de la capacitación se analizaron los requerimientos de

software para la instalación del FRAMEWORK, mi equipo de cómputo cumplía

con los requisitos necesarios después se comenzó con la instalación de dicho

software ya antes mencionado.

Al finalizar la instalación se continuó con el curso donde se vieron las

características y como utilizar la interfaz del mismo para la visualización de los

archivos que este software proporciona fue necesario instalar un editor de texto

17

Page 18:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

llamado Sublime Text el cual proporciona un gestor de archivos de texto en

leguajes de programación.

La interfaz que este editor de texto nos proporciona se puede visualizar en el

anexo (1).

Una vez realizada la instalación del editor de texto se comenzó con el análisis de

los archivos proporcionados por el software empezando por la sección de

archivos de configuración del FRAMEWORK.

En el primer archivo de configuración llamado “Autoload” se observó lo siguiente:

18

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

Prototype:

$autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');

$autoload['packages'] = array();

$autoload['libraries'] = array();

$autoload['libraries'] = array('database');

$autoload['helper'] = array('url', 'file');

$autoload['helper'] = array('form', 'url', 'blog');

$autoload['config'] = array('config1', 'config2');

$autoload['config'] = array();

$autoload['language'] = array('lang1', 'lang2');

$autoload['language'] = array();

$autoload['model'] = array('model1', 'model2');

$autoload['model'] = array();

Page 19:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Se puede apreciar de manera más detallada en el anexo (2), el archivo de

configuración llamado “Autoload” se encuentran las librerías, modelos, funciones,

bases de datos, configuraciones etc.

Que se pueden utilizar de manera automatizada en toda la página con la finalidad

de ahorrar código y poder reutilizarlo de manera eficiente.

En el proyecto se empleó el uso de este archivo para cargar las bases de datos,

librerías y helpers para poder utilizar unas funciones requeridas por los modelos.

En la siguiente etapa del curso se analizó y comprendió el funcionamiento del

siguiente archivo de configuración llamado “config” su estructura resumida en las

configuraciones requeridas para proyecto es la siguiente:

En el archivo “Config” se realizan múltiples configuraciones para el FRAMEWORK

las requeridas para el proyecto fueron las anterior mente mencionadas se hace

uso de la configuración “Base_url” para asignar la dirección a la que estarán

asociadas cada una de los paginas que contendrá el blog, la línea de

configuración llamada “Index_page” es utilizada para establecer la dirección inicial

19

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$config['base_url'] = 'http://localhost/blog/';

$config['index_page'] = 'index.php';

$config['language'] = 'english';

$config['charset'] = 'UTF-8';

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

$config['log_date_format'] = 'Y-m-d H:i:s';

Page 20:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

momento de hacer la carga del sitio web se re direccionara a una página llamada

“index.PHP” donde se muestra la primera vista del sitio llamada “menú” en esta

vista se muestra un formulario de registro y las entradas del blog ordenadas de la

más reciente a la última entrada publicada.

En la siguiente etapa del desarrollo del sitio web se implementó la conexión con

una base de datos creada en el gestor de bases de datos MYSQL.

Esta base de datos es llamada “blog” para realizar esta conexión se utilizo el

archivo llamado “Database” el cual nos es proporcionado por el FRAMEWORK.

Para realizar conexiones con bases de datos y poder implementar esta base de

datos en todo el sitio web sin necesidad de generar una conexión cada vez que

sea utilizada la estructura del archivo es la siguiente:

En la siguiente línea: “$db['default']['hostname'] = 'localhost';” .

Se define el hostname o dirección donde nuestra base de datos se encuentra

alojada en el proyecto se implementó de forma local utilizando un software para

crear un servidor local llamado “XAMPP”.

20

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$active_group = 'default';

$active_record = TRUE;

$db['default']['hostname'] = 'localhost';

$db['default']['username'] = 'root';

$db['default']['password'] = '';

$db['default']['database'] = 'blog';

$db['default']['dbdriver'] = 'mysql';

Page 21:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

En la línea: “ $db['default']['username'] = 'root'; ” se define el nombre de usuario de

nuestra base de datos , el utilizado en el proyecto es el nombre se usuario “Root”

el cual nos es proporcionado por el software “XAMPP”.

En la línea: “ $db['default']['password'] = ''; ” se define la contraseña de usuario

pero no es obligatoria por lo cual fue dejada vacía.

En la línea: “ $db['default']['database'] = 'blog'; ” se define el nombre de la base

de datos de nuestro proyecto, la base de datos utilizada tiene el nombre de “Blog”.

En la linea: ” $db['default']['dbdriver'] = 'mysql'; ” se define el gestor de base de

datos el utilizado en el proyecto es el gestor “MYSQL”.

En la siguiente etapa se estuvo realizando la investigación de cómo utilizar el

archivo llamado “Route” el cual es utilizado para cargar controladores del sitio web

se requiere especificar un controlador predeterminado en este caso para el

proyecto el controlador predeterminado establecido es el controlador llamado

“Blog” que es el que contiene las funciones para llamar a las vistas con las que

cuenta el sitio web.

En la siguiente etapa del desarrollo del blog se investigó el funcionamiento de los

archivos llamados “CONTROLLERs” o controladores , un controlador es un

archivo en lenguaje PHP que nos permite realizar, controlar y utilizar funciones de

cualquier tipo , en los todos los CONTROLLERs , modelos y helpers en el

CONTROLLER se cargan cada una de las partes y páginas del sitio web

utilizando funciones sin necesidad de cargar archivos con extensiones lo cual es

una manera más fácil de implementar nuestro código para la visualización de

páginas de nuestro sitio web.

Se debe se debe escribir en mayúsculas la primera letra cuando se crea una

nueva clase, para su implementación en el proyecto se creó un archivo llamado

“Blog” el cual es el controlador principal de todo el blog donde se cargan todas las

21

Page 22:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

vistas y son enlazadas las funciones con los modelos para la utilización de las

bases de datos a utilizar en el proyecto en primera instancia se realizó la

definición de una clase llamada “blog” la estructura es la siguiente:

La clase “Blog” como se visualiza en la línea: “class Blog extends

CI_CONTROLLER” con la extensión “ CI_CONTROLLER ” haciendo referencia a

que se está declarando un archivo CONTROLLER contendrá casi toda la

estructura del sitio web donde se definirán las funciones, librerías, helpers, y

views que se requieren para el desarrollo del sitio web.

Se definió una función constructora en la cual se incluyen los helpers y los

modelps que son utilizados por el sitio web en el sitio web se utiliza el helper

llamado “Form” el cual nos es proporcionado por el FRAMEWORK para hacer uso

de los formularios para enviar datos a nuestra base de datos.

22

<?php

if (!defined('BASEPATH'))

exit('No direct script access allowed');

class Blog extends CI_Controller

{

function __construct()

{

parent::__construct();

$this->load->helper('form');

$this->load->model('menu_model');

}

}

Page 23:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

El modelo que el sitio utiliza es llamado “Menu_Model” en este modelo se

realizaran las consultas a la base de datos del proyecto.

Se creó el archivo llamado “Menu_Model” anteriormente mencionado para realizar

las consultas a la base de datos la estructura del modelo es la siguiente:

Como se había mencionado la función principal de este modelo es para la

interacción con la base de datos de nuestro proyecto en la siguiente línea: “class

Menu_model extends CI_Model ” se está definiendo una clase llamada

“Menu_Model” con la terminación CI_Model para hacer referencia a que se está

declarando un archivo tipo model.

En la línea: “ $this->load->database(); ” se está cargando el archivo “database”

con la palabra reservada “$this” este archivo anteriormente mencionado para

establecer una conexión con nuestra base de datos.

23

<?php

if (!defined('BASEPATH'))

exit('No direct script access allowed');

class Menu_model extends CI_Model

{

function __construct()

{

parent::__construct();

$this->load->database();

}

Page 24:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Continuando con la elaboración del CONTROLLER “Blog” se definió la siguiente

función:

La función llamada “ínicio” está siendo utilizada para llamar a la vista con el

nombre de “menú” en esta vista anterior mente mencionada se visualizara el

contenido inicial del sitio web.

Se comenzó con el desarrollo del archivo vista llamado “menú “en el cual se

visualiza el contenido inicial del sitio web además de ser la página principal del

sitio donde solamente se define el inicio del documento HTML 5 y el título del sitio

la estructura del archivo es la siguiente:

En este esta vista únicamente una estructura HTML 5 simple donde se define el

título del sitio web la función índex solo se está utilizando la vista menú.

24

function inicio()

{

$this->load->view('menu');

}

<!DOCTYPE html>

<html>

<head>

<title>Blog</title>

Page 25:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Se comenzó con el desarrollo del CONTROLLER llamado “menú” el cual contiene

el resto de la estructura de la página principal de nuestro sitio su estructura es la

siguiente:

25

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Menu extends CI_Controller {

function __construct()

{

parent::__construct();

$this->load->helper('form');

$this->load->model('menu_model');

}

function index()

{

if($this->session->userdata('logged_in'))

{

redirect('blog/entradas');

}else{

$this->load->view('menu');

$this->load->view('header');

$this->load->view('registrarse');

}

}

}

?>

Page 26:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

En este controlador se declara una función llamada índex, en esta función se

están cargando las vistas menú, header y registrarse.

En la vista “Menú” como anteriormente se había mencionado solo contiene el

inicio del archivo HTML 5 y el nombre del sitio web.

En la vista “Header” se están cargando los archivos de conexión con el CDN del

FRAMEWORK Bootsrap , Un archivo CSS y además del menú principal que será

visualizado en la página de inicio el cual contiene la siguiente estructura:

En el archivo “header” se visualiza la conexión con el CDN de Bootstrap y la

conexión con un archivo CSS para la estructura visual del sitio web además del

26

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">

<link rel="stylesheet" type="text/css" href="<?= base_url()

?>application/views/css/style.css">

<div class="col-md-12">

<div>

<img src="<?= base_url() ?>application/views/img/Blog.png">

</div>

<ul>

<li><a href="http://localhost/blog/index.php/menu">Registrate</a></li>

<!--<li><a href="http://localhost/blog/index.php/blog/nueva">Nueva

entrada</a></li>-->

<li><a href="http://localhost/blog/index.php/blog/entradasno">Ver

entradas</a></li>

</ul>

Page 27:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

menú de la página principal que cuenta con 3 elementos el primero elemento y

pagina que se visualizara es el de “registrarse” el cual cuenta con un formulario de

registro.

Este formulario de registro es un requisito para poder realizar nuevas entradas en

sito.

En la vista registrar se encuentra el formulario de registro en cual cuenta con 4

cajas de texto en las cuales se ingresaran los datos de nombre de usuario, correo

electrónico, contraseña y la confirmación de la contraseña, el correo electrónico

ingresado será único y no se podrá registrar otro usuario con el mismo correo

electrónico se deberá utilizar uno diferente

27

<?php echo form_open('verifylogin'); ?>

<?php echo $this->session->flashdata('registrado'); ?>

<?php echo $this->session->flashdata('vacio'); ?>

<label for="username">Username:</label><br>

<input type="text" size="20" name="username" required="true" />

</input><br><br>

<label for="pass">Password:</label><br>

<input type="password" size="20" name="pass" required="true" />

</input><br><br>

<label for="pass">Email:</label><br>

<input type="email" size="20" name="email" required="true" />

</input><br><br>

<input type="submit" class="btn-lg" value="Login"/>

<br>

<br>

<a

href="http://localhost/Blog_actualizado_actualizado/index.php/menu"><input

type="button" class="btn-lg" value="Registrarse"></a>

</form>

<?= form_close() ?>

</div>

Page 28:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Si algún dato no es ingresado no se permitirá el registro del nuevo usuario se

tiene que ingresar a información requerida para que el usuario pueda registrarse.

Cada vez que un nuevo usuario se registra en el sitio sus datos son enviados a la

base de datos llamada “Blog” y se guardan en la tabla llamada “Usuarios” donde

se visualiza el “nombre de usuario”, “contraseña encriptada” y la cuenta de “correo

electrónico”.

Por cuestiones de seguridad la contraseña ingresada por el usuario es encriptada

y guardada en la base de datos, la encriptación de la contraseña es realizada en

el modelo “Menu_model” el fragmento de código para poder realizar la

encriptación es el siguiente:

La función “nuevousuario” está recibiendo datos mediante parámetros en las

variables “$data” y “$pass”.

La variable $data contiene el “nombre de usuario” y “correo electrónico del nuevo

usuario” y la variable $pass contiene la contraseña ingresada por el usuario.

Para realizar la encriptación de la contraseña se define una nueva variable

llamada “$password” en esta variable se utiliza un comando php llamado

“password_hash”, mediante este comando se realizará la encriptación de la

contraseña ingresada por el usuario y esta será guardada en la base de datos

28

<?php echo form_open('verifylogin'); ?>

<?php echo $this->session->flashdata('registrado'); ?>

<?php echo $this->session->flashdata('vacio'); ?>

<label for="username">Username:</label><br>

<input type="text" size="20" name="username" required="true" />

</input><br><br>

<label for="pass">Password:</label><br>

<input type="password" size="20" name="pass" required="true" />

</input><br><br>

<label for="pass">Email:</label><br>

<input type="email" size="20" name="email" required="true" />

</input><br><br>

<input type="submit" class="btn-lg" value="Login"/>

<br>

<br>

<a

href="http://localhost/Blog_actualizado_actualizado/index.php/menu"><input

type="button" class="btn-lg" value="Registrarse"></a>

</form>

<?= form_close() ?>

</div>

function nuevousuario($data, $pass)

{

$pass = $pass['pass'];

$password = password_hash($pass, PASSWORD_BCRYPT);

Page 29:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Una vez el usuario se registre inmediatamente podrá disponer de todas las

funcionalidades del sitio web.

El siguiente elemento del menú inicial es el de “Ver entradas”, este elemento del

menú está dirigido a otra vista llamada contenido donde se visualizan todo el

contenido que ha sido publicado por usuarios en el sitio web, su estructura es la

siguiente:

29

<?php echo $this->session->flashdata('correcto'); ?>

<?php echo $this->session->flashdata('bienvenido');?>

<?php

if (empty($entradas)):

echo "<center><h1>no hay entradas publicadas</h1></center>";

else:

foreach ($entradas->result() as $entrada) {

?>

<div class="post-preview">

<a href="<?= base_url('blog/entradas/' . $entrada->id) ?>">

<h2 class="post-title" id="titulo">

<?= $entrada->titulo; ?>

</h2>

</a>

<div id="contenidop">

<textarea disabled><?= $entrada->contenido; ?></textarea>

</div>

<p class="post-meta">Posted by <a href="<?=

base_url('blog/post_by_user/' . $entrada->id_autor) ?>"><?= $entrada-

>autor; ?></a> <?= $entrada->fecha; ?></p>

</div>

<?php

}

endif;

?>

Page 30:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

En la vista llamada contenido de la página entradas se agregó código PHP para

poder visualizar las entradas que han sido publicadas por otros usuarios el

contendió de todas las entradas se encuentra en la base de datos llamada “Blog”

dentro de una tabla llamada “Entradas”.

En la línea: '<a href="<?= base_url('blog/entradas/' . $entrada->id) ?>">'. se está

utilizando código PHP para recibir datos del campo de nuestra tabla “entradas”

llamado “titulo”.

En la línea: “<textarea disabled><?= $entrada->contenido;?></textarea> ” se

muestra el contenido que tiene la entrada que está siendo recibido de la base de

datos de la tabla “Entradas” del campo “contenido”.

En la línea :” <p class="post-meta">Posted by <?= $entrada->autor; ?></a> <?=

$entrada->fecha; ?></p>” se visualizara el autor de la entrada y la fecha, además

se podrán visualizar todas las entradas realizadas por un autor mediante la línea

de código “<a href="<?= base_url('blog/post_by_user/' . $entrada->id_autor) ?>">”

esta línea genera un link asociado al nombre del usuario y a todo el contenido que

este usuario ha publicado en el sitio.

En el último elemento del menú inicial del modo usuario anónimo llamado “Iniciar

sesión”, está dirigido a otra vista llamada “Veryfilogin” esta vista contiene un

formulario de acceso para que cuando el usuario anónimo opte registrarse en el

sitio web para ser un usuario privilegiado pueda ingresar sus datos y acceder a

todo el contenido del sitio web.

Para poder iniciar sesión en el sitio web se debe ir a la ir al apartado llamado

“Login” y en la vista de login se visualiza un formulario de acceso los datos

requeridos son el “Nombre de Usuario” ,”Correo electrónico” ,“Contraseña”

después de llenar los campos requeridos se debe pulsar sobre el botón “Login”

después de eso se enviaran los datos y se verificara en la base de datos si el

usuario existe si el usuario existe se redirigirá automáticamente a la vista de

30

Page 31:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

entradas pero ahora será un usuario con privilegios y se visualizara un nuevo

menú que se encuentra localizado en una vista llamada “header”.

La página principal del sitio web con todos los elementos anteriormente

mencionados se puede encontrar en el anexo (3).

Se continuó con el desarrollo del CONTROLLER “Blog” en el cual se definió la

segunda función en la cual se carga las vistas llamadas “nueva” y “registrado” la

estructura de la función es la siguiente:

31

function nueva()

{

if ($this->session->userdata('logged_in')) {

$session_data = $this->session->userdata('logged_in');

$data['id_user'] = $session_data['id_user'];

$data['username'] = $session_data['username'];

$dato['email'] = $session_data['email'];

$this->load->view('entradas', $data);

$this->load->view('header');

$this->load->view('nueva', $dato);

} else {

$this->session->set_flashdata('restringir', '<div align="center"

class="alert alert-danger">

<a href="#" class="close" data-dismiss="alert" aria-

label="close">&times;</a>

<strong>No tienes permiso para acceder a esto! Ø </strong>

</div>');

redirect('blog/entradasno');

}

}

Page 32:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

En la función “nueva” se cargan 3 vistas además para que el usuario tenga

acceso a estas páginas es necesario que sea un usuario registrado para poder

realizar nuevas publicaciones en el sitio, para ello se creó una condición que es la

siguiente: “if ($this->session->userdata('logged_in'))” la cual se encarga de

verificar que se está iniciando una nueva sesión y si esto se cumple se cargaran

las vistas para que el usuario pueda visualizar las páginas y publicar contenido.

En la línea “$this->load->view('registrado');” se está cargando la vista llamada

“registrado” la cual contiene el menú que contiene todas las páginas y su total

funcionalidad para que el usuario tenga acceso a todo el contenido con todos los

privilegios para realizar nuevas publicaciones y comentarios sobre las

publicaciones ya existentes , la estructura del archivo es la siguiente:

32

<div class="col-md-12">

<div>

<img src="<?= base_url() ?>application/views/img/Blog.png">

</div>

<ul>

<li><a href="http://localhost/blog/index.php/blog/nueva">Nueva

entrada</a></li>

<li><a href="http://localhost/blog/index.php/blog/entradas">Ver

entradas</a></li>

</ul>

<div id="login2">

<h2 style="color:#fff;">Bienvenido <?php echo $username; ?></h2>

<h6><a href="logout">Logout</a></h6>

</div>

</div>

Page 33:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

En esta vista se encuentra la nueva estructura del menú que solo se puede

visualizar si el usuario accede con su cuenta en la página de login, las diferencias

del menú inicial y este menú son que el usuario ya no únicamente tiene acceso a

las publicaciones realizadas sino que también puede realizar nuevas

publicaciones y comentarios sobre las publicaciones de otros usuarios el menú

cuenta con los siguientes elementos: “Nueva entrada” en la opción nueva entrada

se puede acceder a una nueva página donde el usuario puede escribir una nueva

publicación o entrada que posteriormente de ser publicada podrá ser visualizada

en la página “Ver entradas” y el último elemento de este menú es el “Lougout”

este elemento tiene la funcionalidad de cerrar la sesión del usuario actual y al

momento de cerrar la sesión es ejecutado un comando llamado “$this->session-

>unset_userdata('logged_in');” y se redirige de nueva cuenta a la página inicial del

modo usuario anónimo sin privilegios. En la página “Nueva entrada” se realiza la

inserción de datos a la base de datos del proyecto en la tabla llamada “Nuevas

entradas” la estructura de la página entradas es la siguiente:

33

<?= form_open('blog/recibirdatos')?>

<div id="titulo">

<h1>Titulo:<?= form_input($titulo) ?></h1>

</div>

<div id="contenido">

<h1>Contenido:<br>

<?= form_textarea($contenido)?>

</h1>

</div>

<div id="autor">

<h1>Autor:

<input type="text" name="autor" value="<?php echo $username; ?>"></h1>

</div>

<input class="btn-lg"type="submit" value="Publicar" ></input>

</div>

<?= form_close()?>

Page 34:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

En la estructura del archivo “Nueva entrada” se creó un formulario para la

publicación de nuevas publicaciones o entradas en el sitio web los datos que son

ingresados por el usuario con privilegios son guardados en la base de datos del

proyecto y se pueden visualizar en la página “Ver entradas”, los datos de la

publicación enviados por el usuario son procesados por una función del

CONTROLLER “Blog” y son enviados al model “Menu_model” para ser guardados

en la base de datos, la función encargada de procesar los datos enviados por el

usuario tiene el nombre de “Recibir datos” y se encuentra definida en el

CONTROLLER “Blog”, la estructura de la función es la siguiente:

34

function recibirdatos()

{

$data = array(

'titulo' => $this->input->post('titulo',TRUE),

'contenido' => $this->input->post('contenido',TRUE),

'autor' => $this->input->post('autor',TRUE),

'fecha' => date('Y-m-d H:i:s',TRUE)

);

$this->menu_model->nuevaEntrada($data);

$this->session->set_flashdata('correcto', '<div align="center" class="alert

alert-success">

<a href="#" class="close" data-dismiss="alert" aria-

label="close">&times;</a>

<strong>La entrada se ah publicado correctamenre</strong>

</div>');

redirect('blog/entradas', 'refresh');

}

Page 35:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

En esta función se están recibiendo los datos que el usuario ha enviado en la

publicación, estos datos son recibidos y almacenados en un arreglo asociativo

llamado “data” con las siguientes variables: “titulo” en esta variable se almacena el

título de la nueva publicación, “contenido” en la variable llamada contenido es

donde se almacena todo el contenido de la entrada realizada por el usuario,

“autor” en la variable autor se almacena el nombre del usuario autor de la

publicación, “fecha” en la variable fecha se almacena la fecha y hora de la

publicación.

Todos estos datos son enviados al modelo “Menu_model” donde son procesados

y guardados en la base de datos del proyecto dentro de una tabla llamada

“Entradas” dentro de esta tabla se encuentran los campos: “título, contenido, autor

y fecha” todos estos datos son guardados en la base de datos por una función

llamada “nuevaEntrada” y su estructura es la siguiente:

En esta función se está recibiendo la variable “data” que contiene todos los datos

que el usuario a enviado en la publicación el modelo se encarga de hacer la

inserción en la base de datos utilizando el comando “insert” dentro de la tabla

llamada “entradas” donde se guardan los datos que el usuario envió para

después ser visualizados en el sitio web.

35

function nuevaEntrada($data)

{

$this->db->insert('entradas', array(

'titulo' => $data['titulo'],

'contenido' => $data['contenido'],

'autor' => $data['autor'],

'fecha' => $data['fecha']

));

}

Page 36:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

En la página llamada “Ver entradas” se visualizara todo el contenido que se

encuentra en la tabla “entradas” de la base de datos del proyecto la estructura del

archivo es la siguiente:

En la línea de código: “<?php echo $this->session->flashdata('correcto'); ?>” se

está utilizando un comando PHP para indicar cuando una publicación se ha

36

<title>Entradas</title>

<div class="col-md-10">

<?php echo $this->session->flashdata('correcto'); ?>

<?php

foreach ($entradas->result() as $entrada) { ?>

<div id="titulo">

<h1><a href="<?= base_url('index.php/blog/entradas/'.$entrada->id)?

>"><?= $entrada->titulo;?></a></h1>

</div>

<div id="contenidop">

<textarea disabled><?php echo $entrada->contenido;?></textarea>

</div>

<div id="fecha">

<h1><?= $entrada->fecha;?></h1>

</div>

<hr>

<div id="autor">

<h5>By:<?= $entrada->autor;?></h5>

</div>

<?php }

?>

Page 37:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

realizado de manera exitosa de ser así se muestra el siguiente mensaje “La

entrada se ha publicado correctamente” este comando se encuentra dentro de la

función recibir datos del CONTROLLER “Blog”.

En la línea: “foreach ($entradas->result() as $entrada) { ?>” se utiliza el comando

“FOREACH” para mostrar todas las entradas que se encuentran en la base de

datos.

En la línea:” <h1><a href="<?= base_url('index.php/blog/entradas/'.$entrada->id)?

>"><?= $entrada->titulo;?></a></h1>” se utilizan 2 comandos PHP uno llamado

“base_url('index.php/blog/entradas/)” esta línea de comando nos permitirá

acceder a cada una de las publicaciones o entradas que están actualmente en la

base de datos mediante un id que cada una de las publicaciones tiene en la base

de datos, el siguiente comando “$entrada->id)?>” se encarga de mostrar el título

de todas las publicaciones que actualmente se encuentran en la base de datos

además de permitirnos acceder a las entradas individuales con la ayuda del

comando “base_url('index.php/blog/entradas/ '.$entrada->id)”. Dentro de

cada entrada individual se encuentra una caja de comentarios para que los

usuarios registrados puedan realizar comentarios sobre las entradas que se

encuentran en el sitio.

Al momento de realizar un comentario se notificara al usuario autor de la entrada

por correo electrónico los datos que este correo electrónico contendrá serán:

“Titulo de la entrada”, “Comentario” y “Autor del comentario”.

Para realizar el envió de correos electrónicos al momento de realizar un

comentario se implementó una e uso de una API llamada MAILGUN.

Para poder utilizar esta API fue necesario crear una cuenta en

https://www.mailgun.com ,una vez creada la cuenta se creó un dominio

SANDBOX para poder asociar a donde serán enviados los correos utilizando

también una API KEY generada automáticamente después de crear la cuenta de

usuario ,después instalar un manejador de dependencias llamado COMPOSER

37

Page 38:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

después de instalar COMPOSER se tuvo que descargar una librería llamada

MAILGUN.

En la siguiente línea se muestra el uso de un HELPER llamado “Enviar_helper” su

estructura es la siguiente:

Para poder enviar los datos se tiene que hacer uso de una variable llamada

“$mgClient” la cual contiene la API KEY de la cuenta de MAILGUN, también es

necesario el uso de la variable llamada “$domain” la cual contiene el dominio

SANDBOX al cual son dirigidos los emails para poder ser enviados a los usuarios.

38

<?php

function maile($autor, $text, $email_comentario,$email_autor)

{

try{

# Instantiate the client.

$mgClient = new Mailgun('key-6e1864e0bbbf6e20133372ec5d0e8787');

$domain = "sandbox41165099550640ebad5da087fb66be92.mailgun.org";

# Make the call to the client.

$result = $mgClient->sendMessage($domain, array(

'from' =>$email_comentario,

'to' => $email_autor,

'subject' => 'Titulo de la entrada:' . ' ' . $subject,

'text' => 'Autor:' . ' ' . $autor . '

' . 'Comentario:' . $text

));

}

catch(Exception $e){

echo '{"error":{"text":'. $e->getMessage() .'}}';

}

}

Page 39:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

El helper “Envial_helper” se reciben los datos que serán enviados por correo

electrónico y son recibidos mediante parámetros por la función “maile” en las

variables: “($subject, $autor, $text, $email_comentario,$email_autor)”.

Estas variables contendrán los datos del usuario autor de la entrada, el usuario

autor del comentario, el título de la entrada que fue comentada y el comentario

que se realizó en esta entrada estos datos son enviados mediante las siguientes

líneas:

39

$result = $mgClient->sendMessage($domain, array(

'from' =>$email_comentario,

'to' => $email_autor,

'subject' => 'Titulo de la entrada:' . ' ' . $subject,

'text' => 'Autor:' . ' ' . $autor . '

' . 'Comentario:' . $text

));

Page 40:  · Web viewELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER. Haciendo uso de las tecnologías web para aplicaciones dinámicas y compatibles con múltiples dispositivos. Alumno:

Bibliografías:

https://sites.google.com/site/psiccabrejos/3---marco-teorico

http://codeigniter.com/

https://developer.mozilla.org/es/docs/HTML/HTML5

http://aprenderaprogramar.com/index.PHP?

option=com_content&view=article&id=492:ique-es-PHP-y-ipara-que-sirve-un-

potente-lenguaje-de-programacion-para-crear-paginas-web-

cu00803b&catid=70:tutorial-basico-programador-web-PHP-desde-

cero&Itemid=193/

http://mantenimientosdeunapc.blogspot.mx/2011/11/que-es-xampp-y-para-que-

sirve.html

http://www.desarrolloweb.com/articulos/CONTROLLERs-codeigniter.html

http://blogandweb.com/PHP/code-igniter-vistas/

http://www.desarrolloweb.com/articulos/modelos-codeIgniter.html

https://alanchavez.com/si-eres-desarrollador-web-debes-utilizar-bootstrap-y-punto/

http://www.desarrolloweb.com/articulos/helpers-codeigniter.html

40