Compare commits

..

9 Commits

Author SHA1 Message Date
7d2293208f Apple PWA fixes 2025-02-07 16:23:35 -05:00
db58927df1 wip 2025-02-07 16:13:32 -05:00
ed2651cfc8 share display fix 2025-02-06 04:52:11 -05:00
8af7b16694 Merge branch 'main' into thetempusproject-com 2025-02-06 02:53:25 -05:00
2ac64e5c49 image update 2025-02-05 22:46:24 -05:00
5590592ebe composer bump 2025-02-05 22:05:19 -05:00
b65dda1328 composer changes 2025-02-05 20:56:39 -05:00
f928e87141 bugfixes 2025-02-05 20:45:41 -05:00
a6b241c7f0 add qr-codes, share button, and pwa config toggle 2025-02-05 19:39:54 -05:00
17 changed files with 294 additions and 268 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
* text=auto eol=lf

2
.gitignore vendored
View File

@ -65,4 +65,4 @@ vendor/canary/logs/*
components/* components/*
mailhog.log mailhog.log
uploads/* uploads/*
images/qr-codes/ images/qr-codes/*

View File

@ -8,6 +8,14 @@
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
*/ */
.context-popover {
background-color: #383838;
color: white;
}
.context-popover .popover-header {
background-color: #2c2c2c;
}
.context-main-border { .context-main-border {
border-color: #f5f5f5!important; border-color: #f5f5f5!important;

View File

@ -8,6 +8,40 @@
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
*/ */
.facebook {
border-color: #1877F2 !important; /* Facebook Blue */
color: #1877F2 !important;
}
.x-black {
border-color: #000000 !important; /* X (formerly Twitter) Black */
color: #000000 !important;
}
.reddit {
border-color: #FF4500 !important; /* Reddit Orange */
color: #FF4500 !important;
}
.opera {
border-color: #FF1B2D !important; /* Opera Red */
color: #FF1B2D !important;
}
.firefox {
border-color: #FF7139 !important; /* Firefox Orange */
color: #FF7139 !important;
}
.edge {
border-color: #0078D7 !important; /* Microsoft Edge Blue */
color: #0078D7 !important;
}
.safari {
border-color: #0B78E3 !important; /* Safari Blue */
color: #0B78E3 !important;
}
.context-main-border { .context-main-border {
border-color: #1e1e1e!important; border-color: #1e1e1e!important;

View File

@ -8,8 +8,13 @@
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
*/ */
/**
* Progressive Web-App
**/
let deferredPrompt; let deferredPrompt;
const installPrompt = document.getElementById("install-prompt"); const installPrompt = document.getElementById("install-prompt");
const chromeMessage = document.getElementById("chrome-install-message");
const iosMessage = document.getElementById("ios-install-message");
const installButton = document.getElementById("install-button"); const installButton = document.getElementById("install-button");
const dismissButton = document.querySelector("#install-prompt .btn-close"); const dismissButton = document.querySelector("#install-prompt .btn-close");
@ -19,9 +24,27 @@ if (!localStorage.getItem("pwaInstallDismissed")) {
event.preventDefault(); event.preventDefault();
deferredPrompt = event; deferredPrompt = event;
installPrompt.classList.remove("d-none"); installPrompt.classList.remove("d-none");
installPrompt.classList.add("d-block"); // Show the prompt installPrompt.classList.add("d-block"); // Show the alert
chromeMessage.classList.remove("d-none");
chromeMessage.classList.add("d-block"); // Show the prompt
}); });
if ( isIos() && ! isInStandaloneMode() ) {
installPrompt.classList.remove("d-none");
installPrompt.classList.add("d-block"); // Show the alert
iosMessage.classList.remove("d-none");
iosMessage.classList.add("d-block"); // Show the prompt
} }
}
// ios REQUIRES a service worker
if ( 'serviceWorker' in navigator ) {
navigator.serviceWorker.register('app/js/sw.js')
.then(() => console.log('Service Worker Registered'));
}
// self.addEventListener('install', () => self.skipWaiting());
// self.addEventListener('activate', () => self.clients.claim());
// self.addEventListener('fetch', () => {}); // No file interception
// Handle Install Button Click // Handle Install Button Click
if ( installButton ) { if ( installButton ) {
@ -65,6 +88,14 @@ if (localStorage.getItem("pwaInstallDismissed")) {
} }
} }
function isIos() {
return /iphone|ipad|ipod/i.test(navigator.userAgent);
}
function isInStandaloneMode() {
return window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone;
}
/** /**
* Automatically selects/de-selects all check boxes associated with that field * Automatically selects/de-selects all check boxes associated with that field
**/ **/
@ -272,6 +303,8 @@ document.querySelectorAll('[data-bs-toggle="collapse"]').forEach(button => {
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')); var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) { var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl); return new bootstrap.Popover(popoverTriggerEl, {
customClass: 'context-popover',
});
}); });
}); });

