PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.0.3
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.0.3
5.13.0 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 / View / OneClickDone.php
matomo / app / core / View Last commit date
HtmlEmailFooterView.php 2 years ago HtmlReportEmailHeaderView.php 2 years ago MethodCallExpression.php 2 years ago OneClickDone.php 2 years ago RenderTokenParser.php 2 years ago SecurityPolicy.php 2 years ago UIControl.php 2 years ago ViewInterface.php 2 years ago
OneClickDone.php
92 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 *
9 */
10 namespace Piwik\View;
11
12 use Piwik\Common;
13 /**
14 * Post-update view
15 *
16 * During a Piwik software update, there will be instances of old classes
17 * loaded in memory. This is problematic as we will start to instantiate
18 * new classes which may not be backward compatible. This class provides
19 * a clean bridge/transition by forcing a new request.
20 *
21 * This class needs to be self-contained, with no external dependencies.
22 *
23 */
24 class OneClickDone
25 {
26 /**
27 * @var string
28 */
29 private $tokenAuth;
30 /**
31 * @var string
32 */
33 public $error = '';
34 /**
35 * @var array
36 */
37 public $feedbackMessages;
38 /**
39 * Did the download over HTTPS fail?
40 *
41 * @var bool
42 */
43 public $httpsFail = false;
44 public function __construct($tokenAuth)
45 {
46 $this->tokenAuth = $tokenAuth;
47 }
48 /**
49 * Outputs the data.
50 *
51 * @return string html
52 */
53 public function render()
54 {
55 // set response headers
56 @Common::stripHeader('Pragma');
57 @Common::stripHeader('Expires');
58 @Common::sendHeader('Content-Type: text/html; charset=UTF-8');
59 @Common::sendHeader('Cache-Control: no-store');
60 @Common::sendHeader('X-Frame-Options: deny');
61 $error = htmlspecialchars($this->error, ENT_QUOTES, 'UTF-8');
62 $messages = htmlspecialchars(serialize($this->feedbackMessages), ENT_QUOTES, 'UTF-8');
63 $tokenAuth = $this->tokenAuth;
64 $httpsFail = (int) $this->httpsFail;
65 // use a heredoc instead of an external file
66 echo <<<END_OF_TEMPLATE
67 <!DOCTYPE html>
68 <html>
69 <head>
70 <meta name="robots" content="noindex,nofollow">
71 <meta charset="utf-8">
72 <title></title>
73 </head>
74 <body>
75 <form name="myform" method="post" action="?module=CoreUpdater&amp;action=oneClickResults">
76 <input type="hidden" name="token_auth" value="{$tokenAuth}" />
77 <input type="hidden" name="error" value="{$error}" />
78 <input type="hidden" name="messages" value="{$messages}" />
79 <input type="hidden" name="httpsFail" value="{$httpsFail}" />
80 <noscript>
81 <button type="submit">Continue</button>
82 </noscript>
83 </form>
84 <script type="text/javascript">
85 document.myform.submit();
86 </script>
87 </body>
88 </html>
89 END_OF_TEMPLATE;
90 }
91 }
92