Inyectar un bloque de Drupal usando PHP

Este es el segemento de código que se utiliza para "inyectar" un bloque desde código PHP:
<?php
$block = module_invoke('block', 'block', 'view', delta_number_of_block);
print $block['content'];
?>
Pero su aplicación necesita de algunos detalles. El método module_invoke recibe en este caso cuatro parámetros, de ellos sólo modificaremos el primero y el cuarto. El primero será el módulo que se utilizó para la creación del bloque. Por ejemplo, un bloque creado utilizando la página de bloques (admin/build/block) tendrá como módulo creador a 'block'. Sin embargo, un bloque creado por la página de configuración de menúes (admin/build/menu) tendrá como módulo creador a 'menu'. En la siguiente lista muestro las correspondencias de módulo-identificador que he hallado en mi experiencia en Drupal.

Página de bloques (admin/build/block)'block'
Página de menúes (admin/build/menu) 'menu'
Forum'forum'
Localización'locale'
Comentarios'comment'
Imágenes'image'
Del sistema'system'
Usuario'user'
Finder'finder'

Ahora, el cuarto parámetro es el identificador delta del bloque para el módulo especificado. En los sitios en que he buscado información al respecto asumen que es un número, sin embargo esto depende del módulo, ya que para los bloques de menúes el identificador es una cadena de texto formada por la palabra 'menu' + 'nombre-del-menu', con excepción de los menúes que provee el sistema ('primary-links', 'secondary-links'). Con esto sucede algo curioso: y es que aunque en la página de configuración de menúes aparezca el menú de navegación como uno más, su bloque correspondiente pertenece al módulo de tratamiento de usuarios.

WCF: Inicios

Desde hace años Microsoft intenta unificar en una plataforma todas las tecnologías para el desarrollo de sistemas distribuidos, teniendo en cuenta que estas tecnologías comparten mucho en común, principalmente su interacción con la capa de red y transporte de la arquitectura TCP/IP.
En estas andanzas surge el proyecto Indigo que luego de un extenso período de pruebas, pasó a su versión estable como Windows Communication Foundation (WCF). En este se agrupaba el desarrollo de Servicios Web, DCOM+, Remoting y todo el paraguas de tecnologías distribuidas, de forma tal que el desarrollo de funcionalidades en nuestros servicios no interviniera con la forma en la que este se sirviera. Así podríamos brindar una misma funcionalidad de diferentes maneras sin tener que modificar el código de la funionalidad en sí.
Para entender de que va WCF debemos saber (como en todo) el ABC, en este caso Address, Binding y Contract.

Address
Especifica la dirección del servicio. Esta dirección incluye el protocolo usado (TCP, HTTP, MSMQ, ...).
Binding
Mecanismos de comunicación que se usarán para acceder a la dirección. Con estos mecanismos se definen como se codificarán los datos, la seguridad de las comunicaciones, la compresión de datos, etc.
Contract
Indica cuál es el servicio a ofrecer, cuáles son las funcionalidades que se van a exponer.

Una combinación de estos tres elementos crea lo que se denomina como endpoint. Un mismo servicio puede tener varios endpoints ya que se puede acceder a la misma funcionalidad a través de diferentes protocolos, diferentes puertos, diferentes mecanismo.

Herramienta para descargar vídeos de Youtube

¿Quién no ha querido descargar sus vídeos prefereridos de Youtube? Que tal hacerlo con un gestor de descarga como con cualquier otro fichero. Pues para esto le recomendamos YouDown. Una excelente herramienta con excelente usabilidad. Agregas los enlaces de tus videos en la cola (o simplemente los importas de un txt) y ... ¡a descargar!
YouDown está hecho con las últimas tecnologías de Microsoft para .Net por lo tanto debemos tener instalada la plataforma .Net versión 3.5 con SP1 o superior y es compatible con Windows XP/Vista/7.
Otra de las ventajas que ofrece YouDown es la posibilidad de elegir la calidad con la que queremos que se descarguen nuestros videos.
Sin más aquí esta el enlace: http://youdown.codeplex.com/




Drupal: Taxonomy + Contemplates

