PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 4.14.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v4.14.1
5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / AssetManager / UIAssetMerger / JScriptUIAssetMerger.php
matomo / app / core / AssetManager / UIAssetMerger Last commit date
JScriptUIAssetMerger.php 5 years ago StylesheetUIAssetMerger.php 5 years ago
JScriptUIAssetMerger.php
88 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9 namespace Piwik\AssetManager\UIAssetMerger;
10
11 use Piwik\AssetManager\UIAsset;
12 use Piwik\AssetManager\UIAssetCacheBuster;
13 use Piwik\AssetManager\UIAssetFetcher\JScriptUIAssetFetcher;
14 use Piwik\AssetManager\UIAssetMerger;
15 use Piwik\AssetManager\UIAssetMinifier;
16 use Piwik\Piwik;
17
18 class JScriptUIAssetMerger extends UIAssetMerger
19 {
20 /**
21 * @var UIAssetMinifier
22 */
23 private $assetMinifier;
24
25 /**
26 * @param UIAsset $mergedAsset
27 * @param JScriptUIAssetFetcher $assetFetcher
28 * @param UIAssetCacheBuster $cacheBuster
29 */
30 public function __construct($mergedAsset, $assetFetcher, $cacheBuster)
31 {
32 parent::__construct($mergedAsset, $assetFetcher, $cacheBuster);
33
34 $this->assetMinifier = UIAssetMinifier::getInstance();
35 }
36
37 protected function getMergedAssets()
38 {
39 return $this->getConcatenatedAssets();
40 }
41
42 protected function generateCacheBuster()
43 {
44 $cacheBuster = $this->cacheBuster->piwikVersionBasedCacheBuster($this->getPlugins());
45 return "/* Matomo Javascript - cb=" . $cacheBuster . "*/\n";
46 }
47
48 protected function getPreamble()
49 {
50 return $this->getCacheBusterValue();
51 }
52
53 protected function postEvent(&$mergedContent)
54 {
55 $plugins = $this->getPlugins();
56
57 if (!empty($plugins)) {
58
59 /**
60 * Triggered after all the JavaScript files Piwik uses are minified and merged into a
61 * single file, but before the merged JavaScript is written to disk.
62 *
63 * Plugins can use this event to modify merged JavaScript or do something else
64 * with it.
65 *
66 * @param string $mergedContent The minified and merged JavaScript.
67 */
68 Piwik::postEvent('AssetManager.filterMergedJavaScripts', array(&$mergedContent), null, $plugins);
69 }
70 }
71
72 public function getFileSeparator()
73 {
74 return "\n";
75 }
76
77 protected function processFileContent($uiAsset)
78 {
79 $content = $uiAsset->getContent();
80
81 if (!$this->assetMinifier->isMinifiedJs($content)) {
82 $content = $this->assetMinifier->minifyJs($content);
83 }
84
85 return $content;
86 }
87 }
88