12

Drupal conceptos básicos y su alcance en proyectos

Embed Size (px)

DESCRIPTION

Presentación utilizada en el Drupal Camp Centroamérica 2014; en esta presentación se muestran conceptos teóricos y básicos sobre el CMS Drupal y se muestran algunos aplicaciones web creadas por medio del CMS Drupal.

Citation preview

Page 1: Drupal conceptos básicos y su alcance en proyectos
Page 2: Drupal conceptos básicos y su alcance en proyectos

DrupalConceptos básicos y

Su alcance en proyectos

Page 3: Drupal conceptos básicos y su alcance en proyectos

¿Qué es un CMS (Content Management System)?Es un sistema que permite crear, publicar, editar y modificar contenidos, organizar y borrar, todo, desde su

interfaz principal; estos a su vez proveen de un flujo de trabajo para un entorno de colaboración.Actualmente los contenidos más desarrollados con estas herramientas son sitios web cuyo conteniendo(s) son:

• Blogs• Noticias• Sitios de compras• Aplicaciones web• Algún híbrido de las anteriores• O lo que tu imaginación te permita.

¿Qué es Drupal?Drupal es una plataforma de código abierto, para la creación y administración de contenidos con la que se han desarrollado millones de sitios y aplicaciones web en todo el mundo. Una característica en común con los demás CMS más populares, es la posibilidad de administrar los contenidos sin ningún tipo de conocimiento o habilidad de programación.

Page 4: Drupal conceptos básicos y su alcance en proyectos

Drupal es parecido a un juego de lego, en donde los desarrolladores profesionales ya han creado los bloques – como módulos contribuidos – que permiten crear y ajustar un sitio web a las necesidades solicitadas por el cliente o usuario.

Ventajas:• Facilidad de integración• Facilidad para alterar el comportamiento o

presentación del core y/o de los módulos contribuidos.

Piensa en Drupal como un juego de Lego!!!

Desventajas:• Invertir de tu tiempo para aprender a utilizarlo y

así poderlo integrar con las demás piezas antes de crear un prototipo e implementarlo en tu sitio web.

Flujo de la información en las distintas capas de Drupal.Imagen tomada de Drupal.org

Page 5: Drupal conceptos básicos y su alcance en proyectos

Conceptos básico de Drupal

Nodo (Contenido): Un nodo es el término genérico para una pieza de contenido en el sitio web. Dependiendo del tipode contenido, este puede tener adjunto un o más campos y a esto se le conoce como tipo de contenido.

Entity types: Son una abstracción útil para agrupar campos. Los tipos de entidad son utilizados para almacenar y mostrar información, los cuales pueden ser nodos, comentarios, términos de taxonomías, perfiles de usuario o algo desarrollado y personalizado.

Imagen tomada de Drupal.org

Page 6: Drupal conceptos básicos y su alcance en proyectos

Comentarios:Los comentarios son otro tipo de identidad que puedes tener en tu sitio web; estos son pequeñas piezas de contenido que un usuario adjunta y envía a un nodo en particular

Taxonomías:Son un tipo de entidad que permite definir uno o más vocabularios por el usuario y en ellos agrupar términos de taxonomías; los cuales al momento de adjuntarlos a los nodos permiten clasificarlos por categorías, etiquetas o cualquier otro tipo de clasificación que desees.

Usuarios:Son un tipo de entidad, el cual representa un usuario web del mundo real. Por defecto un usuario tiene un conjunto de propiedades (campos): nombre de usuario, contraseña, role y una dirección de correo electrónico.

Regiones y bloques:Las páginas en un sitio de Drupal están compuestas en regiones. Estas pueden incluir las siguientes regiones cabecera, pie de página, barras laterales y el contenido principal; puedes definir regiones adicionales según tus necesidades.Los bloques son trozos discretos de información que se mostraran en las regiones de la página del sitio web.

Page 7: Drupal conceptos básicos y su alcance en proyectos

Tema:La capa del tema se encuentra separada de la capa de datos, de la capa de extensiones de funcionalidad (módulos) y del core. El tema controla la apariencia (vista y estilo) de tu sitio. Un tema consiste de uno o más archivos de plantilla PHP que definen la salida HTML de la página, junto con uno o mas hojas de estilo (CSS).

Imagen tomada de Drupal.org

Page 8: Drupal conceptos básicos y su alcance en proyectos

Módulos:Un módulo es software (código) que permite extender las funcionalidades básicas del core de Drupal o de módulos contribuidos; estos pueden caer en una de tres categorías:

• Módulos del core: Son módulos que vienen por defecto al momento de descarga principal de Drupal.

/drupal-install/modules• Módulos contribuidos: Son módulos que se

descargan desde la sección de módulos del sitio de Drupal.org estos tienen como funcionalidad extender o proveer de nuevas funcionalidades al core de Drupal./drupal-install/sites/all/modules

• Módulos personalizados: Son módulos que uno crea y personaliza por su cuenta y por ende se requiere de un conocimiento sobre Drupal, PHP y el API de Drupal.

/drupal-install/sites/default/modules

Page 9: Drupal conceptos básicos y su alcance en proyectos

Hooks:Es una función PHP nombrada como foo_bar(), donde foo es el nombre del módulo (cuyo nombre de archivo tiene la forma foo.module) y bar es el nombre del hook. Cada hook tiene definido un conjunto de parámetros y si aplica retorna algún tipo de resultado.Son funciones cuya implementación permiten sobrescribir o extender el comportamiento de una función previamente definida.

Ejemplos:• template_preprocess_(node|page|html|views|

etc)• template_process_(node|page|html|views|etc)

La principal función de los preprocesadores descritos con anterioridad, es definir y establecer variables para su posterior uso dentro de los archivos .tpl.php; también son utilizados para definir los template suggestions. La implementación de estas funciones, deben hacerse dentro del archivo template.php del tema.

• hook_theme() {}• hook_menu() {}• hook_entity_info() {}• Hook_menu_alter() {}• Hook_theme_alter() {}Los hooks mencionados con anterioridad y otros existentes deben implementarse en el archivo module_name.module

Theme functions:Son funciones predefinidas, las cuales despliegan como resultado código HTML.

Page 10: Drupal conceptos básicos y su alcance en proyectos

• theme_menu_link() {}• theme_table() {}• theme_list() {}• theme_button() {}

Array Renderizables:Son los componentes básicos de una página de Drupal, estos son representados como un array asociativo estandarizado y cuya estructura de datos es utilizado por Drupal en el sistema de renderizado.

Page 11: Drupal conceptos básicos y su alcance en proyectos

Drupal como navaja suiza en tu empresaActualmente son varios los tipos de implementación de un proyecto en Drupal, ten en mente que el core en conjunto con los módulos contribuidos, pueden ayudarte para construir aplicaciones web complejas (más que un simple sitio web) por ejemplo:

Es una herramienta completa para la administración de proyectos para una pequeña y mediana empresa proveedores de servicios contiene un pequeño ERP y CRM.

Es un software de colaboración de código libre, que permite a la organización o empresa que lo utiliza, conectar de forma segura los equipos de trabajo, proyectos y conocimientos

Es un LMS (Learning Management System) de código abierto; cuyo principal objetivo es ser extensible y escalable.

Page 12: Drupal conceptos básicos y su alcance en proyectos