75 lines
1.7 KiB
PHP
75 lines
1.7 KiB
PHP
<?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');
|
|
}
|