Improved PHP code, Included Quantum font, Temporarily fixed htaccess

This commit is contained in:
2022-03-01 16:26:51 +01:00
parent 48c57d47ed
commit 2288eb64d0
22 changed files with 356 additions and 200 deletions

View File

@@ -2,5 +2,5 @@
.idea/
.dockerignore
.gitignore
notes.txt
readme.md
*.txt
*.md

4
.gitignore vendored
View File

@@ -8,9 +8,7 @@ resources/ChartJs/
resources/FontAwesomePro/
resources/GoogleFonts/
resources/HalfMoon/
resources/Icons8/
resources/Quantum/
# Other folders (Will be removed once the content system is finished !)
content/page/
files/
/files/

View File

@@ -1,9 +1,24 @@
# Prevent access to .htaccess
<Files ~ "^.*\.([Hh][Tt][Aa]|[Pp][Yy])">
Order allow,deny
Deny from all
## Apache 2.2
Order allow,deny
Deny from all
## Apache 2.4
# Require all denied
</Files>
## Deny access to some common leftovers
#<FilesMatch "(\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|swp)|~)$">
# ## Apache 2.2
# Order allow,deny
# Deny from all
# Satisfy All
# ## Apache 2.4
# # Require all denied
#</FilesMatch>
ServerSignature Off
# Redirecting HTTP traffic to HTTPS. (Keep commented on localhost !)
# This is handled other services, but it should still be enabled in production just to be safe.
#RewriteEngine On
@@ -19,61 +34,63 @@ ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
# Setting some headers for security.
# TODO: Implement a proper module check and redirection to clean 503 error page if module is not enabled !
Header always set X-Detected-Country "NK"
Header always set X-Frame-Options "deny"
# Prevents CloudFlare from injecting some JS code through their hidden apps...
Header always set Content-Security-Policy "default-src 'self'; object-src 'none'; child-src 'self'; frame-ancestors 'none'; upgrade-insecure-requests; block-all-mixed-content"
Header always set X-XSS-Protection " 1; mode=block"
Header always set Referrer-Policy "no-referrer"
Header always set X-Content-Type-Options "nosniff"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set Cache-Control "max-age=300, public"
# FIXME: Apparently, the 'Permissions-Policy' header is not properly formatted, IDK why...
# Remark: Apparently, the 'Permissions-Policy' header is not properly formatted, IDK why...
Header always set Permissions-Policy "accelerometer=(),autoplay=(),camera=(),display-capture=(),document-domain=(),encrypted-media=(),fullscreen=(),geolocation=(),gyroscope=(),magnetometer=(),microphone=(),midi=(),payment=(),picture-in-picture=(),publickey-credentials-get=(),screen-wake-lock=(),sync-xhr=(self),usb=(),web-share=(),xr-spatial-tracking=()"
Header always set Access-Control-Allow-Origin "*"
Header unset X-Powered-By
Header always set X-Powered-By "Amiga 1200, Kickstart 3.1"
# Removed the condition to prevent silent errors since the module is required for the website
# <IfModule mod_rewrite.c></IfModule>
# Handling all other redirections.
<IfModule mod_rewrite.c>
# TODO: Raise error if not available
RewriteEngine On
RewriteEngine On
# Sending a 404 for git and IDEs folders just in case they ever get copied to the web server,
# or if one of the honeypot files is acessed directly.
# A 404 is preferred to prevent further scanning of this folder and from raising some flags.
# FIXME: These rules break the later honeypot rules !!!
#RedirectMatch 404 ^.*\.?(git|vs(code)|idea).*
#RedirectMatch 404 ^.*honeypot.*
# Sending a 404 for git and IDEs folders just in case they ever get copied to the web server,
# or if one of the honeypot files is acessed directly.
# A 404 is preferred to prevent further scanning of this folder and from raising some flags.
# FIXME: These rules break the later honeypot rules !!!
#RedirectMatch 404 ^.*\.?(git|vs(code)|idea).*
#RedirectMatch 404 ^.*honeypot.*
# Languages. (Does not work with a regex)
RewriteRule ^en/(.*)$ /$1 [QSA]
RewriteRule ^fr/(.*)$ /$1 [QSA]
RewriteRule ^lb/(.*)$ /$1 [QSA]
# Languages. (Does not work with a regex)
RewriteRule ^en/(.*)$ /$1 [QSA]
RewriteRule ^fr/(.*)$ /$1 [QSA]
RewriteRule ^lb/(.*)$ /$1 [QSA]
# Content categories. - Should be removed ?
#RewriteRule ^((en|fr|lb)/)?blog/article/(.*)$ /content/page/$1 [QSA]
#RewriteRule ^((en|fr|lb)/)?programming/(applications|tutorials|tools)/(.*)$ /content/page/$1 [QSA]
##RewriteRule ^((en|fr|lb)/)?electronics/ham/(.*)$ /content/page/$1 [QSA]
# Content categories. - Should be removed ?
#RewriteRule ^((en|fr|lb)/)?blog/article/(.*)$ /content/page/$1 [QSA]
#RewriteRule ^((en|fr|lb)/)?programming/(applications|tutorials|tools)/(.*)$ /content/page/$1 [QSA]
##RewriteRule ^((en|fr|lb)/)?electronics/ham/(.*)$ /content/page/$1 [QSA]
# Content root pages. - Should be removed ?
#RewriteRule ^((en|fr|lb)/)?programming/(purebasic|python|others)/(.*)$ /content/$1 [QSA]
#RewriteRule ^((en|fr|lb)/)?electronics/(iot|experiments)/(.*)$ /content/$1 [QSA]
# Content root pages. - Should be removed ?
#RewriteRule ^((en|fr|lb)/)?programming/(purebasic|python|others)/(.*)$ /content/$1 [QSA]
#RewriteRule ^((en|fr|lb)/)?electronics/(iot|experiments)/(.*)$ /content/$1 [QSA]
# Content pages. (Old regex are taken care of by the "content/index.php" page)
RewriteRule ^((en|fr|lb)/)?(blog|programming|electronics)/(.*)$ /content/$1 [QSA]
# Content pages. (Old regex are taken care of by the "content/index.php" page)
RewriteRule ^((en|fr|lb)/)?(blog|programming|electronics)/(.*)$ /content/$1 [QSA]
# Internal redirections for scanning and exploit attempts.
# These rules are here since they're easier to implement in the .htaccess.
#RewriteRule ^.*(install|xmlrpc)\.php.*$ /honeypot/file-php.php [QSA]
#RewriteRule ^.*\.xml.*$ /honeypot/file-xml.php [QSA]
#RewriteRule ^.*wlwmanifest\.xml.*$ /honeypot/file-xml-wlwmanifest.php [QSA]
#RewriteRule ^.*\.env.*$ /honeypot/file-env.php [QSA]
#RewriteRule ^.*(ap(i|p.*)|cms|sit[eo]|shop.*|wp.*).*$ /honeypot/folder.php [QSA]
# Internal redirections for scanning and exploit attempts.
# These rules are here since they're easier to implement in the .htaccess.
#RewriteRule ^.*(install|xmlrpc)\.php.*$ /honeypot/file-php.php [QSA]
#RewriteRule ^.*\.xml.*$ /honeypot/file-xml.php [QSA]
#RewriteRule ^.*wlwmanifest\.xml.*$ /honeypot/file-xml-wlwmanifest.php [QSA]
#RewriteRule ^.*\.env.*$ /honeypot/file-env.php [QSA]
#RewriteRule ^.*(ap(i|p.*)|cms|sit[eo]|shop.*|wp.*).*$ /honeypot/folder.php [QSA]
# Cases left to handle:
# * /wp-admin/post.php?id=whatever
# * /public /vendor /storage
# Cases left to handle:
# * /wp-admin/post.php?id=whatever
# * /public /vendor /storage
# * //vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
# TODO: Implement bee-movie themed tarpit once I have a rate-limiting solution in place !
# TODO: Implement bee-movie themed tarpit once I have a rate-limiting solution in place !
</IfModule>

