first commit
This commit is contained in:
BIN
@eaDir/composer.json@SynoEAStream
Normal file
BIN
@eaDir/composer.json@SynoEAStream
Normal file
Binary file not shown.
BIN
@eaDir/composer.lock@SynoEAStream
Normal file
BIN
@eaDir/composer.lock@SynoEAStream
Normal file
Binary file not shown.
BIN
@eaDir/html@SynoEAStream
Normal file
BIN
@eaDir/html@SynoEAStream
Normal file
Binary file not shown.
BIN
@eaDir/logs@SynoEAStream
Normal file
BIN
@eaDir/logs@SynoEAStream
Normal file
Binary file not shown.
BIN
@eaDir/src@SynoEAStream
Normal file
BIN
@eaDir/src@SynoEAStream
Normal file
Binary file not shown.
BIN
@eaDir/templates@SynoEAStream
Normal file
BIN
@eaDir/templates@SynoEAStream
Normal file
Binary file not shown.
BIN
@eaDir/vendor@SynoEAStream
Normal file
BIN
@eaDir/vendor@SynoEAStream
Normal file
Binary file not shown.
13
composer.json
Normal file
13
composer.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"name": "root/www",
|
||||||
|
"type": "project",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Root\\Www\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"twig/twig": "^3.23",
|
||||||
|
"phpmailer/phpmailer": "^7.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
415
composer.lock
generated
Normal file
415
composer.lock
generated
Normal file
@@ -0,0 +1,415 @@
|
|||||||
|
{
|
||||||
|
"_readme": [
|
||||||
|
"This file locks the dependencies of your project to a known state",
|
||||||
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
|
"This file is @generated automatically"
|
||||||
|
],
|
||||||
|
"content-hash": "e5f1c6b416ac285f5b8dd20eca907994",
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "phpmailer/phpmailer",
|
||||||
|
"version": "v7.0.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||||
|
"reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088",
|
||||||
|
"reference": "ebf1655bd5b99b3f97e1a3ec0a69e5f4cd7ea088",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-ctype": "*",
|
||||||
|
"ext-filter": "*",
|
||||||
|
"ext-hash": "*",
|
||||||
|
"php": ">=5.5.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
|
||||||
|
"doctrine/annotations": "^1.2.6 || ^1.13.3",
|
||||||
|
"php-parallel-lint/php-console-highlighter": "^1.0.0",
|
||||||
|
"php-parallel-lint/php-parallel-lint": "^1.3.2",
|
||||||
|
"phpcompatibility/php-compatibility": "^10.0.0@dev",
|
||||||
|
"squizlabs/php_codesniffer": "^3.13.5",
|
||||||
|
"yoast/phpunit-polyfills": "^1.0.4"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication",
|
||||||
|
"directorytree/imapengine": "For uploading sent messages via IMAP, see gmail example",
|
||||||
|
"ext-imap": "Needed to support advanced email address parsing according to RFC822",
|
||||||
|
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
|
||||||
|
"ext-openssl": "Needed for secure SMTP sending and DKIM signing",
|
||||||
|
"greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication",
|
||||||
|
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
||||||
|
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
||||||
|
"psr/log": "For optional PSR-3 debug logging",
|
||||||
|
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)",
|
||||||
|
"thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"PHPMailer\\PHPMailer\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPL-2.1-only"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Marcus Bointon",
|
||||||
|
"email": "phpmailer@synchromedia.co.uk"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jim Jagielski",
|
||||||
|
"email": "jimjag@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Andy Prevost",
|
||||||
|
"email": "codeworxtech@users.sourceforge.net"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Brent R. Matzelle"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||||
|
"source": "https://github.com/PHPMailer/PHPMailer/tree/v7.0.2"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/Synchro",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2026-01-09T18:02:33+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/deprecation-contracts",
|
||||||
|
"version": "v3.6.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||||
|
"reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
|
||||||
|
"reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.1"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"thanks": {
|
||||||
|
"url": "https://github.com/symfony/contracts",
|
||||||
|
"name": "symfony/contracts"
|
||||||
|
},
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "3.6-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"function.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nicolas Grekas",
|
||||||
|
"email": "p@tchwork.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A generic function and convention to trigger deprecation notices",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
|
||||||
|
},
|
||||||
|
"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": "2024-09-25T14:21:43+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/polyfill-ctype",
|
||||||
|
"version": "v1.33.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||||
|
"reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
|
||||||
|
"reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.2"
|
||||||
|
},
|
||||||
|
"provide": {
|
||||||
|
"ext-ctype": "*"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-ctype": "For best performance"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"thanks": {
|
||||||
|
"url": "https://github.com/symfony/polyfill",
|
||||||
|
"name": "symfony/polyfill"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"bootstrap.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Polyfill\\Ctype\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Gert de Pagter",
|
||||||
|
"email": "BackEndTea@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony polyfill for ctype functions",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"compatibility",
|
||||||
|
"ctype",
|
||||||
|
"polyfill",
|
||||||
|
"portable"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/nicolas-grekas",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2024-09-09T11:45:10+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/polyfill-mbstring",
|
||||||
|
"version": "v1.33.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||||
|
"reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
|
||||||
|
"reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-iconv": "*",
|
||||||
|
"php": ">=7.2"
|
||||||
|
},
|
||||||
|
"provide": {
|
||||||
|
"ext-mbstring": "*"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-mbstring": "For best performance"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"thanks": {
|
||||||
|
"url": "https://github.com/symfony/polyfill",
|
||||||
|
"name": "symfony/polyfill"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"bootstrap.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nicolas Grekas",
|
||||||
|
"email": "p@tchwork.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony polyfill for the Mbstring extension",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"compatibility",
|
||||||
|
"mbstring",
|
||||||
|
"polyfill",
|
||||||
|
"portable",
|
||||||
|
"shim"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/nicolas-grekas",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2024-12-23T08:48:59+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "twig/twig",
|
||||||
|
"version": "v3.23.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/twigphp/Twig.git",
|
||||||
|
"reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
|
||||||
|
"reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.1.0",
|
||||||
|
"symfony/deprecation-contracts": "^2.5|^3",
|
||||||
|
"symfony/polyfill-ctype": "^1.8",
|
||||||
|
"symfony/polyfill-mbstring": "^1.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpstan/phpstan": "^2.0",
|
||||||
|
"psr/container": "^1.0|^2.0",
|
||||||
|
"symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/Resources/core.php",
|
||||||
|
"src/Resources/debug.php",
|
||||||
|
"src/Resources/escaper.php",
|
||||||
|
"src/Resources/string_loader.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Twig\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com",
|
||||||
|
"homepage": "http://fabien.potencier.org",
|
||||||
|
"role": "Lead Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Twig Team",
|
||||||
|
"role": "Contributors"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Armin Ronacher",
|
||||||
|
"email": "armin.ronacher@active-4.com",
|
||||||
|
"role": "Project Founder"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Twig, the flexible, fast, and secure template language for PHP",
|
||||||
|
"homepage": "https://twig.symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"templating"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/twigphp/Twig/issues",
|
||||||
|
"source": "https://github.com/twigphp/Twig/tree/v3.23.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/twig/twig",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2026-01-23T21:00:41+00:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"packages-dev": [],
|
||||||
|
"aliases": [],
|
||||||
|
"minimum-stability": "stable",
|
||||||
|
"stability-flags": [],
|
||||||
|
"prefer-stable": false,
|
||||||
|
"prefer-lowest": false,
|
||||||
|
"platform": [],
|
||||||
|
"platform-dev": [],
|
||||||
|
"plugin-api-version": "2.6.0"
|
||||||
|
}
|
||||||
BIN
html/@eaDir/album.php@SynoEAStream
Normal file
BIN
html/@eaDir/album.php@SynoEAStream
Normal file
Binary file not shown.
BIN
html/@eaDir/assets@SynoEAStream
Normal file
BIN
html/@eaDir/assets@SynoEAStream
Normal file
Binary file not shown.
BIN
html/@eaDir/config.php@SynoEAStream
Normal file
BIN
html/@eaDir/config.php@SynoEAStream
Normal file
Binary file not shown.
BIN
html/@eaDir/index.php@SynoEAStream
Normal file
BIN
html/@eaDir/index.php@SynoEAStream
Normal file
Binary file not shown.
22
html/album.php
Normal file
22
html/album.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require '../vendor/autoload.php';
|
||||||
|
require './config.php';
|
||||||
|
|
||||||
|
$albumId = $_GET['id'];
|
||||||
|
|
||||||
|
print_r($album_id);
|
||||||
|
|
||||||
|
$images = immichRequest("$IMMICH_URL/api/albums/$albumId");
|
||||||
|
|
||||||
|
$loader = new \Twig\Loader\FilesystemLoader('../templates');
|
||||||
|
$twig = new \Twig\Environment($loader);
|
||||||
|
|
||||||
|
logData($_SERVER["HTTP_X_REAL_IP"] . ' - ' . 'Album ' . $images['albumName'] . ' wurde aufgerufen');
|
||||||
|
|
||||||
|
echo $twig->render('portfolio_album.twig', [
|
||||||
|
'images_data' => $images,
|
||||||
|
'immich_url' => $IMMICH_URL,
|
||||||
|
'web_url' => $WEB_URL,
|
||||||
|
'project_title' => $PROJECT_TITLE
|
||||||
|
]);
|
||||||
BIN
html/assets/@eaDir/css@SynoEAStream
Normal file
BIN
html/assets/@eaDir/css@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/@eaDir/fonts@SynoEAStream
Normal file
BIN
html/assets/@eaDir/fonts@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/@eaDir/js@SynoEAStream
Normal file
BIN
html/assets/@eaDir/js@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/css/@eaDir/bootstrap.css@SynoEAStream
Normal file
BIN
html/assets/css/@eaDir/bootstrap.css@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/css/@eaDir/bootstrap.min.css@SynoEAStream
Normal file
BIN
html/assets/css/@eaDir/bootstrap.min.css@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/css/@eaDir/font-awesome.css@SynoEAStream
Normal file
BIN
html/assets/css/@eaDir/font-awesome.css@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/css/@eaDir/font-awesome.min.css@SynoEAStream
Normal file
BIN
html/assets/css/@eaDir/font-awesome.min.css@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/css/@eaDir/style.css@SynoEAStream
Normal file
BIN
html/assets/css/@eaDir/style.css@SynoEAStream
Normal file
Binary file not shown.
8374
html/assets/css/bootstrap.css
vendored
Normal file
8374
html/assets/css/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
html/assets/css/bootstrap.min.css
vendored
Normal file
7
html/assets/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
2337
html/assets/css/font-awesome.css
vendored
Normal file
2337
html/assets/css/font-awesome.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
4
html/assets/css/font-awesome.min.css
vendored
Normal file
4
html/assets/css/font-awesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1091
html/assets/css/style.css
Normal file
1091
html/assets/css/style.css
Normal file
File diff suppressed because it is too large
Load Diff
BIN
html/assets/fonts/@eaDir/FontAwesome.otf@SynoEAStream
Normal file
BIN
html/assets/fonts/@eaDir/FontAwesome.otf@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.eot@SynoEAStream
Normal file
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.eot@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.svg@SynoEAStream
Normal file
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.svg@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.ttf@SynoEAStream
Normal file
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.ttf@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.woff2@SynoEAStream
Normal file
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.woff2@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.woff@SynoEAStream
Normal file
BIN
html/assets/fonts/@eaDir/fontawesome-webfont.woff@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/fonts/FontAwesome.otf
Normal file
BIN
html/assets/fonts/FontAwesome.otf
Normal file
Binary file not shown.
BIN
html/assets/fonts/fontawesome-webfont.eot
Normal file
BIN
html/assets/fonts/fontawesome-webfont.eot
Normal file
Binary file not shown.
2671
html/assets/fonts/fontawesome-webfont.svg
Normal file
2671
html/assets/fonts/fontawesome-webfont.svg
Normal file
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 434 KiB |
BIN
html/assets/fonts/fontawesome-webfont.ttf
Normal file
BIN
html/assets/fonts/fontawesome-webfont.ttf
Normal file
Binary file not shown.
BIN
html/assets/fonts/fontawesome-webfont.woff
Normal file
BIN
html/assets/fonts/fontawesome-webfont.woff
Normal file
Binary file not shown.
BIN
html/assets/fonts/fontawesome-webfont.woff2
Normal file
BIN
html/assets/fonts/fontawesome-webfont.woff2
Normal file
Binary file not shown.
BIN
html/assets/js/@eaDir/custom.js@SynoEAStream
Normal file
BIN
html/assets/js/@eaDir/custom.js@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/js/@eaDir/jquery.js@SynoEAStream
Normal file
BIN
html/assets/js/@eaDir/jquery.js@SynoEAStream
Normal file
Binary file not shown.
BIN
html/assets/js/@eaDir/valde.min.js@SynoEAStream
Normal file
BIN
html/assets/js/@eaDir/valde.min.js@SynoEAStream
Normal file
Binary file not shown.
19
html/assets/js/custom.js
Normal file
19
html/assets/js/custom.js
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
(function($) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// Main Navigation
|
||||||
|
$( '.hamburger-menu' ).on( 'click', function() {
|
||||||
|
$(this).toggleClass('close');
|
||||||
|
$('.site-branding').toggleClass('hide');
|
||||||
|
$('.site-navigation').toggleClass('show');
|
||||||
|
$('.site-header').toggleClass('no-shadow');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Scroll to Next Section
|
||||||
|
$( '.scroll-down' ).click(function() {
|
||||||
|
$( 'html, body' ).animate({
|
||||||
|
scrollTop: $( '.scroll-down' ).offset().top + 100
|
||||||
|
}, 800 );
|
||||||
|
});
|
||||||
|
})(jQuery);
|
||||||
6
html/assets/js/jquery.js
vendored
Normal file
6
html/assets/js/jquery.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
html/assets/js/valde.min.js
vendored
Normal file
1
html/assets/js/valde.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
44
html/config.php
Normal file
44
html/config.php
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$PROJECT_TITLE = 'Webgallery';
|
||||||
|
|
||||||
|
$WEB_URL = 'https://www.mschwab.net';
|
||||||
|
$IMMICH_URL = 'https://immich.mschwab.net';
|
||||||
|
$IMMICH_API_KEY = '5lm5xdIcSeGdNY6sOYljV1Am8BqB3Bbqe19PUcIkzzo';
|
||||||
|
|
||||||
|
function immichRequest($url) {
|
||||||
|
global $IMMICH_API_KEY;
|
||||||
|
$ch = curl_init($url);
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||||
|
"x-api-key: $IMMICH_API_KEY",
|
||||||
|
"Content-Type: application/json"
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
return json_decode($response, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
function logData(string $message, ?array $data = null) {
|
||||||
|
$logDir = '../logs';
|
||||||
|
$today = date('Y-m-d');
|
||||||
|
$now = date('Y-m-d H:i:s');
|
||||||
|
|
||||||
|
$date = new DateTime("now", new DateTimeZone('Europe/Zurich'));
|
||||||
|
|
||||||
|
if (!is_dir($logDir)) {
|
||||||
|
mkdir($logDir, 0777, true);
|
||||||
|
}
|
||||||
|
$logFile = $logDir . '/log-' . $date->format('Y-m-d') . '.log';
|
||||||
|
|
||||||
|
$logData = '[' . $date->format('Y-m-d H:i:s') . ']' . ' - ' . $message . "\n";
|
||||||
|
|
||||||
|
if ($data) {
|
||||||
|
$dataString = print_r($data, true) . "\n";
|
||||||
|
$logData .= $dataString;
|
||||||
|
}
|
||||||
|
|
||||||
|
file_put_contents($logFile, $logData, FILE_APPEND);
|
||||||
|
}
|
||||||
22
html/index.php
Normal file
22
html/index.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require '../vendor/autoload.php';
|
||||||
|
require './config.php';
|
||||||
|
|
||||||
|
$albums = immichRequest("$IMMICH_URL/api/albums");
|
||||||
|
|
||||||
|
foreach($albums as $key => $value) {
|
||||||
|
if($value['albumName'] == 'Camera') {
|
||||||
|
unset($albums[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$loader = new \Twig\Loader\FilesystemLoader('../templates');
|
||||||
|
$twig = new \Twig\Environment($loader);
|
||||||
|
|
||||||
|
echo $twig->render('portfolio.twig', [
|
||||||
|
'albums_data' => $albums,
|
||||||
|
'immich_url' => $IMMICH_URL,
|
||||||
|
'web_url' => $WEB_URL,
|
||||||
|
'project_title' => $PROJECT_TITLE
|
||||||
|
]);
|
||||||
BIN
logs/@eaDir/log-2026-02-28.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-02-28.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-02.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-02.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-03.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-03.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-04.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-04.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-05.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-05.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-06.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-06.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-07.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-07.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-08.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-08.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-09.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-09.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-10.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-10.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-11.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-11.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-12.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-12.log@SynoEAStream
Normal file
Binary file not shown.
BIN
logs/@eaDir/log-2026-03-13.log@SynoEAStream
Normal file
BIN
logs/@eaDir/log-2026-03-13.log@SynoEAStream
Normal file
Binary file not shown.
30
logs/log-2026-02-28.log
Normal file
30
logs/log-2026-02-28.log
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
[2026-02-28 12:46:24] - 172.24.0.1 - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-02-28 12:48:17] - 172.24.0.1 - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-02-28 12:48:18] - 172.24.0.1 - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-02-28 12:48:19] - 172.24.0.1 - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-02-28 12:52:15] - 65.18.160.83 - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-02-28 12:58:37] - 65.18.160.83 - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-02-28 12:58:51] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 12:59:25] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 12:59:26] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 12:59:26] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 12:59:26] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 12:59:36] - 65.18.160.83 - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-02-28 13:02:21] - 65.18.160.83 - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-02-28 13:12:00] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 13:12:02] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 13:12:30] - 65.18.160.83 - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-02-28 13:12:43] - 65.18.160.83 - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-02-28 13:12:56] - 65.18.160.83 - Album New York wurde aufgerufen
|
||||||
|
[2026-02-28 13:13:50] - 213.55.220.28 - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-02-28 13:14:29] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 13:15:33] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 13:15:58] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 14:56:20] - 65.18.160.83 - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-02-28 15:29:53] - 49.51.243.156 - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-02-28 15:40:27] - 43.165.189.206 - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-02-28 15:44:12] - 65.18.160.83 - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-02-28 15:46:09] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 16:44:36] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 16:45:42] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-02-28 17:10:34] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
3
logs/log-2026-03-02.log
Normal file
3
logs/log-2026-03-02.log
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[2026-03-02 00:11:46] - 65.18.160.83 - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-02 00:12:16] - 65.18.160.83 - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-02 22:36:03] - 65.18.160.83 - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
52
logs/log-2026-03-03.log
Normal file
52
logs/log-2026-03-03.log
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
[2026-03-03 00:04:31] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-03 00:04:32] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-03 00:04:35] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-03 00:04:41] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-03 00:07:00] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 00:07:02] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 00:15:06] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 00:25:47] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 00:26:24] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 00:26:27] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 00:26:28] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 00:26:30] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 01:29:01] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-03 05:11:36] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-03 05:21:19] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-03 05:31:27] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-03 05:41:28] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-03 05:51:12] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-03 06:18:18] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-03 06:18:21] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-03 07:22:15] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-03 07:31:05] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 07:41:16] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-03 08:19:00] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-03 11:18:01] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-03 11:27:48] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-03 11:36:36] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-03 11:47:18] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-03 11:57:01] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-03 13:18:23] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-03 13:27:37] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-03 14:11:21] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-03 14:11:22] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-03 14:12:22] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-03 14:12:31] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-03 14:12:43] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-03 14:12:49] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-03 14:20:20] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-03 14:20:40] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-03 14:21:25] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-03 14:21:48] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-03 14:22:08] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-03 14:22:08] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-03 17:09:35] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-03 17:17:12] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-03 17:28:18] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-03 17:38:42] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-03 17:48:22] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-03 23:27:43] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-03 23:39:22] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-03 23:49:29] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-03 23:58:45] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
28
logs/log-2026-03-04.log
Normal file
28
logs/log-2026-03-04.log
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
[2026-03-04 00:08:30] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-04 11:07:37] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:05] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:11] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:13] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:15] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:17] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:18] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:22] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:24] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:25] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:26] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:27] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:28] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:29] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:29] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:30] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:30] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:31] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:32] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:32] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:32] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:33] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:34] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:34] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:35] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:35] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-04 12:37:36] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
61
logs/log-2026-03-05.log
Normal file
61
logs/log-2026-03-05.log
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
[2026-03-05 00:12:14] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-05 00:12:26] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-05 00:12:39] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-05 00:12:51] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-05 00:13:10] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-05 00:13:11] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-05 00:13:12] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-05 00:13:13] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-05 00:13:15] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-05 00:15:32] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-05 00:15:48] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-05 04:44:20] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-05 04:44:23] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-05 05:29:32] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-05 06:30:23] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-05 07:18:40] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-05 08:14:08] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-05 11:34:04] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-05 12:16:32] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-05 13:03:47] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-05 13:07:16] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-05 15:36:56] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-05 16:06:08] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-05 16:29:04] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-05 16:53:39] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-05 16:53:50] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-05 16:54:07] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-05 16:54:30] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-05 17:41:54] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-05 17:41:58] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-05 17:42:02] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-05 18:13:56] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-05 18:23:24] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-05 18:33:20] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-05 18:42:05] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-05 18:51:14] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-05 18:59:43] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-05 19:09:10] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-05 19:19:20] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-05 19:20:22] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-05 19:31:31] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-05 19:42:15] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-05 19:51:35] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-05 20:00:38] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-05 20:11:49] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-05 20:16:26] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-05 20:22:28] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-05 20:32:59] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-05 20:43:05] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-05 20:56:18] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-05 21:06:14] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-05 21:18:04] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-05 21:27:51] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-05 21:38:46] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-05 21:48:48] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-05 21:53:15] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-05 21:58:20] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-05 22:08:35] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-05 22:23:52] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-05 22:39:45] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-05 22:55:50] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
6
logs/log-2026-03-06.log
Normal file
6
logs/log-2026-03-06.log
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[2026-03-06 01:37:46] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-06 02:25:02] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-06 02:25:06] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-06 06:36:34] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-06 07:43:02] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-06 09:25:02] - - Album Formula-E wurde aufgerufen
|
||||||
62
logs/log-2026-03-07.log
Normal file
62
logs/log-2026-03-07.log
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
[2026-03-07 07:45:44] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-07 07:45:45] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-07 07:45:45] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-07 07:45:46] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 07:45:46] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 07:45:47] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-07 07:45:47] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-07 07:45:48] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-07 07:45:48] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-07 07:45:49] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-07 08:46:56] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-07 08:47:31] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-07 08:48:00] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 08:48:39] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 08:49:27] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-07 08:49:59] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-07 08:50:44] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-07 08:51:23] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-07 08:51:55] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-07 08:52:26] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-07 08:53:01] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-07 08:53:34] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-07 08:54:09] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-07 08:54:50] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 08:55:25] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-07 08:55:54] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 08:56:34] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-07 08:57:03] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-07 08:57:41] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-07 08:58:17] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-07 08:58:53] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-07 08:59:35] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-07 09:00:13] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-07 09:00:40] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-07 09:01:13] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-07 09:01:53] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:52] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:53] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:53] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:54] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:54] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:55] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:55] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:56] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:56] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:57] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:58] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:58] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:59] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:59] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-07 09:27:59] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:00] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:01] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:02] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:03] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:03] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:04] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:05] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:05] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:06] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:06] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-07 09:28:07] - - Album Basel wurde aufgerufen
|
||||||
9
logs/log-2026-03-08.log
Normal file
9
logs/log-2026-03-08.log
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[2026-03-08 09:18:43] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-08 09:18:44] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-08 09:18:45] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-08 09:18:46] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-08 09:18:47] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-08 09:18:48] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-08 09:18:49] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-08 09:18:50] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-08 09:18:51] - - Album New York wurde aufgerufen
|
||||||
40
logs/log-2026-03-09.log
Normal file
40
logs/log-2026-03-09.log
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[2026-03-09 01:22:19] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-09 01:22:21] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-09 01:22:23] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-09 01:22:25] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-09 01:22:28] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-09 01:22:31] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-09 01:22:34] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-09 01:22:40] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-09 01:22:44] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:39] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:41] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:42] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:44] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:46] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:48] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:49] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:51] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:53] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:55] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:57] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-09 01:35:59] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-09 01:36:00] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-09 01:36:02] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-09 01:36:04] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-09 01:36:06] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-09 01:36:07] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-09 19:18:00] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-09 19:26:26] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-09 19:37:07] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-09 20:36:36] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-09 20:56:49] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-09 21:07:53] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-09 21:17:05] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-09 22:26:36] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-09 22:37:11] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-09 22:46:59] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-09 23:23:53] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-09 23:33:55] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-09 23:42:54] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-09 23:53:30] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
60
logs/log-2026-03-10.log
Normal file
60
logs/log-2026-03-10.log
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
[2026-03-10 00:03:02] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:02] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:02] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:02] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:02] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:02] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:02] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:02] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:02] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:02] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:03] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:03] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:03] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:03] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:03] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:03] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-10 00:03:04] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-10 01:23:08] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-10 01:34:04] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-10 11:39:48] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-10 11:40:00] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-10 11:40:12] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-10 11:40:25] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-10 11:40:37] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-10 11:40:49] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-10 11:41:01] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-10 11:41:14] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-10 11:41:26] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-10 11:41:38] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-10 11:41:50] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-10 11:42:03] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-10 11:42:15] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-10 11:42:27] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-10 11:42:39] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-10 11:42:53] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-10 11:43:05] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-10 11:43:17] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-10 11:43:30] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-10 11:43:42] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-10 11:43:54] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-10 11:44:07] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-10 11:44:19] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-10 11:44:31] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-10 11:44:43] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-10 11:44:56] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-10 19:33:46] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-10 19:46:08] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-10 20:54:31] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-10 21:16:11] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-10 21:24:36] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-10 21:36:41] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
5
logs/log-2026-03-11.log
Normal file
5
logs/log-2026-03-11.log
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
[2026-03-11 02:47:23] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-11 02:57:08] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-11 03:08:30] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-11 03:16:55] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-11 21:44:58] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
41
logs/log-2026-03-12.log
Normal file
41
logs/log-2026-03-12.log
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
[2026-03-12 14:37:31] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-12 14:54:42] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:05] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:07] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:08] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:09] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:10] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:11] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:12] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:13] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:14] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:15] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:16] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:17] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:18] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:19] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:20] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:22] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:23] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:24] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:25] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:26] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:27] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:28] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:29] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:30] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:31] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-12 18:51:32] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-12 20:48:41] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-12 21:04:43] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-12 21:20:30] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-12 21:36:00] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-12 21:51:09] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-12 22:05:50] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-12 22:19:13] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-12 22:36:39] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-12 22:52:33] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-12 23:07:17] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-12 23:21:39] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-12 23:35:39] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-12 23:50:49] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
98
logs/log-2026-03-13.log
Normal file
98
logs/log-2026-03-13.log
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
[2026-03-13 00:04:15] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-13 00:16:51] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-13 00:29:50] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-13 00:45:23] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-13 01:00:03] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-13 01:15:14] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-13 01:25:52] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 01:25:57] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:00] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:02] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:03] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:05] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:07] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:08] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:09] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:11] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:12] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:13] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:14] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:14] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:15] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:16] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:16] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:17] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:17] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:18] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:18] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:19] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:19] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:20] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-13 01:26:21] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-13 01:29:51] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-13 01:44:09] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 01:58:25] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-13 05:25:23] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-13 05:53:57] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:19] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:22] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:24] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:27] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:29] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:36] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:40] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:42] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:43] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:48] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:50] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:54] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:55] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-13 09:37:59] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:03] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:04] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:06] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:07] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:09] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:13] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:15] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:16] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:19] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:20] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:22] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-13 09:38:23] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-13 11:56:01] - - Album Basel wurde aufgerufen
|
||||||
|
[2026-03-13 11:56:01] - - Album Oltimertreffen 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 11:56:35] - - Album Dählhölzli wurde aufgerufen
|
||||||
|
[2026-03-13 11:56:35] - - Album Vitra wurde aufgerufen
|
||||||
|
[2026-03-13 11:56:43] - - Album Rasenrennen 2022 - Icherswil wurde aufgerufen
|
||||||
|
[2026-03-13 11:56:43] - - Album Drachenboot wurde aufgerufen
|
||||||
|
[2026-03-13 11:56:43] - - Album Schloss Lenzburg wurde aufgerufen
|
||||||
|
[2026-03-13 11:57:35] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-13 11:57:55] - - Album ShootMeet wurde aufgerufen
|
||||||
|
[2026-03-13 11:57:55] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-13 11:57:55] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-13 11:58:10] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-13 11:58:10] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-13 11:58:10] - - Album Ferrari 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 11:58:27] - - Album EHCB 2024 - 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 11:58:27] - - Album Trial Grand wurde aufgerufen
|
||||||
|
[2026-03-13 11:58:28] - - Album Motorrad Bargen wurde aufgerufen
|
||||||
|
[2026-03-13 11:59:27] - - Album Mittelalter Markt wurde aufgerufen
|
||||||
|
[2026-03-13 11:59:27] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
|
[2026-03-13 11:59:28] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-13 11:59:40] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-13 11:59:41] - - Album FindYourFlow 2025 wurde aufgerufen
|
||||||
|
[2026-03-13 11:59:41] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-13 11:59:45] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-13 11:59:46] - - Album Thun wurde aufgerufen
|
||||||
|
[2026-03-13 11:59:46] - - Album ActionWorkshop Lenzerheide wurde aufgerufen
|
||||||
|
[2026-03-13 22:44:43] - - Album Rasenrennen 2022 - Koppigen wurde aufgerufen
|
||||||
|
[2026-03-13 22:46:36] - - Album Rasenrennen 2023 wurde aufgerufen
|
||||||
|
[2026-03-13 22:47:10] - - Album Aikido Stage wurde aufgerufen
|
||||||
|
[2026-03-13 22:49:55] - - Album Fasnacht 2026 - Biel wurde aufgerufen
|
||||||
|
[2026-03-13 22:51:14] - - Album FKS Tession wurde aufgerufen
|
||||||
|
[2026-03-13 22:51:17] - - Album Formula-E wurde aufgerufen
|
||||||
|
[2026-03-13 22:51:24] - - Album Lichtfestival wurde aufgerufen
|
||||||
|
[2026-03-13 22:51:38] - - Album New York wurde aufgerufen
|
||||||
|
[2026-03-13 22:51:58] - - Album Ballenberg wurde aufgerufen
|
||||||
|
[2026-03-13 22:52:22] - - Album Fasnacht 2026 - Solothurn wurde aufgerufen
|
||||||
BIN
templates/@eaDir/base.twig@SynoEAStream
Normal file
BIN
templates/@eaDir/base.twig@SynoEAStream
Normal file
Binary file not shown.
BIN
templates/@eaDir/portfolio.twig@SynoEAStream
Normal file
BIN
templates/@eaDir/portfolio.twig@SynoEAStream
Normal file
Binary file not shown.
BIN
templates/@eaDir/portfolio_album.twig@SynoEAStream
Normal file
BIN
templates/@eaDir/portfolio_album.twig@SynoEAStream
Normal file
Binary file not shown.
41
templates/base.twig
Normal file
41
templates/base.twig
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
{% block title %}{% endblock %}
|
||||||
|
|
||||||
|
<!-- Required meta tags -->
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
|
<!-- Bootstrap CSS -->
|
||||||
|
<link rel="stylesheet" href="../assets/css/bootstrap.min.css">
|
||||||
|
|
||||||
|
<!-- FontAwesome CSS -->
|
||||||
|
<link rel="stylesheet" href="../assets/css/font-awesome.min.css">
|
||||||
|
|
||||||
|
<!-- Styles -->
|
||||||
|
<link rel="stylesheet" href="../assets/css/style.css">
|
||||||
|
|
||||||
|
<!-- GLightbox -->
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/glightbox/dist/css/glightbox.min.css">
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/glightbox/dist/js/glightbox.min.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
{% block album %}{% endblock %}
|
||||||
|
{% block portfolio %}{% endblock %}
|
||||||
|
|
||||||
|
<script type='text/javascript' src='../assets/js/jquery.js'></script>
|
||||||
|
<script type='text/javascript' src='../assets/js/custom.js'></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var lightbox = GLightbox();
|
||||||
|
lightbox.on('open', (target) => {
|
||||||
|
console.log('lightbox opened');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
41
templates/portfolio.twig
Normal file
41
templates/portfolio.twig
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{% extends 'base.twig' %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
<title>{{ project_title }}</title>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block portfolio %}
|
||||||
|
<div class="outer-container">
|
||||||
|
<div class="container portfolio-page">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<ul class="breadcrumbs flex align-items-center">
|
||||||
|
<li><a href="#">{{ project_title }}</a></li>
|
||||||
|
<li>{{ albums.albumName }}</li>
|
||||||
|
</ul><!-- .breadcrumbs -->
|
||||||
|
</div><!-- .col -->
|
||||||
|
</div><!-- .row -->
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
{% for albums in albums_data %}
|
||||||
|
<div class="col-12 col-md-6 col-lg-3">
|
||||||
|
<div class="portfolio-content">
|
||||||
|
<figure>
|
||||||
|
<img class="fixed-img" src="{{ immich_url }}/api/assets/{{ albums.albumThumbnailAssetId }}/thumbnail" alt="{{ albums.albumName }}">
|
||||||
|
</figure>
|
||||||
|
|
||||||
|
<div class="entry-content flex flex-column align-items-center justify-content-center">
|
||||||
|
<h3><a href="{{ web_url }}/album.php?id={{ albums.id }}">{{ albums.albumName }}</a></h3>
|
||||||
|
|
||||||
|
<ul class="flex flex-wrap justify-content-center">
|
||||||
|
<li><a href="#">{{ albums.description }}</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div><!-- .entry-content -->
|
||||||
|
</div><!-- .portfolio-content -->
|
||||||
|
</div><!-- .col -->
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div><!-- .container -->
|
||||||
|
</div><!-- .outer-container -->
|
||||||
|
{% endblock %}
|
||||||
49
templates/portfolio_album.twig
Normal file
49
templates/portfolio_album.twig
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{% extends 'base.twig' %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
<title>{{ project_title }} - {{ images_data.albumName }}</title>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block album %}
|
||||||
|
<div class="outer-container">
|
||||||
|
<div class="container portfolio-page">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<ul class="breadcrumbs flex align-items-center">
|
||||||
|
<li><a href="{{ web_url }}">{{ project_title }}</a></li>
|
||||||
|
<li>{{ images_data.albumName }}</li>
|
||||||
|
</ul><!-- .breadcrumbs -->
|
||||||
|
</div><!-- .col -->
|
||||||
|
</div><!-- .row -->
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
{% for image in images_data.assets %}
|
||||||
|
<div class="col-12 col-md-6 col-lg-3">
|
||||||
|
<div class="portfolio-content">
|
||||||
|
<figure>
|
||||||
|
|
||||||
|
<a href="{{ immich_url }}/api/assets/{{ image.id }}/original"
|
||||||
|
class="glightbox"
|
||||||
|
data-gallery="immich-gallery"
|
||||||
|
data-type="image"
|
||||||
|
data-effect="fade"
|
||||||
|
data-width="auto"
|
||||||
|
data-height="90%"
|
||||||
|
data-zoomable="false"
|
||||||
|
data-draggable="true">
|
||||||
|
<img class="fixed-img" src="{{ immich_url }}/api/assets/{{ image.id }}/thumbnail" alt="Test">
|
||||||
|
</a>
|
||||||
|
<ul class="flex flex-wrap justify-content-center">
|
||||||
|
<li><a href="#">{{ albums.description }}</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</figure>
|
||||||
|
</div><!-- .portfolio-content -->
|
||||||
|
</div><!-- .col -->
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><!-- .container -->
|
||||||
|
</div><!-- .outer-container -->
|
||||||
|
{% endblock %}
|
||||||
BIN
vendor/@eaDir/autoload.php@SynoEAStream
vendored
Normal file
BIN
vendor/@eaDir/autoload.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/@eaDir/composer@SynoEAStream
vendored
Normal file
BIN
vendor/@eaDir/composer@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/@eaDir/phpmailer@SynoEAStream
vendored
Normal file
BIN
vendor/@eaDir/phpmailer@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/@eaDir/symfony@SynoEAStream
vendored
Normal file
BIN
vendor/@eaDir/symfony@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/@eaDir/twig@SynoEAStream
vendored
Normal file
BIN
vendor/@eaDir/twig@SynoEAStream
vendored
Normal file
Binary file not shown.
25
vendor/autoload.php
vendored
Normal file
25
vendor/autoload.php
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload.php @generated by Composer
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID < 50600) {
|
||||||
|
if (!headers_sent()) {
|
||||||
|
header('HTTP/1.1 500 Internal Server Error');
|
||||||
|
}
|
||||||
|
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
|
||||||
|
if (!ini_get('display_errors')) {
|
||||||
|
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||||
|
fwrite(STDERR, $err);
|
||||||
|
} elseif (!headers_sent()) {
|
||||||
|
echo $err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
trigger_error(
|
||||||
|
$err,
|
||||||
|
E_USER_ERROR
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
||||||
|
return ComposerAutoloaderInita0e7c9684a3cdd359adf1a4df26668d9::getLoader();
|
||||||
BIN
vendor/composer/@eaDir/ClassLoader.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/ClassLoader.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/InstalledVersions.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/InstalledVersions.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/LICENSE@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/LICENSE@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/autoload_classmap.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/autoload_classmap.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/autoload_files.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/autoload_files.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/autoload_namespaces.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/autoload_namespaces.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/autoload_psr4.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/autoload_psr4.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/autoload_real.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/autoload_real.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/autoload_static.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/autoload_static.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/installed.json@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/installed.json@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/installed.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/installed.php@SynoEAStream
vendored
Normal file
Binary file not shown.
BIN
vendor/composer/@eaDir/platform_check.php@SynoEAStream
vendored
Normal file
BIN
vendor/composer/@eaDir/platform_check.php@SynoEAStream
vendored
Normal file
Binary file not shown.
579
vendor/composer/ClassLoader.php
vendored
Normal file
579
vendor/composer/ClassLoader.php
vendored
Normal file
@@ -0,0 +1,579 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Composer.
|
||||||
|
*
|
||||||
|
* (c) Nils Adermann <naderman@naderman.de>
|
||||||
|
* Jordi Boggiano <j.boggiano@seld.be>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Composer\Autoload;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
||||||
|
*
|
||||||
|
* $loader = new \Composer\Autoload\ClassLoader();
|
||||||
|
*
|
||||||
|
* // register classes with namespaces
|
||||||
|
* $loader->add('Symfony\Component', __DIR__.'/component');
|
||||||
|
* $loader->add('Symfony', __DIR__.'/framework');
|
||||||
|
*
|
||||||
|
* // activate the autoloader
|
||||||
|
* $loader->register();
|
||||||
|
*
|
||||||
|
* // to enable searching the include path (eg. for PEAR packages)
|
||||||
|
* $loader->setUseIncludePath(true);
|
||||||
|
*
|
||||||
|
* In this example, if you try to use a class in the Symfony\Component
|
||||||
|
* namespace or one of its children (Symfony\Component\Console for instance),
|
||||||
|
* the autoloader will first look for the class under the component/
|
||||||
|
* directory, and it will then fallback to the framework/ directory if not
|
||||||
|
* found before giving up.
|
||||||
|
*
|
||||||
|
* This class is loosely based on the Symfony UniversalClassLoader.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||||
|
* @see https://www.php-fig.org/psr/psr-0/
|
||||||
|
* @see https://www.php-fig.org/psr/psr-4/
|
||||||
|
*/
|
||||||
|
class ClassLoader
|
||||||
|
{
|
||||||
|
/** @var \Closure(string):void */
|
||||||
|
private static $includeFile;
|
||||||
|
|
||||||
|
/** @var string|null */
|
||||||
|
private $vendorDir;
|
||||||
|
|
||||||
|
// PSR-4
|
||||||
|
/**
|
||||||
|
* @var array<string, array<string, int>>
|
||||||
|
*/
|
||||||
|
private $prefixLengthsPsr4 = array();
|
||||||
|
/**
|
||||||
|
* @var array<string, list<string>>
|
||||||
|
*/
|
||||||
|
private $prefixDirsPsr4 = array();
|
||||||
|
/**
|
||||||
|
* @var list<string>
|
||||||
|
*/
|
||||||
|
private $fallbackDirsPsr4 = array();
|
||||||
|
|
||||||
|
// PSR-0
|
||||||
|
/**
|
||||||
|
* List of PSR-0 prefixes
|
||||||
|
*
|
||||||
|
* Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
|
||||||
|
*
|
||||||
|
* @var array<string, array<string, list<string>>>
|
||||||
|
*/
|
||||||
|
private $prefixesPsr0 = array();
|
||||||
|
/**
|
||||||
|
* @var list<string>
|
||||||
|
*/
|
||||||
|
private $fallbackDirsPsr0 = array();
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
|
private $useIncludePath = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string, string>
|
||||||
|
*/
|
||||||
|
private $classMap = array();
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
|
private $classMapAuthoritative = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string, bool>
|
||||||
|
*/
|
||||||
|
private $missingClasses = array();
|
||||||
|
|
||||||
|
/** @var string|null */
|
||||||
|
private $apcuPrefix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string, self>
|
||||||
|
*/
|
||||||
|
private static $registeredLoaders = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string|null $vendorDir
|
||||||
|
*/
|
||||||
|
public function __construct($vendorDir = null)
|
||||||
|
{
|
||||||
|
$this->vendorDir = $vendorDir;
|
||||||
|
self::initializeIncludeClosure();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, list<string>>
|
||||||
|
*/
|
||||||
|
public function getPrefixes()
|
||||||
|
{
|
||||||
|
if (!empty($this->prefixesPsr0)) {
|
||||||
|
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
||||||
|
}
|
||||||
|
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, list<string>>
|
||||||
|
*/
|
||||||
|
public function getPrefixesPsr4()
|
||||||
|
{
|
||||||
|
return $this->prefixDirsPsr4;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return list<string>
|
||||||
|
*/
|
||||||
|
public function getFallbackDirs()
|
||||||
|
{
|
||||||
|
return $this->fallbackDirsPsr0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return list<string>
|
||||||
|
*/
|
||||||
|
public function getFallbackDirsPsr4()
|
||||||
|
{
|
||||||
|
return $this->fallbackDirsPsr4;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, string> Array of classname => path
|
||||||
|
*/
|
||||||
|
public function getClassMap()
|
||||||
|
{
|
||||||
|
return $this->classMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array<string, string> $classMap Class to filename map
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addClassMap(array $classMap)
|
||||||
|
{
|
||||||
|
if ($this->classMap) {
|
||||||
|
$this->classMap = array_merge($this->classMap, $classMap);
|
||||||
|
} else {
|
||||||
|
$this->classMap = $classMap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a set of PSR-0 directories for a given prefix, either
|
||||||
|
* appending or prepending to the ones previously set for this prefix.
|
||||||
|
*
|
||||||
|
* @param string $prefix The prefix
|
||||||
|
* @param list<string>|string $paths The PSR-0 root directories
|
||||||
|
* @param bool $prepend Whether to prepend the directories
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function add($prefix, $paths, $prepend = false)
|
||||||
|
{
|
||||||
|
$paths = (array) $paths;
|
||||||
|
if (!$prefix) {
|
||||||
|
if ($prepend) {
|
||||||
|
$this->fallbackDirsPsr0 = array_merge(
|
||||||
|
$paths,
|
||||||
|
$this->fallbackDirsPsr0
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->fallbackDirsPsr0 = array_merge(
|
||||||
|
$this->fallbackDirsPsr0,
|
||||||
|
$paths
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$first = $prefix[0];
|
||||||
|
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||||
|
$this->prefixesPsr0[$first][$prefix] = $paths;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($prepend) {
|
||||||
|
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||||
|
$paths,
|
||||||
|
$this->prefixesPsr0[$first][$prefix]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||||
|
$this->prefixesPsr0[$first][$prefix],
|
||||||
|
$paths
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a set of PSR-4 directories for a given namespace, either
|
||||||
|
* appending or prepending to the ones previously set for this namespace.
|
||||||
|
*
|
||||||
|
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||||
|
* @param list<string>|string $paths The PSR-4 base directories
|
||||||
|
* @param bool $prepend Whether to prepend the directories
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addPsr4($prefix, $paths, $prepend = false)
|
||||||
|
{
|
||||||
|
$paths = (array) $paths;
|
||||||
|
if (!$prefix) {
|
||||||
|
// Register directories for the root namespace.
|
||||||
|
if ($prepend) {
|
||||||
|
$this->fallbackDirsPsr4 = array_merge(
|
||||||
|
$paths,
|
||||||
|
$this->fallbackDirsPsr4
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->fallbackDirsPsr4 = array_merge(
|
||||||
|
$this->fallbackDirsPsr4,
|
||||||
|
$paths
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||||
|
// Register directories for a new namespace.
|
||||||
|
$length = strlen($prefix);
|
||||||
|
if ('\\' !== $prefix[$length - 1]) {
|
||||||
|
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||||
|
}
|
||||||
|
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||||
|
$this->prefixDirsPsr4[$prefix] = $paths;
|
||||||
|
} elseif ($prepend) {
|
||||||
|
// Prepend directories for an already registered namespace.
|
||||||
|
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||||
|
$paths,
|
||||||
|
$this->prefixDirsPsr4[$prefix]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
// Append directories for an already registered namespace.
|
||||||
|
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||||
|
$this->prefixDirsPsr4[$prefix],
|
||||||
|
$paths
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a set of PSR-0 directories for a given prefix,
|
||||||
|
* replacing any others previously set for this prefix.
|
||||||
|
*
|
||||||
|
* @param string $prefix The prefix
|
||||||
|
* @param list<string>|string $paths The PSR-0 base directories
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function set($prefix, $paths)
|
||||||
|
{
|
||||||
|
if (!$prefix) {
|
||||||
|
$this->fallbackDirsPsr0 = (array) $paths;
|
||||||
|
} else {
|
||||||
|
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a set of PSR-4 directories for a given namespace,
|
||||||
|
* replacing any others previously set for this namespace.
|
||||||
|
*
|
||||||
|
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||||
|
* @param list<string>|string $paths The PSR-4 base directories
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setPsr4($prefix, $paths)
|
||||||
|
{
|
||||||
|
if (!$prefix) {
|
||||||
|
$this->fallbackDirsPsr4 = (array) $paths;
|
||||||
|
} else {
|
||||||
|
$length = strlen($prefix);
|
||||||
|
if ('\\' !== $prefix[$length - 1]) {
|
||||||
|
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||||
|
}
|
||||||
|
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||||
|
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Turns on searching the include path for class files.
|
||||||
|
*
|
||||||
|
* @param bool $useIncludePath
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setUseIncludePath($useIncludePath)
|
||||||
|
{
|
||||||
|
$this->useIncludePath = $useIncludePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can be used to check if the autoloader uses the include path to check
|
||||||
|
* for classes.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function getUseIncludePath()
|
||||||
|
{
|
||||||
|
return $this->useIncludePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Turns off searching the prefix and fallback directories for classes
|
||||||
|
* that have not been registered with the class map.
|
||||||
|
*
|
||||||
|
* @param bool $classMapAuthoritative
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||||
|
{
|
||||||
|
$this->classMapAuthoritative = $classMapAuthoritative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should class lookup fail if not found in the current class map?
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isClassMapAuthoritative()
|
||||||
|
{
|
||||||
|
return $this->classMapAuthoritative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||||
|
*
|
||||||
|
* @param string|null $apcuPrefix
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setApcuPrefix($apcuPrefix)
|
||||||
|
{
|
||||||
|
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The APCu prefix in use, or null if APCu caching is not enabled.
|
||||||
|
*
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
public function getApcuPrefix()
|
||||||
|
{
|
||||||
|
return $this->apcuPrefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers this instance as an autoloader.
|
||||||
|
*
|
||||||
|
* @param bool $prepend Whether to prepend the autoloader or not
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function register($prepend = false)
|
||||||
|
{
|
||||||
|
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||||
|
|
||||||
|
if (null === $this->vendorDir) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($prepend) {
|
||||||
|
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
||||||
|
} else {
|
||||||
|
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||||
|
self::$registeredLoaders[$this->vendorDir] = $this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregisters this instance as an autoloader.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function unregister()
|
||||||
|
{
|
||||||
|
spl_autoload_unregister(array($this, 'loadClass'));
|
||||||
|
|
||||||
|
if (null !== $this->vendorDir) {
|
||||||
|
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads the given class or interface.
|
||||||
|
*
|
||||||
|
* @param string $class The name of the class
|
||||||
|
* @return true|null True if loaded, null otherwise
|
||||||
|
*/
|
||||||
|
public function loadClass($class)
|
||||||
|
{
|
||||||
|
if ($file = $this->findFile($class)) {
|
||||||
|
$includeFile = self::$includeFile;
|
||||||
|
$includeFile($file);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the path to the file where the class is defined.
|
||||||
|
*
|
||||||
|
* @param string $class The name of the class
|
||||||
|
*
|
||||||
|
* @return string|false The path if found, false otherwise
|
||||||
|
*/
|
||||||
|
public function findFile($class)
|
||||||
|
{
|
||||||
|
// class map lookup
|
||||||
|
if (isset($this->classMap[$class])) {
|
||||||
|
return $this->classMap[$class];
|
||||||
|
}
|
||||||
|
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (null !== $this->apcuPrefix) {
|
||||||
|
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
|
||||||
|
if ($hit) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$file = $this->findFileWithExtension($class, '.php');
|
||||||
|
|
||||||
|
// Search for Hack files if we are running on HHVM
|
||||||
|
if (false === $file && defined('HHVM_VERSION')) {
|
||||||
|
$file = $this->findFileWithExtension($class, '.hh');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null !== $this->apcuPrefix) {
|
||||||
|
apcu_add($this->apcuPrefix.$class, $file);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (false === $file) {
|
||||||
|
// Remember that this class does not exist.
|
||||||
|
$this->missingClasses[$class] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the currently registered loaders keyed by their corresponding vendor directories.
|
||||||
|
*
|
||||||
|
* @return array<string, self>
|
||||||
|
*/
|
||||||
|
public static function getRegisteredLoaders()
|
||||||
|
{
|
||||||
|
return self::$registeredLoaders;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $class
|
||||||
|
* @param string $ext
|
||||||
|
* @return string|false
|
||||||
|
*/
|
||||||
|
private function findFileWithExtension($class, $ext)
|
||||||
|
{
|
||||||
|
// PSR-4 lookup
|
||||||
|
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
||||||
|
|
||||||
|
$first = $class[0];
|
||||||
|
if (isset($this->prefixLengthsPsr4[$first])) {
|
||||||
|
$subPath = $class;
|
||||||
|
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||||
|
$subPath = substr($subPath, 0, $lastPos);
|
||||||
|
$search = $subPath . '\\';
|
||||||
|
if (isset($this->prefixDirsPsr4[$search])) {
|
||||||
|
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
||||||
|
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||||
|
if (file_exists($file = $dir . $pathEnd)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PSR-4 fallback dirs
|
||||||
|
foreach ($this->fallbackDirsPsr4 as $dir) {
|
||||||
|
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PSR-0 lookup
|
||||||
|
if (false !== $pos = strrpos($class, '\\')) {
|
||||||
|
// namespaced class name
|
||||||
|
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
||||||
|
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
||||||
|
} else {
|
||||||
|
// PEAR-like class name
|
||||||
|
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($this->prefixesPsr0[$first])) {
|
||||||
|
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
||||||
|
if (0 === strpos($class, $prefix)) {
|
||||||
|
foreach ($dirs as $dir) {
|
||||||
|
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PSR-0 fallback dirs
|
||||||
|
foreach ($this->fallbackDirsPsr0 as $dir) {
|
||||||
|
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PSR-0 include paths.
|
||||||
|
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private static function initializeIncludeClosure()
|
||||||
|
{
|
||||||
|
if (self::$includeFile !== null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scope isolated include.
|
||||||
|
*
|
||||||
|
* Prevents access to $this/self from included files.
|
||||||
|
*
|
||||||
|
* @param string $file
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
self::$includeFile = \Closure::bind(static function($file) {
|
||||||
|
include $file;
|
||||||
|
}, null, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
359
vendor/composer/InstalledVersions.php
vendored
Normal file
359
vendor/composer/InstalledVersions.php
vendored
Normal file
@@ -0,0 +1,359 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Composer.
|
||||||
|
*
|
||||||
|
* (c) Nils Adermann <naderman@naderman.de>
|
||||||
|
* Jordi Boggiano <j.boggiano@seld.be>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Composer;
|
||||||
|
|
||||||
|
use Composer\Autoload\ClassLoader;
|
||||||
|
use Composer\Semver\VersionParser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is copied in every Composer installed project and available to all
|
||||||
|
*
|
||||||
|
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||||
|
*
|
||||||
|
* To require its presence, you can require `composer-runtime-api ^2.0`
|
||||||
|
*
|
||||||
|
* @final
|
||||||
|
*/
|
||||||
|
class InstalledVersions
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var mixed[]|null
|
||||||
|
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
|
||||||
|
*/
|
||||||
|
private static $installed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool|null
|
||||||
|
*/
|
||||||
|
private static $canGetVendors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array[]
|
||||||
|
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||||
|
*/
|
||||||
|
private static $installedByVendor = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||||
|
*
|
||||||
|
* @return string[]
|
||||||
|
* @psalm-return list<string>
|
||||||
|
*/
|
||||||
|
public static function getInstalledPackages()
|
||||||
|
{
|
||||||
|
$packages = array();
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
$packages[] = array_keys($installed['versions']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (1 === \count($packages)) {
|
||||||
|
return $packages[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of all package names with a specific type e.g. 'library'
|
||||||
|
*
|
||||||
|
* @param string $type
|
||||||
|
* @return string[]
|
||||||
|
* @psalm-return list<string>
|
||||||
|
*/
|
||||||
|
public static function getInstalledPackagesByType($type)
|
||||||
|
{
|
||||||
|
$packagesByType = array();
|
||||||
|
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
foreach ($installed['versions'] as $name => $package) {
|
||||||
|
if (isset($package['type']) && $package['type'] === $type) {
|
||||||
|
$packagesByType[] = $name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $packagesByType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the given package is installed
|
||||||
|
*
|
||||||
|
* This also returns true if the package name is provided or replaced by another package
|
||||||
|
*
|
||||||
|
* @param string $packageName
|
||||||
|
* @param bool $includeDevRequirements
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (isset($installed['versions'][$packageName])) {
|
||||||
|
return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the given package satisfies a version constraint
|
||||||
|
*
|
||||||
|
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||||
|
*
|
||||||
|
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||||
|
*
|
||||||
|
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||||
|
* @param string $packageName
|
||||||
|
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||||
|
{
|
||||||
|
$constraint = $parser->parseConstraints((string) $constraint);
|
||||||
|
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||||
|
|
||||||
|
return $provided->matches($constraint);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||||
|
*
|
||||||
|
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||||
|
* whether a given version of a package is installed, and not just whether it exists
|
||||||
|
*
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string Version constraint usable with composer/semver
|
||||||
|
*/
|
||||||
|
public static function getVersionRanges($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$ranges = array();
|
||||||
|
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||||
|
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||||
|
}
|
||||||
|
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||||
|
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||||
|
}
|
||||||
|
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||||
|
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||||
|
}
|
||||||
|
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||||
|
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return implode(' || ', $ranges);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||||
|
*/
|
||||||
|
public static function getVersion($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed['versions'][$packageName]['version'];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||||
|
*/
|
||||||
|
public static function getPrettyVersion($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed['versions'][$packageName]['pretty_version'];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||||
|
*/
|
||||||
|
public static function getReference($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed['versions'][$packageName]['reference'];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||||
|
*/
|
||||||
|
public static function getInstallPath($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
|
||||||
|
*/
|
||||||
|
public static function getRootPackage()
|
||||||
|
{
|
||||||
|
$installed = self::getInstalled();
|
||||||
|
|
||||||
|
return $installed[0]['root'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the raw installed.php data for custom implementations
|
||||||
|
*
|
||||||
|
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||||
|
* @return array[]
|
||||||
|
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
|
||||||
|
*/
|
||||||
|
public static function getRawData()
|
||||||
|
{
|
||||||
|
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||||
|
|
||||||
|
if (null === self::$installed) {
|
||||||
|
// only require the installed.php file if this file is loaded from its dumped location,
|
||||||
|
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||||
|
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||||
|
self::$installed = include __DIR__ . '/installed.php';
|
||||||
|
} else {
|
||||||
|
self::$installed = array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::$installed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||||
|
*
|
||||||
|
* @return array[]
|
||||||
|
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||||
|
*/
|
||||||
|
public static function getAllRawData()
|
||||||
|
{
|
||||||
|
return self::getInstalled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lets you reload the static array from another file
|
||||||
|
*
|
||||||
|
* This is only useful for complex integrations in which a project needs to use
|
||||||
|
* this class but then also needs to execute another project's autoloader in process,
|
||||||
|
* and wants to ensure both projects have access to their version of installed.php.
|
||||||
|
*
|
||||||
|
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||||
|
* the data it needs from this class, then call reload() with
|
||||||
|
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||||
|
* the project in which it runs can then also use this class safely, without
|
||||||
|
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||||
|
*
|
||||||
|
* @param array[] $data A vendor/composer/installed.php data set
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
|
||||||
|
*/
|
||||||
|
public static function reload($data)
|
||||||
|
{
|
||||||
|
self::$installed = $data;
|
||||||
|
self::$installedByVendor = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array[]
|
||||||
|
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||||
|
*/
|
||||||
|
private static function getInstalled()
|
||||||
|
{
|
||||||
|
if (null === self::$canGetVendors) {
|
||||||
|
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||||
|
}
|
||||||
|
|
||||||
|
$installed = array();
|
||||||
|
|
||||||
|
if (self::$canGetVendors) {
|
||||||
|
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||||
|
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||||
|
$installed[] = self::$installedByVendor[$vendorDir];
|
||||||
|
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||||
|
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||||
|
$required = require $vendorDir.'/composer/installed.php';
|
||||||
|
$installed[] = self::$installedByVendor[$vendorDir] = $required;
|
||||||
|
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||||
|
self::$installed = $installed[count($installed) - 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null === self::$installed) {
|
||||||
|
// only require the installed.php file if this file is loaded from its dumped location,
|
||||||
|
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||||
|
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||||
|
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||||
|
$required = require __DIR__ . '/installed.php';
|
||||||
|
self::$installed = $required;
|
||||||
|
} else {
|
||||||
|
self::$installed = array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self::$installed !== array()) {
|
||||||
|
$installed[] = self::$installed;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed;
|
||||||
|
}
|
||||||
|
}
|
||||||
19
vendor/composer/LICENSE
vendored
Normal file
19
vendor/composer/LICENSE
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
Copyright (c) Nils Adermann, Jordi Boggiano
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is furnished
|
||||||
|
to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user