Alfredo Bonilla
@brolag
Alfredo Bonilla
Desarrollador Drupal
@brolag
"use strict";
Framework para la creación de aplicaciones MVC.
En el core de Drupal se utilizó para reescribir grandes componentes de una mejor manera y aprovechando el data binding.
Underscore.js es una librería que ofrece un gran número de funciones (más de 80) realmente interesantes, en tan solo 4Kb.
Es capaz de resolver muchas necesidades de "bajo nivel" como manejo de arreglos, objetos, colecciones y templates que Javascript no maneja nativamente (al menos no para todos los navegadores) evitándonos perder el tiempo.
Objeto global Drupal
Otras API
Drupal.behaviors.behaviorName = {
attach: function (context, settings) {
...
},
detach: function (context, settings, trigger) {
...
}
};
Drupal.theme.placeholder = function (str) {
return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
};
// ...
Drupal.theme('placeholder', text);Paso 1: Crear el archivo JS o CSS y después definir una librería en un archivo <nombre>.libraries.yml
cuddly-slider:
version: 1.x
css:
theme:
css/cuddly-slider.css: {}
js:
js/cuddly-slider.js: {}
dependencies:
- core/jqueryPaso 2: Agregamos nuestro código en la página que necesitemos.
function fluffiness_preprocess_maintenance_page(&$variables) {
$variables['#attached']['library'][] = 'fluffiness/cuddly-slider';
}
O para todo nuestro tema en el *.info.yml
name: Example
type: theme
core: 8.x
libraries:
- fluffiness/cuddly-sliderPodemos agregarlo también en nuestro template Twig
{{ attach_library('fluffiness/cuddly-slider') }}
<div>Some fluffy markup {{ message }}</div>Podemos alimentar el objeto JS drupalSettings con valores desde nuestro código PHP.
function fluffiness_page_attachments_alter(&$page) {
$page['#attached']['library'][] = 'fluffiness/cuddly-slider';
$page['#attached']['drupalSettings']['fluffiness']['cuddlySlider']['foo'] = 'bar';
}Se utiliza este término cuando hablamos de una separación del front end y el back end en Drupal. Es decir que el front end es una aplicación por aparte y se comunica con Drupal por medio de una API REST.
Los módulos necesarios para que Drupal actúe como un servidor REST están incluídos en el core.
Más información: http://learn.jquery.com/plugins/basic-plugin-creation/
(function( $ ) {
$.fn.showLinkLocation = function() {
this.filter( "a" ).each(function() {
var link = $( this );
link.append( " (" + link.attr( "href" ) + ")" );
});
return this;
};
}( jQuery ));
// Usage example:
$( "a" ).showLinkLocation();