1
app/js/sw.js Normal file
View File

@ -0,0 +1 @@
self.addEventListener('fetch', () => {});

View File

@ -59,7 +59,7 @@ class Sessions extends DatabaseModel {
public function checkSession( $sessionID ) { public function checkSession( $sessionID ) {
$user = new User; $user = new User;
// @todo lets put this on some sort of realistic checking regime other than check everything every time // @todo lets put this on some sort of realistic checking regime other than check everything every time
if ( $sessionID == false ) { if ( empty( $sessionID ) ) {
Debug::log( 'sessionID false' ); Debug::log( 'sessionID false' );
return false; return false;
} }

View File

@ -28,7 +28,12 @@
{AUTHOR} {AUTHOR}
{ROBOT} {ROBOT}
<link rel="icon" href="{ROOT_URL}images/favicon.ico" sizes="32x32"> <link rel="icon" href="{ROOT_URL}images/favicon.ico" sizes="32x32">
<!-- Apple PWA -->
<link rel="apple-touch-icon" href="{ROOT_URL}images/apple-touch-icon.png"><!-- 180×180 --> <link rel="apple-touch-icon" href="{ROOT_URL}images/apple-touch-icon.png"><!-- 180×180 -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="apple-mobile-web-app-title" content="{SITENAME}">
<!-- PWA -->
<link rel="manifest" href="{ROOT_URL}manifest.webmanifest"> <link rel="manifest" href="{ROOT_URL}manifest.webmanifest">
<!-- Required CSS --> <!-- Required CSS -->
<!-- <link rel="stylesheet" href="{FONT_AWESOME_URL}fontawesome.min.css" crossorigin="anonymous"> --> <!-- <link rel="stylesheet" href="{FONT_AWESOME_URL}fontawesome.min.css" crossorigin="anonymous"> -->

View File

@ -56,8 +56,8 @@
<div id="collapse3" class="accordion-collapse collapse" aria-labelledby="generalHeading3" data-bs-parent="#generalAccordion"> <div id="collapse3" class="accordion-collapse collapse" aria-labelledby="generalHeading3" data-bs-parent="#generalAccordion">
<div class="accordion-body context-main context-other-bg" id="general3"> <div class="accordion-body context-main context-other-bg" id="general3">
<span class="text-lead text-primary"> <span class="text-lead text-primary">
{SITENAME} is open source and available free of charge through <a href="{ROOT_URL}libraries/ttp/git" class="text-decoration-none">GitLab</a> and <a href="{ROOT_URL}libraries/ttp/packagist" class="text-decoration-none">Packagist</a>. {SITENAME} is open source and available free of charge through <a href="{ROOT_URL}libraries/ttp/git" class="text-decoration-none context-main">GitLab</a> and <a href="{ROOT_URL}libraries/ttp/packagist" class="text-decoration-none context-main">Packagist</a>.
The developer behind the project is <a href="https://joeykimsey.com/" class="text-decoration-none">Joey Kimsey</a> and he can be contacted through his website for development services. The developer behind the project is <a href="https://joeykimsey.com/" class="text-decoration-none context-main">Joey Kimsey</a> and he can be contacted through his website for development services.
</span> </span>
</div> </div>
</div> </div>

View File

@ -3,13 +3,13 @@
<div class="px-4 mt-2"> <div class="px-4 mt-2">
<!-- Share Button (visible only on medium+ screens) --> <!-- Share Button (visible only on medium+ screens) -->
<button type="button" class="btn btn-outline-primary" <button type="button" class="btn btn-outline-primary"
data-bs-toggle="popover" data-bs-html="true" title="Share" data-bs-toggle="popover" data-bs-html="true" title="Share" data-bs-placement="top" data-bs-trigger="focus"
data-bs-content=' data-bs-content='
{QR_CODE} {QR_CODE}
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<a href="https://www.reddit.com/submit?type=LINK&url={CURRENT_URL_SAFE}" target="_blank" class="mx-1 btn btn-sm btn-outline-danger"><i class="fa-brands fa-fw fa-reddit"></i></a> <a href="https://www.reddit.com/submit?type=LINK&url={CURRENT_URL_SAFE}" target="_blank" class="mx-1 btn btn-lg reddit"><i class="fa-brands fa-fw fa-reddit"></i></a>
<a href="https://www.facebook.com/sharer/sharer.php?u={CURRENT_URL_SAFE}" target="_blank" class="mx-1 btn btn-sm btn-outline-primary"><i class="fa-brands fa-fw fa-facebook"></i></a> <a href="https://www.facebook.com/sharer/sharer.php?u={CURRENT_URL_SAFE}" target="_blank" class="mx-1 btn btn-lg facebook"><i class="fa-brands fa-fw fa-facebook"></i></a>
<a href="https://twitter.com/intent/tweet?url={CURRENT_URL_SAFE}" target="_blank" class="mx-1 btn btn-sm btn-outline-info"><i class="fa-brands fa-fw fa-x"></i></a> <a href="https://x.com/intent/tweet?url={CURRENT_URL_SAFE}" target="_blank" class="mx-1 btn btn-lg x-black"><i class="fa-brands fa-fw fa-x"></i></a>
</div>'> </div>'>
Share Share
</button> </button>

View File

@ -101,21 +101,21 @@
<i class="fa-solid fa-inbox fa-3x"></i> <i class="fa-solid fa-inbox fa-3x"></i>
<div class="ps-3"> <div class="ps-3">
<h3 class="fw-bold mb-0 fs-4">Subscribe</h3> <h3 class="fw-bold mb-0 fs-4">Subscribe</h3>
<p>Building your list should always be a part of your application and services and it made as simple as can be with this plugin.</p> <p>Building your list should always be a part of your business. Our subscriptions plugin makes it as simple as can be.</p>
</div> </div>
</div> </div>
<div class="col d-flex align-items-start"> <div class="col d-flex align-items-start">
<i class="fa-solid fa-list fa-3x"></i> <i class="fa-solid fa-list fa-3x"></i>
<div class="ps-3"> <div class="ps-3">
<h3 class="fw-bold mb-0 fs-4">WIP (Work in Progress)</h3> <h3 class="fw-bold mb-0 fs-4">WIP (Work in Progress)</h3>
<p>A light-weight and simple plugin that allows you to keep a running list of works in progress to share with site visitors..</p> <p>A light-weight and simple plugin that allows you to keep a running list of work in progress to share with site visitors.</p>
</div> </div>
</div> </div>
<div class="col d-flex align-items-start"> <div class="col d-flex align-items-start">
<i class="fa-brands fa-stripe fa-3x"></i> <i class="fa-brands fa-stripe fa-3x"></i>
<div class="ps-3"> <div class="ps-3">
<h3 class="fw-bold mb-0 fs-4">Memberships / Payments</h3> <h3 class="fw-bold mb-0 fs-4">Memberships / Payments</h3>
<p>Our membership plugin integrates with Stripe to allow incredibly simple membership setup and can be easily expanded to sell any of your products.</p> <p>Our membership plugin integrates with Stripe to allow incredibly simple membership setup and can be easily expanded to sell any of your products. We also have a donations integration with stripe to allow you to accept donation right from the app.</p>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,11 +1,18 @@
<div class="container pt-4 d-none" id="install-prompt"> <div class="container pt-4 d-none" id="install-prompt">
<div class="row"> <div class="row">
<div class="alert alert-success alert-dismissible w-100" role="alert"> <div class="alert alert-success alert-dismissible w-100 d-none" role="alert" id="chrome-install-message">
<div class="d-flex justify-content-between align-items-center"> <div class="d-flex justify-content-between align-items-center">
{SITENAME} is now available as a Progressive Web App, click the button to install now. {SITENAME} is now available as a Progressive Web App, click the button to install now.
<button class="btn btn-md btn-outline-primary mx-2" id="install-button">Install App</button> <button class="btn btn-md btn-outline-primary mx-2" id="install-button">Install App</button>
</div> </div>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div> </div>
<div class="alert alert-success alert-dismissible w-100 d-none" role="alert" id="ios-install-message">
<div class="d-flex justify-content-between align-items-center">
{SITENAME} is now available as a Progressive-Web-App, tap the share icon and then "Add to Home Screen".
</div>
<img src="/images/share-icon.png" class="iimg-fluid">
</div>
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
<p class="text-center text-lg-start"> <p class="text-center text-lg-start">
At this time, the best recommendation available is to contact us for more information. At this time, the best recommendation available is to contact us for more information.
The site here is actively maintained so feel free to utilize any of our available resources for contact. The site here is actively maintained so feel free to utilize any of our available resources for contact.
In addition to the site here, you can contact the lead developer (me) directly through <a href="https://joeykimsey.com">JoeyKimsey.com</a>. In addition to the site here, you can contact the lead developer (me) directly through <a href="https://joeykimsey.com" class="text-decoration-none">JoeyKimsey.com</a>.
</p> </p>
<p class="text-muted text-center text-lg-start"> <p class="text-muted text-center text-lg-start">
Right now, this entire system was built and managed by myself. As stated, I have used my own version of this for years, but translating it to a publicly available product is not a 1-to-1 job. There may be bugs or issues encountered while you use the product. I can't guarantee a fix for every need in every case immediately, but I do actively keep track of bugs and work hard to ensure everyone has a great experience using the app. Right now, this entire system was built and managed by myself. As stated, I have used my own version of this for years, but translating it to a publicly available product is not a 1-to-1 job. There may be bugs or issues encountered while you use the product. I can't guarantee a fix for every need in every case immediately, but I do actively keep track of bugs and work hard to ensure everyone has a great experience using the app.

View File

@ -25,7 +25,7 @@
{ {
"endroid/qr-code": "^6.0", "endroid/qr-code": "^6.0",
"fortawesome/font-awesome": "4.7", "fortawesome/font-awesome": "4.7",
"thetempusproject/bedrock": "1.1.5", "thetempusproject/bedrock": "1.1.6",
"thetempusproject/canary": "1.0.9", "thetempusproject/canary": "1.0.9",
"thetempusproject/houdini": "2.0.5", "thetempusproject/houdini": "2.0.5",
"twbs/bootstrap": "5.2.3" "twbs/bootstrap": "5.2.3"

433
composer.lock generated
View File

@ -4,37 +4,151 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "b54d2da34f833481cff28144a669b2aa", "content-hash": "10e7ce6b744b46b0c10780dbd7786ecb",
"packages": [ "packages": [
{ {
"name": "components/jquery", "name": "bacon/bacon-qr-code",
"version": "1.9.1", "version": "v3.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/components/jquery.git", "url": "https://github.com/Bacon/BaconQrCode.git",
"reference": "ae5c0c13cf163b3751ce55f9d9e97c1ba7ff796d" "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/components/jquery/zipball/ae5c0c13cf163b3751ce55f9d9e97c1ba7ff796d", "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/f9cc1f52b5a463062251d666761178dbdb6b544f",
"reference": "ae5c0c13cf163b3751ce55f9d9e97c1ba7ff796d", "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"robloach/component-installer": "*" "dasprid/enum": "^1.0.3",
"ext-iconv": "*",
"php": "^8.1"
}, },
"type": "component", "require-dev": {
"extra": { "phly/keep-a-changelog": "^2.12",
"component": { "phpunit/phpunit": "^10.5.11 || 11.0.4",
"files": [ "spatie/phpunit-snapshot-assertions": "^5.1.5",
"jquery.min.js", "squizlabs/php_codesniffer": "^3.9"
"jquery-migrate.js", },
"jquery-migrate.min.js", "suggest": {
"jquery.min.map" "ext-imagick": "to generate QR code images"
},
"type": "library",
"autoload": {
"psr-4": {
"BaconQrCode\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-2-Clause"
], ],
"scripts": [ "authors": [
"jquery.js" {
] "name": "Ben Scholzen 'DASPRiD'",
"email": "mail@dasprids.de",
"homepage": "https://dasprids.de/",
"role": "Developer"
}
],
"description": "BaconQrCode is a QR code generator for PHP.",
"homepage": "https://github.com/Bacon/BaconQrCode",
"support": {
"issues": "https://github.com/Bacon/BaconQrCode/issues",
"source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.1"
},
"time": "2024-10-01T13:55:55+00:00"
},
{
"name": "dasprid/enum",
"version": "1.0.6",
"source": {
"type": "git",
"url": "https://github.com/DASPRiD/Enum.git",
"reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8dfd07c6d2cf31c8da90c53b83c026c7696dda90",
"reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90",
"shasum": ""
},
"require": {
"php": ">=7.1 <9.0"
},
"require-dev": {
"phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11",
"squizlabs/php_codesniffer": "*"
},
"type": "library",
"autoload": {
"psr-4": {
"DASPRiD\\Enum\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-2-Clause"
],
"authors": [
{
"name": "Ben Scholzen 'DASPRiD'",
"email": "mail@dasprids.de",
"homepage": "https://dasprids.de/",
"role": "Developer"
}
],
"description": "PHP 7.1 enum implementation",
"keywords": [
"enum",
"map"
],
"support": {
"issues": "https://github.com/DASPRiD/Enum/issues",
"source": "https://github.com/DASPRiD/Enum/tree/1.0.6"
},
"time": "2024-08-09T14:30:48+00:00"
},
{
"name": "endroid/qr-code",
"version": "6.0.3",
"source": {
"type": "git",
"url": "https://github.com/endroid/qr-code.git",
"reference": "bdbb06e767efe9abe3c00461662b4059a6cd0b55"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/endroid/qr-code/zipball/bdbb06e767efe9abe3c00461662b4059a6cd0b55",
"reference": "bdbb06e767efe9abe3c00461662b4059a6cd0b55",
"shasum": ""
},
"require": {
"bacon/bacon-qr-code": "^3.0",
"php": "^8.2"
},
"require-dev": {
"endroid/quality": "dev-main",
"ext-gd": "*",
"khanamiryan/qrcode-detector-decoder": "^2.0.2",
"setasign/fpdf": "^1.8.2"
},
"suggest": {
"ext-gd": "Enables you to write PNG images",
"khanamiryan/qrcode-detector-decoder": "Enables you to use the image validator",
"roave/security-advisories": "Makes sure package versions with known security issues are not installed",
"setasign/fpdf": "Enables you to use the PDF writer"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "6.x-dev"
}
},
"autoload": {
"psr-4": {
"Endroid\\QrCode\\": "src/"
} }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -43,20 +157,30 @@
], ],
"authors": [ "authors": [
{ {
"name": "John Resig", "name": "Jeroen van den Enden",
"email": "jeresig@gmail.com" "email": "info@endroid.nl"
} }
], ],
"description": "jQuery JavaScript Library", "description": "Endroid QR Code",
"homepage": "http://jquery.com", "homepage": "https://github.com/endroid/qr-code",
"keywords": [
"code",
"endroid",
"php",
"qr",
"qrcode"
],
"support": { "support": {
"forum": "http://forum.jquery.com", "issues": "https://github.com/endroid/qr-code/issues",
"irc": "irc://irc.freenode.org/jquery", "source": "https://github.com/endroid/qr-code/tree/6.0.3"
"issues": "http://bugs.jquery.com",
"source": "https://github.com/jquery/jquery",
"wiki": "http://docs.jquery.com/"
}, },
"time": "2014-10-11T11:52:45+00:00" "funding": [
{
"url": "https://github.com/endroid",
"type": "github"
}
],
"time": "2024-10-29T19:28:52+00:00"
}, },
{ {
"name": "fortawesome/font-awesome", "name": "fortawesome/font-awesome",
@ -110,210 +234,19 @@
}, },
"time": "2016-10-24T15:52:54+00:00" "time": "2016-10-24T15:52:54+00:00"
}, },
{
"name": "kriswallsmith/assetic",
"version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/kriswallsmith/assetic.git",
"reference": "e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
"reference": "e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
"shasum": ""
},
"require": {
"php": ">=5.3.1",
"symfony/process": "~2.1|~3.0"
},
"conflict": {
"twig/twig": "<1.27"
},
"require-dev": {
"leafo/lessphp": "^0.3.7",
"leafo/scssphp": "~0.1",
"meenie/javascript-packer": "^1.1",
"mrclay/minify": "<2.3",
"natxet/cssmin": "3.0.4",
"patchwork/jsqueeze": "~1.0|~2.0",
"phpunit/phpunit": "~4.8 || ^5.6",
"psr/log": "~1.0",
"ptachoire/cssembed": "~1.0",
"symfony/phpunit-bridge": "~2.7|~3.0",
"twig/twig": "~1.23|~2.0",
"yfix/packager": "dev-master"
},
"suggest": {
"leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
"leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
"leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin",
"patchwork/jsqueeze": "Assetic provides the integration with the JSqueeze JavaScript compressor",
"ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
"twig/twig": "Assetic provides the integration with the Twig templating engine"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
}
},
"autoload": {
"files": [
"src/functions.php"
],
"psr-0": {
"Assetic": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Kris Wallsmith",
"email": "kris.wallsmith@gmail.com",
"homepage": "http://kriswallsmith.net/"
}
],
"description": "Asset Management for PHP",
"homepage": "https://github.com/kriswallsmith/assetic",
"keywords": [
"assets",
"compression",
"minification"
],
"support": {
"issues": "https://github.com/kriswallsmith/assetic/issues",
"source": "https://github.com/kriswallsmith/assetic/tree/master"
},
"time": "2016-11-11T18:43:20+00:00"
},
{
"name": "robloach/component-installer",
"version": "0.0.12",
"source": {
"type": "git",
"url": "https://github.com/RobLoach/component-installer.git",
"reference": "1864f25db21fc173e02a359f646acd596c1b0460"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/RobLoach/component-installer/zipball/1864f25db21fc173e02a359f646acd596c1b0460",
"reference": "1864f25db21fc173e02a359f646acd596c1b0460",
"shasum": ""
},
"require": {
"kriswallsmith/assetic": "1.*",
"php": ">=5.3.2"
},
"require-dev": {
"composer/composer": "1.*"
},
"type": "composer-installer",
"extra": {
"class": "ComponentInstaller\\Installer"
},
"autoload": {
"psr-0": {
"ComponentInstaller": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Rob Loach",
"email": "robloach@gmail.com",
"homepage": "http://robloach.net"
}
],
"description": "Allows installation of Components via Composer.",
"support": {
"issues": "https://github.com/RobLoach/component-installer/issues",
"source": "https://github.com/RobLoach/component-installer/tree/master"
},
"abandoned": "oomphinc/composer-installers-extender",
"time": "2013-08-31T23:46:48+00:00"
},
{
"name": "symfony/process",
"version": "v3.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/b8648cf1d5af12a44a51d07ef9bf980921f15fca",
"reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Process\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v3.4.47"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2020-10-24T10:57:07+00:00"
},
{ {
"name": "thetempusproject/bedrock", "name": "thetempusproject/bedrock",
"version": "1.1.1", "version": "1.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.thetempusproject.com/the-tempus-project/bedrock", "url": "https://git.thetempusproject.com/the-tempus-project/bedrock",
"reference": "bcd73d58f9d7df41b5ec0f12871ff15cfcc215ae" "reference": "cfa53c9e7058f78559ee8615431645c7eef972f8"
}, },
"require": { "require": {
"php": ">=8.1.0", "php": ">=8.1.0",
"thetempusproject/canary": "1.0.6", "thetempusproject/canary": "1.0.9",
"thetempusproject/hermes": "1.0.3", "thetempusproject/hermes": "1.0.5",
"thetempusproject/houdini": "2.0.2" "thetempusproject/houdini": "2.0.5"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -339,20 +272,22 @@
} }
], ],
"description": "Bedrock is intended as the core functionality used by The Tempus Project: a rapid prototyping framework. This library utilizes the MVC architecture in addition to a custom templating engine designed to make building web applications simple.", "description": "Bedrock is intended as the core functionality used by The Tempus Project: a rapid prototyping framework. This library utilizes the MVC architecture in addition to a custom templating engine designed to make building web applications simple.",
"homepage": "https://git.thetempusproject.com/the-tempus-project/bedrock", "homepage": "https://thetempusproject.com/libraries/bedrock",
"keywords": [ "keywords": [
"framework", "framework",
"mvc" "mvc",
"php",
"thetempusproject"
], ],
"time": "2025-01-27T05:07:05+00:00" "time": "2025-02-06T03:02:46+00:00"
}, },
{ {
"name": "thetempusproject/canary", "name": "thetempusproject/canary",
"version": "1.0.6", "version": "1.0.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.thetempusproject.com/the-tempus-project/canary", "url": "https://git.thetempusproject.com/the-tempus-project/canary",
"reference": "44b2ad688cff933964ec2ff50b408d94c7f51e40" "reference": "77cef522e9919573836901eb82b59b20f453fb61"
}, },
"require": { "require": {
"php": ">=8.1.0" "php": ">=8.1.0"
@ -380,22 +315,23 @@
} }
], ],
"description": "Functionality for tracking, logging, and sending log messages to chrome for debugging.", "description": "Functionality for tracking, logging, and sending log messages to chrome for debugging.",
"homepage": "https://git.thetempusproject.com/the-tempus-project/canary", "homepage": "https://thetempusproject.com/libraries/canary",
"keywords": [ "keywords": [
"debugging", "debugging",
"logging",
"php", "php",
"thetempusproject", "thetempusproject",
"tools" "tools"
], ],
"time": "2025-01-22T01:39:34+00:00" "time": "2025-02-04T12:16:29+00:00"
}, },
{ {
"name": "thetempusproject/hermes", "name": "thetempusproject/hermes",
"version": "1.0.3", "version": "1.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.thetempusproject.com/the-tempus-project/hermes", "url": "https://git.thetempusproject.com/the-tempus-project/hermes",
"reference": "4b4e06a98f0f01695bda18de240bb3294d096ef4" "reference": "802581b1d2d70877ccc75d8954b33efcc05d9371"
}, },
"require": { "require": {
"php": ">=8.1.0" "php": ">=8.1.0"
@ -422,28 +358,29 @@
"role": "Lead Developer" "role": "Lead Developer"
} }
], ],
"description": "Php functions that aid in routing and redirecting; requests and responses.", "description": "This library handles redirects, provides a common backbone for routing, and can handle autoloading in cases where composer is unavailable.",
"homepage": "https://git.thetempusproject.com/the-tempus-project/hermes", "homepage": "https://thetempusproject.com/libraries/hermes",
"keywords": [ "keywords": [
"autoloader",
"php", "php",
"routing", "routing",
"thetempusproject", "thetempusproject",
"tools" "tools"
], ],
"time": "2025-01-22T01:43:15+00:00" "time": "2025-02-02T23:22:15+00:00"
}, },
{ {
"name": "thetempusproject/houdini", "name": "thetempusproject/houdini",
"version": "2.0.2", "version": "2.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.thetempusproject.com/the-tempus-project/houdini", "url": "https://git.thetempusproject.com/the-tempus-project/houdini",
"reference": "fb027a4ebc327e709ad3da29a4cf112894c2b7e6" "reference": "2c7538471ab1f900048ccdb2c71d6bf2bee975e0"
}, },
"require": { "require": {
"php": ">=8.1.0", "php": ">=8.1.0",
"thetempusproject/canary": "1.0.6", "thetempusproject/canary": "1.0.9",
"thetempusproject/hermes": "1.0.3" "thetempusproject/hermes": "1.0.5"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -466,15 +403,15 @@
"role": "Lead Developer" "role": "Lead Developer"
} }
], ],
"description": "Php functions that aid in creating, managing, and displaying frontend components.", "description": "This library handles creating, managing, and displaying frontend components.",
"homepage": "https://git.thetempusproject.com/the-tempus-project/houdini", "homepage": "https://thetempusproject.com/libraries/houdini",
"keywords": [ "keywords": [
"frontend", "frontend",
"php", "php",
"thetempusproject", "thetempusproject",
"tools" "tools"
], ],
"time": "2025-01-27T05:02:14+00:00" "time": "2025-02-04T12:19:25+00:00"
}, },
{ {
"name": "twbs/bootstrap", "name": "twbs/bootstrap",
@ -530,10 +467,10 @@
"packages-dev": [], "packages-dev": [],
"aliases": [], "aliases": [],
"minimum-stability": "dev", "minimum-stability": "dev",
"stability-flags": [], "stability-flags": {},
"prefer-stable": true, "prefer-stable": true,
"prefer-lowest": false, "prefer-lowest": false,
"platform": [], "platform": {},
"platform-dev": [], "platform-dev": {},
"plugin-api-version": "2.3.0" "plugin-api-version": "2.6.0"
} }

BIN
images/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
images/share-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB