1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\API;
use Piwik\Container\StaticContainer;
use Piwik\Menu\MenuAdmin;
use Piwik\Menu\MenuTop;
use Piwik\Piwik;
use DeviceDetector\Parser\OperatingSystem;
use Piwik\Url;
class Menu extends \Piwik\Plugin\Menu
{
public const DD_SHORT_NAME_ANDROID = 'AND';
public const DD_SHORT_NAME_IOS = 'IOS';
public function configureTopMenu(MenuTop $menu)
{
$this->addTopMenuMobileApp($menu);
}
public function configureAdminMenu(MenuAdmin $menu)
{
$menu->addPlatformItem(
'General_API',
$this->urlForAction('listAllAPI', array('segment' => false)),
7,
Piwik::translate('API_TopLinkTooltip')
);
if (Piwik::isUserIsAnonymous()) {
$menu->addPlatformItem(
'API_Glossary',
$this->urlForAction('glossary', array('segment' => false)),
50
);
}
}
private function addTopMenuMobileApp(MenuTop $menu)
{
if (empty($_SERVER['HTTP_USER_AGENT'])) {
return;
}
if (!class_exists("DeviceDetector\\DeviceDetector")) {
throw new \Exception("DeviceDetector could not be found, maybe you are using Piwik from git and need to update Composer. Execute this command: php composer.phar update");
}
$ua = new OperatingSystem($_SERVER['HTTP_USER_AGENT']);
$ua->setCache(StaticContainer::get('DeviceDetector\Cache\Cache'));
$parsedOS = $ua->parse();
if (!empty($parsedOS['short_name']) && in_array($parsedOS['short_name'], array(self::DD_SHORT_NAME_ANDROID, self::DD_SHORT_NAME_IOS))) {
$menu->addItem('Mobile_MatomoMobile', null, Url::addCampaignParametersToMatomoLink('https://matomo.org/mobile/'), 4);
}
}
}
|