61 lines
1.8 KiB
PHP
61 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Views\Account;
|
|
|
|
use Elements\Document;
|
|
use Elements\View;
|
|
|
|
abstract class AccountView extends View {
|
|
|
|
protected string $description;
|
|
protected string $icon;
|
|
|
|
public function __construct(Document $document, $loadView = true) {
|
|
parent::__construct($document, $loadView);
|
|
$this->description = "";
|
|
$this->icon = "image";
|
|
}
|
|
|
|
public function loadView() {
|
|
parent::loadView();
|
|
|
|
$document = $this->getDocument();
|
|
$settings = $document->getUser()->getConfiguration()->getSettings();
|
|
if ($settings->isRecaptchaEnabled()) {
|
|
$document->getHead()->loadGoogleRecaptcha($settings->getRecaptchaSiteKey());
|
|
}
|
|
}
|
|
|
|
public function getCode(): string {
|
|
$html = parent::getCode();
|
|
|
|
$content = $this->getAccountContent();
|
|
$icon = $this->createIcon($this->icon, "fas", "fa-3x");
|
|
|
|
$html .= "<div class=\"container mt-5\">
|
|
<div class=\"row\">
|
|
<div class=\"col-md-4 py-5 bg-primary text-white text-center\" style='border-top-left-radius:.4em;border-bottom-left-radius:.4em'>
|
|
<div class=\"card-body\">
|
|
$icon
|
|
<h2 class=\"py-3\">$this->title</h2>
|
|
<p>$this->description</p>
|
|
</div>
|
|
</div>
|
|
<div class=\"col-md-8 pt-5 pb-2 border border-info\" style='border-top-right-radius:.4em;border-bottom-right-radius:.4em'>
|
|
$content
|
|
<div class='alert mt-2' style='display:none' id='alertMessage'></div>
|
|
</div>
|
|
</div>
|
|
</div>";
|
|
|
|
$settings = $this->getDocument()->getUser()->getConfiguration()->getSettings();
|
|
if ($settings->isRecaptchaEnabled()) {
|
|
$siteKey = $settings->getRecaptchaSiteKey();
|
|
$html .= "<input type='hidden' value='$siteKey' id='siteKey' />";
|
|
}
|
|
|
|
return $html;
|
|
}
|
|
|
|
protected abstract function getAccountContent();
|
|
} |