diff options
| author | David T. Sadler <davidtsadler@googlemail.com> | 2021-10-26 21:07:43 +0100 |
|---|---|---|
| committer | David T. Sadler <davidtsadler@googlemail.com> | 2021-10-26 21:07:43 +0100 |
| commit | ae205d810b62dce5e3e11aef07358c11ded48c77 (patch) | |
| tree | 0196ae98aefb93b719d6b21cc065e22c1ecf992b /src | |
| parent | d4122f116c937e0ec509d8cefe540146ec27a0cd (diff) | |
Implement old
Diffstat (limited to 'src')
| -rw-r--r-- | src/DTS/Bookmark.php | 6 | ||||
| -rw-r--r-- | src/DTS/Old.php | 30 | ||||
| -rw-r--r-- | src/DTS/Session.php | 2 | ||||
| -rw-r--r-- | src/DTS/Validated.php | 6 | ||||
| -rw-r--r-- | src/DTS/Validator.php | 3 | ||||
| -rw-r--r-- | src/templates/create.php | 13 | ||||
| -rw-r--r-- | src/templates/edit.php | 13 | ||||
| -rw-r--r-- | src/templates/form_fields.php | 12 |
8 files changed, 53 insertions, 32 deletions
diff --git a/src/DTS/Bookmark.php b/src/DTS/Bookmark.php index 543a552..da9afa9 100644 --- a/src/DTS/Bookmark.php +++ b/src/DTS/Bookmark.php @@ -8,11 +8,11 @@ class Bookmark { public string $id; - public string $url; + public string $url = ''; - public string $title; + public string $title = ''; - public string $tag; + public string $tag = ''; public string $addedAt; diff --git a/src/DTS/Old.php b/src/DTS/Old.php new file mode 100644 index 0000000..8545f8d --- /dev/null +++ b/src/DTS/Old.php @@ -0,0 +1,30 @@ +<?php + +declare(strict_types=1); + +namespace DTS; + +class Old +{ + const FIELDS = [ + 'url', + 'title', + 'tag', + ]; + + private array $old = []; + + function __construct(array $request = []) + { + foreach(self::FIELDS as $field) { + if (array_key_exists($field, $request)) { + $this->old[$field] = $request[$field]; + } + } + } + + public function get(string $key, mixed $default = null): mixed + { + return $this->old[$key] ?? $default; + } +} diff --git a/src/DTS/Session.php b/src/DTS/Session.php index e5da42f..445f31c 100644 --- a/src/DTS/Session.php +++ b/src/DTS/Session.php @@ -8,7 +8,7 @@ class Session { private static ?self $instance = null; - private array $session; + private array $session = []; public static function getInstance() { diff --git a/src/DTS/Validated.php b/src/DTS/Validated.php index 5df8af7..86c6f64 100644 --- a/src/DTS/Validated.php +++ b/src/DTS/Validated.php @@ -6,9 +6,9 @@ namespace DTS; class Validated { - public ?string $url; + public string $url = ''; - public ?string $title; + public string $title = ''; - public ?string $tag; + public string $tag = ''; } diff --git a/src/DTS/Validator.php b/src/DTS/Validator.php index 7629e3b..472b38f 100644 --- a/src/DTS/Validator.php +++ b/src/DTS/Validator.php @@ -13,7 +13,8 @@ class Validator public Validated $validated; - function __construct(array $request) { + function __construct(array $request) + { $this->errors = new Errors(); $this->validated = new Validated(); diff --git a/src/templates/create.php b/src/templates/create.php index 2769290..0124e03 100644 --- a/src/templates/create.php +++ b/src/templates/create.php @@ -8,18 +8,7 @@ <body> <a href="/">Back</a> <form action="/store" method="POST"> - <input type="text" name="url" maxlength="512" autofocus><br> - <?php if ($errors->has('url')) { ?> - <p><?php echo implode(', ', $errors->get('url')); ?></p> - <?php } ?> - <input type="text" name="title" maxlength="256" ><br> - <?php if ($errors->has('title')) { ?> - <p><?php echo implode(', ', $errors->get('title')); ?></p> - <?php } ?> - <input type="text" name="tag" maxlength="8" ><br> - <?php if ($errors->has('tag')) { ?> - <p><?php echo implode(', ', $errors->get('tag')); ?></p> - <?php } ?> + <?php require_once('form_fields.php'); ?> <button type="submit">Add</button> </form> </body> diff --git a/src/templates/edit.php b/src/templates/edit.php index c1b7bda..e77dd48 100644 --- a/src/templates/edit.php +++ b/src/templates/edit.php @@ -9,18 +9,7 @@ <a href="/">Back</a> <form action="/update" method="POST"> <input type="hidden" name="id" value="<?php echo $bookmark->id; ?>"/> - <input type="text" name="url" maxlength="512" autofocus value="<?php echo $bookmark->url; ?>"><br> - <?php if ($errors->has('url')) { ?> - <p><?php echo implode(', ', $errors->get('url')); ?></p> - <?php } ?> - <input type="text" name="title" maxlength="256" value="<?php echo $bookmark->title; ?>"><br> - <?php if ($errors->has('title')) { ?> - <p><?php echo implode(', ', $errors->get('title')); ?></p> - <?php } ?> - <input type="text" name="tag" maxlength="8" value="<?php echo $bookmark->tag; ?>"><br> - <?php if ($errors->has('tag')) { ?> - <p><?php echo implode(', ', $errors->get('tag')); ?></p> - <?php } ?> + <?php require_once('form_fields.php'); ?> <button type="submit">Update</button> </form> </body> diff --git a/src/templates/form_fields.php b/src/templates/form_fields.php new file mode 100644 index 0000000..cfacfda --- /dev/null +++ b/src/templates/form_fields.php @@ -0,0 +1,12 @@ +<input type="text" name="url" maxlength="512" value="<?php echo $old->get('url', $bookmark->url); ?>" autofocus><br> +<?php if ($errors->has('url')) { ?> + <p><?php echo implode(', ', $errors->get('url')); ?></p> +<?php } ?> +<input type="text" name="title" maxlength="256" value="<?php echo $old->get('title', $bookmark->title); ?>"><br> +<?php if ($errors->has('title')) { ?> + <p><?php echo implode(', ', $errors->get('title')); ?></p> +<?php } ?> +<input type="text" name="tag" maxlength="8" value="<?php echo $old->get('tag', $bookmark->tag); ?>"><br> +<?php if ($errors->has('tag')) { ?> + <p><?php echo implode(', ', $errors->get('tag')); ?></p> +<?php } ?> |
