You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

49 lines
1.6 KiB

<?php
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
function wikiplugin_checkreferer_info()
{
return [
'name' => tra('Check Referer'),
'documentation' => 'PluginCheckReferer',
'description' => tra('Display content based on the address that originated the request for the current page'),
'prefs' => ['wikiplugin_checkreferer'],
'introduced' => 14,
'iconname' => 'computer',
'body' => tr('Wiki text to display if conditions are met. The body may contain %0. Text after the marker
will be displayed if conditions are not met.', '<code>{ELSE}</code>'),
'params' => [
'referer_list' => [
'required' => true,
'name' => tra('Referer List'),
'description' => tra('Comma-separated list of domains to check'),
'since' => '14.0',
'separator' => ',',
'filter' => 'text',
'default' => '',
],
],
];
}
function wikiplugin_checkreferer($data, $params)
{
$referer = parse_url($_SERVER['HTTP_REFERER']);
$parts = explode('{ELSE}', $data);
foreach ($params['referer_list'] as $allowed) {
if ($referer['host'] === $allowed) {
return $parts[0];
}
}
if (count($parts) > 1) {
return $parts[1];
} else {
return '';
}
}