View File

@@ -1,4 +1,8 @@
<?php set_include_path('./commons/'); include 'config.php'; include 'langs.php'; ?>
<?php
set_include_path('./commons/');
include_once 'config.php';
include_once 'langs.php';
?>
<!DOCTYPE html>
<html lang="<?php echo($user_language); ?>">
<head>

View File

@@ -1,4 +1,8 @@
<?php set_include_path('./commons/'); include 'config.php'; include 'langs.php'; ?>
<?php
set_include_path('./commons/');
include_once 'config.php';
include_once 'langs.php';
?>
<!DOCTYPE html>
<html lang="<?php echo($user_language); ?>">
<head>

View File

@@ -1,4 +1,8 @@
<?php set_include_path('../commons/'); include 'config.php'; include 'langs.php'; ?>
<?php
set_include_path('../commons/');
include_once 'config.php';
include_once 'langs.php';
?>
<!DOCTYPE html>
<html lang="<?php echo($user_language); ?>">
<head>
@@ -16,7 +20,7 @@
data-sidebar-shortcut-enabled="true">
<?php include 'body-root.php'; ?>
<div class="page-wrapper with-sidebar with-navbar-fixed-bottom">
<?php const SIDEBAR_ID = 'about'; include 'sidebar.php'; ?>
<?php $SIDEBAR_ID = 'about'; include 'sidebar.php'; ?>
<div class="content-wrapper">
<div class="container-fluid">
<div id="page-title-bar" class="card p-0 pl-20 m-0 square-corners bg-very-dark title-bkgd navbar">
@@ -25,25 +29,47 @@
</h2>
<?php include 'header-lang.php'; ?>
</div>
<div class="content">
<div class="content mx-auto w-lg-p90">
<div class="card p-0 mx-0">
<div class="px-card py-10 border-bottom px-20">
<div class="container-fluid">
<div class="row">
<div class="col-5 col-lg-12">
<div class="col-12">
<h2 class="card-title font-size-18 m-0">
<i class="fad fa-user-circle"></i>&nbsp;&nbsp;Who am I ?
<i class="fad fa-user-circle"></i>&nbsp;&nbsp;<?php print(localize("about.biography.title")); ?>
</h2>
</div>
<div class="col-7 hidden-lg-and-up text-right font-italic">
<h2 class="card-title font-size-18 m-0 text-super-muted">nibblepoker@gmail.com</h2>
</div>
</div>
</div>
</div>
<div class="px-card py-10 bg-light-lm bg-very-dark-dm rounded-bottom px-20">
<p>TODO</p>
<div class="px-card py-10 bg-light-lm rounded-bottom px-20 bg-very-dark title-bkgd">
<div class="row">
<div class="col-4 col-lg-3">
<img src="/resources/Azias/imgs/maki-pain-03.png" class="img-fluid rounded no-save" alt="rounded image">
</div>
<div class="col-8 col-lg-9">
<div class="row">
<div class="col-6 text-center">
<p class="font-weight-bold font-size-28 mt-0 mb-0 ml-20">
<span class="text-uppercase">Bozet</span> Herwin
</p>
</div>
<!--<div class="col-4 col-md-2 text-center">
<p class="font-weight-bold font-size-24 mt-0 ml-20">🇱🇺, 🇧🇪</p>
</div>
<div class="col-8 col-md-4 text-right text-super-muted">
<p class="font-weight-bold font-size-24 mt-0 ml-20">25y/o Male</p>
</div>-->
</div>
</div>
</div>
</div>
</div>
@@ -54,7 +80,7 @@
<div class="row">
<div class="col-5 col-lg-12">
<h2 class="card-title font-size-18 m-0">
<i class="fad fa-books"></i>&nbsp;&nbsp;Skills
<i class="fad fa-books"></i>&nbsp;&nbsp;<?php print(localize("about.skills.title")); ?>
</h2>
</div>
<div class="col-7 hidden-lg-and-up text-right font-italic">
@@ -64,7 +90,32 @@
</div>
</div>
<div class="px-card py-10 bg-light-lm bg-very-dark-dm rounded-bottom px-20">
<div class="px-card py-10 bg-light-lm rounded-bottom px-20 bg-very-dark title-bkgd">
<h3 class="font-size-16 font-weight-semi-bold">
<i class="fad fa-file-certificate"></i>&nbsp;&nbsp;TODO
</h3>
</div>
</div>
<div class="card p-0 mx-0">
<div class="px-card py-10 border-bottom px-20">
<div class="container-fluid">
<div class="row">
<div class="col-5 col-lg-12">
<h2 class="card-title font-size-18 m-0">
<i class="fad fa-briefcase"></i>&nbsp;&nbsp;<?php print(localize("about.work.title")); ?>
</h2>
</div>
<div class="col-7 hidden-lg-and-up text-right font-italic">
<h2 class="card-title font-size-18 m-0 text-super-muted">@NibblePoker</h2>
</div>
</div>
</div>
</div>
<div class="px-card py-10 bg-light-lm rounded-bottom px-20 bg-very-dark title-bkgd">
<h3 class="font-size-16 font-weight-semi-bold">
<i class="fad fa-file-certificate"></i>&nbsp;&nbsp;TODO
</h3>

