2020-02-09 23:02:19 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Elements;
|
|
|
|
|
2020-04-04 01:15:59 +02:00
|
|
|
class Script extends StaticView {
|
2020-02-09 23:02:19 +01:00
|
|
|
|
|
|
|
const MIME_TEXT_JAVASCRIPT = "text/javascript";
|
|
|
|
|
2020-04-04 01:15:59 +02:00
|
|
|
const CORE = "/js/script.js";
|
|
|
|
const JQUERY = "/js/jquery.min.js";
|
|
|
|
const INSTALL = "/js/install.js";
|
2020-04-03 22:10:21 +02:00
|
|
|
const BOOTSTRAP = "/js/bootstrap.bundle.min.js";
|
2020-07-01 22:13:50 +02:00
|
|
|
const ACCOUNT = "/js/account.js";
|
2021-11-11 14:25:26 +01:00
|
|
|
const FONTAWESOME = "/js/fontawesome-all.min.js";
|
2020-02-09 23:02:19 +01:00
|
|
|
|
2020-04-03 15:56:04 +02:00
|
|
|
private string $type;
|
|
|
|
private string $content;
|
2020-04-03 17:39:58 +02:00
|
|
|
private string $src;
|
2021-12-08 16:53:43 +01:00
|
|
|
private ?string $nonce;
|
2020-02-09 23:02:19 +01:00
|
|
|
|
|
|
|
function __construct($type, $src, $content = "") {
|
2020-04-03 17:39:58 +02:00
|
|
|
$this->src = $src;
|
2020-02-09 23:02:19 +01:00
|
|
|
$this->type = $type;
|
|
|
|
$this->content = $content;
|
2021-12-08 16:53:43 +01:00
|
|
|
$this->nonce = null;
|
2020-02-09 23:02:19 +01:00
|
|
|
}
|
|
|
|
|
2021-04-02 22:47:11 +02:00
|
|
|
function getCode(): string {
|
2021-12-08 16:53:43 +01:00
|
|
|
$attributes = ["type" => $this->type];
|
|
|
|
if (!empty($this->src)) {
|
|
|
|
$attributes["src"] = $this->src;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!empty($this->nonce)) {
|
|
|
|
$attributes["nonce"] = $this->nonce;
|
|
|
|
}
|
|
|
|
|
|
|
|
$attributes = html_attributes($attributes);
|
|
|
|
return "<script $attributes>$this->content</script>";
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setNonce(string $nonce) {
|
|
|
|
$this->nonce = $nonce;
|
2020-02-09 23:02:19 +01:00
|
|
|
}
|
2020-04-03 15:56:04 +02:00
|
|
|
}
|