diff options
Diffstat (limited to 'src/web/_model/projects.php')
-rw-r--r-- | src/web/_model/projects.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/web/_model/projects.php b/src/web/_model/projects.php new file mode 100644 index 0000000..5373a78 --- /dev/null +++ b/src/web/_model/projects.php @@ -0,0 +1,36 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ +class Projects_model extends Model { + + private $markdown; + + function __construct($load) { + parent::__construct($load); + $this->markdown = new MarkdownParser(); + } + + private function load_projects(&$data) { + $projects = array(); + $dir = $GLOBALS['assetroot'] . '/projects'; + if ($handle = opendir($dir)) { + while (false !== ($entry = readdir($handle))) { + if (str_starts_with($entry, ".")) { + continue; + } + $path = $dir . '/' . $entry; + $md = $this->markdown->parse($path); + $projects[$entry] = $md; + } + } + krsort($projects); + $data['projects'] = $projects; + } + + public function get_data(): ?array { + $data = parent::get_data(); + $this->load_projects($data); + $data['title'] = lang('title'); + $data['desc'] = lang('short_desc'); + return $data; + } +} +?> |