Dang… a veces Drupal realmente te hace sufrir… Pero m
e encanta de todos modos… pobre Drupal, a nadie le gusta porque nadie lo entiende, LOL.
Ok, vamos a ponernos serios, si usted tiene problemas para modificar los parámetros de una biblioteca Javascript adjunta, usted no está solo, vamos a ver cómo hacerlo.
En primer lugar, me refiero a agregar javascript según la documentación oficial:
En segundo lugar, lo que me resultaba difícil de hacer era modificar los parámetros dinámicamente, en mi caso era mediante el uso de la configuración de mi mó
dulo. Por lo tanto, en otras palabras tener algo como esto:
<script src="https://www.paypal.com/sdk/js?client-id=your_id&vault=true¤cy=USD"></script>
Donde your_id
es el valor que desea cambiar dinámicamente.
Para lograr eso usted necesita:
Cree el archivo yourmodule.module
Lo de costumbre, se necesita un módulo personalizado, con el archivo .module, según la documentación oficial:
https://www.drupal.org/docs/8/creating-custom-modules/basic-structure
Usted tiene que implementar el:
/** * Implementa hook_js_alter(). */
Y, aquí viene la parte interesante:
<> utilizar Drupal-Core-Asset-AttachedAssetsInterface; /** * @file * El archivo de módulo. */ /** * Implementa hook_js_alter(). */ función yourmodule_js_alter(&$javascript, attachedAssetsInterface $assets) aquí se puede llamar a esto para obtener su configuración personalizada $config de la página de correo de la página de correo de correo de La página de correo de Correos::config('MY.settings'); if(!empty($config->get('client_id')) &>empty($config->get('secret'))) ? $client_id á $config->get('client_id'); Aquí se reemplaza la URL predeterminada por la que desea (incluidos los parámetros que necesita, en mi caso el cliente que $javascrip['https://www.paypal.com/sdk/js?client-id=CLIENT_ID&vault=true¤cy=USD']['data']t "https://www.paypal.com/sdk/js?client-id-$client_id&vault-true¤cy-USD"; } _webform_asset_alter($javascript, 'javascript'); }
En este último bloque de código se puede ver que anulamos completamente la URL de la biblioteca javascript, incluso si sólo queremos añadir / modificar los parámetros.
Para tener en cuenta que también tiene que incluir lo siguiente:
utilizar Drupal-Core-Asset-AttachedAssetsInterface;
En mi caso tuve que llamar también a la función _webform_asset
_alter, pero mi suposición es que sólo es necesario en mi caso específico, ya que lo estoy integrando en un formulario web.
Eso es todo, no voy a explicar cómo se agrega una biblioteca como ya está documentado (ver mi primer enlace a la documentación oficial).