BootstrapSQLiteBlog/lib/BootstrapRender.php

190 lines
7.2 KiB
PHP

<?php
class BootstrapRender
{
public static function message()
{
if (func_num_args() > 0)
{
Cookie::set("message", func_get_arg(0));
if (func_num_args() > 1)
Cookie::set("messageClass", func_get_arg(1));
return;
}
$strMessage = Cookie::get("message");
$strMessageClass = Cookie::get("messageClass");
if (!isset($strMessageClass) || $strMessageClass == null || strlen($strMessageClass) < 1)
$strMessageClass = "info";
?>
<div id="page-message-container">
<?php if (isset($strMessage) && $strMessage !== null && strlen($strMessage) > 0): ?>
<div class="alert alert-<?= $strMessageClass; ?> d-none" id="page-message">
<?= $strMessage; ?>
</div>
<script>
$(function() {
$("#page-message")
.hide()
.removeClass("d-none")
.fadeIn();
});
</script>
<?php endif; ?>
</div>
<script>
$(function() {
BootstrapRender = {};
BootstrapRender.message = function(message, messageClass = "info") {
var messageElem = $("<div></div>");
messageElem.addClass(`alert alert-${messageClass} d-none`);
messageElem.attr("id", "page-message");
messageElem.html(message);
$("#page-message-container")
.empty()
.append(messageElem);
messageElem
.hide()
.removeClass("d-none")
.fadeIn();
return messageElem;
};
});
</script>
<?php
Cookie::set("message");
Cookie::set("messageClass");
}
public static function input($varOptions)
{
$varOptions["tag"] = $varOptions["tag"] ?? "input";
$varOptionsExtras = $varOptions;
$varDefaultKeys = ["tag", "label", "name", "type", "value", "hint"];
foreach ($varDefaultKeys as $k)
if (array_key_exists($k, $varOptionsExtras))
unset($varOptionsExtras[$k]);
?>
<div class="mb-3">
<label class="form-label"><?= $varOptions["label"] ?? $varOptions["name"] ?? "input"; ?></label>
<<?= $varOptions["tag"]; ?>
type="<?= $varOptions["type"] ?? "text"; ?>"
class="form-control"
name="<?= $varOptions["name"] ?? "text"; ?>"
placeholder="Enter <?= $varOptions["label"] ?? "value"; ?>"
<?php if ($varOptions["tag"] !== "textarea"): ?>
value="<?= $varOptions["value"] ?? ""; ?>"
<?php endif; ?>
<?php foreach ($varOptionsExtras as $k => $v): ?>
<?= $k; ?>="<?= $v; ?>"
<?php endforeach; ?>
/><?= $varOptions["tag"] == "textarea"? "{$varOptions["value"]}</textarea>" : ""; ?>
<small class="text-muted"><?= $varOptions["hint"] ?? ""; ?></small>
</div>
<?php
}
public static function button($varOptions)
{
$varOptions["tag"] = $varOptions["tag"] ?? "a";
$varOptionsExtras = $varOptions;
$varDefaultKeys = ["tag", "label", "name", "type", "value", "hint"];
foreach ($varDefaultKeys as $k)
if (array_key_exists($k, $varOptionsExtras))
unset($varOptionsExtras[$k]);
?>
<<?= $varOptions["tag"]; ?>
class="btn btn-<?= $varOptions["class"] ?? "secondary"; ?>"
<?php foreach ($varOptionsExtras as $k => $v): ?>
<?= $k; ?>="<?= $v; ?>"
<?php endforeach; ?>
>
<?php if (array_key_exists("icon", $varOptions)): ?>
<i class="fa fa-fw fa-<?= $varOptions["icon"]; ?>"></i>
<?php endif; ?>
<?= $varOptions["label"] ?? "Button"; ?>
</<?= $varOptions["tag"]; ?>>
<?php
}
public static function buttons($varButtons)
{
?>
<div class="mb-3">
<label class="form-label"><?= $strLabel; ?></label>
<div>
<?php foreach ($varButtons as $b): ?>
<?php endforeach; ?>
</div>
</div>
<?php
}
public static function buttons($varOptions)
{
$strLabel = $varOptions["label"] ?? "Actions";
$intInputGroup = $varOptions["input_group"] ?? 0;
$varButtons = $varOptions["buttons"] ?? [];
$strButtonClass = $intInputGroup == 0? "me-1 mb-2": "";
?>
<?php if (count($varButtons) > 0): ?>
<div class="mb-3">
<label class="form-label"><?= $strLabel; ?></label>
<div class="<?= $intInputGroup == 1? "input-group": ""; ?>">
<?php foreach ($varButtons as $varButton): ?>
<?php
$strLabel = $varButton["label"];
$strIcon = $varButton["icon"] ?? null;
$strType = $varButton["type"] ?? null;
$strOnclick = $varButton["onclick"] ?? null;
$strHref = $varButton["href"] ?? null;
$strClass = $varButton["class"] ?? "outline-secondary";
$strTag = "button";
if ($strHref !== null)
$strTag = "a";
?>
<<?= $strTag; ?>
class="btn btn-<?= $strClass; ?> <?= $strButtonClass; ?>"
<?= $strType !== null? "type=\"{$strType}\"": ""; ?>
<?= $strOnclick !== null? "onclick=\"{$strOnclick}\"": ""; ?>
<?= $strHref !== null? "href=\"{$strHref}\"": ""; ?>>
<?php if ($strIcon !== null): ?>
<i class="fa fa-fw fa-<?= $strIcon; ?>"></i>
<?php endif; ?>
<span><?= $strLabel; ?></span>
</<?= $strTag; ?>>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
<?php
}
}
?>