View File

@@ -1,2 +1,7 @@
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
<?php
if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) {
header('HTTP/1.1 403 Forbidden');
die();
}
?>
<div id="body-overlay"></div>

View File

@@ -1,6 +1,14 @@
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
<?php
// TODO: Include lang once
// Making sure the file is included.
if(basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) {
header('HTTP/1.1 403 Forbidden');
die();
}
// Importing required scripts
include_once 'langs.php';
$CONTENT_DEBUG = true;
// TODO: Add /content as raw input of some sort (No auto tags).
@@ -102,6 +110,7 @@ if($requested_content_type == ContentType::BLOG) {
}
}
// Checking for errors preliminarily
if($requested_content_display_type == ContentDisplayType::NONE) {
// Failed to detect what kind of content was requested.
$content_has_error = true;

View File

@@ -1,5 +1,10 @@
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
<?php
if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) {
header('HTTP/1.1 403 Forbidden');
die();
}
include_once 'config.php';
// This helper requires PHP 8 or newer !
// Setting the default values.

View File

@@ -1,9 +1,15 @@
<?php
// Making sure the file is included.
if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) {
header('HTTP/1.1 403 Forbidden');
die();
}
defined('SIDEBAR_ID') or define('SIDEBAR_ID', 'default');
include_once 'langs.php';
if(!isset($SIDEBAR_ID)) {
$SIDEBAR_ID = 'default';
}
?>
<div class="sidebar">
<div class="sidebar-menu font-weight-bold">
@@ -12,37 +18,16 @@ defined('SIDEBAR_ID') or define('SIDEBAR_ID', 'default');
</a>
<h4 class="text-center quantum ucase font-size-28 text-muted">N<span class="text-super-muted">ibble</span> P<span class="text-super-muted">oker</span></h4>
<div class="sidebar-divider"></div>
<a id="sbl-home" href="<?php print(l10n_url_abs('/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if(SIDEBAR_ID=="home"){echo(" active");} ?>">
<a id="sbl-home" href="<?php print(l10n_url_abs('/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if($SIDEBAR_ID=="home"){echo(" active");} ?>">
<span class="sidebar-icon"><i class="fad fa-home" aria-hidden="true"></i></span>
<?php print(localize("home.title.nav")); ?>
</a>
<a id="sbl-blog" href="<?php print(l10n_url_abs('/blog/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if(SIDEBAR_ID=="blog"){echo(" active");} ?>">
<span class="sidebar-icon"><i class="fad fa-rss-square"></i></span>
<?php print(localize("blog.title")); ?>
</a>
<div class="sidebar-divider"></div>
<a id="sbl-programming" href="<?php print(l10n_url_abs('/programming/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fad fa-code"></i></span>
<?php print(localize("programming.title")); ?>
<a id="sbl-programming" href="<?php print(l10n_url_abs('/programming/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if($SIDEBAR_ID=="blog"){echo(" active");} ?>">
<span class="sidebar-icon"><i class="fad fa-briefcase"></i></span>
<?php print(localize("programming.title.projects")); ?>
</a>
<div class="ml-20">
<a id="sbl-purebasic" href="<?php print(l10n_url_abs('/programming/purebasic/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fad fa-microchip"></i></span>
<?php print(localize("programming.purebasic.title")); ?>
</a>
<a id="sbl-python" href="<?php print(l10n_url_abs('/programming/python/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fab fa-python"></i></span>
<?php print(localize("programming.python.title")); ?>
</a>
<!--<a id="sbl-others" href="<?php print(l10n_url_abs('/programming/others/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fad fa-ellipsis-h"></i></span>
<?php print(localize("programming.others.title")); ?>
</a>-->
<a id="sbl-docker" href="<?php print(l10n_url_abs('/programming/docker/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fab fa-docker"></i></span>
<?php print(localize("programming.docker.title")); ?>
</a>
<div class="sidebar-divider"></div>
<a id="sbl-projects-apps" href="<?php print(l10n_url_abs('/programming/applications/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fad fa-browser"></i></span>
<?php print(localize("programming.apps.title")); ?>
@@ -55,36 +40,30 @@ defined('SIDEBAR_ID') or define('SIDEBAR_ID', 'default');
<span class="sidebar-icon"><i class="fad fa-tools"></i></span>
<?php print(localize("programming.tools.title")); ?>
</a>
<div class="sidebar-divider"></div>
<a id="sbl-purebasic" href="<?php print(l10n_url_abs('/programming/purebasic/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fad fa-microchip"></i></span>
<?php print(localize("programming.purebasic.title")); ?>
</a>
<a id="sbl-python" href="<?php print(l10n_url_abs('/programming/python/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fab fa-python"></i></span>
<?php print(localize("programming.python.title")); ?>
</a>
<a id="sbl-docker" href="<?php print(l10n_url_abs('/programming/docker/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fab fa-docker"></i></span>
<?php print(localize("programming.docker.title")); ?>
</a>
</div>
<!--<div class="sidebar-divider"></div>
<a id="sbl-electronics" href="<?php print(l10n_url_abs('/electronics/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fad fa-microchip"></i></span>
<?php print(localize("electronics.title")); ?>
</a>
<div class="ml-20">
<a id="sbl-iot" href="<?php print(l10n_url_abs('/electronics/iot/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fad fa-house-signal"></i></span>
<?php print(localize("electronics.iot.title")); ?>
</a>
<a id="sbl-elec-misc" href="<?php print(l10n_url_abs('/electronics/experiments/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fad fa-flask"></i></span>
<?php print(localize("electronics.experiments.title")); ?>
</a>
<a id="sbl-ham" href="<?php print(l10n_url_abs('/electronics/ham/')); ?>" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon"><i class="fad fa-broadcast-tower"></i></span>
<?php print(localize("electronics.ham.title")); ?>
</a>
</div>-->
<div class="sidebar-divider"></div>
<a id="sbl-links" href="<?php print(l10n_url_abs('/links/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if(SIDEBAR_ID=="links"){echo(" active");} ?>">
<a id="sbl-links" href="<?php print(l10n_url_abs('/links/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if($SIDEBAR_ID=="links"){echo(" active");} ?>">
<span class="sidebar-icon"><i class="fad fa-link"></i></span>
<?php print(localize("links.title")); ?>
</a>
<a id="sbl-about" href="<?php print(l10n_url_abs('/about/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if(SIDEBAR_ID=="about"){echo(" active");} ?>">
<a id="sbl-about" href="<?php print(l10n_url_abs('/about/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if($SIDEBAR_ID=="about"){echo(" active");} ?>">
<span class="sidebar-icon"><i class="fad fa-user"></i></span>
<?php print(localize("about.title")); ?>
</a>
<a id="sbl-contact" href="<?php print(l10n_url_abs('/contact/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if(SIDEBAR_ID=="contact"){echo(" active");} ?>">
<a id="sbl-contact" href="<?php print(l10n_url_abs('/contact/')); ?>" class="sidebar-link sidebar-link-with-icon<?php if($SIDEBAR_ID=="contact"){echo(" active");} ?>">
<span class="sidebar-icon"><i class="fad fa-mailbox"></i></span>
<?php print(localize("contact.title")); ?>
</a>

