En este artículo veremos cómo se maneja de manera básica el entorno de administración de Drupal.
curso
Curso de Drupal 8 (I): Introducción
Drupal se ha convertido en poco tiempo en unos de los Sistemas de Gestión de Contenidos (SGC o CMS en inglés) más utilizados y más flexibles del mercado por méritos propios. En este conjunto de tutoriales que servirán de inicio de este blog, expondré los puntos fundamentales para el desarrollo de sitios web con Drupal 8, así que sin más dilación empecemos.
Curso de CSS3
Curso de CSS3
Destinatarios
Objetivos
- Conocer las nuevas propiedades CSS3
- Saber poner en marcha los usos sobre botones y textos
- Saber importar tipos de letra
- Saber realizar degradados sobre elementos
- Saber aplicar distintos estilos dependiendo de la resolución de pantalla
Temario
- Introducción
- Nuevas propiedades
- Botones redondeados
- Varios fondos de imagen
- Colores con transparencia
- Nuevos selectores
- Sombras
- Degradados
- Media Queries
Curso de Desarrollo de Módulos con Drupal 7 (VI): Creación de Bloques
Una vez gestionados los datos principales del módulo, a veces, es necesario poder presentar información en forma de bloques, tal como mencionamos en la 7ª entrega del curso de Drupal 7.
A continuación, detallaremos los pasos fundamentales para la generación de bloques desde un módulo.
Declaración de un Bloque: hook_block_info()
/**
* @file
* Module file for block_example.
*/
/**
* Implementa hook_block_info().
*/
function current_posts_block_info() {
$blocks[‘current_posts’] = array(
‘info’ => t(‘Current posts’), //El nombre que aparecerá en el listado de bloques
‘cache’ => DRUPAL_CACHE_PER_ROLE, //Default
);
return $blocks;
}
Obtención de información
* Función de obtención de Contenido
*
* Intenta recoger los elementos que están en la base de datos entre una fecha y otra.
*
* @return
* Un result set de los post entre dos fechas.
*/
function current_posts_contents(){
//Coge la fecha de hoy
$today = getdate();
//Calcula la fecha hace una semana
$start_time = mktime(0, 0, 0,$today[‘mon’],($today[‘mday’] – 7), $today[‘year’]);
//Coge la hora actual como la fecha final
$end_time = time();
//Usa el API de Database para hacer la consulta
$query = db_select(‘node’, ‘n’)
->fields(‘n’, array(‘nid’, ‘title’, ‘created’))
->condition(‘status’, 1) //Published.
->condition(‘created’, array($start_time, $end_time), ‘BETWEEN’)
->orderBy(‘created’, ‘DESC’) //Most recent first.
->execute();
return $query;
}
Generando la salida del bloque: hook_block_view()
* Implementa hook_block_view().
*
* Prepara los contenidos del bloque
*/
function current_posts_block_view($delta = ”) {
switch($delta){
case ‘current_posts’:
$block[‘subject’] = t(‘Current posts’);
if(user_access(‘access content’)){
//Usamos nuestra función para recoger los datos
$result = current_posts_contents();
//Genera un array para introducir los datos de la consulta de manera estructurada
$items = array();
//Bucle que recorre los resultados y obtiene cada nodo para introducir los datos en el array
foreach ($result as $node){
$items[] = array(
‘data’ => l($node->title, ‘node/’ . $node->nid),
);
}
//Verifica que el array no esta vacio
if (empty($items)) { //No content in the last week.
$block[‘content’] = t(‘No posts available.’);
}
else {
//Pasa los datos a la funcion theme para maquetarlos
$block[‘content’] = theme(‘item_list’, array(
‘items’ => $items));
}
}
}
return $block;
}