PHP & Drupal
Slechts sporadisch maak ik gebruik van PHP binnen Drupal. Daardoor moet ik vaak het wiel opnieuw uitvinden. Daarom dit artikel met belangrijke info + verwijzingen!
Debuggen & dpm
Het print-commando is ontbetrouwbaar om te debuggen: Op veel momenten is er geen focus naar het scherm ofzoiets. Er bestaan specifieke commando's en modules om te debuggen, die beter werken.
De devel-module (of zoiets) verschaft het commando dpm()
waarmee je debug-info omtrent een variabele naar het scherm stuurt. Zie Drupal Commerce AdWords-module voor details. Voorbeeld:
// commerce_checkout_complete ///////////////////////////////////////////// // function commerce_adwords_commerce_checkout_complete($order) { dpm($order); // print "<br><br><br> commerce_checkout_complete"; // WERKT NIET! // print phpinfo(); // WERKT NIET! }
Nog beter, gebruik dpm als volgt:
dpm($node, 'Debugging node ' . $node->title);
waarbij het tweede argument het label is.
Toch print gebruiken?
Hierboven bleek dat print
niet betrouwbaar is. Desalniettemin:
PHP in body
My First Hook
In een eigen module is dit het .module-bestand:
<?php ///////////////////////////////////////////// // hook_init() ///////////////////////////////////////////// // // hook_init() is run on every page load except for cached pages, // so depending on your use case that might be an option. // (http://drupal.stackexchange.com/questions/33789/how-to-run-check-on-each-page-load) // function commerce_adwords_init() { print "commerce_adwords_init"; }
Let op: Clear caches na het bijwerken van de module!
Hooks
Zie Drupal Commerce AdWords-module als voorbeeld van het gebruik van hooks.