View File

@@ -9,6 +9,7 @@
"home.intro.text.2": "If you wish to contact me, you can do so through the contact form linked in the sidebar or via the email address present on that page.",
"blog.title": "Blog",
"programming.title": "Programming",
"programming.title.projects": "Projects",
"programming.java.title": "Java",
"programming.purebasic.title": "PureBasic",
"programming.python.title": "Python",
@@ -57,6 +58,7 @@
"error.404.description": "The requested resource couldn't be found on the server !",
"error.content.title.generic": "Content error",
"error.content.title.empty": "No content found",
"error.content.none": "No explicit error was encountered.",
"error.content.detect.category": "Failed to detect which category of content you requested.",
"error.content.detect.display": "Failed to detect if you requested the category's search page or a specific one.",
@@ -65,9 +67,17 @@
"error.content.detect.empty": "No content could be found for the given tags.",
"content.title.error": "$content.title.error",
"content.title.search": "$content.title.search",
"content.title.search": "Projects search",
"content.title.article": "$content.title.article",
"content.title.application": "$content.title.application"
"content.title.application": "$content.title.application",
"content.tags.requested": "Requested tags",
"content.search.count.single": "result",
"content.search.count.multiple": "results",
"about.biography.title": "Who am I ?",
"about.skills.title": "Skills",
"about.work.title": "Professional experiences",
"about.education.title": "TODO:SchoolAndEducation"
},
"fr": {
"home.title.nav": "Accueil",
@@ -78,6 +88,7 @@
"home.intro.text.2": "Si vous désirez me contacter, vous pouvez le faire via le formulaire de contact dans la page prévu à cet effet qui est liée dans le menu latéral ou via l'adresse email présente sur cette page.",
"blog.title": "Blog",
"programming.title": "Programmation",
"programming.title.projects": "Projets",
"programming.java.title": "Java",
"programming.purebasic.title": "PureBasic",
"programming.python.title": "Python",
@@ -126,7 +137,8 @@
"error.404.description": "La ressource demandée est introuvable sur le serveur !",
"error.content.title.generic": "Erreur de contenu",
"error.content.none": "Aucune erreur précise n'a été détectée.",
"error.content.title.empty": "Aucun contenu trouvé",
"error.content.none": "Aucune erreur n'a été détectée.",
"error.content.detect.category": "Impossibilité de détecter la catégorie de contenu demandée.",
"error.content.detect.display": "Impossibilité de détecter si une recherche ou page spécifique était demandée.",
"error.content.detect.subtype": "Impossibilité de détecter le sous-type de contenu demandé.",
@@ -134,9 +146,17 @@
"error.content.detect.empty": "Aucun contenu en rapport avec les tags choisi n'as été trouvé.",
"content.title.error": "$content.title.error",
"content.title.search": "$content.title.search",
"content.title.search": "Recherche de projets",
"content.title.article": "$content.title.article",
"content.title.application": "$content.title.application"
"content.title.application": "$content.title.application",
"content.tags.requested": "Tags demandés",
"content.search.count.single": "résultat",
"content.search.count.multiple": "résultats",
"about.biography.title": "Qui suis-je ?",
"about.skills.title": "Compétences",
"about.work.title": "Parcours professionnel",
"about.education.title": "Éducation"
},
"lb": {
"home.title.nav": "Doheem",

View File

@@ -1,4 +1,8 @@
<?php set_include_path('../commons/'); include 'config.php'; include 'langs.php'; ?>
<?php
set_include_path('../commons/');
include_once 'config.php';
include_once 'langs.php';
?>
<!DOCTYPE html>
<html lang="<?php echo($user_language); ?>">
<head>
@@ -15,7 +19,8 @@
<body class="with-custom-webkit-scrollbars with-custom-css-scrollbars dark-mode" data-dm-shortcut-enabled="true" data-sidebar-shortcut-enabled="true">
<?php include 'body-root.php'; ?>
<div class="page-wrapper with-sidebar with-navbar-fixed-bottom">
<?php const SIDEBAR_ID = 'contact'; include 'sidebar.php'; ?>
<?php $SIDEBAR_ID = 'contact'; include 'sidebar.php'; ?>
<div class="content-wrapper">
<div class="container-fluid">
<div id="page-title-bar" class="card p-0 pl-20 m-0 square-corners bg-very-dark title-bkgd navbar">
@@ -24,7 +29,7 @@
</h2>
<?php include 'header-lang.php'; ?>
</div>
<div class="content">
<div class="content mx-auto w-lg-p90">
<div class="card p-0 mx-0">
<div class="px-card py-10 border-bottom px-20">
<div class="container-fluid">
@@ -66,7 +71,7 @@
</div>
</div>
</div>
<div class="px-card py-20 bg-light-lm bg-very-dark-dm rounded-bottom">
<div class="px-card py-20 bg-light-lm bg-very-dark-dm rounded-bottom pl-20">
<a href="https://twitter.com/messages/compose?recipient_id=937370791334895616">
<button class="btn btn-primary">Compose DM to @NibblePoker on Twitter</button>
</a>

View File

@@ -9,7 +9,7 @@
"en": "This is a test article, please ignore it",
"fr": "Ceci est un article de test, veuillez l'ignorer."
},
"image": "test.jpg",
"image": "/resources/Azias/imgs/angry-alchool-pussy.png",
"tags": [
"programming", "purebasic"
]
@@ -26,7 +26,7 @@
},
"image": "test.jpg",
"tags": [
"programming", "purebasic"
"programming", "docker"
]
}
]

