99 lines
2.9 KiB
PHP
99 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* Piwik - free/libre analytics platform
|
|
*
|
|
* @link http://piwik.org
|
|
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
|
*/
|
|
|
|
namespace Piwik\Plugins\Marketplace;
|
|
|
|
use Piwik\Container\StaticContainer;
|
|
use Piwik\Piwik;
|
|
use Piwik\Plugin;
|
|
use Piwik\Plugins\Marketplace\Widgets\GetNewPlugins;
|
|
use Piwik\Plugins\Marketplace\Widgets\GetPremiumFeatures;
|
|
use Piwik\SettingsPiwik;
|
|
use Piwik\Widget\WidgetsList;
|
|
|
|
class Marketplace extends \Piwik\Plugin
|
|
{
|
|
/**
|
|
* @see \Piwik\Plugin::registerEvents
|
|
*/
|
|
public function registerEvents()
|
|
{
|
|
return array(
|
|
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
|
|
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
|
|
'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys',
|
|
'Controller.CoreHome.checkForUpdates' => 'checkForUpdates',
|
|
'Widget.filterWidgets' => 'filterWidgets'
|
|
);
|
|
}
|
|
|
|
public function isTrackerPlugin()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function requiresInternetConnection()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function checkForUpdates()
|
|
{
|
|
$marketplace = StaticContainer::get('Piwik\Plugins\Marketplace\Api\Client');
|
|
$marketplace->clearAllCacheEntries();
|
|
}
|
|
|
|
public function getStylesheetFiles(&$stylesheets)
|
|
{
|
|
$stylesheets[] = "plugins/Marketplace/stylesheets/marketplace.less";
|
|
$stylesheets[] = "plugins/Marketplace/stylesheets/plugin-details.less";
|
|
$stylesheets[] = "plugins/Marketplace/stylesheets/marketplace-widget.less";
|
|
}
|
|
|
|
public function getJsFiles(&$jsFiles)
|
|
{
|
|
$jsFiles[] = "libs/bower_components/iframe-resizer/js/iframeResizer.min.js";
|
|
|
|
$jsFiles[] = "plugins/Marketplace/angularjs/plugins/plugin-name.directive.js";
|
|
$jsFiles[] = "plugins/Marketplace/angularjs/licensekey/licensekey.controller.js";
|
|
$jsFiles[] = "plugins/Marketplace/angularjs/marketplace/marketplace.controller.js";
|
|
$jsFiles[] = "plugins/Marketplace/angularjs/marketplace/marketplace.directive.js";
|
|
}
|
|
|
|
public function getClientSideTranslationKeys(&$translationKeys)
|
|
{
|
|
$translationKeys[] = 'Marketplace_LicenseKeyActivatedSuccess';
|
|
$translationKeys[] = 'Marketplace_LicenseKeyDeletedSuccess';
|
|
}
|
|
|
|
/**
|
|
* @param WidgetsList $list
|
|
*/
|
|
public function filterWidgets($list)
|
|
{
|
|
if (!SettingsPiwik::isInternetEnabled()) {
|
|
$list->remove(GetPremiumFeatures::getCategory(), GetPremiumFeatures::getName());
|
|
$list->remove(GetNewPlugins::getCategory(), GetNewPlugins::getName());
|
|
}
|
|
}
|
|
|
|
public static function isMarketplaceEnabled()
|
|
{
|
|
return self::getPluginManager()->isPluginActivated('Marketplace');
|
|
}
|
|
|
|
/**
|
|
* @return Plugin\Manager
|
|
*/
|
|
private static function getPluginManager()
|
|
{
|
|
return Plugin\Manager::getInstance();
|
|
}
|
|
|
|
}
|