JavaScript-tag incorporeren (Drupal)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

Dit artikel is nav. de vraag hoe je een hotjar-tag toevoegt aan een site. Maar ook relevant voor Drupal Commerce AdWords-module

Inventaris: Hotjar-script-tag toevoegen (dec. 2016)

Long list

  • drupal_add_js [1] - Achterhaald, [2]
  • Render arrays [3]
  • Iets met libraries [4]
  • Opnemen in head.tpl.php-template file
  • Functie drupal_add_html_head [5]
  • Attached form [6]
  • drupal_add_js + drupal_get_path + template.php-call
  • Apart bestand + aanroepen vanuit html.tpl.php mte drupal_add_js
  • Opnemen in een block

Short list

  • drupal_add_js + page preprocess-functie
  • Block
  • Hotjar-module voor Drupal

Nog shorter list

  • Block
  • Hotjar-module voor Drupal

Beiden toegepast en beiden leken probleemloos te werken.

Casus: Hello World-tag op elke pagina (dec. 2016)

Module-code voor hook_page_build en hook_page_alter
Resultaat
Werkende code
En door het object $page te inspecteren, kun je achterhalen welk property je precies moet hebben (footer » block_3 in dit geval - afhankelijk van het theme


Ik wil een simpele Hello World!-tag op elke pagina invoegen. Hoe doe je dat?

Je hebt drie dingen nodig, eventueel gecombineerd in één aanroep:

  1. Een hook (event) om de tag in te voegen
  2. Een functie oid. om de code daadwerkelijk in te voegen. In dit geval betreft dit inline code
  3. De betreffende JavaScript-tag.

Hello World in JavaScript

Ah, dit is simpel. Je hebt niet eens een webserver nodig voor processing:

Dit is html<br>
<script>
	alert('Hello, world!')
</script>
En dit is weer html<br>

Het eigenlijkse script is dus alert('Hello, world!')

Hook

In Drupal 6 had je hook_footer om code toe te voegen aan de speciale variabele $closure, die werd uitgevoerd aan het eind van een pagina. In Drupal 7 heb je daar deze twee functies voor, in combinatie met verborgen regions [7]:

  • hook_page_build()
  • hook_page_alter().

Tag invoegen

Er lijken meerdere manieren te zijn om een tag te incorporeren:

  • drupal_js_add
  • $page_bottom
  • $page_top

Casus: Hello World-tag op dankjewel-pagina (dec. 2016)

Als hiervoor, maar nu alleen op de Drupal Commerce dankjewel-pagina. Functies om deze pagina te herkennen [8]:

  • $GLOBALS['base_url'] => http://example.com/drupal
  • base_path() => /drupal/
  • request_uri() => /drupal/documentation?page=1
  • request_path() => documentation
  • current_path() => node/26419

Toegepast op de dankjewel-pagina:

  • base_path() → /
  • current_path() → checkout/27730/complete
  • request_path() → checkout/27730/complete

Zie ook

Bronnen

Hotjar

Casus: Hello World-tag op elke pagina