🎉 Hello world

main
Clement Desmidt 7 months ago
commit 756a6522d1
  1. 21
      README.md
  2. 3
      umami.html
  3. 4
      umami.meta
  4. 74
      umami.php

@ -0,0 +1,21 @@
# Shaarli umami
Allows to add umami tracking in Shaarli
## Installation
### Via Git
Run the following command from the plugins folder of your Shaarli installation:
git clone https://git.shikiryu.com/Shikiryu/shaarli-plugin-umami umami
It'll create the autosave folder.
### Manually
Create the folder plugins/umami in your Shaarli installation. Download the ZIP file of this repository and copy all files in the newly created folder.
## Configure
Configure umami's domain with protocol and without a trailing /

@ -0,0 +1,3 @@
<!-- Umami -->
<script async defer data-website-id="%s" src="%s/umami.js"></script>
<!-- End Umami Code -->

@ -0,0 +1,4 @@
description="A plugin that adds Umami tracking code to Shaarli pages."
parameters="UMAMI_URL;UMAMI_SITEID"
parameter.UMAMI_URL="Umami URL"
parameter.UMAMI_SITEID="Umami site ID"

@ -0,0 +1,74 @@
<?php
/**
* Umami plugin.
* Adds tracking code on each page.
*/
use Shaarli\Plugin\PluginManager;
/**
* Initialization function.
* It will be called when the plugin is loaded.
* This function can be used to return a list of initialization errors.
*
* @param $conf ConfigManager instance.
*
* @return array List of errors (optional).
*/
function umami_init($conf)
{
$umamiUrl = $conf->get('plugins.UMAMI_URL');
$umamiSiteid = $conf->get('plugins.UMAMI_SITEID');
if (empty($umamiUrl) || empty($umamiSiteid)) {
$error = t('Umami plugin error: ' .
'Please define UMAMI_URL and UMAMI_SITEID in the plugin administration page.');
return [$error];
}
}
/**
* Hook render_footer.
* Executed on every page redering.
*
* Template placeholders:
* - text
* - endofpage
* - js_files
*
* Data:
* - _PAGE_: current page
* - _LOGGEDIN_: true/false
*
* @param array $data data passed to plugin
*
* @return array altered $data.
*/
function hook_umami_render_footer($data, $conf)
{
$umamiUrl = $conf->get('plugins.UMAMI_URL');
$umamiSiteid = $conf->get('plugins.UMAMI_SITEID');
if (empty($umamiUrl) || empty($umamiSiteid)) {
return $data;
}
// Free elements at the end of the page.
$data['endofpage'][] = sprintf(
file_get_contents(PluginManager::$PLUGINS_PATH . '/umami/umami.html'),
$umamiSiteid,
$umamiUrl
);
return $data;
}
/**
* This function is never called, but contains translation calls for GNU gettext extraction.
*/
function umami_dummy_translation()
{
// meta
t('A plugin that adds umami tracking code to Shaarli pages.');
t('Umami URL');
t('Umami site ID');
}
Loading…
Cancel
Save