Muchas veces hemos querido mostrar nuestros términos de vocabularios como un campo CCK más. La mejor opción para esto es el uso del módulo contemplate y de un poco de código PHP que nos permita extraer los términos por vocabulario para su presentación.
Para esto comenzaremos añadiendo a template.php el siguiente código:
function phptemplate_taxonomy_links($node, $vid) {
if (count($node->taxonomy)){
$tags = array();
foreach ($node->taxonomy as $term) {
if ($term->vid == $vid){
$tags[] = array('title' => $term->name, 'href' => taxonomy_term_path($term), 'attributes' => array('rel' => 'tag'));
}
}
if ($tags){
return theme_links($tags, array('class'=>'links inline'));
}
}
}
Luego en el contemplate de nuesto tipo de contenido hacemos una llamada a la función definida:
<?php print phptemplate_taxonomy_links($node, $vid) ?>
... donde sustituimos $vid por el id del vocabulario del cual queremos extraer los términos asignados al nodo en particular. Utilizando nuestro conocimiento de Contemplate, HTML y CSS podemos darle el estilo que deseemos a nuestra salida.
Un ejemplo de lo que les muestro lo pueden ver aquí, donde Técnica y Manifestación aparecen como si se tratase de campos CCK, sin embargo son vocabularios con los términos asociados a ese nodo.

Notas:
  1. Esta solución fue probada usando Drupal 6.12.
  2. La función phptemplate_taxonomy_links puede ser sustituida por otra en la que se muestre la relación jerárquica de aquellos vocabularios que la tengan.

Negro que soy

A los que aún luchan en cimarronaje
Negro que soy
Quiero ser bozal,
Ladino al suelo que soy,
Bozal de corazón,
Sin oreja al paredón.
De bozal a cimarrón,
De carabalí yoruba a bozal,
De negro en casa África Grande,
A blanco encima cepo apreta'o.
Orro quedo por bozal cimarrón,
De ladino nacido sin tierra,
A rumba nostalgia,
A mano vacía,
A pie forra'o,
Sangrando el cuerpo engrilleta'o.
Bozal, bozal, bozal,
Cimarón, cimarrón,
Ladino que pena que soy.
Orro de corazón


IBM & Sybase se unen


IBM entra en un acuerdo con Sybase (el creador de lo que luego fuera Microsoft SQL Server), para explotar el comercio de soluciones móviles. En esto se incluye una plataforma unificada de banca, para reducir el pronóstico de riesgo en las operaciones de un banco.
“Esta relación entre Sybase e IBM lleva más allá nuestra estrategia para construir una asociación global que permita un ecosistema de comercio móvil seguro que beneficia tanto a los usuarios como a los operadores móviles e instituciones financieras de todo el mundo", declara Matthew Talbot, vicepresidente de mCommerce de Sybase 365.

Disney compra a Marvel

La compañía insignia de los dibujos animados Walt Disney Company ha adquirido al gigante de los cómics Marvel por cerca de 4 mil millones de dólares. Con esta operación se unen Blanca Nieves con Iron Man en el conglomerado de animados más grande del mundo.
Por todos es conocido que la marca Marvel ha recibido un reciente impulso dado el gran éxito de las versiones fílmicas de las historias de varios de sus personajes históricos, como Spider Man.
Marvel se suma entonces a Pixar y engrosa el universo que rodea a los míticos personajes de Disney.

Niños

image023
image022
image021


image020
image018
image019


image017
image016
image015


image014
image013
image012
image011


image010
image009
image008


image007
image006
image005


image004
image003
image002
image001

Nirvana again



La discográfica Universal ha anunciado hace unas horas la distribución, a partir del 3 de Noviembre, de una versión mejorada de un concierto de Nirvana, en el festival de Reading. La edición limitada consistirá en CD y DVD y se llamará Nirvana Live At Reading.
Entre las mejoras realizadas al material original se encuentran: limpieza de la imagen, mejoras en color y sonido. La grabación recoge todo el espectáculo en el que se tocaron todos los temas del Nevermind junto a otros temas que para ese momento aún no habían sido grabados. Cantaron otros temas de los inicios de la banda recogidos en discos como Bleach.
Esperemos que esté pronto en la red listo para descarga. Sírvanse de este medio para compartir esto ... y más.