analytics.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace Plugins\Analytics;
  3. use \Typemill\Plugin;
  4. class Analytics extends Plugin
  5. {
  6. protected $settings;
  7. public static function getSubscribedEvents()
  8. {
  9. return array(
  10. 'onSettingsLoaded' => 'onSettingsLoaded',
  11. 'onTwigLoaded' => 'onTwigLoaded'
  12. );
  13. }
  14. public function onSettingsLoaded($settings)
  15. {
  16. $this->settings = $settings->getData();
  17. }
  18. public function onTwigLoaded()
  19. {
  20. /* get Twig Instance and add the cookieconsent template-folder to the path */
  21. $twig = $this->getTwig();
  22. $loader = $twig->getLoader();
  23. $loader->addPath(__DIR__ . '/templates');
  24. $analyticSettings = $this->settings['settings']['plugins']['analytics'];
  25. if(isset($analyticSettings['tool']))
  26. {
  27. /* fetch the template, render it with twig and add javascript with settings */
  28. if($analyticSettings['tool'] == 'piwik')
  29. {
  30. $this->addInlineJS($twig->fetch('/piwikanalytics.twig', $this->settings));
  31. }
  32. elseif($analyticSettings['tool'] == 'google')
  33. {
  34. $this->addJS('https://www.googletagmanager.com/gtag/js?id=' . $analyticSettings['google_id']);
  35. $this->addInlineJS($twig->fetch('/googleanalytics.twig', $analyticSettings));
  36. }
  37. }
  38. }
  39. }