fix: make configs serializable
This commit is contained in:
parent
e5ac640025
commit
c7a1b41a19
8 changed files with 175 additions and 207 deletions
|
@ -1,31 +0,0 @@
|
|||
<?php
|
||||
namespace App\Models;
|
||||
|
||||
class Bookmark {
|
||||
/**
|
||||
* @var string The name of the bookmark.
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* @var string The URL of the bookmark.
|
||||
*/
|
||||
public $url;
|
||||
|
||||
/**
|
||||
* @var string The description of the bookmark.
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* Bookmark constructor.
|
||||
* @param string $name The name of the bookmark.
|
||||
* @param string $url The URL of the bookmark.
|
||||
* @param string $description The description of the bookmark.
|
||||
*/
|
||||
public function __construct($name, $url, $description) {
|
||||
$this->name = $name;
|
||||
$this->url = $url;
|
||||
$this->description = $description;
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
<?php
|
||||
namespace App\Models;
|
||||
|
||||
class BookmarkCategory {
|
||||
/**
|
||||
* @var string The name of the bookmark category.
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* @var array An array of Bookmark objects.
|
||||
*/
|
||||
public $bookmarks;
|
||||
|
||||
/**
|
||||
* BookmarkCategory constructor.
|
||||
* @param string $name The name of the bookmark category.
|
||||
* @param array $bookmarks An array of Bookmark objects.
|
||||
*/
|
||||
public function __construct($name, $bookmarks = array()) {
|
||||
$this->name = $name;
|
||||
$this->bookmarks = $bookmarks;
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
<?php
|
||||
namespace App\Models;
|
||||
|
||||
class Project {
|
||||
/**
|
||||
* @var string The name of the project.
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* @var string The description of the project.
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* @var string The URL of the project.
|
||||
*/
|
||||
public $url;
|
||||
|
||||
/**
|
||||
* @var array Languages used in the project.
|
||||
*/
|
||||
public $languages;
|
||||
|
||||
/**
|
||||
* BookmarkCategory constructor.
|
||||
* @param string $name The name of the project.
|
||||
* @param string $description The description of the project.
|
||||
* @param string The URL of the project.
|
||||
* @param array $languages Languages used in the project.s
|
||||
*/
|
||||
public function __construct($name, $description, $url, $languages = array()) {
|
||||
$this->name = $name;
|
||||
$this->description = $description;
|
||||
$this->url = $url;
|
||||
$this->languages = $languages;
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
<?php
|
||||
namespace App\Models;
|
||||
|
||||
class ProjectCategory {
|
||||
/**
|
||||
* @var string The name of the bookmark category.
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* @var array An array of Project objects.
|
||||
*/
|
||||
public $projects;
|
||||
|
||||
/**
|
||||
* BookmarkCategory constructor.
|
||||
* @param string $name The name of the bookmark category.
|
||||
* @param array $projects An array of Project objects.
|
||||
*/
|
||||
public function __construct($name, $projects = array()) {
|
||||
$this->name = $name;
|
||||
$this->projects = $projects;
|
||||
}
|
||||
}
|
|
@ -1,29 +1,103 @@
|
|||
<?php
|
||||
use App\Models\Bookmark;
|
||||
use App\Models\BookmarkCategory;
|
||||
|
||||
return [
|
||||
new BookmarkCategory("Friends' Websites", [
|
||||
new Bookmark("nick99nack", "http://www.nick99nack.com/", "Currently in the process of taking over the internet. I Totally didn't steal any of his stuff."),
|
||||
new Bookmark("campos", "https://campos02.me/", "Cool brazilian dude, does programming and stuff"),
|
||||
new Bookmark("Sashi", "https://joshuaalto.com/", "Site redesign #8! I'll find a website style I enjoy eventually, I swear!"),
|
||||
new Bookmark("noone", "http://strangenessnetworks.com/", "Strangeness Networks, noone's website."),
|
||||
new Bookmark("raf", "https://notashelf.dev/", "is a shelf"),
|
||||
new Bookmark("CamK06", "https://starman0620.neocities.org/", "Now with more outdated HTML!"),
|
||||
new Bookmark("HIDEN", "https://hiden.pw/", "Moar buttons!"),
|
||||
new Bookmark("coco", "http://cocomark.neocities.org/", "needs to go to the brain store"),
|
||||
new Bookmark("Toxidation", "http://toxi.pw/", "h (idk if this is his actual domain he has like 5)"),
|
||||
new Bookmark("xproot", "http://xproot.pw/", "a random internet person on this very random planet")
|
||||
]),
|
||||
new BookmarkCategory("Cool Projects", [
|
||||
new Bookmark("ToS;DR", "https://tosdr.org/", "\"I have read and agree to the Terms\" is the biggest lie on the web. They aim to fix that."),
|
||||
new Bookmark("NINA", "https://nina.chat/", "Yahoo! Messenger (and soon AOL) revival"),
|
||||
new Bookmark("Escargot", "https://escargot.chat/", "MSN/WLM revival"),
|
||||
]),
|
||||
new BookmarkCategory("Other Cool Stuff", [
|
||||
new Bookmark("WinWorld", "http://www.winworldpc.com/", "WinWorld is an online museum dedicated to the preservation and sharing of vintage, abandoned, and pre-release software."),
|
||||
new Bookmark("ToastyTech", "http://toastytech.com/", "Nathan's Toasty Technology Page"),
|
||||
new Bookmark("Optimized for no one", "http://www.hoary.org/browse/", "Optimized for no one, but pretty much OK with . . ."),
|
||||
new Bookmark("Cameron's World", "http://www.cameronsworld.net/", "A love letter to the Internet of old.")
|
||||
])
|
||||
[
|
||||
'name' => "Friends' Websites",
|
||||
'bookmarks' => [
|
||||
[
|
||||
'name' => "nick99nack",
|
||||
'url' => "http://www.nick99nack.com/",
|
||||
'description' => "Currently in the process of taking over the internet. I Totally didn't steal any of his stuff."
|
||||
],
|
||||
[
|
||||
'name' => "campos",
|
||||
'url' => "https://campos02.me/",
|
||||
'description' => "Cool brazilian dude, does programming and stuff"
|
||||
],
|
||||
[
|
||||
'name' => "Sashi",
|
||||
'url' => "https://joshuaalto.com/",
|
||||
'description' => "Site redesign #8! I'll find a website style I enjoy eventually, I swear!"
|
||||
],
|
||||
[
|
||||
'name' => "noone",
|
||||
'url' => "http://strangenessnetworks.com/",
|
||||
'description' => "Strangeness Networks, noone's website."
|
||||
],
|
||||
[
|
||||
'name' => "raf",
|
||||
'url' => "https://notashelf.dev/",
|
||||
'description' => "is a shelf"
|
||||
],
|
||||
[
|
||||
'name' => "CamK06",
|
||||
'url' => "https://starman0620.neocities.org/",
|
||||
'description' => "Now with more outdated HTML!"
|
||||
],
|
||||
[
|
||||
'name' => "HIDEN",
|
||||
'url' => "https://hiden.pw/",
|
||||
'description' => "Moar buttons!"
|
||||
],
|
||||
[
|
||||
'name' => "coco",
|
||||
'url' => "http://cocomark.neocities.org/",
|
||||
'description' => "needs to go to the brain store"
|
||||
],
|
||||
[
|
||||
'name' => "Toxidation",
|
||||
'url' => "http://toxi.pw/",
|
||||
'description' => "h (idk if this is his actual domain he has like 5)"
|
||||
],
|
||||
[
|
||||
'name' => "xproot",
|
||||
'url' => "http://xproot.pw/",
|
||||
'description' => "a random internet person on this very random planet"
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => "Cool Projects",
|
||||
'bookmarks' => [
|
||||
[
|
||||
'name' => "ToS;DR",
|
||||
'url' => "https://tosdr.org/",
|
||||
'description' => "\"I have read and agree to the Terms\" is the biggest lie on the web. They aim to fix that."
|
||||
],
|
||||
[
|
||||
'name' => "NINA",
|
||||
'url' => "https://nina.chat/",
|
||||
'description' => "Yahoo! Messenger (and soon AOL) revival"
|
||||
],
|
||||
[
|
||||
'name' => "Escargot",
|
||||
'url' => "https://escargot.chat/",
|
||||
'description' => "MSN/WLM revival"
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => "Other Cool Stuff",
|
||||
'bookmarks' => [
|
||||
[
|
||||
'name' => "WinWorld",
|
||||
'url' => "http://www.winworldpc.com/",
|
||||
'description' => "WinWorld is an online museum dedicated to the preservation and sharing of vintage, abandoned, and pre-release software."
|
||||
],
|
||||
[
|
||||
'name' => "ToastyTech",
|
||||
'url' => "http://toastytech.com/",
|
||||
'description' => "Nathan's Toasty Technology Page"
|
||||
],
|
||||
[
|
||||
'name' => "Optimized for no one",
|
||||
'url' => "http://www.hoary.org/browse/",
|
||||
'description' => "Optimized for no one, but pretty much OK with . . ."
|
||||
],
|
||||
[
|
||||
'name' => "Cameron's World",
|
||||
'url' => "http://www.cameronsworld.net/",
|
||||
'description' => "A love letter to the Internet of old."
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
@ -1,60 +1,71 @@
|
|||
<?php
|
||||
use App\Models\Project;
|
||||
use App\Models\ProjectCategory;
|
||||
|
||||
return [
|
||||
new ProjectCategory("Websites", [
|
||||
new Project(
|
||||
"diskfloppy.me",
|
||||
"The website you're looking at right now!",
|
||||
"https://github.com/floppydisk05/diskfloppy.me",
|
||||
[ "PHP", "CSS" ]),
|
||||
new Project(
|
||||
"NetDrivers",
|
||||
"Driver downloads website.",
|
||||
"https://github.com/floppydisk05/NetDrivers",
|
||||
[ "Ruby", "CSS" ])
|
||||
]),
|
||||
new ProjectCategory("APIs", [
|
||||
new Project(
|
||||
"trivia-api",
|
||||
"API to serve random trivia questions.",
|
||||
"https://github.com/floppydisk05/trivia-api",
|
||||
[ "JavaScript" ]
|
||||
)
|
||||
]),
|
||||
new ProjectCategory("Discord Bots", [
|
||||
new Project(
|
||||
"PlexBot",
|
||||
"A basic bot to play music from the configured Plex server in a Discord voice channel.",
|
||||
"https://github.com/floppydisk05/PlexBot",
|
||||
[ "Python" ]
|
||||
)
|
||||
]),
|
||||
new ProjectCategory("Abandoned Projects", [
|
||||
new Project(
|
||||
"website-cf",
|
||||
"Rewrite of my personal website in Adobe ColdFusion.",
|
||||
"https://github.com/floppydisk05/website-cf",
|
||||
[ "Adobe ColdFusion" ]
|
||||
),
|
||||
new Project(
|
||||
"WinBotJDA",
|
||||
"Rewrite of CamK06's WinBot using Java and DiscordJDA.",
|
||||
"https://github.com/floppydisk05/WinBotJDA",
|
||||
[ "Java" ]
|
||||
),
|
||||
new Project(
|
||||
"delayed-eject",
|
||||
"Scripts which eject the cd drive a lot to annoy nick.",
|
||||
"https://github.com/floppydisk05/delayed-eject",
|
||||
[ "Shell", "C" ]
|
||||
),
|
||||
new Project(
|
||||
"php-sound",
|
||||
"Plays a specified sound file or files on the web server when a php page is loaded.",
|
||||
"https://github.com/floppydisk05/php-sound",
|
||||
[ "PHP", "Shell" ]
|
||||
)
|
||||
])
|
||||
[
|
||||
'name' => "Websites",
|
||||
'projects' => [
|
||||
[
|
||||
'name' => "diskfloppy.me",
|
||||
'description' => "The website you're looking at right now!",
|
||||
'url' => "https://github.com/floppydisk05/diskfloppy.me",
|
||||
'languages' => ["PHP", "CSS"]
|
||||
],
|
||||
[
|
||||
'name' => "NetDrivers",
|
||||
'description' => "Driver downloads website.",
|
||||
'url' => "https://github.com/floppydisk05/NetDrivers",
|
||||
'languages' => ["Ruby", "CSS"]
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => "APIs",
|
||||
'projects' => [
|
||||
[
|
||||
'name' => "trivia-api",
|
||||
'description' => "API to serve random trivia questions.",
|
||||
'url' => "https://github.com/floppydisk05/trivia-api",
|
||||
'languages' => ["JavaScript"]
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => "Discord Bots",
|
||||
'projects' => [
|
||||
[
|
||||
'name' => "PlexBot",
|
||||
'description' => "A basic bot to play music from the configured Plex server in a Discord voice channel.",
|
||||
'url' => "https://github.com/floppydisk05/PlexBot",
|
||||
'languages' => ["Python"]
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => "Abandoned Projects",
|
||||
'projects' => [
|
||||
[
|
||||
'name' => "website-cf",
|
||||
'description' => "Rewrite of my personal website in Adobe ColdFusion.",
|
||||
'url' => "https://github.com/floppydisk05/website-cf",
|
||||
'languages' => ["Adobe ColdFusion"]
|
||||
],
|
||||
[
|
||||
'name' => "WinBotJDA",
|
||||
'description' => "Rewrite of CamK06's WinBot using Java and DiscordJDA.",
|
||||
'url' => "https://github.com/floppydisk05/WinBotJDA",
|
||||
'languages' => ["Java"]
|
||||
],
|
||||
[
|
||||
'name' => "delayed-eject",
|
||||
'description' => "Scripts which eject the cd drive a lot to annoy nick.",
|
||||
'url' => "https://github.com/floppydisk05/delayed-eject",
|
||||
'languages' => ["Shell", "C"]
|
||||
],
|
||||
[
|
||||
'name' => "php-sound",
|
||||
'description' => "Plays a specified sound file or files on the web server when a php page is loaded.",
|
||||
'url' => "https://github.com/floppydisk05/php-sound",
|
||||
'languages' => ["PHP", "Shell"]
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
@section('description', 'This is the personal homepage of floppydisk.')
|
||||
@section('content')
|
||||
@foreach ($categories as $category)
|
||||
<h1>{{ $category->name }}</h1>
|
||||
<h1>{{ $category['name'] }}</h1>
|
||||
<ul>
|
||||
@foreach ($category->bookmarks as $bookmark)
|
||||
<li><a href="{{ $bookmark->url }}">{{ $bookmark->name }}</a> - {{ $bookmark->description }}</li>
|
||||
@foreach ($category['bookmarks'] as $bookmark)
|
||||
<li><a href="{{ $bookmark['url'] }}">{{ $bookmark['name'] }}</a> - {{ $bookmark['description'] }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endforeach
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
@section('description', 'This is the personal homepage of floppydisk.')
|
||||
@section('content')
|
||||
@foreach ($categories as $category)
|
||||
<h1>{{ $category->name}}</h1>
|
||||
@foreach ($category->projects as $project)
|
||||
<h1>{{ $category['name']}}</h1>
|
||||
@foreach ($category['projects'] as $project)
|
||||
<div>
|
||||
<a href="{{ $project->url }}">{{ $project->name }}</a> - {{ $project->description }}<br/>
|
||||
<b>Languages:</b> {{ implode(", ", $project->languages) }}
|
||||
<a href="{{ $project['url'] }}">{{ $project['name'] }}</a> - {{ $project['description'] }}<br/>
|
||||
<b>Languages:</b> {{ implode(", ", $project['languages']) }}
|
||||
</div>
|
||||
<br/>
|
||||
@endforeach
|
||||
|
|
Loading…
Reference in a new issue