Added initial hello-world module.
This commit is contained in:
parent
7e85f8a1a0
commit
04d445534f
5 changed files with 151 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/var/tmp
|
||||
22
css/000-modulewrapper.css
Normal file
22
css/000-modulewrapper.css
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
.modulewrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding: 1em 0;
|
||||
}
|
||||
|
||||
.modulewrapper::before, .modulewrapper::after {
|
||||
content: "";
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background: lightgray;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.modulewrapper::before {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.modulewrapper::after {
|
||||
bottom: 0;
|
||||
}
|
||||
37
css/001-main.css
Normal file
37
css/001-main.css
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
table {
|
||||
position: relative;
|
||||
width: 80ch;
|
||||
margin: 2em 0;
|
||||
}
|
||||
|
||||
thead::after {
|
||||
content: "";
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
position: absolute;
|
||||
background: black;
|
||||
}
|
||||
|
||||
td, tr, th {
|
||||
margin: 0;
|
||||
padding: .2em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
th:first-child {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
th:last-child {
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
td:last-child::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 1px;
|
||||
height: calc(100% + .4em);
|
||||
background: black;
|
||||
}
|
||||
5
etc/config.php
Normal file
5
etc/config.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
"this-key" => "has been added in the module etc/config.php file.",
|
||||
];
|
||||
86
module.php
Normal file
86
module.php
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
<?php
|
||||
|
||||
return new class extends \Lewp\Module {
|
||||
|
||||
private function createOptionsTable(array $options)
|
||||
{
|
||||
// create head row
|
||||
$head_cells = [
|
||||
$this->createElement("th", "Key"),
|
||||
$this->createElement("th", "Value")
|
||||
];
|
||||
$head_row = $this->createElement("tr");
|
||||
foreach ($head_cells as $cell) {
|
||||
$head_row->appendChild($cell);
|
||||
}
|
||||
// create table body
|
||||
$tbody = $this->createElement("tbody");
|
||||
foreach ($options as $key => $value) {
|
||||
$tr = $this->createElement("tr");
|
||||
$td = $this->createElement("td", $key);
|
||||
$tr->appendChild($td);
|
||||
if (is_array($value)) {
|
||||
$td = $this->createElement("td", "[".implode(", ", $value)."]");
|
||||
} elseif ($value === true) {
|
||||
$td = $this->createElement("td", "true");
|
||||
} elseif ($value === false) {
|
||||
$td = $this->createElement("td", "false");
|
||||
} else {
|
||||
$td = $this->createElement("td", $value);
|
||||
}
|
||||
$tr->appendChild($td);
|
||||
$tbody->appendChild($tr);
|
||||
}
|
||||
// construct the table
|
||||
$thead = $this->createElement("thead");
|
||||
$thead->appendChild($head_row);
|
||||
$thead->appendChild($tbody);
|
||||
|
||||
$table = $this->createElement("table", "", [
|
||||
"class" => "table"
|
||||
]);
|
||||
$table->appendChild($thead);
|
||||
$table->appendChild($tbody);
|
||||
|
||||
return $table;
|
||||
}
|
||||
|
||||
private function addPageId() {
|
||||
$div = $this->createElement("div", null, [
|
||||
"class" => "page-id-wrapper"
|
||||
]);
|
||||
$h2 = $this->createElement("h2", "Current page id: \"".$this->getPageId()."\"");
|
||||
$p = $this->createElement("p");
|
||||
$text = $this->createTextNode("Click on this ");
|
||||
$p->appendChild($text);
|
||||
$href = "/".$this->getPageId()."/hello/dynamic_uri/123456";
|
||||
$a = $this->createElement("a", "link (".$href.")", [
|
||||
"href" => $href
|
||||
]);
|
||||
$p->appendChild($a);
|
||||
$text = $this->createTextNode(" to see dynamic_uri_parts option at work.");
|
||||
$p->appendChild($text);
|
||||
$p->appendChild($this->createElement("br"));
|
||||
$italic = $this->createElement("i", "Please notice that the separation of \"dynamic_uri\" is due to the file hierarchy convention. It is intended, not a bug.");
|
||||
$p->appendChild($italic);
|
||||
|
||||
$div->appendChild($h2);
|
||||
$div->appendChild($p);
|
||||
return $div;
|
||||
}
|
||||
|
||||
public function run(array $options = []) : bool
|
||||
{
|
||||
$this->appendChild($this->addPageId());
|
||||
$this->appendChild($this->createElement("h2", "\$options content"));
|
||||
$this->appendChild($this->createOptionsTable($options));
|
||||
$this->appendChild($this->createElement("h2", "\$this->configuration->get() content"));
|
||||
$this->appendChild($this->createOptionsTable($this->configuration->get()));
|
||||
return true;
|
||||
}
|
||||
|
||||
public function onWebsocketRequest(
|
||||
\Lewp\Websocket\Message $message
|
||||
) : \Lewp\Websocket\Message {
|
||||
}
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue