bnomei/kirby3-posthog

Kirby 3 wrapper for Posthog

Installs: 232

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 0

Type:kirby-plugin

3.2.0 2023-05-29 12:09 UTC

This package is auto-updated.

Last update: 2024-03-29 13:54:22 UTC


README

Release Downloads Twitter

Kirby 3 Plugin for connecting Kirby to Posthog

Install

Using composer:

composer require bnomei/kirby3-posthog

Using git submodules:

git submodule add https://github.com/bnomei/kirby3-posthog.git site/plugins/kirby3-posthog

Using download & copy: download the latest release and copy to site/plugins

Commerical Usage


Support open source!

This plugin is free but if you use it in a commercial project please consider to sponsor me or make a donation.
If my work helped you to make some cash it seems fair to me that I might get a little reward as well, right?

Be kind. Share a little. Thanks.

‐ Bruno
 
M O N E Y
Github sponsor Patreon Buy Me a Coffee Paypal dontation Hire me

Setup

You can set the apikey and host in the config.

site/config/config.php

return [
    // other config settings ...
    'bnomei.posthog.apikey' => 'YOUR-KEY-HERE',
    'bnomei.posthog.host' => 'YOUR-HOST-HERE',
];

You can also set a callback if you use the dotenv Plugin.

site/config/config.php

return [
    // other config settings ...
    'bnomei.posthog.apikey' => function() { return env('POSTHOG_APIKEY'); },
    'bnomei.posthog.host' => function() { return env('POSTHOG_HOST'); },
];

Javascript

Output the tracking Javascript via the snippet included in the plugin.

  <?php snippet('posthog'); ?>
  </body>
</html>

Usage

PHP track pageview

site/template/default.php

<?php
// track page view event for current kirby user or identified posthog user
$page->posthogCapturePageView();

// be careful to not have any whitespace before <html>
><html>
    <!-- ... --->
</html>

PHP helper function

Use the posthog()-helper to access Posthog. You can use all methods from the Posthog PHP library.

<?php

posthog()->capture([
    'distinctId' => site()->posthogDistinctId(),
    'event' => 'movie played',
    'properties' => array(
        'movieId' => '123',
        'category' => 'romcom'
    )
])

NOTE: Using the static class from the official posthog docs is not supported.

In addition to the posthog()-helper this plugin adds the following features to the original library.

  • Disabled on localhost by default
  • Cache for Feature Flag list - it would otherwise send a http request to your posthog instance every time you access the list. It still will send one for every feature flag check.

Settings

bnomei.posthog. Default Description
apikey string or callback
personalapikey string or callback
host string or callback
enabled true or false or 'force' but disabled on localhost setups by default
featureflags 1 duration (in minutes) to cache the feature flags in minutes

Read more about apikey and personalapikey here: https://posthog.com/docs/api

Dependencies

Disclaimer

This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please create a new issue.

License

MIT

It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.