diff --git a/app/Events/RenderingFooter.php b/app/Events/RenderingFooter.php
new file mode 100644
index 00000000..43124e4d
--- /dev/null
+++ b/app/Events/RenderingFooter.php
@@ -0,0 +1,30 @@
+contents = &$contents;
+ }
+
+ public function addContent($content)
+ {
+ if ($content) {
+ if (!is_string($content)) {
+ throw new \Exception("Can not add non-string content", 1);
+ }
+
+ $this->contents[] = $content;
+ }
+ }
+}
diff --git a/app/Events/RenderingHeader.php b/app/Events/RenderingHeader.php
new file mode 100644
index 00000000..48c42519
--- /dev/null
+++ b/app/Events/RenderingHeader.php
@@ -0,0 +1,31 @@
+contents = &$contents;
+ }
+
+ public function addContent($content)
+ {
+ if ($content) {
+ if (!is_string($content)) {
+ throw new \Exception("Can not add non-string content", 1);
+ }
+
+ $this->contents[] = $content;
+ }
+ }
+
+}
diff --git a/app/helpers.php b/app/helpers.php
index 7f458988..42fc9f28 100644
--- a/app/helpers.php
+++ b/app/helpers.php
@@ -109,6 +109,12 @@ if (! function_exists('bs_footer')) {
}
echo '';
+
+ $extra_contents = [];
+
+ Event::fire(new App\Events\RenderingFooter($extra_contents));
+
+ echo implode(PHP_EOL, $extra_contents);
}
}
@@ -130,6 +136,12 @@ if (! function_exists('bs_header')) {
}
echo '';
+
+ $extra_contents = [];
+
+ Event::fire(new App\Events\RenderingHeader($extra_contents));
+
+ echo implode(PHP_EOL, $extra_contents);
}
}