Skip to content
Extraits de code Groupes Projets
Valider 3cf2f077 rédigé par Thomas Steur's avatar Thomas Steur Validation de Matthieu Aubry
Parcourir les fichiers

Add new marketplace widget and fixed some urls (#10967)

* added new marketplace widget and fixed some urls

* translate widget

* fix system test

* add some spacing
parent 5b94ec76
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 334 ajouts et 208 suppressions
......@@ -35,6 +35,7 @@
{% endif %}
{% if isMarketplaceEnabled %}
<div piwik-widget-loader='{"module":"Marketplace","action":"getPremiumFeatures"}'></div>
<div piwik-widget-loader='{"module":"Marketplace","action":"getNewPlugins", "isAdminPage": "1"}'></div>
{% endif %}
......
......@@ -4,7 +4,7 @@
{% endif %}
{% if numErrors %}
<p class="system-errors"><span class="icon-error"></span> {{ 'General_Errors'|translate }}:</p>
<p class="system-errors"><span class="icon-error"></span> {{ 'General_Errors'|translate }}</p>
<ul>
{% for error in errors %}
<li title="{{ error.getLongErrorMessage|e('html_attr') }}">{{ error.getLabel }}</li>
......@@ -20,7 +20,7 @@
<br />
{% endif %}
<span class="icon-warning"></span> {{ 'General_Warnings'|translate }}:
<span class="icon-warning"></span> {{ 'General_Warnings'|translate }}
</p>
<ul>
{% for warning in warnings %}
......
......@@ -10,6 +10,7 @@ namespace Piwik\Plugins\Marketplace\Widgets;
use Piwik\Common;
use Piwik\Plugins\Marketplace\Api\Client;
use Piwik\Plugins\Marketplace\Input\PurchaseType;
use Piwik\Plugins\Marketplace\Input\Sort;
use Piwik\Widget\Widget;
use Piwik\Widget\WidgetConfig;
......@@ -43,7 +44,7 @@ class GetNewPlugins extends Widget
$template = 'getNewPlugins';
}
$plugins = $this->marketplaceApiClient->searchForPlugins('', '', Sort::METHOD_LAST_UPDATED, '');
$plugins = $this->marketplaceApiClient->searchForPlugins('', '', Sort::METHOD_LAST_UPDATED, PurchaseType::TYPE_ALL);
return $this->renderTemplate($template, array(
'plugins' => array_splice($plugins, 0, 3)
......
<?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\Widgets;
use Piwik\Common;
use Piwik\Piwik;
use Piwik\Plugin;
use Piwik\Plugins\Marketplace\Api\Client;
use Piwik\Plugins\Marketplace\Input\PurchaseType;
use Piwik\Plugins\Marketplace\Input\Sort;
use Piwik\Widget\Widget;
use Piwik\Widget\WidgetConfig;
class GetPremiumFeatures extends Widget
{
/**
* @var Client
*/
private $marketplaceApiClient;
public function __construct(Client $marketplaceApiClient)
{
$this->marketplaceApiClient = $marketplaceApiClient;
}
public static function configure(WidgetConfig $config)
{
$config->setCategoryId('About Piwik');
$config->setName(Piwik::translate('Marketplace_PaidPlugins'));
$config->setOrder(20);
}
public function render()
{
$template = 'getPremiumFeatures';
$plugins = $this->marketplaceApiClient->searchForPlugins('', '', Sort::METHOD_LAST_UPDATED, PurchaseType::TYPE_PAID);
if (empty($plugins)) {
$plugins = array();
} else {
$plugins = array_splice($plugins, 0, 20);
}
return $this->renderTemplate($template, array(
'plugins' => $plugins
));
}
}
\ No newline at end of file
......@@ -4,6 +4,25 @@
}
}
.getPremiumFeatures {
h3 {
margin-top: 0;
}
.pluginBody {
margin-bottom: 32px;
display: inline-block;
.pluginMoreDetails {
line-height:3em;
}
}
.row {
margin-left: -12px;
margin-right: -12px;
}
}
.getNewPlugins {
.pluginName {
cursor: pointer;
......
......@@ -3,7 +3,7 @@
{% for plugin in plugins %}
<div class="col s12">
<h3 class="pluginName" piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.name }}</h3>
<h3 class="pluginName" piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.displayName }}</h3>
<span>
{{ plugin.description }}
<br />
......@@ -16,7 +16,7 @@
</div>
<div class="widgetBody">
<a href="{{ linkTo({'module': 'CorePluginsAdmin', 'action': 'marketplace'}) }}"
<a href="{{ linkTo({'module': 'Marketplace', 'action': 'overview'}) }}"
>{{ 'CorePluginsAdmin_ViewAllMarketplacePlugins'|translate }}</a>
</div>
</div>
\ No newline at end of file
......@@ -5,7 +5,7 @@
<h3 class="pluginName"
title="{{ plugin.description|e('html_attr') }}"
piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.name }}</h3>
piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.displayName }}</h3>
<p class="description"
title="{{ plugin.description|e('html_attr') }}">{{ plugin.description }}</p>
......@@ -20,7 +20,7 @@
</div>
<div class="widgetBody">
<a href="{{ linkTo({'module': 'CorePluginsAdmin', 'action': 'marketplace'}) }}"
<a href="{{ linkTo({'module': 'Marketplace', 'action': 'overview'}) }}"
>{{ 'CorePluginsAdmin_ViewAllMarketplacePlugins'|translate }}</a>
</div>
......
<div class="getNewPlugins getPremiumFeatures widgetBody">
<div class="row">
{% for plugin in plugins %}
<div class="col s12 m4">
<h3 class="pluginName" piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.displayName }}</h3>
<span class="pluginBody">
{{ plugin.description }}
<br />
<a href="javascript:;" class="pluginMoreDetails" piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ 'General_MoreDetails'|translate }}</a>
</span>
</div>
{% if loop.index % 3 == 0 %}
</div><div class="row">
{% endif %}
{% endfor %}
</div>
<div class="widgetBody">
<a href="{{ linkTo({'module': 'Marketplace', 'action': 'overview', 'show': 'premium'}) }}"
>{{ 'CorePluginsAdmin_ViewAllMarketplacePlugins'|translate }}</a>
</div>
</div>
\ No newline at end of file
......@@ -12,7 +12,6 @@ use Piwik\Container\StaticContainer;
use Piwik\Http\ControllerResolver;
use Piwik\Piwik;
use Piwik\Plugins\API;
use Piwik\Plugins\Goals;
use Piwik\Plugins\Widgetize\tests\Fixtures\WidgetizeFixture;
use Piwik\Tests\Framework\TestCase\SystemTestCase;
use Piwik\Widget\WidgetsList;
......@@ -992,6 +991,14 @@ class WidgetTest extends SystemTestCase
'module' => 'Marketplace',
'action' => 'getNewPlugins',
),
), array (
'name' => 'Premium Features',
'uniqueId' => 'widgetMarketplacegetPremiumFeatures',
'parameters' =>
array (
'module' => 'Marketplace',
'action' => 'getPremiumFeatures',
),
), array (
'name' => 'System Check',
'uniqueId' => 'widgetInstallationgetSystemCheck',
......
......@@ -49,7 +49,7 @@ class WidgetsListTest extends IntegrationTestCase
'Insights_WidgetCategory' => 2,
'ExampleUI_UiFramework' => 8,
'Referrers_Referrers' => 9,
'About Piwik' => 9,
'About Piwik' => 10,
);
// number of main categories
$this->assertEquals(count($numberOfWidgets), count($widgetsPerCategory));
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter