]> 91.132.146.200 Git - bibliotheca-php.git/commitdiff
some more php 8 syntax and cleanup
authorBanana <mail@bananas-playground.net>
Mon, 3 Oct 2022 09:13:27 +0000 (11:13 +0200)
committerBanana <mail@bananas-playground.net>
Mon, 3 Oct 2022 09:13:27 +0000 (11:13 +0200)
21 files changed:
CHANGELOG
documentation/requirements.txt
documentation/setup/bibliotheca.sql
documentation/setup/install.txt
webclient/api.php
webclient/config/config-imdbweb.php.default
webclient/config/config-musicbrainz.php.default
webclient/config/config.php.default
webclient/index.php
webclient/lib/gorenest.class.php
webclient/lib/managecollectionfields.class.php
webclient/lib/managecollections.class.php
webclient/lib/manageentry.class.php
webclient/lib/managetags.class.php
webclient/lib/musicbrainz.class.php
webclient/lib/possessed.class.php
webclient/lib/spectre.class.php
webclient/lib/summoner.class.php
webclient/lib/tentacle.class.php
webclient/lib/trite.class.php
webclient/setup/index.php

index 1c929dd30b23ca637b78c71dc6a5c2748d42b57c..1ac0549dab4c209825fb3b23f7040da9e654bd20 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,7 +3,8 @@
        * New field: artists - lookupmultiple field
        * Added setup process. See setup/install.txt for more details
        * Stats info page
-       * Some more PHP 7/8 syntax and support
+       * Some more PHP 8 syntax and support
+       * Needs PHP 8 as of this version
 
 1.2 - NyLeve's Falls 20210717
        * Updated requirements information
index eff02e751c050066817e9d3a69979e88427a0e15..184a6ba574e02680dc55692dcc05f9f5b9226972 100644 (file)
@@ -1,5 +1,5 @@
 * A Webserver (tested on Apache 2.4)
-* PHP 7+ with mysqli, mbstring, curl
+* PHP 8+ with mysqli, mbstring, curl
 * MySQL 8+; MariaDB 10.2/MySQL 8
 -- User with full rights on the Database. Including lock tables
 * At least 20MB webserver storage WITHOUT images
index fa1241dc756f09f330b20e6f3bd77508df03764a..165a03128c1be92df07988de22f9495f12aa9ac8 100644 (file)
@@ -145,7 +145,7 @@ CREATE TABLE `#REPLACEME#_sys_fields` (
 
 LOCK TABLES `#REPLACEME#_sys_fields` WRITE;
 /*!40000 ALTER TABLE `#REPLACEME#_sys_fields` DISABLE KEYS */;
-INSERT INTO `#REPLACEME#_sys_fields` VALUES (1,'title','Title','text','entryText','`title` varchar(128) NOT NULL, ADD FULLTEXT (`title`)','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(2,'description','Description','text3','entryText','`description` varchar(255) NULL DEFAULT NULL, ADD FULLTEXT (`description`)','',NULL,'string 255','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(3,'content','Main content','textarea','entryText','`content` text NULL DEFAULT NULL, ADD FULLTEXT (`content`)','',NULL,'mysql text','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(5,'tag','Tag','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(6,'category','Category','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(7,'publisher','Publisher','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(8,'developer','Developer','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(9,'platform','Platform','selection','entrySingleText','`platform` varchar(32) NULL DEFAULT NULL','','Nintendo,Nintendo Switch,PC,Playstation,Playstation 2,Playstation 3,Playstation 4,Playstation 5,Xbox,Xbox 360,Xbox One,Xbox One S,Xbox One X,Xbox Series S,Xbox Series X','One of Nintendo,Nintendo Switch,PC,Playstation,Playstation 2,Playstation 3,Playstation 4,Playstation 5,Xbox,Xbox 360,Xbox One,Xbox One S,Xbox One X,Xbox Series S,Xbox Series X','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(10,'storage','Storage','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(13,'rating','Rating','selection','entrySingleText','`rating` varchar(16) NULL DEFAULT NULL','','0/10,2/10,3/10,4/10,5/10,6/10,7/10,8/10,9/10,10/10','One of 0/10,2/10,3/10,4/10,5/10,6/10,7/10,8/10,9/10,10/10','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(14,'year','Year','year','entrySingleNum','`year` int(10) NULL, ADD INDEX (`year`)','',NULL,'int 10','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(15,'coverimage','Cover image','upload',NULL,NULL,'',NULL,'One file in $_FILES[uploads] of post','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(16,'attachment','Attachments','upload_multiple',NULL,NULL,'',NULL,'Multiple in $_FILES[uploads] of post','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(17,'os','Operating system and version','selection','entrySingleNum','`os` varchar(32) NULL DEFAULT NULL','','DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 99,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 8,Windows 10','One of DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 99,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 8,Windows 10','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(18,'actors','Actors','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(19,'countries','Countries','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(20,'directors','Directors','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(21,'genres','Genres','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(22,'languages','Languages','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(23,'runtime','Runtime (min)','number','entrySingleNum','`runtime` int(10) NULL, ADD INDEX (`runtime`)','',NULL,'int 10','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(24,'imdbrating','IMDB Rating','text','entrySingleText','`imdbrating` varchar(128) NULL DEFAULT NULL','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(25,'viewcount','View counter','number','entrySingleNum','`viewcount` int(10) NULL, ADD INDEX (`viewcount`)','',NULL,'int 10','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(26,'writers','Writers','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(27,'localizedTitle','localized Title','text','entryText','`localizedTitle` varchar(128) NULL DEFAULT NULL, ADD FULLTEXT (`localizedTitle`)','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(28,'gameEngine','Game Engine','text','entryText','`gameEngine` varchar(128) NOT NULL, ADD FULLTEXT (`gameEngine`)','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(29,'view','View','selection','entrySingleNum','`view` varchar(32) NULL DEFAULT NULL','','First person,Third person,Top-down','First person,Third person,Top-down','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(30,'sysReq','System Requirements','text3','entryText','`sysReq` varchar(255) NULL DEFAULT NULL, ADD FULLTEXT (`sysReq`)','',NULL,'string 255','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(31,'artist','Artist','text','entrySingleText','`artist` varchar(128) NULL DEFAULT NULL','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(32,'artists','Artists','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--');
+INSERT INTO `#REPLACEME#_sys_fields` VALUES (1,'title','Title','text','entryText','`title` varchar(128) NOT NULL, ADD FULLTEXT (`title`)','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(2,'description','Description','text3','entryText','`description` varchar(255) NULL DEFAULT NULL, ADD FULLTEXT (`description`)','',NULL,'string 255','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(3,'content','Main content','textarea','entryText','`content` text NULL DEFAULT NULL, ADD FULLTEXT (`content`)','',NULL,'mysql text','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(5,'tag','Tag','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(6,'category','Category','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(7,'publisher','Publisher','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(8,'developer','Developer','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(9,'platform','Platform','selection','entrySingleText','`platform` varchar(32) NULL DEFAULT NULL','','Nintendo,Nintendo Switch,PC,Playstation,Playstation 2,Playstation 3,Playstation 4,Playstation 5,Xbox,Xbox 360,Xbox One,Xbox One S,Xbox One X,Xbox Series S,Xbox Series X','One of Nintendo,Nintendo Switch,PC,Playstation,Playstation 2,Playstation 3,Playstation 4,Playstation 5,Xbox,Xbox 360,Xbox One,Xbox One S,Xbox One X,Xbox Series S,Xbox Series X','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(10,'storage','Storage','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(13,'rating','Rating','selection','entrySingleText','`rating` varchar(16) NULL DEFAULT NULL','','0/10,2/10,3/10,4/10,5/10,6/10,7/10,8/10,9/10,10/10','One of 0/10,2/10,3/10,4/10,5/10,6/10,7/10,8/10,9/10,10/10','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(14,'year','Year','year','entrySingleNum','`year` int(10) NULL, ADD INDEX (`year`)','',NULL,'int 10','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(15,'coverimage','Cover image','upload',NULL,NULL,'',NULL,'One file in $_FILES[uploads] of post','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(16,'attachment','Attachments','upload_multiple',NULL,NULL,'',NULL,'Multiple in $_FILES[uploads] of post','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(17,'os','Operating system and version','selection','entrySingleNum','`os` varchar(32) NULL DEFAULT NULL','','DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 99,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 7,Windows 8,Windows 10, Windows 11','One of DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 99,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 7 Windows 8,Windows 10, Windows 11','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(18,'actors','Actors','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(19,'countries','Countries','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(20,'directors','Directors','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(21,'genres','Genres','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(22,'languages','Languages','lookupmultiple','tag',NULL,'',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(23,'runtime','Runtime (min)','number','entrySingleNum','`runtime` int(10) NULL, ADD INDEX (`runtime`)','',NULL,'int 10','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(24,'imdbrating','IMDB Rating','text','entrySingleText','`imdbrating` varchar(128) NULL DEFAULT NULL','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(25,'viewcount','View counter','number','entrySingleNum','`viewcount` int(10) NULL, ADD INDEX (`viewcount`)','',NULL,'int 10','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(26,'writers','Writers','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(27,'localizedTitle','localized Title','text','entryText','`localizedTitle` varchar(128) NULL DEFAULT NULL, ADD FULLTEXT (`localizedTitle`)','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(28,'gameEngine','Game Engine','text','entryText','`gameEngine` varchar(128) NOT NULL, ADD FULLTEXT (`gameEngine`)','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(29,'view','View','selection','entrySingleNum','`view` varchar(32) NULL DEFAULT NULL','','First person,Third person,Top-down','First person,Third person,Top-down','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(30,'sysReq','System Requirements','text3','entryText','`sysReq` varchar(255) NULL DEFAULT NULL, ADD FULLTEXT (`sysReq`)','',NULL,'string 255','2021-08-08 10:52:44','2021-08-08 10:52:44',0,1,1,'rw-r--r--'),(31,'artist','Artist','text','entrySingleText','`artist` varchar(128) NULL DEFAULT NULL','',NULL,'string 128','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--'),(32,'artists','Artists','lookupmultiple','tag',NULL,'allowSpace',NULL,'string 64','2021-08-08 10:52:44','2021-08-08 10:52:44',NULL,1,1,'rw-r--r--');
 /*!40000 ALTER TABLE `#REPLACEME#_sys_fields` ENABLE KEYS */;
 UNLOCK TABLES;
 
index e1be19b9ac5d1fa283d081e36313bdf457c69f67..d67b3a3f3d7299172e6c1b466c348bbb927d0814 100644 (file)
@@ -4,18 +4,18 @@ unpacked files
 
 2. DB Setup
 Create a DB and choose a prefix (A _ is added automatically as separation) for your tables.
-Write down those values. You need them later
+Write down those values. You need them later.
 
 3. Move files
 Move the content of webclient folder to your webspace.
 
 4. File rights
-Make sure that systemout folder is read/write accessible with your webserver user. Recursive.
-Make sure that storage folder is read/write accessible with your webserver user. Recursive.
+Make sure that systemout folder is read/write accessible for your webserver user. Recursive.
+Make sure that storage folder is read/write accessible for your webserver user. Recursive.
 
 5. Setup
 Open your browser and visit your newly created bibliotheca installation setup with /setup
-Follow the instructions and remember your settings from step 2
+Follow the instructions and remember your settings from step 2.
 After completion the setup will delete itself. Remove the /setup from the url and you are done.
 
 5. Access
@@ -28,4 +28,4 @@ Create your own user.
 Create your first collection.
 
 To re run the setup:
-Upload the setup folder again. It deletes itself after a successfull setup
+Upload the setup folder again. It deletes itself after a successfull setup.
index 6e2cbbc8d84ab95c973d7e7d44715e8270023627..f39ef221abc025ce69fc18675e257f37deeda712 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,7 +23,7 @@ mb_internal_encoding('UTF-8');
 ini_set('error_reporting',-1); // E_ALL & E_STRICT
 
 # check request
-$_urlToParse = filter_var($_SERVER['QUERY_STRING'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
+$_urlToParse = filter_var($_SERVER['QUERY_STRING'],FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW);
 if(!empty($_urlToParse)) {
        # see http://de2.php.net/manual/en/regexp.reference.unicode.php
        if(preg_match('/[\p{C}\p{M}\p{Sc}\p{Sk}\p{So}\p{Zl}\p{Zp}]/u',$_urlToParse) === 1) {
index 03247d8860ee81d0571ec51483969e4f6d58879c..262481a86ccd7fc23aeaa6c6de88df2d79b05b67 100644 (file)
@@ -19,7 +19,7 @@
 /**
  * Options for the imdb grabber
  *
- * TOOL_IMDBWEB_SEARCH can be 'movie','tv','episode','game','all'. Default is movie
+ * TOOL_IMDBWEB_SEARCH can be 'movie = 'tv = 'episode = 'game = 'all'. Default is movie
  * TOOL_IMDBWEB_FIELDS is an array to define which fields from IMDB are displayed for selection
  *             an empty array() shows all.
  *             getAka, getAkas, getAspectRatio, getAwards, getBudget, getCast, getCastAndCharacter, CastAndCharacterAsUrl,
  * TOOL_IMDBWEB_BROWSERSTRING a current browser agent string. Should be updated from time to time. See default config file.
  * TOOL_IMDBWEB_BROWSER_ACCEPT_LANG should define in which language the content returns
 */
-define('TOOL_IMDBWEB_SEARCH','movie');
-define('TOOL_IMDBWEB_FIELDS',
+const = TOOL_IMDBWEB_SEARCH = 'movie';
+const = TOOL_IMDBWEB_FIELDS =
        array(
-               'getCast','getDescription', 'getDirector', 'getGenre', 'getPlot', 'getRating', 'getRuntime','getTitle',
-               'getWriter', 'getYear'
+               'getCast = 'getDescription =  'getDirector =  'getGenre =  'getPlot =  'getRating =  'getRuntime = 'getTitle =
+               'getWriter =  'getYear'
        )
-);
+;
 /*
-define('TOOL_IMDBWEB_FIELDS_TO',
+const = TOOL_IMDBWEB_FIELDS_TO =
        array(
-               'getCast' => 'actors','getDescription' => 'description', 'getDirector' => 'directors', 'getGenre' => 'genres',
-               'getPlot' => 'content', 'getRating' => 'imdbrating', 'getRuntime' => 'runtime','getTitle' => 'title',
-               'getWriter' => 'writers', 'getYear' => 'year'
+               'getCast' => 'actors = 'getDescription' => 'description =  'getDirector' => 'directors =  'getGenre' => 'genres =
+               'getPlot' => 'content =  'getRating' => 'imdbrating =  'getRuntime' => 'runtime = 'getTitle' => 'title =
+               'getWriter' => 'writers =  'getYear' => 'year'
        )
-);
+;
 */
 
-define('TOOL_IMDBWEB_BROWSER_AGENT','Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0');
-define('TOOL_IMDBWEB_BROWSER_ACCEPT','text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');
-define('TOOL_IMDBWEB_BROWSER_ACCEPT_LANG','en-US,en;q=0.5');
+const = TOOL_IMDBWEB_BROWSER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0';
+const = TOOL_IMDBWEB_BROWSER_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
+const = TOOL_IMDBWEB_BROWSER_ACCEPT_LANG = 'en-US,en;q=0.5';
index eea23be5ed68e26c2a2409f3b1cb2598b4681a13..6ce41df02c24185f4c0619307591953687989f90 100644 (file)
  * TOOL_BRAINZ_RESULT_LIMIT How many entries the search will display
  */
 
-define('TOOL_BRAINZ_BROWSER_AGENT','Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0');
-define('TOOL_BRAINZ_BROWSER_ACCEPT','text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');
-define('TOOL_BRAINZ_BROWSER_ACCEPT_LANG','en-US,en;q=0.5');
+const = TOOL_BRAINZ_BROWSER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0';
+const = TOOL_BRAINZ_BROWSER_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
+const = TOOL_BRAINZ_BROWSER_ACCEPT_LANG = 'en-US,en;q=0.5';
 
-define('TOOL_BRAINZ_RESULT_LIMIT',10);
+const = TOOL_BRAINZ_RESULT_LIMIT = 10;
 
 /*
-define('TOOL_BRAINZ_FIELDS_TO',
+const = TOOL_BRAINZ_FIELDS_TO =
        array(
-               'album' => 'title','date' => 'year', 'artist' => 'artist', 'image' => 'coverimage', 'tracks' => 'content',
+               'album' => 'title = 'date' => 'year =  'artist' => 'artist =  'image' => 'coverimage =  'tracks' => 'content =
                'runtime' => 'runtime'
        )
-);
+;
 */
index aa32af9ac7393025880a3d9bbdd982bfeffb0087..82f5527d49651c226b56d0003238387cb6dca461 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  */
 
 # set to true if you need debug messages in error log file
-define('DEBUG',false);
+const DEBUG = false;
 # set to ture if you need query log messages in error log file.
-define('QUERY_DEBUG',false);
+const QUERY_DEBUG = false;
 
 # timezone settings
-define('TIMEZONE','~timezone~');
+const TIMEZONE = '~timezone~';
 
 # path settings
-define('PATH_ABSOLUTE','~pathabsolute~');
-define('PATH_SYSTEMOUT',PATH_ABSOLUTE.'/systemout');
-define('PATH_STORAGE',PATH_ABSOLUTE.'/storage');
-define('PATH_WEB_STORAGE','storage');
+const PATH_ABSOLUTE = '~pathabsolute~';
+const PATH_SYSTEMOUT = PATH_ABSOLUTE.'/systemout';
+const PATH_STORAGE = PATH_ABSOLUTE.'/storage';
+const PATH_WEB_STORAGE = 'storage';
 
 # database config
-define('DB_HOST','~dbhost~');
-define('DB_USERNAME','~dbuser~');
-define('DB_PASSWORD','~dbpassword~');
-define('DB_NAME','~dbname~');
-define('DB_PREFIX','~dbprefix~'); # a _ is added automatically as separation
+const DB_HOST = '~dbhost~';
+const DB_USERNAME = '~dbuser~';
+const DB_PASSWORD = '~dbpassword~';
+const DB_NAME = '~dbname~';
+const DB_PREFIX = '~dbprefix~'; # a _ is added automatically as separation
 
 ## theme support
 # fallback is default theme
-define('UI_THEME', 'default');
+const UI_THEME =  'default';
 
 # session
-define('SESSION_LIFETIME', 43200); // 8 hours
-define('SESSION_NAME', "bibliotheca-session");
-define('SESSION_SAVE_PATH', PATH_SYSTEMOUT.'/session');
+const SESSION_LIFETIME =  43200; // 8 hours
+const SESSION_NAME =  "bibliotheca-session";
+const SESSION_SAVE_PATH =  PATH_SYSTEMOUT.'/session';
 
 # usersettings
-define('ADMIN_GROUP_ID','1');
-define('ANON_USER_ID','2');
-define('ANON_GROUP_ID','3');
+const ADMIN_GROUP_ID = '1';
+const ANON_USER_ID = '2';
+const ANON_GROUP_ID = '3';
 
 # view options
-define('RESULTS_PER_PAGE',24);
+const RESULTS_PER_PAGE = 24;
index 65be066de30a9d3251790f9d5e960020277fa7eb..a00841c4a098d46799c292b52b33e91d155d60ff 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 require_once './config/config.php';
 
-define('BIB_VERSION','1.x - Rrajigar Mine ()');
+const BIB_VERSION = '1.x - Rrajigar Mine ()';
 
 mb_http_output('UTF-8');
 mb_internal_encoding('UTF-8');
 ini_set('error_reporting',-1); // E_ALL & E_STRICT
 
 # check request
-$_urlToParse = filter_var($_SERVER['QUERY_STRING'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
+$_urlToParse = filter_var($_SERVER['QUERY_STRING'],FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW);
 if(!empty($_urlToParse)) {
        if(preg_match('/[\p{C}\p{M}\p{Sc}\p{Sk}\p{So}\p{Zl}\p{Zp}]/u',$_urlToParse) === 1) {
                die('Malformed request. Make sure you know what you are doing.');
index 06bbdd91ff56530dd10eb3448186f4f431afa21e..f6791c0e4735e12435ded5d36cfd2e4af5e3ee19 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
index 7110e11b9767477a1f5cb58079ebba4035a5d8d9..481bfe38fcf062f9bdd3f59873cab1feb1c1ebe1 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -251,7 +251,7 @@ class ManageCollectionFields {
         * @param bool $sortAZ
         * @return array
         */
-       public function getExistingFields($refresh=false, $sortAZ=false): array {
+       public function getExistingFields(bool $refresh=false, bool $sortAZ=false): array {
                if($refresh === false && !empty($this->_cacheExistingSysFields)) {
                        return $this->_cacheExistingSysFields;
                }
index 05b2055e12c84609dcfc639a4c7de7285e3affb4..b738eda821034335aba36bbb4a4724f2c69d4ee8 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
index a3e8aedad3e8c9239bb8ccfd9236d6eea0933271..6b95311a5e93b3efa457ac197f8d199c2255f267 100644 (file)
@@ -22,35 +22,35 @@ class Manageentry {
         *
         * @var mysqli
         */
-       private $_DB;
+       private mysqli $_DB;
 
        /**
         * The user object to query with
         *
         * @var Doomguy
         */
-       private $_User;
+       private Doomguy $_User;
 
        /**
         * Currently loaded collection to manage entries from
         *
         * @var string Number
         */
-       private $_collectionId;
+       private string $_collectionId;
 
        /**
         * Placeholder in query strings for inserted DB id
         *
         * @var string
         */
-       private $_replaceEntryString = 'REPLACE_ENTERY';
+       private string $_replaceEntryString = 'REPLACE_ENTERY';
 
        /**
         * Store edit fields info for runtime
         *
         * @var array
         */
-       private $_cacheEditFields = array();
+       private array $_cacheEditFields = array();
 
        /**
         * ManageCollections constructor.
@@ -81,7 +81,7 @@ class Manageentry {
         * @param bool $refresh
         * @return array
         */
-       public function getEditFields($refresh=false): array {
+       public function getEditFields(bool $refresh=false): array {
 
                if($refresh === false && !empty($this->_cacheEditFields)) {
                        return $this->_cacheEditFields;
@@ -160,10 +160,10 @@ class Manageentry {
         * @param string $owner Number
         * @param string $group Number
         * @param string $rights
-        * @param mixed $update Either false for no update or the ID to update
+        * @param mixed|false $update Either false for no update or the ID to update
         * @return int
         */
-       public function create(array $data, string $owner, string $group, string $rights, $update=false): int {
+       public function create(array $data, string $owner, string $group, string $rights, mixed $update=false): int {
                $ret = 0;
 
                if(DEBUG) error_log("[DEBUG] ".__METHOD__." data: ".var_export($data,true));
index 3d88d8846a9aa14aa2c21d880cff3683d50873f7..f633ba738bb809c36f7cdf1fc0bb4ff9782a5dae 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,21 +25,21 @@ class ManageTags {
         *
         * @var mysqli
         */
-       private $_DB;
+       private mysqli $_DB;
 
        /**
         * The user object to query with
         *
         * @var Doomguy
         */
-       private $_User;
+       private Doomguy $_User;
 
        /**
         * Currently loaded collection to work with
         *
         * @var string Number
         */
-       private $_collectionId;
+       private string $_collectionId;
 
        /**
         * ManageTags constructor.
@@ -57,7 +57,7 @@ class ManageTags {
         *
         * @param string $collectionId Number
         */
-       public function setCollection(string $collectionId) {
+       public function setCollection(string $collectionId): void {
                if(!empty($collectionId)) {
                        $this->_collectionId = $collectionId;
                }
index e492567b8ae54acf52454d770c750d77752020d4..1a99b9aece163d46227b8d44a380f8d25044e55b 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,37 +31,37 @@ class Musicbrainz {
        /**
         * @var bool DEBUG
         */
-       private $_DEBUG = false;
+       private bool $_DEBUG = false;
 
        /**
         * @var string The user agent used to make curl calls
         */
-       private $_BROWSER_AGENT = '';
+       private mixed $_BROWSER_AGENT = '';
 
        /**
         * @var string The user agent lang used to make curl calls
         */
-       private $_BROWSER_LANG = '';
+       private mixed $_BROWSER_LANG = '';
 
        /**
         * @var string The user agent accept used to make curl calls
         */
-       private $_BROWSER_ACCEPT = '';
+       private mixed $_BROWSER_ACCEPT = '';
 
        /**
         * @var string The musicbrainz API release endpoint
         */
-       private $_RELEASE_ENDPOINT = 'http://musicbrainz.org/ws/2/release/';
+       private string $_RELEASE_ENDPOINT = 'http://musicbrainz.org/ws/2/release/';
 
        /**
         * @var string The endpoint for images
         */
-       private $_IMAGE_ENDPOINT = 'http://coverartarchive.org/release/';
+       private string $_IMAGE_ENDPOINT = 'http://coverartarchive.org/release/';
 
        /**
         * @var int The amount of entries returned for release search
         */
-       private $_resultLimit = 10;
+       private int $_resultLimit = 10;
 
        /**
         * Musicbrainz constructor.
@@ -284,7 +284,7 @@ class Musicbrainz {
         * @param integer $port
         * @return string
         */
-       private function _curlCall(string $url, $port=80): string {
+       private function _curlCall(string $url, int $port=80): string {
                $ret = '';
 
                $ch = curl_init();
@@ -303,6 +303,7 @@ class Musicbrainz {
                );
 
                if($this->_DEBUG) {
+                       $_headers = array();
                        curl_setopt($ch, CURLOPT_VERBOSE, true);
                        curl_setopt($ch, CURLOPT_HEADERFUNCTION,
                                function($curl, $header) use (&$_headers) {
index 6e0c4ebbc44051258c7524035af0ac741e7015d8..42ac6fe63e097e5150c795b44fb688849acda711 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,14 +30,14 @@ class Possessed {
         *
         * @var mysqli
         */
-       private $_DB;
+       private mysqli $_DB;
 
        /**
         * The user object to query with
         *
         * @var Doomguy
         */
-       private $_User;
+       private Doomguy $_User;
 
        /**
         * Possessed constructor.
@@ -117,7 +117,7 @@ class Possessed {
         * @param bool $active
         * @return bool
         */
-       public function createUser(string $username, string $login, string $password, string $group, array $groups, $active=false): bool {
+       public function createUser(string $username, string $login, string $password, string $group, array $groups, bool $active=false): bool {
                $ret = false;
 
                if($this->_validNewLogin($login) && $this->_validUsergroup($group)) {
@@ -190,7 +190,8 @@ class Possessed {
         * @param bool $refreshApiToken
         * @return bool
         */
-       public function updateUser(string $id, string $username, string $login, string $password, string $group, array $groups, $active=false, $refreshApiToken=false): bool {
+       public function updateUser(string $id, string $username, string $login, string $password, string $group,
+                                                          array $groups, bool $active=false, bool $refreshApiToken=false): bool {
                $ret = false;
 
                if($this->_validUpdateLogin($login,$id) && $this->_validUsergroup($group)) {
@@ -579,7 +580,7 @@ class Possessed {
         * @param bool $clean
         * @return bool
         */
-       private function _setGroupReleation(string $userid, array $group, $clean=false): bool {
+       private function _setGroupReleation(string $userid, array $group, bool $clean=false): bool {
                $ret = false;
 
                if(Summoner::validate($userid,'digit')
index f92aa5499d35991a67648bcff97be6c6e6be8741..bd83cd9464b8e5b762a4a6fb33e8fdc73adbd1dd 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,21 +26,21 @@ class Spectre {
         *
         * @var mysqli
         */
-       private $_DB;
+       private mysqli $_DB;
 
        /**
         * The user object to query with
         *
         * @var Doomguy
         */
-       private $_User;
+       private Doomguy $_User;
 
        /**
         * Allowed request params
         *
         * @var array
         */
-       private $_allowedRequests = array('default','list','add','addInfo');
+       private array $_allowedRequests = array('default','list','add','addInfo');
 
        /**
         * Spectre constructor.
index 2a75a0246a5b31698a30f136bbaadb0b114085d1..11521d17a0496d2f936933e9432a2f4be134e3a1 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -126,7 +126,6 @@ class Summoner {
 
                $value = preg_replace($pattern, '', $input);
 
-               #if($input === $value) {
                if($value === "") {
                        $ret = true;
                }
index 66ccd3902d23bf76a20201500a02ef49096419fa..860fda5de8a13c81e33e98aa6b0556d383382a6c 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2020 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,14 +26,14 @@ class Tentacle {
         *
         * @var mysqli
         */
-       private $_DB;
+       private mysqli $_DB;
 
        /**
         * The user object to query with
         *
         * @var Doomguy
         */
-       private $_User;
+       private Doomguy $_User;
 
        /**
         * Tentacle constructor.
index dc65c381d99c004613a19dcce2676935c38a29e1..0c42f588bed48d16c799f0efae78eba7b45c8f8c 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,28 +29,28 @@ class Trite {
         *
         * @var mysqli
         */
-       private $_DB;
+       private mysqli $_DB;
 
        /**
         * The user object to query with
         *
         * @var Doomguy
         */
-       private $_User;
+       private Doomguy $_User;
 
        /**
         * Currently loaded collection to work with
         *
         * @var string
         */
-       private $_id;
+       private string $_id;
 
        /**
         * Current loaded collection data as an array
         *
         * @var array
         */
-       private $_collectionData;
+       private array $_collectionData;
 
        /**
         * Options for db queries
@@ -61,22 +61,22 @@ class Trite {
         *
         * @var array
         */
-       private $_queryOptions;
+       private array $_queryOptions;
 
        /**
         * Cache for already loaded collection fields
         *
         * @var array
         */
-       private $_cacheExistingCollectionFields = array();
+       private array $_cacheExistingCollectionFields = array();
 
        /**
         * Trite constructor.
         *
-        * @param $databaseConnectionObject
-        * @param $userObj
+        * @param mysqli $databaseConnectionObject
+        * @param Doomguy $userObj
         */
-       public function __construct($databaseConnectionObject, $userObj) {
+       public function __construct(mysqli $databaseConnectionObject, Doomguy $userObj) {
                $this->_DB = $databaseConnectionObject;
                $this->_User = $userObj;
 
@@ -91,9 +91,10 @@ class Trite {
         *  'orderby' => $_sort,
         *  'sortDirection' => $_sortDirection
         * );
+        *
         * @param array $options
         */
-       public function setQueryOptions($options) {
+       public function setQueryOptions(array $options): void {
 
                if(!isset($options['limit'])) $options['limit'] = 5;
                if(!isset($options['offset'])) $options['offset'] = false;
@@ -111,7 +112,7 @@ class Trite {
         * @param string $right The rights mode. read, write or delete
         * @return array
         */
-       public function load(string $id,$right="read"): array {
+       public function load(string $id, string $right="read"): array {
                $this->_collectionData = array();
 
                if(!empty($id) && Summoner::validate($id, 'digit')) {
@@ -166,7 +167,7 @@ class Trite {
         * @param string $rightsMode
         * @return array
         */
-       public function getCollections($rightsMode="read"): array {
+       public function getCollections(string $rightsMode="read"): array {
                $ret = array();
 
                $queryStr = "SELECT `c`.`id`, `c`.`name`, `c`.`description`
@@ -265,7 +266,7 @@ class Trite {
         * @param string $search String value to search value against
         * @return array
         */
-       public function getTags($search=''): array {
+       public function getTags(string $search=''): array {
                $ret = array();
 
                $queryStr = "SELECT `cf`.`fk_field_id` AS id,
@@ -398,7 +399,7 @@ class Trite {
         *
         * @return void
         */
-       private function _setDefaults() {
+       private function _setDefaults(): void {
                // default query options
                $options['limit'] = 5;
                $options['offset'] = false;
index ae360d866cdb9977f8f9e601f61dcbb84bd67afe..40b5113d8d73c001be301ab45e635cfc434b9242 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Bibliotheca
  *
- * Copyright 2018-2021 Johannes Keßler
+ * Copyright 2018-2022 Johannes Keßler
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,7 +30,7 @@ ini_set('display_errors',true);
 date_default_timezone_set('Europe/Berlin');
 
 # check request
-$_urlToParse = filter_var($_SERVER['QUERY_STRING'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
+$_urlToParse = filter_var($_SERVER['QUERY_STRING'],FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW);
 if(!empty($_urlToParse)) {
        if(preg_match('/[\p{C}\p{M}\p{Sc}\p{Sk}\p{So}\p{Zl}\p{Zp}]/u',$_urlToParse) === 1) {
                die('Malformed request. Make sure you know what you are doing.');