diff options
Diffstat (limited to 'skin')
-rw-r--r-- | skin/base.skin.php | 15 | ||||
-rw-r--r-- | skin/main.skin.php | 29 |
2 files changed, 44 insertions, 0 deletions
diff --git a/skin/base.skin.php b/skin/base.skin.php new file mode 100644 index 0000000..d5e02e2 --- /dev/null +++ b/skin/base.skin.php @@ -0,0 +1,15 @@ +<?php + +namespace skin\base; + +function layout($ctx, $title, $unsafe_body) { +return <<<HTML +<!doctype html> +<html lang="en"> + <body> + <title>{$title}</title> + </body> + <body>{$unsafe_body}</body> +</html> +HTML; +} diff --git a/skin/main.skin.php b/skin/main.skin.php new file mode 100644 index 0000000..f44f739 --- /dev/null +++ b/skin/main.skin.php @@ -0,0 +1,29 @@ +<?php + +namespace skin\main; + +function index($ctx, $name, $show_cities, $cities) { +return <<<HTML + Hello, {$name}!<br/> + + {$ctx->if_true($show_cities, 'line of truth<br/>')} + {$ctx->if_not(false, $ctx->renderIfFalse, '<b>safe<b>', '<b>unsafe<b>')} + + <ul> + {$ctx->for_each($cities, fn($city, $i) => $ctx->renderIndexCityItem($city, $i+1))} + </ul> +HTML; +} + +function renderIndexCityItem($ctx, $city, $index) { +return <<<HTML + <li>{$index} {$city}</li> +HTML; +} + +function renderIfFalse($ctx, $str, $unsafe_str) { +return <<<HTML +safe: $str<br/> +unsafe: $unsafe_str +HTML; +}
\ No newline at end of file |