View File

@@ -1,6 +1,16 @@
<?php set_include_path('../commons/'); include 'config.php'; include 'langs.php'; include 'content.php'?>
<?php
// Checking if an error occured while loading data and parsing the URL.
// Includes
set_include_path('../commons/');
include_once 'config.php';
include_once 'langs.php';
include_once 'content.php';
// Safety check for the constants
/*if(!defined('CONTENT_DEBUG')) {
$CONTENT_DEBUG = false;
}/**/
// Checking if an error occurred while loading data and parsing the URL.
$content_error_code = 200;
if($content_has_error) {
if(is_null($requested_tags)) {
@@ -18,7 +28,7 @@ if($content_has_error) {
}
}
// TODO: Check if it went well, else 503 or something like that.
// TODO: Check if it went well, else 503 or something like - Done above ?.
?>
<!DOCTYPE html>
<html lang="<?php echo($user_language); ?>">
@@ -36,7 +46,7 @@ if($content_has_error) {
<body class="with-custom-webkit-scrollbars with-custom-css-scrollbars dark-mode" data-dm-shortcut-enabled="true" data-sidebar-shortcut-enabled="true">
<?php include 'body-root.php'; ?>
<div class="page-wrapper with-sidebar with-navbar-fixed-bottom">
<?php include 'sidebar.php'; ?>
<?php $SIDEBAR_ID = 'blog'; include 'sidebar.php'; ?>
<div class="content-wrapper">
<div class="container-fluid">
<div id="page-title-bar" class="card p-0 pl-20 m-0 square-corners bg-very-dark title-bkgd navbar">
@@ -45,9 +55,10 @@ if($content_has_error) {
</h2>
<?php include 'header-lang.php'; ?>
</div>
<div class="content">
<div class="card p-0 mx-0">
<div class="content mx-auto w-lg-p90">
<?php
if($CONTENT_DEBUG) {
echo('<div class="card p-0 mx-0">
<div class="px-card py-10 border-bottom px-20">
<div class="container-fluid">
<div class="row">
@@ -55,76 +66,89 @@ if($content_has_error) {
</div>
</div>
</div>
<div class="px-card py-20 bg-light-lm bg-very-dark-dm rounded-bottom px-20">
<h3 class="m-0 mb-5 font-size-20 text-center font-weight-semi-bold">This page is still under construction !</h3>
<p class="m-0 mb-5">REQUEST_URI: <?php echo($_SERVER['REQUEST_URI']); ?></p>
<p class="m-0 mb-5">$requested_content_type: <?php echo($requested_content_type); ?></p>
<p class="m-0 mb-5">$requested_content_display_type: <?php echo($requested_content_display_type); ?></p>
<p class="m-0 mb-5">$requested_tags: [<?php echo(implode(", ", $requested_tags)); ?>]</p>
<p class="m-0 mb-5">count($requested_tags): <?php echo(count($requested_tags)); ?></p>
<p class="m-0 mb-5">$content_has_error: <?php echo($content_has_error); ?></p>
<p class="m-0 mb-5">$_content_error_message_key: <?php echo($_content_error_message_key); ?></p>
<p class="m-0 mb-5">localize($_content_error_message_key): <?php echo(localize($_content_error_message_key)); ?></p>
<p class="m-0 mb-5">$content_error_message: <?php echo($content_error_message); ?></p>
<p class="m-0 mb-5">$filtered_content_index_data: <?php print_r($filtered_content_index_data); ?></p>
<p class="m-0 mb-5">$content_requested_url_part: <?php echo($content_requested_url_part); ?></p>
</div>
</div>
<?php
<div class="px-card py-20 bg-light-lm rounded-bottom px-20 bg-very-dark title-bkgd">
<!--<h3 class="m-0 mb-5 font-size-20 text-center font-weight-semi-bold">This page is still under construction !</h3>-->');
echo('<p class="m-0 mb-5">REQUEST_URI: '.$_SERVER['REQUEST_URI'].'</p>');
echo('<p class="m-0 mb-5">$requested_content_type: '.$requested_content_type.'</p>');
echo('<p class="m-0 mb-5">$requested_content_display_type: '.$requested_content_display_type.'</p>');
echo('<p class="m-0 mb-5">$requested_tags: ['.implode(", ", $requested_tags).']</p>');
echo('<p class="m-0 mb-5">count($requested_tags): '.count($requested_tags).'</p>');
echo('<p class="m-0 mb-5">$content_has_error: '.$content_has_error.'</p>');
echo('<p class="m-0 mb-5">$_content_error_message_key: '.$_content_error_message_key.'</p>');
echo('<p class="m-0 mb-5">localize($_content_error_message_key): '.localize($_content_error_message_key).'</p>');
echo('<p class="m-0 mb-5">$content_error_message: '.$content_error_message.'</p>');
echo('<p class="m-0 mb-5">$filtered_content_index_data: ');
print_r($filtered_content_index_data);
echo('</p>');
echo('<p class="m-0 mb-5">$content_requested_url_part: '.$content_requested_url_part.'</p>');
echo('</div></div>');
}
// Checking if an error occurred.
if($content_error_code != 200) {
printErrorCard('error.content.title.generic', $content_error_message);
printErrorCard(localize('error.content.title.generic'), $content_error_message);
goto content_printing_end;
}
// Printing the containers
if($requested_content_display_type == ContentDisplayType::SEARCH) {
startMainCard("fad fa-file-alt", "content.title.search", "subtitle");
echo('<div class="py-20 bg-light-lm bg-very-dark-dm rounded-bottom px-0">');
startMainCard("fad fa-file-search", localize("content.title.search"),
strval(count($filtered_content_index_data)) . " " .
(count($filtered_content_index_data) > 1 ?
localize("content.search.count.multiple") :
localize("content.search.count.single")));
echo('<div class="py-20 bg-light-lm rounded-bottom px-0 bg-very-dark title-bkgd">');
for($i = 0; $i < count($filtered_content_index_data); $i++) {
if($i > 0) {
echo('<div class="sidebar-divider m-20 mx-0"></div>');
}
echo('<div class="content m-0 mx-20">');
echo('<h3 class="font-size-14 font-weight-semi-bold m-0">'.$filtered_content_index_data[$i]["title"][$user_language].'</h3>');
echo('<div class="d-flex flex-wrap">');
echo('<div class="">');
echo('<img class="content-search-image" src="'.$filtered_content_index_data[$i]["image"].'">');
echo('</div>');
echo('<div class="ml-md-15">');
echo('<h3 class="font-size-18 font-weight-semi-bold m-0 flex-fill">'.$filtered_content_index_data[$i]["title"][$user_language].'</h3>');
echo('<p class="text-break text-justify my-5 mb-0">'.$filtered_content_index_data[$i]["preamble"][$user_language].'</p>');
echo('</div>');
echo('</div>');
echo('<hr class="subtle">');
echo('<div class="d-flex flex-wrap">');
echo('<div class="content-tag-container">');
echo('<i class="fad fa-tags"></i>');
for($j = 0; $j < count($filtered_content_index_data[$i]["tags"]); $j++) {
echo('<a href="#" class="content-tag">#'.$filtered_content_index_data[$i]["tags"][$j].'</a>');
}
echo('</div>');
// TODO: Add button to view article !
echo('</div>');
echo('</div>');
}
echo('</div>');
echo('<div class="px-card py-10 bg-light-lm bg-dark-dm rounded-bottom border-top">'.
'<p class="font-size-12 m-0">'.
'Card footer here.'.
'</p></div>');/**/
'</p></div>');
endMainCard();
} elseif($requested_content_display_type == ContentDisplayType::ARTICLE) {
startMainCard("fad fa-file-alt", "content.title.article", "subtitle");
startMainCard("fad fa-file-alt", localize("content.title.article"), "subtitle");
endMainCard();
} elseif($requested_content_display_type == ContentDisplayType::APPLICATION) {
startMainCard("fad fa-file-alt", "content.title.application", "subtitle");
startMainCard("fad fa-file-alt", localize("content.title.application"), "subtitle");
endMainCard();
}
content_printing_end:
?>
<!--
-->
<!--<div class="px-card py-20 bg-light-lm bg-very-dark-dm rounded-bottom px-20">
<form action="mailto:herwin.bozet@gmail.com?subject=Website%20contact%20form%20message" method="post" class="w-full">
<div class="form-group">
<label for="name">Sender's Name</label>
<input type="text" class="form-control" id="name" placeholder="John Smith">
</div>
<div class="form-group">
<label for="message" class="required">Message</label>
<textarea class="form-control" id="message" placeholder="Write your message here." required="required"></textarea>
</div>
<input class="btn btn-primary mr-10" type="submit" value="Submit">
<input class="btn btn-secondary" type="reset" value="Reset">
</form>
</div>-->
</div>
</div>
</div>

View File

@@ -1,3 +1,3 @@
{
"_": "Is this file used anywhere ?"
"_": "Is this file used anywhere ? - Referenced as the id in the article index"
}

View File

@@ -1,4 +1,8 @@
<?php set_include_path('./commons/'); include 'config.php'; include 'langs.php'; ?>
<?php
set_include_path('./commons/');
include_once 'config.php';
include_once 'langs.php';
?>
<!DOCTYPE html>
<html lang="<?php echo($user_language); ?>">
<head>
@@ -15,7 +19,7 @@
<body class="with-custom-webkit-scrollbars with-custom-css-scrollbars dark-mode" data-dm-shortcut-enabled="true" data-sidebar-shortcut-enabled="true">
<?php include 'body-root.php'; ?>
<div class="page-wrapper with-sidebar with-navbar-fixed-bottom">
<?php const SIDEBAR_ID = 'home'; include 'sidebar.php'; ?>
<?php $SIDEBAR_ID = 'home'; include 'sidebar.php'; ?>
<div class="content-wrapper">
<div class="container-fluid h-full stretch-align-items">
<div id="page-title-bar" class="card p-0 pl-20 m-0 square-corners bg-very-dark title-bkgd navbar">
@@ -24,10 +28,7 @@
</h2>
<?php include 'header-lang.php'; ?>
</div>
<div class="row">
<div class="row mx-auto w-95">
<div class="col-12 d-block">
<div class="content mb-0">
<div class="card p-0 m-0 card-bkgd">
@@ -52,10 +53,9 @@
</div>
</div>
</div>
</div>
<div class="row mx-auto w-95">
<!--<div class="row mx-auto w-lg-p90">-->
<div class="col-sm-12 col-lg-8 mb-20">
<div class="content mb-0">
<div class="card p-0 m-0 card-bkgd">
@@ -75,7 +75,6 @@
</div>
<div class="px-card py-5 px-20">
<div class="pl-lg-15 l-lab-app">
<p class="mb-0 font-weight-semi-bold">
PB-ListComPort

View File

@@ -1,4 +1,8 @@
<?php set_include_path('../commons/'); include 'config.php'; include 'langs.php'; ?>
<?php
set_include_path('../commons/');
include_once 'config.php';
include_once 'langs.php';
?>
<!DOCTYPE html>
<html lang="<?php echo($user_language); ?>">
<head>
@@ -15,7 +19,7 @@
<body class="with-custom-webkit-scrollbars with-custom-css-scrollbars dark-mode" data-dm-shortcut-enabled="true" data-sidebar-shortcut-enabled="true">
<?php include 'body-root.php'; ?>
<div class="page-wrapper with-sidebar with-navbar-fixed-bottom">
<?php const SIDEBAR_ID = 'links'; include 'sidebar.php'; ?>
<?php $SIDEBAR_ID = 'links'; include 'sidebar.php'; ?>
<div class="content-wrapper">
<div class="container-fluid">
<div id="page-title-bar" class="card p-0 pl-20 m-0 square-corners bg-very-dark title-bkgd navbar">
@@ -24,7 +28,7 @@
</h2>
<?php include 'header-lang.php'; ?>
</div>
<div class="content">
<div class="content mx-auto w-lg-p90">
<div class="card p-0 mx-0">
<div class="px-card py-10 border-bottom px-20">
<div class="container-fluid">

View File

@@ -1,4 +1,8 @@
<?php set_include_path('../commons/'); include 'config.php'; include 'langs.php'; ?>
<?php
set_include_path('../commons/');
include_once 'config.php';
include_once 'langs.php';
?>
<!DOCTYPE html>
<html lang="<?php echo($user_language); ?>">
<head>
@@ -24,7 +28,7 @@
</h2>
<?php include 'header-lang.php'; ?>
</div>
<div class="content">
<div class="content mx-auto w-lg-p90">
<div class="card p-0 mx-0">
<div class="px-card py-10 border-bottom px-20">
<div class="container-fluid">
@@ -33,7 +37,7 @@
</h2>
</div>
</div>
<div class="px-card py-10 bg-light-lm bg-very-dark-dm px-20">
<div class="px-card py-10 bg-light-lm px-20 bg-very-dark title-bkgd">
<p class="font-size-12 m-0 mb-5">
<?php print(localize('privacy.introduction.text.1')); ?>
</p>
@@ -58,7 +62,7 @@
</h2>
</div>
</div>
<div class="px-card py-10 bg-light-lm bg-very-dark-dm px-20">
<div class="px-card py-10 bg-light-lm px-20 bg-very-dark title-bkgd">
<p class="font-size-12 m-0">
<?php print(localize('privacy.data.text.1')); ?>
</p>
@@ -72,7 +76,7 @@
</h2>
</div>
</div>
<div class="px-card py-10 bg-light-lm bg-very-dark-dm px-20">
<div class="px-card py-10 bg-light-lm px-20 bg-very-dark title-bkgd">
<p class="font-size-12 m-0 mb-5">
<?php print(localize('privacy.update.text.1')); ?>
</p>
@@ -89,7 +93,7 @@
</h2>
</div>
</div>
<div class="px-card py-10 bg-light-lm bg-very-dark-dm px-20">
<div class="px-card py-10 bg-light-lm px-20 bg-very-dark title-bkgd">
<p class="font-size-12 m-0">
<?php print(localize('privacy.contact.text.1')); ?><br>
<i class="fad fa-at ml-10"></i>
@@ -107,7 +111,7 @@
</h2>
</div>
</div>
<div class="px-card py-10 bg-light-lm bg-very-dark-dm px-20">
<div class="px-card py-10 bg-light-lm px-20 bg-very-dark title-bkgd">
<p class="font-size-12 m-0 mb-5">
<?php print(localize('privacy.complaint.text.1')); ?>
</p>

View File

@@ -39,8 +39,6 @@ These files are required for the website to work properly !<br>
* `/resources/FontAwesomePro/`
* HalfMoon v1.1.1
* `/resources/HalfMoon/`
* Quantum
* `/resources/Quantum/`
### Optional
These files are leftovers from previous projects and might be required somewhere.
@@ -48,5 +46,3 @@ These files are leftovers from previous projects and might be required somewhere
* `/resources/ChartJs/`
* Material Icons
* `/resources/GoogleFonts/MaterialIcons/`
* Icons8 - Color & Fluent private packs
* `/resources/Icons8/`

View File

@@ -4,6 +4,11 @@
src: url("/resources/Quantum/Quantum.otf") format('opentype');
}
/* Preventing images from being saved with the right-click */
img.no-save {
pointer-events: none;
}
/* Background for the main container and its cards */
div#body-overlay {
position: absolute;
@@ -91,11 +96,20 @@ div#body-overlay {
image-rendering: pixelated;
}
hr, hr.dark-mode {
hr, hr.dark-mde, hr.subtle {
background-color: rgba(0, 0, 0, 0) !important;
background: rgb(93,95,97);
background: radial-gradient(circle, rgba(83,85,87,0.8) 0%, rgba(65,67,69,0.65) 75%, rgba(17,20,23,0) 100%);
opacity: 0.75;
opacity: 0.1;
margin-top: 5px;
margin-bottom: 5px;
}
img.content-search-image {
max-height: 128px;
}
div.content-tag-container a:not(:first-child) {
margin-left: 10px;
}
@media (min-width: 993px) {
@@ -113,6 +127,22 @@ hr, hr.dark-mode {
}
}
/* Custom dynamic sizing */
.w-lg-p90 {
width: 95% !important;
}
@media (max-width: 992px) {
.w-95 {
width: 95% !important;
}
}
@media (min-width: 993px) {
.w-lg-p90 {
width: 90% !important;
}
}
/* Trash */
/*.lang-icon {
height: var(--base-line-height);

Binary file not shown.

View File

@@ -0,0 +1,2 @@
# Quantum Font
100% font made by [sesohq](https://www.sesohq.com/) over at [sesohq.sellfy.store](https://sesohq.sellfy.store/p/3enu/).