Subfolders Domain - Creando subdominios a partir de rutas
drush en...Leer mas
Como configurar multisites en Drupal 8
Como configurar multisites en Drupal 8
En la siguiente entrada veremos como configurar sitios multisites en Mac usando Drupal 8.
El concepto básico de multisites implica el poder crear múltiples sitios web a partir de una única instalación drupal, compartiendo el mismo código pero corriendo sobre diferentes bases de datos , lo que permite reutilizar componentes a través de todos nuestros sitios.
Domain Access - Subdominios y Multi-dominios en un mismo drupal
ServerAlias *.ejemplo...Leer mas
Drupal garden se fue
El mundo de Drupal es tan grande o esta uno tan ocupado que no se entera de ciertas cosas. Por ejemplo que drupal garden ya no existe. drupal garden era la versión de Acquia de wordpress.com. Un lugar para que la gente hiciera su sitio web con drupal 7 sin necesidad de aprender a instalar, contratar hospedaje y demás. Supongo que cambiando de versión, seguir promoviendo drupal 7 ya no resultaba interesante.
Categorias: NoticiasVersión: Drupal 7 TweetPrincipios de Twig para Drupal 8
Drupal VM 4 ya llegó! con php 7.1 y más novedades
Migración de datos CSV a párrafos
Con el trabajo cotidiano de la oficina es natural que en el desarrollo de tareas se presenten desafíos y potenciales temas de investigación. Con la incorporación de nuestro desarrollador Lucas, al grupo de mantenedores del core del sistema de migraciones hemos decidido adentrarnos en este tema poco documentado como es la migración de datos CSV a párrafos.
Párrafos es la nueva forma de creación de contenido. Le permite a los constructores de sitios hacer las cosas más limpias para que pueda dar más poder de edición a sus usuarios finales.
Charlotte León Mié, 12/07/2016 - 08:38Configurar las carpetas publicas y privadas en Drupal 8
#DrupalDrama
Luego uno se encuentra con cuentas y hashtag relacionadas a Drupal. En este caso lo relacionado a los dramas con drupal. Es una buena manera de reírse y de sufrir.
Echenle un ojo: https://twitter.com/drupaldrama y https://twitter.com/hashtag/DrupalDrama?src=hash
Categorias: Ligas TweetDrupal & Beers: Gestión de configuración en Drupal 8
Sinónimos 8.x
En este artículo quiero presentar la versión 8.x del módulo Synonyms (https://www.drupal.org/project/synonyms). En términos generales dicho módulo tiene las siguientes funciones:
- Guarda los sinónimos de entidades dentro de sus campos (Fields y Base Fields)
- Provee los controles select con sinónimos y autocompletar con sinónimos para los campos de referencia a entidad
- Provee de filtros y argumentos con sinónimos en las vistas (views)
Entonces se introduce el concepto de los sinónimos de entidad. Un sinónimo es simplemente una frase (cadena de caracteres) que se supone tiene un significado sinonímico al nombre de la entidad a la cual pertenece. Por ejemplo, si tenemos países como términos de taxonomía, podría haber el término México con un sinónimo Méjico.
Para empezar, veámos en detalle cómo se puede aprovechar el concepto de sinónimo y luego analizaremos cómo realmente se guardan los sinónimos de las entidades en la base de datos.
Primeramente hay que aclarar que existe la idea de comportamientos (behaviors). Comportamiento es una atómica función que toma sinónimos de tus entidades y puede hacer algo productivo con ellos. El módulo tiene 2 comportamientos: select con sinónimos y autocompletar con sinónimos.
Select con sinónimos

Como bien dice su nombre, ese comportamiento crea un control para los campos de referencia a entidad de lista desplegable. Esta lista va a tener no solo los nombres de las entidades que pueden ser referidas sino también sus sinónimos. En conjunto con jQuery.Chosen (https://www.drupal.org/project/chosen) se produce una herramienta poderosa.
Cabe señalar que los usuarios avanzados también pueden utilizar ese select con sinónimos dentro de sus formas:
<?php
$form[‘synonyms_select’] = array(
‘#type’ => ‘synonyms_entity_select’,
‘#key_column’ => ‘target_id’,
‘#target_type’ => ‘user’, // Tipo de entidad que generar.
‘#handler’ => ‘default’, // Tipo de EntityReferenceSelection Plugin que utilizar.
‘#handler_settings’ => array(), // Configuración de EntityReferenceSelection Plugin.
‘#multiple’ => FALSE, // Si hacer el select multiple.
‘#default_value’ => array(1), // Lista de IDs de las entidades que deben de ser eligidas por default.
);
?>
Autocompletar con sinónimos

De manera parecida, ese comportamiento crea un control para los campos de referencia a entidad de autocompletar, pero las sugerencias vienen no solo basadas en los nombres de las entidades sino también en sus sinónimos.
Ese control tiene algunas configuraciones:
- Cuántas sugerencias producir como máximo. Por defecto no se hacen más que 10 sugerencias, lo cual es bastante razonable. Pero siempre se puede ajustar.
- Si se debe sugerir la misma entidad únicamente a través de una sola sugerencia: a veces la misma entidad puede ser sugerida por su nombre y por alguno de sus sinónimos a la vez. Si activas esta opción será sugerida solo una vez, ya sea por su nombre o por alguno de sus sinónimos.
- Tipo de búsqueda que realizar: sugerir solo los nombres o sinónimos que empiezan con la palabra clave o los que contienen la palabra clave.
De igual forma, como en el caso de select con sinónimos, los Drupaleros avanzados pueden utilizar ese control directamente en sus formas:
<?php
$form[‘synonyms_autocomplete’] = array(
'#type' => 'synonyms_entity_autocomplete',
'#target_type' => ‘user’, // Tipo de entidad que sugerir.
'#target_bundles' => array(‘user’), // Vector de bundles que sugerir o NULL para segerir todas las bundles dentro del tipo de entidad especificado.
'#suggestion_size' => 10, // Cuántas sugerencias producir como el máximo.
'#suggest_only_unique' => FALSE, // Si una entidad solo se puede sugerir a través de una sola sugerencia.
'#match' => ‘CONTAINS’, // Cómo ejecutar la búsqueda. Puede ser CONTAINS o STARTS_WITH.
'#default_value' => array(User::load(1)), // Vector de entidades que tienen que estar pre-elegidas dentro del campo de autcompletar.
);
?>
Filtros y argumentos de las vistas
Se puede crear un filtro de vistas para entidades y tomará forma de los consabidos controles (select con sinónimos o autocompletar con sinónimos). Lo más probable es que vayas a requerirlo como un filtro expuesto para que así los usuarios de tu vista puedan filtrar (y encontrar entidades a base de cuales hacer el filtro) más fácil.
También existe la opción para especificar el criterio sinónimo o el nombre de la entidad en un argumento de la vista. Eso puede ser de gran utilidad para generar URLs más amigables de tus vistas. Por ejemplo, si tenemos nuestros términos de taxonomía (países), y tenemos allí México con el sinónimo MX. El URL de tu vista puede ir desde http://example.com/mi-vista/mexico a http://example.com/mi-vista/mx (y de forma parecida para todos los países restantes).
Usos más avanzados
Para los más atrevidos también existen pequeñas sorpresas. El módulo provee un par de servicios (Services) que pueden ser muy útiles dentro de tus módulos. Esos servicios pueden ayudarte a encontrar una entidad (su ID) por su nombre (o presumiblemente su sinónimo).
Servicio synonyms.synonyms_entity_get
Por la palabra clave te encuentra el ID de la entidad cuyo nombre o uno de sus sinónimos equivale a la palabra clave. Un ejemplo:
<?php
$entity_type = \Drupal::entityTypeManager()->getDefinition('user');
$entity_id = \Drupal::getContainer()->get('synonyms.synonyms_entity_get')->entityGetBySynonym($entity_type, 'palabra-clave');
?>
Si no se encontrara ninguna entidad por la palabra clave proporcionada, tendrás 0 en la respuesta.
Servicio synonyms.synonyms_find
Si tu caso es más complejo y se necesita algo más flexible que una simple búsqueda por la palabra clave, también existe el servicio synonyms.synonyms_find. Ese, aunque implique más trabajo, te da más flexibilidad en la especificación de los criterios de búsqueda. En el ejemplo que sigue se hace una búsqueda dentro de los sinónimos de los usuarios con los siguientes criterios:
- Alguno de los sinónimos tiene que empezar con ‘palabra-clave’
- El ID del usuario no puede ser 1
<?php
$entity_type = \Drupal::entityTypeManager()->getDefinitions('user');
$condition = new \Drupal\Core\Database\Query\Condition();
$condition->condition(\Drupal\synonyms\SynonymsProviderInterface\SynonymsFindProviderInterface::COLUMN_SYNONYM_PLACEHOLDER, 'palabra-clave%', 'LIKE');
$condition->condition(\Drupal\synonyms\SynonymsProviderInterface\SynonymsFindProviderInterface::COLUMN_ENTITY_ID_PLACEHOLDER, 1, '!=');
$found_synonyms = \Drupal::getContainer()->get('synonyms.synonyms_find')->synonymsFind($condition, $entity_type);
?>
En el resultado tendrás un vector con la información sobre todos los usuarios que satisfacen tus criterios de búsqueda (tendrás entity_id y synonym (sinónimo que satifizo el criterio de búsqueda)). Trata de examinar el archivo \Drupal\synonyms\SynonymsService\Behavior\AutocompleteService para ver un buen ejemplo de cómo se usa esa herramienta.
Proveedores de sinónimos
Aunque los sinónimos son cadenas de caracteres, no significa que siempre están guardados en la base de datos como tales. La arquitectura del módulo permite guardar los sinónimos en cualquier formato (es extensible a través de Plugin API). Lo más probable es que querrás guardar tus sinónimos dentro de los campos (Fields o Base Fields). Para ese caso, el módulo ya brinda soporte para “extraer” sinónimos desde los siguientes tipos de campos:
- Texto
- Referencia a entidad (se utiliza el nombre de la entidad referdia como el sinónimo)
- Número entero (Integer) (puede ser útil para precios u otras cifras descriptivas)
- Coma flotante (Float)
- Decimal
- Teléfono
Entonces, por un lado, se tienen comportamientos que hacen algo productivo con tus sinónimos y, en el lado opuesto, observamos los proveedores de sinónimos que se hacen cargo de guardar y extraer tus sinónimos. Ahora a los administradores de la página, solo les falta habilitar/deshabilitar ciertos comportamientos sobre ciertos proveedores. Eso puede hacerse en la página de configuración de sinónimos (/admin/structure/synonyms). Por ejemplo, se puede habilitar el comportamiento de select con sinónimos sobre el campo de email en los usuarios y habilitar el campo Nombre completo (digamos que existe uno con ese nombre) para el comportamiento de autocompletaje.
Categorias: ModulosVersión: Drupal 8 Tweet
Qué son los Process plugins en Drupal 8
En la entrada Qué son y cómo funcionan los plugins de migración describimos algunos puntos a tomar en cuenta para entender los plugins de migración, hablamos del archivo YAML que contiene la configuración de una migración, entre ellas la clave 'process' (linea 8) describe propiedad por propiedad, como el contenido destino se va a construir a partir de los datos del origen.
¿Cómo hacer un Plugin de migración personalizado en Drupal 8?
¿Cómo hacer un Plugin de migración personalizado en Drupal 8?
En el artículo anterior explicamos que Drupal 8 (D8) trae en el núcleo (core) un sistema de migración automatizada que permite migrar tanto la configuración como el contenido desde Drupal 6/7, en éste articulo explicaremos como migrar sólo el contenido creando un modulo personalizado y un plugin de migración.
Sale Drupal 7.52
Mientras algunos dormíamos, salió este Miércoles Drupal 7.52 y drupal 8.2.3 por si gustan subir de versión. También tenemos algunas noticias sobre seguridad:
https://www.drupal.org/SA-CORE-2016-005
Versión: Drupal 7Drupal 8Categorias: Noticias TweetQue son y como funcionan los plugins de migracion en Drupal 8
Que son y como funcionan los plugins de migracion en Drupal 8
En este artículo explicaremos algunos detalles de los plugins de migracion en Drupal 8, esta publicación es la continuación de éste artículo donde encontraremos información de como preparar una migración con la Drupal Console.
Cambiar la "base table" de una view en Drupal 7
Categorizing Migrations According to Their Type
Es muy frecuente que en una migración de drupal 6,7 a drupal 8 se haga el proceso de migración muchas veces, esto se aplica más a sitios que son muy activos en producción, los administradores están actualizando o agregando contenido nuevo.
Hay que tener en cuenta que la API de migración de Drupal 8 ofrece una interfaz de usuario para hacer migraciones, mediante el path /upgrade. De esta manera el proceso de migración es una sola vez y no podemos hacer personalizaciones.
La forma más clásica de hacer un upgrade, puede ser seguida por estos pasos:
Edys Meza Vie, 11/11/2016 - 12:05Crear un comentario programando en Drupal 8
//Para crear una nueva entidad de comentario...Leer mas
Cambiar la ubicación de la carpeta “config” en Drupal 8
¿Cómo agregar tamaño y tipo de fuente a CKEditor?
Como ya se ha hablado en un blog anterior CKEditor es un módulo muy útil para creación y edición de contenido. En mi trabajo de edición de cierto contenido me encontré con la necesidad de modificar el tamaño y tipo de fuente evitando usar css.
A continuación les explicaré cómo extender el módulo CKEditor utilizando el módulo CKEditor_font, haciendo uso de composer, bower y gulp.
En su terminal utilice el siguiente comando para descargar la versión más estable del módulo:
Charlotte León Vie, 11/04/2016 - 12:02