Como saltar el theming system de Drupal fácilmente

Cuando usas un CMS, los contenidos son generados de manera dinámica y para visualizarlos se utiliza una especie de “plantilla” con el diseño/estilos asociados a éstos. En Drupal estas plantillas finales son conocidas como Temas (themes) y existe una gran variedad (por ejemplo, re-orientation usa el tema BOOTSTRAP BUSINESS).

Una vez que trabajas con un tema concreto, todos los contenidos visualizados son maquetados por el sistema de generación asociado al tema activo. El único inconveniente que tiene esta manera de operar es que a priori no es posible saltarse la plantilla del tema y hay algunos casos en los que puede ser deseable.

Caso de uso que combina páginas estáticas y dinámicas en Drupal

Por ejemplo, en re-orientation quiero que la home sea una página estática 100% a medida y fuera de la plantilla asociada al tema. Hay varias maneras de conseguirlo, os voy a contar como lo hice yo sin complicarme mucho la vida.

Como informar correctamente la contraparte en el XML del SII

Hace ya algunas semanas que entró en vigor el Suministro Inmediato de Información a la Agencia Tributaria (SII), y aún existen bastantes problemas al informar la contraparte en los ficheros XML enviados a la AEAT, ya que el nodo <Contraparte> tiene diferentes valores en función del tipo de interlocutor receptor/emisor de la factura, como se aprecia en el esquema SuministroInformacion.xsd...

Nodo Contraparte, para libro de facturas expedidas

Como informar correctamente el destinatario de la factura electrónica cuando es un organismo público

Cuando se envía una factura electrónica a la administración pública (XML Facturae 3.2.x), es obligatorio identificar el órgano administrativo destinatario de una factura informando de los datos referidos a la Oficina Contable (OC), el Órgano Gestor (OG) y la Unidad tramitadora (UT) que le corresponden. Estos tres datos son los que comúnmente se conocen como DIR3 (OC-OG-UT). Pero ¿Que significan y donde se informan los DIR3 en el XML FACTURAE 3.2.x?...

Nodo de Centro Administrativo del esquema XML Facturae

Soluciones eficientes combinando ArrayList HashSet y HashMap

Imaginaros que tenemos dos colecciones de objetos, la colección A y la colección B, donde B es un conjunto de objetos reducido de A. Si necesitáramos obtener, a partir de los datos anteriores, un contenedor C donde por cada elemento de A sepa si existe en el conjunto B o no, ¿como podríamos realizar esto de manera sencilla y sin necesidad de anidar bucles?

Hay varias formas de resolver el caso de uso anterior usando Java, en nuestro caso el objetivo es ilustrar el uso combinando de ArrayList, HashSet y HashMap, así que veremos una manera eficiente de implementar la solución.

Nos apoyaremos principalmente en la clase java.util.HashSet, que está pensada específicamente para trabajar con conjuntos y nos permite buscar de manera rápida elementos dentro de uno. Para modelar el ejemplo: A, será un HashList; B un HashSet; y el resultado del cruce, C, un HashMap...

Pasos para importar a MiniKeePass un archivo .kdbx desde Dropbox

Sincronizando KeePass mas Dropbox mas MiniKeePass

Seguramente muchos de vosotros usáis la aplicación de escritorio KeePass para mantener las contraseñas agrupadas de manera segura. Los que habitualmente utilizáis varios equipos, probablemente sincronicéis las BDDs de claves usando un almacenamiento en la nube como Dropbox.

Si estas en ese punto y tienes un iPhone, puedes dar un paso más allá y tener tus claves siempre contigo de manera segura. Para ello, a continuación veremos como sincronizar de manera sencilla la BDD de claves de KeePass (Dropbox mediante) con la App MiniKeePass.

Implementando el controlador con Spring MVC. La clase GeneralController

Parte del Manual paso a paso para desarrollar una aplicación web con Spring Framework + Spring Security contra una base de datos MySQL.

Ya tenemos nuestra clase de acceso a datos con la consulta personalizada y la clase de usuario personalizado con los nuevos atributos, nos queda implementar las redirecciones en función de los roles de usuarios autenticados y los recursos (las páginas) a los que accederán en cada caso.