🎉 Hello world
This commit is contained in:
commit
756a6522d1
21
README.md
Normal file
21
README.md
Normal file
@ -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 /
|
3
umami.html
Normal file
3
umami.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<!-- Umami -->
|
||||||
|
<script async defer data-website-id="%s" src="%s/umami.js"></script>
|
||||||
|
<!-- End Umami Code -->
|
4
umami.meta
Normal file
4
umami.meta
Normal file
@ -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"
|
74
umami.php
Normal file
74
umami.php
Normal file
@ -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…
Reference in New Issue
Block a user