diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php
new file mode 100644
index 0000000..5fd203d
--- /dev/null
+++ b/.php-cs-fixer.php
@@ -0,0 +1,20 @@
+in(__DIR__)
+ ->name('*.php');
+
+$config = new Config();
+
+$rules = [
+ '@PER-CS2.0' => true,
+ 'trailing_comma_in_multiline' => ['elements' => ['arguments', 'array_destructuring', 'arrays']], // For PHP 7.4 compatibility
+];
+
+return $config
+ ->setRules($rules)
+ ->setFinder($finder)
+ ->setUsingCache(false);
diff --git a/ajax/display_alerts.php b/ajax/display_alerts.php
index 4a31d01..264b712 100644
--- a/ajax/display_alerts.php
+++ b/ajax/display_alerts.php
@@ -29,8 +29,8 @@
*/
$AJAX_INCLUDE = 1;
-include("../../../inc/includes.php");
-header("Content-Type: text/html; charset=UTF-8");
+include('../../../inc/includes.php');
+header('Content-Type: text/html; charset=UTF-8');
Html::header_nocache();
Session::checkLoginUser();
diff --git a/ajax/hide_alert.php b/ajax/hide_alert.php
index ce63902..763b51c 100644
--- a/ajax/hide_alert.php
+++ b/ajax/hide_alert.php
@@ -29,8 +29,8 @@
*/
$AJAX_INCLUDE = 1;
-include("../../../inc/includes.php");
-header("Content-Type: text/html; charset=UTF-8");
+include('../../../inc/includes.php');
+header('Content-Type: text/html; charset=UTF-8');
Html::header_nocache();
Session::checkLoginUser();
diff --git a/ajax/targets.php b/ajax/targets.php
index 8434dd2..0ee6c9b 100644
--- a/ajax/targets.php
+++ b/ajax/targets.php
@@ -29,22 +29,22 @@
*/
$AJAX_INCLUDE = 1;
-include("../../../inc/includes.php");
-header("Content-Type: text/html; charset=UTF-8");
+include('../../../inc/includes.php');
+header('Content-Type: text/html; charset=UTF-8');
Html::header_nocache();
Session::checkLoginUser();
if (isset($_POST['type']) && !empty($_POST['type'])) {
echo "
";
+ echo '';
+ echo '';
}
diff --git a/composer.json b/composer.json
index 4bcb85b..60c63f1 100644
--- a/composer.json
+++ b/composer.json
@@ -3,10 +3,10 @@
"php": ">=7.4"
},
"require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.64",
"glpi-project/tools": "^0.7.3",
"php-parallel-lint/php-parallel-lint": "^1.4",
- "phpstan/phpstan": "^1.12",
- "squizlabs/php_codesniffer": "^3.10"
+ "phpstan/phpstan": "^1.12"
},
"config": {
"optimize-autoloader": true,
diff --git a/composer.lock b/composer.lock
index 42d655e..dd41d55 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,205 +4,323 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "74ed2cdb044b2436e95cc0760aeaedd2",
+ "content-hash": "be120f9e866d137931dc59d253a306ae",
"packages": [],
"packages-dev": [
{
- "name": "glpi-project/tools",
- "version": "0.7.3",
+ "name": "clue/ndjson-react",
+ "version": "v1.3.0",
"source": {
"type": "git",
- "url": "https://github.com/glpi-project/tools.git",
- "reference": "a076482b057a727a9dcf155af40dac6c26a7b7c6"
+ "url": "https://github.com/clue/reactphp-ndjson.git",
+ "reference": "392dc165fce93b5bb5c637b67e59619223c931b0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/glpi-project/tools/zipball/a076482b057a727a9dcf155af40dac6c26a7b7c6",
- "reference": "a076482b057a727a9dcf155af40dac6c26a7b7c6",
+ "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0",
+ "reference": "392dc165fce93b5bb5c637b67e59619223c931b0",
"shasum": ""
},
"require": {
- "symfony/console": "^5.4 || ^6.0",
- "twig/twig": "^3.3"
+ "php": ">=5.3",
+ "react/stream": "^1.2"
},
"require-dev": {
- "nikic/php-parser": "^4.13",
- "phpstan/phpstan-src": "^1.10"
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35",
+ "react/event-loop": "^1.2"
},
- "bin": [
- "bin/extract-locales",
- "bin/licence-headers-check",
- "tools/plugin-release"
- ],
"type": "library",
"autoload": {
"psr-4": {
- "GlpiProject\\Tools\\": "src/"
+ "Clue\\React\\NDJson\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "GPL-3.0-or-later"
+ "MIT"
],
"authors": [
{
- "name": "Teclib'",
- "email": "glpi@teclib.com",
- "homepage": "http://teclib-group.com"
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
}
],
- "description": "Various tools for GLPI and its plugins",
+ "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.",
+ "homepage": "https://github.com/clue/reactphp-ndjson",
"keywords": [
- "glpi",
- "plugins",
- "tools"
+ "NDJSON",
+ "json",
+ "jsonlines",
+ "newline",
+ "reactphp",
+ "streaming"
],
"support": {
- "issues": "https://github.com/glpi-project/tools/issues",
- "source": "https://github.com/glpi-project/tools"
+ "issues": "https://github.com/clue/reactphp-ndjson/issues",
+ "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0"
},
- "time": "2024-06-20T08:36:22+00:00"
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-23T10:58:28+00:00"
},
{
- "name": "php-parallel-lint/php-parallel-lint",
- "version": "v1.4.0",
+ "name": "composer/pcre",
+ "version": "3.3.1",
"source": {
"type": "git",
- "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git",
- "reference": "6db563514f27e19595a19f45a4bf757b6401194e"
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/6db563514f27e19595a19f45a4bf757b6401194e",
- "reference": "6db563514f27e19595a19f45a4bf757b6401194e",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4",
+ "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": ">=5.3.0"
+ "php": "^7.4 || ^8.0"
},
- "replace": {
- "grogy/php-parallel-lint": "*",
- "jakub-onderka/php-parallel-lint": "*"
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
},
"require-dev": {
- "nette/tester": "^1.3 || ^2.0",
- "php-parallel-lint/php-console-highlighter": "0.* || ^1.0",
- "squizlabs/php_codesniffer": "^3.6"
+ "phpstan/phpstan": "^1.11.10",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8 || ^9"
},
- "suggest": {
- "php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet"
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
},
- "bin": [
- "parallel-lint"
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.3.1"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
],
+ "time": "2024-08-27T18:44:43+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6",
+ "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.4",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
"autoload": {
- "classmap": [
- "./src/"
- ]
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-2-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Jakub Onderka",
- "email": "ahoj@jakubonderka.cz"
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
}
],
- "description": "This tool checks the syntax of PHP files about 20x faster than serial check.",
- "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint",
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
"keywords": [
- "lint",
- "static analysis"
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
],
"support": {
- "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues",
- "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.4.0"
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.4.2"
},
- "time": "2024-03-27T12:14:49+00:00"
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-12T11:35:52+00:00"
},
{
- "name": "phpstan/phpstan",
- "version": "1.12.0",
+ "name": "composer/xdebug-handler",
+ "version": "3.0.5",
"source": {
"type": "git",
- "url": "https://github.com/phpstan/phpstan.git",
- "reference": "384af967d35b2162f69526c7276acadce534d0e1"
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/384af967d35b2162f69526c7276acadce534d0e1",
- "reference": "384af967d35b2162f69526c7276acadce534d0e1",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
"shasum": ""
},
"require": {
- "php": "^7.2|^8.0"
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
+ "psr/log": "^1 || ^2 || ^3"
},
- "conflict": {
- "phpstan/phpstan-shim": "*"
+ "require-dev": {
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
},
- "bin": [
- "phpstan",
- "phpstan.phar"
- ],
"type": "library",
"autoload": {
- "files": [
- "bootstrap.php"
- ]
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "PHPStan - PHP Static Analysis Tool",
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without Xdebug.",
"keywords": [
- "dev",
- "static analysis"
+ "Xdebug",
+ "performance"
],
"support": {
- "docs": "https://phpstan.org/user-guide/getting-started",
- "forum": "https://github.com/phpstan/phpstan/discussions",
- "issues": "https://github.com/phpstan/phpstan/issues",
- "security": "https://github.com/phpstan/phpstan/security/policy",
- "source": "https://github.com/phpstan/phpstan-src"
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
},
"funding": [
{
- "url": "https://github.com/ondrejmirtes",
- "type": "github"
+ "url": "https://packagist.com",
+ "type": "custom"
},
{
- "url": "https://github.com/phpstan",
+ "url": "https://github.com/composer",
"type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
}
],
- "time": "2024-08-27T09:18:05+00:00"
+ "time": "2024-05-06T16:37:16+00:00"
},
{
- "name": "psr/container",
- "version": "1.1.2",
+ "name": "evenement/evenement",
+ "version": "v3.0.2",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+ "url": "https://github.com/igorw/evenement.git",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+ "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
"shasum": ""
},
"require": {
- "php": ">=7.4.0"
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9 || ^6"
},
"type": "library",
"autoload": {
"psr-4": {
- "Psr\\Container\\": "src/"
+ "Evenement\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -211,158 +329,1524 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
}
],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
+ "description": "Événement is a very simple event dispatching library for PHP",
"keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
+ "event-dispatcher",
+ "event-emitter"
],
"support": {
- "issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.2"
+ "issues": "https://github.com/igorw/evenement/issues",
+ "source": "https://github.com/igorw/evenement/tree/v3.0.2"
},
- "time": "2021-11-05T16:50:12+00:00"
+ "time": "2023-08-08T05:53:35+00:00"
},
{
- "name": "squizlabs/php_codesniffer",
- "version": "3.10.2",
+ "name": "fidry/cpu-core-counter",
+ "version": "1.2.0",
"source": {
"type": "git",
- "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017"
+ "url": "https://github.com/theofidry/cpu-core-counter.git",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017",
- "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017",
+ "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f",
"shasum": ""
},
"require": {
- "ext-simplexml": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": ">=5.4.0"
+ "php": "^7.2 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
+ "fidry/makefile": "^0.2.0",
+ "fidry/php-cs-fixer-config": "^1.1.2",
+ "phpstan/extension-installer": "^1.2.0",
+ "phpstan/phpstan": "^1.9.2",
+ "phpstan/phpstan-deprecation-rules": "^1.0.0",
+ "phpstan/phpstan-phpunit": "^1.2.2",
+ "phpstan/phpstan-strict-rules": "^1.4.4",
+ "phpunit/phpunit": "^8.5.31 || ^9.5.26",
+ "webmozarts/strict-phpunit": "^7.5"
},
- "bin": [
- "bin/phpcbf",
- "bin/phpcs"
- ],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
+ "autoload": {
+ "psr-4": {
+ "Fidry\\CpuCoreCounter\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Greg Sherwood",
- "role": "Former lead"
+ "name": "Théo FIDRY",
+ "email": "theo.fidry@gmail.com"
+ }
+ ],
+ "description": "Tiny utility to get the number of CPU cores.",
+ "keywords": [
+ "CPU",
+ "core"
+ ],
+ "support": {
+ "issues": "https://github.com/theofidry/cpu-core-counter/issues",
+ "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theofidry",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-06T10:04:20+00:00"
+ },
+ {
+ "name": "friendsofphp/php-cs-fixer",
+ "version": "v3.64.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
+ "reference": "58dd9c931c785a79739310aef5178928305ffa67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/58dd9c931c785a79739310aef5178928305ffa67",
+ "reference": "58dd9c931c785a79739310aef5178928305ffa67",
+ "shasum": ""
+ },
+ "require": {
+ "clue/ndjson-react": "^1.0",
+ "composer/semver": "^3.4",
+ "composer/xdebug-handler": "^3.0.3",
+ "ext-filter": "*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "fidry/cpu-core-counter": "^1.0",
+ "php": "^7.4 || ^8.0",
+ "react/child-process": "^0.6.5",
+ "react/event-loop": "^1.0",
+ "react/promise": "^2.0 || ^3.0",
+ "react/socket": "^1.0",
+ "react/stream": "^1.0",
+ "sebastian/diff": "^4.0 || ^5.0 || ^6.0",
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0",
+ "symfony/polyfill-mbstring": "^1.28",
+ "symfony/polyfill-php80": "^1.28",
+ "symfony/polyfill-php81": "^1.28",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0",
+ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "facile-it/paraunit": "^1.3 || ^2.3",
+ "infection/infection": "^0.29.5",
+ "justinrainbow/json-schema": "^5.2",
+ "keradus/cli-executor": "^2.1",
+ "mikey179/vfsstream": "^1.6.11",
+ "php-coveralls/php-coveralls": "^2.7",
+ "php-cs-fixer/accessible-object": "^1.1",
+ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5",
+ "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5",
+ "phpunit/phpunit": "^9.6.19 || ^10.5.21 || ^11.2",
+ "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
+ },
+ "suggest": {
+ "ext-dom": "For handling output formats in XML",
+ "ext-mbstring": "For handling non-UTF8 characters."
+ },
+ "bin": [
+ "php-cs-fixer"
+ ],
+ "type": "application",
+ "autoload": {
+ "psr-4": {
+ "PhpCsFixer\\": "src/"
},
+ "exclude-from-classmap": [
+ "src/Fixer/Internal/*"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
{
- "name": "Juliette Reinders Folmer",
- "role": "Current lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
- "name": "Contributors",
- "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
+ "name": "Dariusz Rumiński",
+ "email": "dariusz.ruminski@gmail.com"
}
],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
- "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "description": "A tool to automatically fix PHP code style",
"keywords": [
- "phpcs",
+ "Static code analysis",
+ "fixer",
"standards",
"static analysis"
],
"support": {
- "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
- "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
- "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
- "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
+ "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
+ "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.64.0"
},
"funding": [
{
- "url": "https://github.com/PHPCSStandards",
+ "url": "https://github.com/keradus",
"type": "github"
+ }
+ ],
+ "time": "2024-08-30T23:09:38+00:00"
+ },
+ {
+ "name": "glpi-project/tools",
+ "version": "0.7.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/glpi-project/tools.git",
+ "reference": "a076482b057a727a9dcf155af40dac6c26a7b7c6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/glpi-project/tools/zipball/a076482b057a727a9dcf155af40dac6c26a7b7c6",
+ "reference": "a076482b057a727a9dcf155af40dac6c26a7b7c6",
+ "shasum": ""
+ },
+ "require": {
+ "symfony/console": "^5.4 || ^6.0",
+ "twig/twig": "^3.3"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.13",
+ "phpstan/phpstan-src": "^1.10"
+ },
+ "bin": [
+ "bin/extract-locales",
+ "bin/licence-headers-check",
+ "tools/plugin-release"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "GlpiProject\\Tools\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Teclib'",
+ "email": "glpi@teclib.com",
+ "homepage": "http://teclib-group.com"
+ }
+ ],
+ "description": "Various tools for GLPI and its plugins",
+ "keywords": [
+ "glpi",
+ "plugins",
+ "tools"
+ ],
+ "support": {
+ "issues": "https://github.com/glpi-project/tools/issues",
+ "source": "https://github.com/glpi-project/tools"
+ },
+ "time": "2024-06-20T08:36:22+00:00"
+ },
+ {
+ "name": "php-parallel-lint/php-parallel-lint",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git",
+ "reference": "6db563514f27e19595a19f45a4bf757b6401194e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/6db563514f27e19595a19f45a4bf757b6401194e",
+ "reference": "6db563514f27e19595a19f45a4bf757b6401194e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": ">=5.3.0"
+ },
+ "replace": {
+ "grogy/php-parallel-lint": "*",
+ "jakub-onderka/php-parallel-lint": "*"
+ },
+ "require-dev": {
+ "nette/tester": "^1.3 || ^2.0",
+ "php-parallel-lint/php-console-highlighter": "0.* || ^1.0",
+ "squizlabs/php_codesniffer": "^3.6"
+ },
+ "suggest": {
+ "php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet"
+ },
+ "bin": [
+ "parallel-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "./src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jakub Onderka",
+ "email": "ahoj@jakubonderka.cz"
+ }
+ ],
+ "description": "This tool checks the syntax of PHP files about 20x faster than serial check.",
+ "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint",
+ "keywords": [
+ "lint",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues",
+ "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.4.0"
+ },
+ "time": "2024-03-27T12:14:49+00:00"
+ },
+ {
+ "name": "phpstan/phpstan",
+ "version": "1.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan.git",
+ "reference": "384af967d35b2162f69526c7276acadce534d0e1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/384af967d35b2162f69526c7276acadce534d0e1",
+ "reference": "384af967d35b2162f69526c7276acadce534d0e1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2|^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan-shim": "*"
+ },
+ "bin": [
+ "phpstan",
+ "phpstan.phar"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan - PHP Static Analysis Tool",
+ "keywords": [
+ "dev",
+ "static analysis"
+ ],
+ "support": {
+ "docs": "https://phpstan.org/user-guide/getting-started",
+ "forum": "https://github.com/phpstan/phpstan/discussions",
+ "issues": "https://github.com/phpstan/phpstan/issues",
+ "security": "https://github.com/phpstan/phpstan/security/policy",
+ "source": "https://github.com/phpstan/phpstan-src"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ondrejmirtes",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/phpstan",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-27T09:18:05+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/1.1.2"
+ },
+ "time": "2021-11-05T16:50:12+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.4"
+ },
+ "time": "2021-05-03T11:20:27+00:00"
+ },
+ {
+ "name": "react/cache",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/cache.git",
+ "reference": "d47c472b64aa5608225f47965a484b75c7817d5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b",
+ "reference": "d47c472b64aa5608225f47965a484b75c7817d5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/promise": "^3.0 || ^2.0 || ^1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async, Promise-based cache interface for ReactPHP",
+ "keywords": [
+ "cache",
+ "caching",
+ "promise",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/cache/issues",
+ "source": "https://github.com/reactphp/cache/tree/v1.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2022-11-30T15:59:55+00:00"
+ },
+ {
+ "name": "react/child-process",
+ "version": "v0.6.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/child-process.git",
+ "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/child-process/zipball/e71eb1aa55f057c7a4a0d08d06b0b0a484bead43",
+ "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/event-loop": "^1.2",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35",
+ "react/socket": "^1.8",
+ "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\ChildProcess\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven library for executing child processes with ReactPHP.",
+ "keywords": [
+ "event-driven",
+ "process",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/child-process/issues",
+ "source": "https://github.com/reactphp/child-process/tree/v0.6.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2022-09-16T13:41:56+00:00"
+ },
+ {
+ "name": "react/dns",
+ "version": "v1.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/dns.git",
+ "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
+ "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/cache": "^1.0 || ^0.6 || ^0.5",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3.2 || ^2.7 || ^1.2.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/async": "^4.3 || ^3 || ^2",
+ "react/promise-timer": "^1.11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Dns\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async DNS resolver for ReactPHP",
+ "keywords": [
+ "async",
+ "dns",
+ "dns-resolver",
+ "reactphp"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/dns/issues",
+ "source": "https://github.com/reactphp/dns/tree/v1.13.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-13T14:18:03+00:00"
+ },
+ {
+ "name": "react/event-loop",
+ "version": "v1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/event-loop.git",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "suggest": {
+ "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\EventLoop\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+ "keywords": [
+ "asynchronous",
+ "event-loop"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/event-loop/issues",
+ "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-11-13T13:48:05+00:00"
+ },
+ {
+ "name": "react/promise",
+ "version": "v3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63",
+ "reference": "8a164643313c71354582dc850b42b33fa12a4b63",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "1.10.39 || 1.4.10",
+ "phpunit/phpunit": "^9.6 || ^7.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+ "keywords": [
+ "promise",
+ "promises"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-24T10:39:05+00:00"
+ },
+ {
+ "name": "react/socket",
+ "version": "v1.16.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/socket.git",
+ "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1",
+ "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/dns": "^1.13",
+ "react/event-loop": "^1.2",
+ "react/promise": "^3.2 || ^2.6 || ^1.2.1",
+ "react/stream": "^1.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/async": "^4.3 || ^3.3 || ^2",
+ "react/promise-stream": "^1.4",
+ "react/promise-timer": "^1.11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Socket\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
+ "keywords": [
+ "Connection",
+ "Socket",
+ "async",
+ "reactphp",
+ "stream"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/socket/issues",
+ "source": "https://github.com/reactphp/socket/tree/v1.16.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-07-26T10:38:09+00:00"
+ },
+ {
+ "name": "react/stream",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/stream.git",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.8",
+ "react/event-loop": "^1.2"
+ },
+ "require-dev": {
+ "clue/stream-filter": "~1.2",
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Stream\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
+ "keywords": [
+ "event-driven",
+ "io",
+ "non-blocking",
+ "pipe",
+ "reactphp",
+ "readable",
+ "stream",
+ "writable"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/stream/issues",
+ "source": "https://github.com/reactphp/stream/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-11T12:45:25+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:30:58+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v5.4.41",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "6473d441a913cb997123b59ff2dbe3d1cf9e11ba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/6473d441a913cb997123b59ff2dbe3d1cf9e11ba",
+ "reference": "6473d441a913cb997123b59ff2dbe3d1cf9e11ba",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/string": "^5.1|^6.0"
+ },
+ "conflict": {
+ "psr/log": ">=3",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/dotenv": "<5.1",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/lock": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v5.4.41"
+ },
+ "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-06-28T07:48:55+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v2.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "80d075412b557d41002320b96a096ca65aa2c98d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d",
+ "reference": "80d075412b557d41002320b96a096ca65aa2c98d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "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/v2.5.3"
+ },
+ "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": "2023-01-24T14:02:46+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v5.4.40",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a54e2a8a114065f31020d6a89ede83e34c3b27a4",
+ "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher-contracts": "^2|^3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.40"
+ },
+ "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-05-31T14:33:22+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v2.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73",
+ "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/event-dispatcher": "^1"
+ },
+ "suggest": {
+ "symfony/event-dispatcher-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "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": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3"
+ },
+ "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-01-23T13:51:25+00:00"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v5.4.41",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "6d29dd9340b372fa603f04e6df4dd76bb808591e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/6d29dd9340b372fa603f04e6df4dd76bb808591e",
+ "reference": "6d29dd9340b372fa603f04e6df4dd76bb808591e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/process": "^5.4|^6.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v5.4.41"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
},
{
- "url": "https://github.com/jrfnl",
+ "url": "https://github.com/fabpot",
"type": "github"
},
{
- "url": "https://opencollective.com/php_codesniffer",
- "type": "open_collective"
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
}
],
- "time": "2024-07-21T23:26:44+00:00"
+ "time": "2024-06-28T09:36:24+00:00"
},
{
- "name": "symfony/console",
- "version": "v5.4.41",
+ "name": "symfony/finder",
+ "version": "v5.4.43",
"source": {
"type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "6473d441a913cb997123b59ff2dbe3d1cf9e11ba"
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "ae25a9145a900764158d439653d5630191155ca0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/6473d441a913cb997123b59ff2dbe3d1cf9e11ba",
- "reference": "6473d441a913cb997123b59ff2dbe3d1cf9e11ba",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/ae25a9145a900764158d439653d5630191155ca0",
+ "reference": "ae25a9145a900764158d439653d5630191155ca0",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.1|^6.0"
- },
- "conflict": {
- "psr/log": ">=3",
- "symfony/dependency-injection": "<4.4",
- "symfony/dotenv": "<5.1",
- "symfony/event-dispatcher": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/process": "<4.4"
- },
- "provide": {
- "psr/log-implementation": "1.0|2.0"
- },
- "require-dev": {
- "psr/log": "^1|^2",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
- "symfony/lock": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Console\\": ""
+ "Symfony\\Component\\Finder\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -382,16 +1866,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Eases the creation of beautiful and testable command line interfaces",
+ "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
- "keywords": [
- "cli",
- "command-line",
- "console",
- "terminal"
- ],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.41"
+ "source": "https://github.com/symfony/finder/tree/v5.4.43"
},
"funding": [
{
@@ -407,38 +1885,35 @@
"type": "tidelift"
}
],
- "time": "2024-06-28T07:48:55+00:00"
+ "time": "2024-08-13T14:03:51+00:00"
},
{
- "name": "symfony/deprecation-contracts",
- "version": "v2.5.3",
+ "name": "symfony/options-resolver",
+ "version": "v5.4.40",
"source": {
"type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "80d075412b557d41002320b96a096ca65aa2c98d"
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "bd1afbde6613a8d6b956115e0e14b196191fd0c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d",
- "reference": "80d075412b557d41002320b96a096ca65aa2c98d",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/bd1afbde6613a8d6b956115e0e14b196191fd0c4",
+ "reference": "bd1afbde6613a8d6b956115e0e14b196191fd0c4",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
"autoload": {
- "files": [
- "function.php"
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -447,18 +1922,23 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "A generic function and convention to trigger deprecation notices",
+ "description": "Provides an improved replacement for the array_replace PHP function",
"homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3"
+ "source": "https://github.com/symfony/options-resolver/tree/v5.4.40"
},
"funding": [
{
@@ -474,7 +1954,7 @@
"type": "tidelift"
}
],
- "time": "2023-01-24T14:02:46+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -950,6 +2430,144 @@
],
"time": "2024-05-31T15:07:36+00:00"
},
+ {
+ "name": "symfony/polyfill-php81",
+ "version": "v1.30.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af",
+ "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php81\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "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 backporting some PHP 8.1+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.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-06-19T12:30:46+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v5.4.40",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "deedcb3bb4669cae2148bc920eafd2b16dc7c046"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/deedcb3bb4669cae2148bc920eafd2b16dc7c046",
+ "reference": "deedcb3bb4669cae2148bc920eafd2b16dc7c046",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v5.4.40"
+ },
+ "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-05-31T14:33:22+00:00"
+ },
{
"name": "symfony/service-contracts",
"version": "v2.5.3",
@@ -1033,6 +2651,68 @@
],
"time": "2023-04-21T15:04:16+00:00"
},
+ {
+ "name": "symfony/stopwatch",
+ "version": "v5.4.40",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/stopwatch.git",
+ "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0e9daf3b7c805c747638b2cc48f1649e594f9625",
+ "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/service-contracts": "^1|^2|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Stopwatch\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a way to profile code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/stopwatch/tree/v5.4.40"
+ },
+ "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-05-31T14:33:22+00:00"
+ },
{
"name": "symfony/string",
"version": "v5.4.41",
diff --git a/front/alert.form.php b/front/alert.form.php
index 20eec7b..d96ffe3 100644
--- a/front/alert.form.php
+++ b/front/alert.form.php
@@ -30,10 +30,10 @@
use Glpi\Event;
-include("../../../inc/includes.php");
+include('../../../inc/includes.php');
-if (!isset($_GET["id"])) {
- $_GET["id"] = "";
+if (!isset($_GET['id'])) {
+ $_GET['id'] = '';
}
$alert = new PluginNewsAlert();
@@ -42,23 +42,23 @@
$alert->check($_POST['id'], UPDATE);
if ($alert->update($_POST)) {
Event::log(
- $_POST["id"],
- "PluginNewsAlert",
+ $_POST['id'],
+ 'PluginNewsAlert',
4,
- "admin",
- sprintf(__('%s updates an item', 'news'), $_SESSION["glpiname"])
+ 'admin',
+ sprintf(__('%s updates an item', 'news'), $_SESSION['glpiname']),
);
}
Html::back();
-} else if (isset($_POST['add'])) {
+} elseif (isset($_POST['add'])) {
$alert->check(-1, CREATE, $_POST);
if ($newID = $alert->add($_POST)) {
Event::log(
$newID,
- "PluginNewsAlert",
+ 'PluginNewsAlert',
4,
- "admin",
- sprintf(__('%1$s adds the item %2$s', 'news'), $_SESSION["glpiname"], $_POST["name"])
+ 'admin',
+ sprintf(__('%1$s adds the item %2$s', 'news'), $_SESSION['glpiname'], $_POST['name']),
);
if ($_SESSION['glpibackcreated']) {
@@ -66,43 +66,43 @@
}
}
Html::back();
-} else if (isset($_POST['delete'])) {
+} elseif (isset($_POST['delete'])) {
$alert->check($_POST['id'], DELETE);
if ($alert->delete($_POST)) {
Event::log(
- $_POST["id"],
- "PluginNewsAlert",
+ $_POST['id'],
+ 'PluginNewsAlert',
4,
- "admin",
- sprintf(__('%s deletes an item', 'news'), $_SESSION["glpiname"])
+ 'admin',
+ sprintf(__('%s deletes an item', 'news'), $_SESSION['glpiname']),
);
}
$alert->redirectToList();
-} else if (isset($_POST['restore'])) {
+} elseif (isset($_POST['restore'])) {
$alert->check($_POST['id'], DELETE);
if ($alert->restore($_POST)) {
Event::log(
- $_POST["id"],
- "PluginNewsAlert",
+ $_POST['id'],
+ 'PluginNewsAlert',
4,
- "admin",
- sprintf(__('%s restores an item', 'news'), $_SESSION["glpiname"])
+ 'admin',
+ sprintf(__('%s restores an item', 'news'), $_SESSION['glpiname']),
);
}
Html::back();
-} else if (isset($_POST['purge'])) {
+} elseif (isset($_POST['purge'])) {
$alert->check($_POST['id'], PURGE);
if ($alert->delete($_POST, true)) {
Event::log(
- $_POST["id"],
- "PluginNewsAlert",
+ $_POST['id'],
+ 'PluginNewsAlert',
4,
- "admin",
- sprintf(__('%s purges an item', 'news'), $_SESSION["glpiname"])
+ 'admin',
+ sprintf(__('%s purges an item', 'news'), $_SESSION['glpiname']),
);
}
$alert->redirectToList();
-} else if (isset($_POST["addvisibility"])) {
+} elseif (isset($_POST['addvisibility'])) {
$target = new PluginNewsAlert_Target();
$target->check(-1, CREATE, $_POST);
$target->add($_POST);
@@ -111,11 +111,11 @@
Html::header(
__('Alerts', 'news'),
- $_SERVER["PHP_SELF"],
+ $_SERVER['PHP_SELF'],
'tools',
- "PluginNewsAlert"
+ 'PluginNewsAlert',
);
-$alert->display(['id' => $_GET["id"]]);
+$alert->display(['id' => $_GET['id']]);
Html::footer();
diff --git a/front/alert.php b/front/alert.php
index cccd9f8..81a2395 100644
--- a/front/alert.php
+++ b/front/alert.php
@@ -28,13 +28,13 @@
* -------------------------------------------------------------------------
*/
-include("../../../inc/includes.php");
+include('../../../inc/includes.php');
Html::header(
__('Alerts', 'news'),
- $_SERVER["PHP_SELF"],
+ $_SERVER['PHP_SELF'],
'tools',
- "PluginNewsAlert"
+ 'PluginNewsAlert',
);
Search::show('PluginNewsAlert');
diff --git a/front/external.php b/front/external.php
index a602e9a..158a852 100644
--- a/front/external.php
+++ b/front/external.php
@@ -28,7 +28,7 @@
* -------------------------------------------------------------------------
*/
-include("../../../inc/includes.php");
+include('../../../inc/includes.php');
Html::nullHeader(PluginNewsAlert::getTypeName());
$logged = isset($_SESSION['glpiID']);
diff --git a/front/hidden_alerts.php b/front/hidden_alerts.php
index 7afc551..82e24a2 100644
--- a/front/hidden_alerts.php
+++ b/front/hidden_alerts.php
@@ -28,21 +28,21 @@
* -------------------------------------------------------------------------
*/
-include("../../../inc/includes.php");
+include('../../../inc/includes.php');
-if ($_SESSION["glpiactiveprofile"]["interface"] != "central") {
- Html::helpHeader(__('Alerts', 'news'), $_SERVER['PHP_SELF'], $_SESSION["glpiname"]);
+if ($_SESSION['glpiactiveprofile']['interface'] != 'central') {
+ Html::helpHeader(__('Alerts', 'news'), $_SERVER['PHP_SELF'], $_SESSION['glpiname']);
} else {
Html::header(
__('Alerts', 'news'),
- $_SERVER["PHP_SELF"],
+ $_SERVER['PHP_SELF'],
'tools',
- "PluginNewsAlert"
+ 'PluginNewsAlert',
);
}
PluginNewsAlert::displayAlerts(['show_only_login_alerts' => false,
- 'show_hidden_alerts' => true
+ 'show_hidden_alerts' => true,
]);
Html::footer();
diff --git a/hook.php b/hook.php
index 0cf421f..a3bece9 100644
--- a/hook.php
+++ b/hook.php
@@ -35,15 +35,15 @@ function plugin_news_install()
$migration = new Migration(Plugin::getInfo('news', 'version'));
- $default_charset = DBConnection::getDefaultCharset();
+ $default_charset = DBConnection::getDefaultCharset();
$default_collation = DBConnection::getDefaultCollation();
- $default_key_sign = DBConnection::getDefaultPrimaryKeySignOption();
+ $default_key_sign = DBConnection::getDefaultPrimaryKeySignOption();
- $alert_table = "glpi_plugin_news_alerts";
+ $alert_table = 'glpi_plugin_news_alerts';
if (!$DB->tableExists($alert_table)) {
- $white = PluginNewsAlert::WHITE;
- $dark = PluginNewsAlert::DARK;
+ $white = PluginNewsAlert::WHITE;
+ $dark = PluginNewsAlert::DARK;
$medium = PluginNewsAlert::MEDIUM;
$DB->query("
CREATE TABLE IF NOT EXISTS `$alert_table` (
@@ -76,9 +76,9 @@ function plugin_news_install()
],
[
'AND' => [
- 'state' => PluginNewsAlert_User::HIDDEN,
+ 'state' => PluginNewsAlert_User::HIDDEN,
PluginNewsAlert::getTable() . '.is_close_allowed' => 0,
- ]
+ ],
],
'',
[
@@ -86,11 +86,11 @@ function plugin_news_install()
PluginNewsAlert::getTable() => [
'FKEY' => [
PluginNewsAlert_User::getTable() => 'plugin_news_alerts_id',
- PluginNewsAlert::getTable() => 'id',
- ]
- ]
- ]
- ]
+ PluginNewsAlert::getTable() => 'id',
+ ],
+ ],
+ ],
+ ],
);
}
@@ -123,96 +123,96 @@ function plugin_news_install()
");
}
- /* Remove old table */
+ /* Remove old table */
if ($DB->tableExists('glpi_plugin_news_profiles')) {
- $DB->query("DROP TABLE IF EXISTS `glpi_plugin_news_profiles`;");
+ $DB->query('DROP TABLE IF EXISTS `glpi_plugin_news_profiles`;');
}
- // add displayed on login flag
- if (!$DB->fieldExists($alert_table, "is_displayed_onlogin")) {
- $migration->addField($alert_table, "is_displayed_onlogin", 'bool');
+ // add displayed on login flag
+ if (!$DB->fieldExists($alert_table, 'is_displayed_onlogin')) {
+ $migration->addField($alert_table, 'is_displayed_onlogin', 'bool');
}
- // add displayed on helpdesk flag
- if (!$DB->fieldExists($alert_table, "is_displayed_onhelpdesk")) {
- $migration->addField($alert_table, "is_displayed_onhelpdesk", 'bool');
+ // add displayed on helpdesk flag
+ if (!$DB->fieldExists($alert_table, 'is_displayed_onhelpdesk')) {
+ $migration->addField($alert_table, 'is_displayed_onhelpdesk', 'bool');
}
- if (!$DB->fieldExists($alert_table, "date_creation")) {
- if ($migration->addField($alert_table, "date_creation", 'date')) {
- $migration->addKey($alert_table, "date_creation");
+ if (!$DB->fieldExists($alert_table, 'date_creation')) {
+ if ($migration->addField($alert_table, 'date_creation', 'date')) {
+ $migration->addKey($alert_table, 'date_creation');
}
}
- // add close allowed flag
- if (!$DB->fieldExists($alert_table, "is_close_allowed")) {
- $migration->addField($alert_table, "is_close_allowed", 'bool');
+ // add close allowed flag
+ if (!$DB->fieldExists($alert_table, 'is_close_allowed')) {
+ $migration->addField($alert_table, 'is_close_allowed', 'bool');
}
- // add type field on alert (to display icons)
- if (!$DB->fieldExists($alert_table, "type")) {
- $migration->addField($alert_table, "type", 'integer');
+ // add type field on alert (to display icons)
+ if (!$DB->fieldExists($alert_table, 'type')) {
+ $migration->addField($alert_table, 'type', 'integer');
}
- // add activity flag
- if (!$DB->fieldExists($alert_table, "is_active")) {
- if ($migration->addField($alert_table, "is_active", 'bool')) {
- $migration->addKey($alert_table, "is_active");
+ // add activity flag
+ if (!$DB->fieldExists($alert_table, 'is_active')) {
+ if ($migration->addField($alert_table, 'is_active', 'bool')) {
+ $migration->addKey($alert_table, 'is_active');
}
}
- // fix is_default default value
+ // fix is_default default value
$alert_fields = $DB->listFields($alert_table);
if ($alert_fields['is_deleted']['Default'] !== '0') {
$migration->changeField(
$alert_table,
- "is_deleted",
- "is_deleted",
- "TINYINT NOT NULL DEFAULT 0"
+ 'is_deleted',
+ 'is_deleted',
+ 'TINYINT NOT NULL DEFAULT 0',
);
}
- // end/start dates can be null
+ // end/start dates can be null
$migration->changeField(
$alert_table,
- "date_end",
- "date_end",
- "TIMESTAMP NULL DEFAULT NULL"
+ 'date_end',
+ 'date_end',
+ 'TIMESTAMP NULL DEFAULT NULL',
);
$migration->changeField(
$alert_table,
- "date_start",
- "date_start",
- "TIMESTAMP NULL DEFAULT NULL"
+ 'date_start',
+ 'date_start',
+ 'TIMESTAMP NULL DEFAULT NULL',
);
- if ($DB->fieldExists($alert_table, "profiles_id")) {
- // migration of direct profiles into targets table
+ if ($DB->fieldExists($alert_table, 'profiles_id')) {
+ // migration of direct profiles into targets table
$query_targets = "INSERT INTO glpi_plugin_news_alerts_targets
(plugin_news_alerts_id, itemtype, items_id)
SELECT id, 'Profile', profiles_id
FROM $alert_table";
- $DB->query($query_targets) or die("fail to migration targets");
+ $DB->query($query_targets) or die('fail to migration targets');
- //drop old field
- $migration->dropField($alert_table, "profiles_id");
+ //drop old field
+ $migration->dropField($alert_table, 'profiles_id');
}
- // Replace -1 value usage in items_id foreign key
- if (!$DB->fieldExists("glpi_plugin_news_alerts_targets", "all_items")) {
- $migration->addField("glpi_plugin_news_alerts_targets", "all_items", 'bool');
+ // Replace -1 value usage in items_id foreign key
+ if (!$DB->fieldExists('glpi_plugin_news_alerts_targets', 'all_items')) {
+ $migration->addField('glpi_plugin_news_alerts_targets', 'all_items', 'bool');
$migration->addPostQuery(
$DB->buildUpdate(
'glpi_plugin_news_alerts_targets',
['items_id' => '0', 'all_items' => '1'],
- ['items_id' => '-1']
- )
+ ['items_id' => '-1'],
+ ),
);
}
- // install default display preferences
+ // install default display preferences
$dpreferences = new DisplayPreference();
- $found_dpref = $dpreferences->find(['itemtype' => ['LIKE', '%PluginNews%']]);
+ $found_dpref = $dpreferences->find(['itemtype' => ['LIKE', '%PluginNews%']]);
if (count($found_dpref) == 0) {
$DB->query("INSERT INTO `glpi_displaypreferences`
(`itemtype`, `num`, `rank`, `users_id`)
@@ -222,103 +222,103 @@ function plugin_news_install()
('PluginNewsAlert', 6, 4, 0)");
}
- // add displayed on central flag
- if (!$DB->fieldExists($alert_table, "is_displayed_oncentral")) {
+ // add displayed on central flag
+ if (!$DB->fieldExists($alert_table, 'is_displayed_oncentral')) {
$migration->addField(
$alert_table,
- "is_displayed_oncentral",
+ 'is_displayed_oncentral',
'bool',
- ['value' => true]
+ ['value' => true],
);
}
- // Add background_color field
+ // Add background_color field
if (!$DB->fieldExists($alert_table, 'background_color')) {
$migration->addField(
$alert_table,
'background_color',
'string',
- ['value' => PluginNewsAlert::WHITE]
+ ['value' => PluginNewsAlert::WHITE],
);
}
- // Add text_color field
+ // Add text_color field
if (!$DB->fieldExists($alert_table, 'text_color')) {
$migration->addField(
$alert_table,
'text_color',
'string',
- ['value' => PluginNewsAlert::DARK]
+ ['value' => PluginNewsAlert::DARK],
);
}
- // Add emphasis_color field
+ // Add emphasis_color field
if (!$DB->fieldExists($alert_table, 'emphasis_color')) {
$migration->addField(
$alert_table,
'emphasis_color',
'string',
- ['value' => PluginNewsAlert::DARK]
+ ['value' => PluginNewsAlert::DARK],
);
}
- // Add size field
+ // Add size field
if (!$DB->fieldExists($alert_table, 'size')) {
$migration->addField(
$alert_table,
'size',
'string',
- ['value' => PluginNewsAlert::MEDIUM]
+ ['value' => PluginNewsAlert::MEDIUM],
);
}
- // Add icon field
+ // Add icon field
if (!$DB->fieldExists($alert_table, 'icon')) {
$migration->addField(
$alert_table,
'icon',
'string',
- ['value' => '']
+ ['value' => ''],
);
}
- // Add display_dates field
+ // Add display_dates field
if (!$DB->fieldExists($alert_table, 'display_dates')) {
$migration->addField(
$alert_table,
'display_dates',
'bool',
- ['value' => '1']
+ ['value' => '1'],
);
}
- // Build or rebuild templates data
- // -> Will fill new columns (colors + icon) with the expected values for each
- // templates
- // -> Will update template values if changed in future updates
+ // Build or rebuild templates data
+ // -> Will fill new columns (colors + icon) with the expected values for each
+ // templates
+ // -> Will update template values if changed in future updates
foreach (array_keys(PluginNewsAlert::getTypes()) as $type) {
$migration->addPostQuery(
$DB->buildUpdate(
$alert_table,
PluginNewsAlert::getTemplatesValues()[$type],
['type' => $type],
- )
+ ),
);
}
- // $migration->addRight() does not allow to copy an existing right, we must write some custom code
+ // $migration->addRight() does not allow to copy an existing right, we must write some custom code
$right_exist = countElementsInTable(
- "glpi_profilerights",
- ["name" => PluginNewsAlert::$rightname]
+ 'glpi_profilerights',
+ ['name' => PluginNewsAlert::$rightname],
) > 0;
- // Add the same standard rights on alerts as the rights already granted on
- // public reminders
+ // Add the same standard rights on alerts as the rights already granted on
+ // public reminders
if (!$right_exist) {
$reminder_rights = $DB->request([
'SELECT' => ['profiles_id', 'rights'],
'FROM' => 'glpi_profilerights',
- 'WHERE' => ['name' => 'reminder_public']
+ 'WHERE' => ['name' => 'reminder_public'],
]);
foreach ($reminder_rights as $row) {
@@ -332,14 +332,15 @@ function plugin_news_install()
]));
if (($_SESSION['glpiactiveprofile']['id'] ?? null) === $profile_id) {
- // Ensure menu will be displayed as soon as right is added.
- $_SESSION['glpiactiveprofile'][PluginNewsAlert::$rightname] = $right_value;
- unset($_SESSION['glpimenu']);
+ // Ensure menu will be displayed as soon as right is added.
+ $_SESSION['glpiactiveprofile'][PluginNewsAlert::$rightname] = $right_value;
+ unset($_SESSION['glpimenu']);
}
}
}
$migration->executeMigration();
+
return true;
}
@@ -348,10 +349,10 @@ function plugin_news_uninstall()
/** @var DBmysql $DB */
global $DB;
- $DB->query("DROP TABLE IF EXISTS `glpi_plugin_news_alerts`;");
- $DB->query("DROP TABLE IF EXISTS `glpi_plugin_news_profiles`;");
- $DB->query("DROP TABLE IF EXISTS `glpi_plugin_news_alerts_users`;");
- $DB->query("DROP TABLE IF EXISTS `glpi_plugin_news_alerts_targets`;");
+ $DB->query('DROP TABLE IF EXISTS `glpi_plugin_news_alerts`;');
+ $DB->query('DROP TABLE IF EXISTS `glpi_plugin_news_profiles`;');
+ $DB->query('DROP TABLE IF EXISTS `glpi_plugin_news_alerts_users`;');
+ $DB->query('DROP TABLE IF EXISTS `glpi_plugin_news_alerts_targets`;');
$DB->query("DELETE FROM `glpi_profiles` WHERE `name` LIKE '%plugin_news%';");
$DB->query("DELETE FROM `glpi_displaypreferences` WHERE `itemtype` LIKE '%PluginNews%';");
diff --git a/inc/alert.class.php b/inc/alert.class.php
index ba2ba44..99e615b 100644
--- a/inc/alert.class.php
+++ b/inc/alert.class.php
@@ -38,61 +38,60 @@
class PluginNewsAlert extends CommonDBTM
{
public static $rightname = 'plugin_news_alert';
- public $dohistory = true;
-
- // Available templates
- const GENERAL = 1;
- const INFO = 2;
- const WARNING = 3;
- const PROBLEM = 4;
-
- // Available sizes
- const SMALL = 'small';
- const MEDIUM = 'medium';
- const BIG = 'big';
- const MAXIMUM = 'maximum';
-
- // Available icons
- const SETTINGS = 'settings';
- const ALERT_CIRCLE = 'alert-circle';
- const ALERT_TRIANGLE = 'alert-triangle';
- const ALERT_OCTAGON = 'alert-octagon';
-
- // Available colors
- const DARK = 'dark';
- const WHITE = 'white';
- const BLUE = 'blue';
- const CYAN = 'cyan';
- const INDIGO = 'indigo';
- const PURPLE = 'purple';
- const PINK = 'pink';
- const RED = 'red';
- const ORANGE = 'orange';
- const YELLOW = 'yellow';
- const LIME = 'lime';
+ public $dohistory = true;
+
+ // Available templates
+ public const GENERAL = 1;
+ public const INFO = 2;
+ public const WARNING = 3;
+ public const PROBLEM = 4;
+
+ // Available sizes
+ public const SMALL = 'small';
+ public const MEDIUM = 'medium';
+ public const BIG = 'big';
+ public const MAXIMUM = 'maximum';
+
+ // Available icons
+ public const SETTINGS = 'settings';
+ public const ALERT_CIRCLE = 'alert-circle';
+ public const ALERT_TRIANGLE = 'alert-triangle';
+ public const ALERT_OCTAGON = 'alert-octagon';
+
+ // Available colors
+ public const DARK = 'dark';
+ public const WHITE = 'white';
+ public const BLUE = 'blue';
+ public const CYAN = 'cyan';
+ public const INDIGO = 'indigo';
+ public const PURPLE = 'purple';
+ public const PINK = 'pink';
+ public const RED = 'red';
+ public const ORANGE = 'orange';
+ public const YELLOW = 'yellow';
+ public const LIME = 'lime';
public static function canDelete()
{
return self::canPurge();
}
- /**
- * Returns the type name with consideration of plural
- *
- * @param number $nb Number of item(s)
- * @return string Itemtype name
- */
+ /**
+ * Returns the type name with consideration of plural
+ *
+ * @param number $nb Number of item(s)
+ * @return string Itemtype name
+ */
public static function getTypeName($nb = 0)
{
return __('Alerts', 'news');
}
- /**
- * @see CommonGLPI::defineTabs()
- **/
+ /**
+ * @see CommonGLPI::defineTabs()
+ **/
public function defineTabs($options = [])
{
-
$ong = [];
$this->addDefaultFormTab($ong)
->addStandardTab('PluginNewsAlert_Target', $ong, $options)
@@ -103,50 +102,49 @@ public function defineTabs($options = [])
public function rawSearchOptions()
{
-
$tab = [];
$tab[] = [
- 'id' => 1,
- 'table' => $this->getTable(),
- 'field' => 'name',
- 'name' => __('Name', 'news'),
- 'datatype' => 'itemlink',
- 'itemlink_type' => $this->getType(),
- 'massiveaction' => false,
+ 'id' => 1,
+ 'table' => $this->getTable(),
+ 'field' => 'name',
+ 'name' => __('Name', 'news'),
+ 'datatype' => 'itemlink',
+ 'itemlink_type' => $this->getType(),
+ 'massiveaction' => false,
];
$tab[] = [
- 'id' => 2,
- 'table' => $this->getTable(),
- 'field' => 'date_start',
- 'name' => __('Visibility start date', 'news'),
- 'datatype' => 'date',
+ 'id' => 2,
+ 'table' => $this->getTable(),
+ 'field' => 'date_start',
+ 'name' => __('Visibility start date', 'news'),
+ 'datatype' => 'date',
];
$tab[] = [
- 'id' => 3,
- 'table' => $this->getTable(),
- 'field' => 'date_end',
- 'name' => __('Visibility end date', 'news'),
- 'datatype' => 'date',
+ 'id' => 3,
+ 'table' => $this->getTable(),
+ 'field' => 'date_end',
+ 'name' => __('Visibility end date', 'news'),
+ 'datatype' => 'date',
];
$tab[] = [
- 'id' => 4,
- 'table' => 'glpi_entities',
- 'field' => 'completename',
- 'name' => __('Entity', 'news'),
- 'massiveaction' => false,
+ 'id' => 4,
+ 'table' => 'glpi_entities',
+ 'field' => 'completename',
+ 'name' => __('Entity', 'news'),
+ 'massiveaction' => false,
];
$tab[] = [
- 'id' => 5,
- 'table' => $this->getTable(),
- 'field' => 'is_recursive',
- 'name' => __('Recursive', 'news'),
- 'datatype' => 'bool',
- 'massiveaction' => false,
+ 'id' => 5,
+ 'table' => $this->getTable(),
+ 'field' => 'is_recursive',
+ 'name' => __('Recursive', 'news'),
+ 'datatype' => 'bool',
+ 'massiveaction' => false,
];
$tab[] = [
@@ -161,56 +159,56 @@ public function rawSearchOptions()
];
$tab[] = [
- 'id' => 7,
- 'table' => $this->getTable(),
- 'field' => 'is_close_allowed',
- 'name' => __('Can close alert', 'news'),
- 'datatype' => 'bool',
- 'massiveaction' => false,
+ 'id' => 7,
+ 'table' => $this->getTable(),
+ 'field' => 'is_close_allowed',
+ 'name' => __('Can close alert', 'news'),
+ 'datatype' => 'bool',
+ 'massiveaction' => false,
];
$tab[] = [
- 'id' => 8,
- 'table' => $this->getTable(),
- 'field' => 'is_displayed_onlogin',
- 'name' => __('Show on login page', 'news'),
- 'datatype' => 'bool',
- 'massiveaction' => false,
+ 'id' => 8,
+ 'table' => $this->getTable(),
+ 'field' => 'is_displayed_onlogin',
+ 'name' => __('Show on login page', 'news'),
+ 'datatype' => 'bool',
+ 'massiveaction' => false,
];
$tab[] = [
- 'id' => 9,
- 'table' => $this->getTable(),
- 'field' => 'is_displayed_onhelpdesk',
- 'name' => __('Show on helpdesk page', 'news'),
- 'datatype' => 'bool',
- 'massiveaction' => false,
+ 'id' => 9,
+ 'table' => $this->getTable(),
+ 'field' => 'is_displayed_onhelpdesk',
+ 'name' => __('Show on helpdesk page', 'news'),
+ 'datatype' => 'bool',
+ 'massiveaction' => false,
];
$tab[] = [
- 'id' => 10,
- 'table' => $this->getTable(),
- 'field' => 'is_active',
- 'name' => __('Active', 'news'),
- 'datatype' => 'bool',
+ 'id' => 10,
+ 'table' => $this->getTable(),
+ 'field' => 'is_active',
+ 'name' => __('Active', 'news'),
+ 'datatype' => 'bool',
];
$tab[] = [
- 'id' => 19,
- 'table' => $this->getTable(),
- 'field' => 'date_mod',
- 'name' => __('Last update', 'news'),
- 'datatype' => 'datetime',
- 'massiveaction' => false,
+ 'id' => 19,
+ 'table' => $this->getTable(),
+ 'field' => 'date_mod',
+ 'name' => __('Last update', 'news'),
+ 'datatype' => 'datetime',
+ 'massiveaction' => false,
];
$tab[] = [
- 'id' => 121,
- 'table' => $this->getTable(),
- 'field' => 'date_creation',
- 'name' => __('Creation date', 'news'),
- 'datatype' => 'datetime',
- 'massiveaction' => false,
+ 'id' => 121,
+ 'table' => $this->getTable(),
+ 'field' => 'date_creation',
+ 'name' => __('Creation date', 'news'),
+ 'datatype' => 'datetime',
+ 'massiveaction' => false,
];
return $tab;
@@ -228,16 +226,16 @@ public function post_updateItem($history = true)
$all_alert = $alert_user->find(
[
'plugin_news_alerts_id' => $this->getID(),
- 'state' => PluginNewsAlert_User::HIDDEN
- ]
+ 'state' => PluginNewsAlert_User::HIDDEN,
+ ],
);
foreach ($all_alert as $alert) {
//update state to force display
$alert_user->update(
[
- 'id' => $alert['id'],
- 'state' => PluginNewsAlert_User::VISIBLE
- ]
+ 'id' => $alert['id'],
+ 'state' => PluginNewsAlert_User::VISIBLE,
+ ],
);
}
}
@@ -248,11 +246,11 @@ public static function findAllToNotify($params = [])
/** @var DBmysql $DB */
global $DB;
- $p['show_only_login_alerts'] = false;
- $p['show_only_central_alerts'] = false;
- $p['show_hidden_alerts'] = false;
- $p['show_only_helpdesk_alerts'] = false;
- $p['entities_id'] = false;
+ $p['show_only_login_alerts'] = false;
+ $p['show_only_central_alerts'] = false;
+ $p['show_hidden_alerts'] = false;
+ $p['show_only_helpdesk_alerts'] = false;
+ $p['entities_id'] = false;
foreach ($params as $key => $value) {
$p[$key] = $value;
}
@@ -291,29 +289,29 @@ public static function findAllToNotify($params = [])
[
'AND' => [
"$ttable.itemtype" => 'Profile',
- 'OR' => [
- "$ttable.items_id" => $_SESSION['glpiactiveprofile']['id'],
+ 'OR' => [
+ "$ttable.items_id" => $_SESSION['glpiactiveprofile']['id'],
"$ttable.all_items" => 1,
],
- ]
+ ],
],
[
'AND' => [
"$ttable.itemtype" => 'Group',
"$ttable.items_id" => $fndgroup,
- ]
+ ],
],
[
'AND' => [
"$ttable.itemtype" => 'User',
"$ttable.items_id" => $_SESSION['glpiID'],
- ]
+ ],
],
- ]
+ ],
],
- ]
+ ],
];
- } else if ($p['show_only_login_alerts']) {
+ } elseif ($p['show_only_login_alerts']) {
$login_sql = ["{$table}.is_displayed_onlogin" => 1];
}
@@ -336,9 +334,9 @@ public static function findAllToNotify($params = [])
$entity_sql = getEntitiesRestrictCriteria($table, '', $p['entities_id'], true);
}
$criteria = [
- 'SELECT' => ["$table.*"],
- 'DISTINCT' => true,
- 'FROM' => $table,
+ 'SELECT' => ["$table.*"],
+ 'DISTINCT' => true,
+ 'FROM' => $table,
'LEFT JOIN' => [
$utable => [
'ON' => [
@@ -348,18 +346,18 @@ public static function findAllToNotify($params = [])
'AND' => [
"$utable.users_id" => $users_id,
"$utable.state" => $hidstate,
- ]
- ]
- ]
- ]
+ ],
+ ],
+ ],
+ ],
],
'INNER JOIN' => [
$ttable => [
'ON' => [
$ttable => 'plugin_news_alerts_id',
- $table => 'id'
- ]
- ]
+ $table => 'id',
+ ],
+ ],
],
'WHERE' => [
$login_show_hidden_sql,
@@ -367,17 +365,17 @@ public static function findAllToNotify($params = [])
'OR' => [
["$table.date_start" => ['<=', $today]],
["$table.date_start" => null],
- ]
+ ],
],
[
'OR' => [
["$table.date_end" => ['>=', $today]],
["$table.date_end" => null],
- ]
+ ],
],
'is_deleted' => 0,
'is_active' => 1,
- ]
+ ],
];
if (!empty($targets_sql)) {
$criteria['INNER JOIN'][$ttable]['ON'][] = $targets_sql;
@@ -407,20 +405,21 @@ public static function findAllToNotify($params = [])
public static function getMenuContent()
{
- $menu = parent::getMenuContent();
+ $menu = parent::getMenuContent();
$menu['links']['search'] = PluginNewsAlert::getSearchURL(false);
return $menu;
}
-
public function checkDate($datetime)
{
if (preg_match('/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/', $datetime)) {
- $datetime = explode(" ", $datetime);
- list($year , $month , $day) = explode('-', $datetime[0]);
- return checkdate((int)$month, (int)$day, (int)$year);
+ $datetime = explode(' ', $datetime);
+ list($year, $month, $day) = explode('-', $datetime[0]);
+
+ return checkdate((int) $month, (int) $day, (int) $year);
}
+
return false;
}
@@ -429,7 +428,7 @@ public function prepareInputForAdd($input)
$errors = [];
if ($this->isNewItem()) {
- $missing_name = empty($input['name'] ?? "");
+ $missing_name = empty($input['name'] ?? '');
} else {
$missing_name = isset($input['name']) && empty($input['name']);
}
@@ -459,6 +458,7 @@ public function prepareInputForUpdate($input)
if ($input['_transfer'] ?? false) {
return $input;
}
+
return $this->prepareInputForAdd($input);
}
@@ -473,7 +473,7 @@ public function post_addItem()
'itemtype' => 'Profile',
'items_id' => 0,
'all_items' => 1,
- ]
+ ],
);
}
@@ -504,6 +504,7 @@ public function showForm($ID, $options = [])
'icons' => self::getIcons(),
'templates_values' => self::getTemplatesValues(),
]);
+
return true;
}
@@ -511,31 +512,31 @@ public static function displayOnCentral()
{
echo "";
self::displayAlerts(['show_only_central_alerts' => true]);
- echo " |
";
+ echo '';
}
public static function displayOnLogin()
{
- echo Html::css(Plugin::getPhpDir('news', false) . "/css/styles.css");
+ echo Html::css(Plugin::getPhpDir('news', false) . '/css/styles.css');
echo "";
self::displayAlerts(['show_only_login_alerts' => true]);
- echo "
";
+ echo '';
}
public static function displayOnTicket()
{
echo "";
self::displayAlerts(['show_only_helpdesk_alerts' => true]);
- echo " |
";
+ echo '';
}
public static function displayAlerts($params = [])
{
- $p['show_only_login_alerts'] = false;
- $p['show_only_central_alerts'] = false;
- $p['show_hidden_alerts'] = false;
- $p['show_only_helpdesk_alerts'] = false;
- $p['entities_id'] = false;
+ $p['show_only_login_alerts'] = false;
+ $p['show_only_central_alerts'] = false;
+ $p['show_hidden_alerts'] = false;
+ $p['show_only_helpdesk_alerts'] = false;
+ $p['entities_id'] = false;
foreach ($params as $key => $value) {
$p[$key] = $value;
}
@@ -548,11 +549,11 @@ public static function displayAlerts($params = [])
}
$hidden_params = [
- 'show_hidden_alerts' => true,
- 'show_only_login_alerts' => false,
- 'show_only_central_alerts' => $p['show_only_central_alerts'],
- 'show_only_helpdesk_alerts' => $p['show_only_helpdesk_alerts'],
- 'entities_id' => $p['entities_id']
+ 'show_hidden_alerts' => true,
+ 'show_only_login_alerts' => false,
+ 'show_only_central_alerts' => $p['show_only_central_alerts'],
+ 'show_only_helpdesk_alerts' => $p['show_only_helpdesk_alerts'],
+ 'entities_id' => $p['entities_id'],
];
if (
@@ -562,24 +563,24 @@ public static function displayAlerts($params = [])
) {
echo "";
+ echo __('You have hidden alerts valid for current date', 'news');
+ echo '';
+ echo '';
}
- echo "";
+ echo '';
if ($p['show_only_login_alerts']) {
- echo Html::script(Plugin::getPhpDir('news', false) . "/js/news.js");
+ echo Html::script(Plugin::getPhpDir('news', false) . '/js/news.js');
}
}
- /**
- * Compute alert size classes
- *
- * @param string $size Alert size
- *
- * @return string Bootstrap col classes
- */
+ /**
+ * Compute alert size classes
+ *
+ * @param string $size Alert size
+ *
+ * @return string Bootstrap col classes
+ */
public static function getSizeClasses(string $size): string
{
// Note: the 'w-100' class will be added using javascript when we are
@@ -588,17 +589,17 @@ public static function getSizeClasses(string $size): string
switch ($size) {
case self::SMALL:
- return "col-xxl-4 col-xl-4 col-12";
+ return 'col-xxl-4 col-xl-4 col-12';
default:
case self::MEDIUM:
- return "col-xxl-6 col-xl-6 col-12";
+ return 'col-xxl-6 col-xl-6 col-12';
case self::BIG:
- return "col-xxl-8 col-xl-8 col-12";
+ return 'col-xxl-8 col-xl-8 col-12';
case self::MAXIMUM:
- return "col-12";
+ return 'col-12';
}
}
@@ -614,41 +615,41 @@ public static function displayAlert($alert, $p)
]);
}
- /**
- * Get available templates for alerts
- *
- * @return array
- */
+ /**
+ * Get available templates for alerts
+ *
+ * @return array
+ */
public static function getTypes(): array
{
return [
- self::GENERAL => __("General", 'news'),
- self::INFO => __("Information", 'news'),
- self::WARNING => __("Warning", 'news'),
- self::PROBLEM => __("Problem", 'news'),
+ self::GENERAL => __('General', 'news'),
+ self::INFO => __('Information', 'news'),
+ self::WARNING => __('Warning', 'news'),
+ self::PROBLEM => __('Problem', 'news'),
];
}
- /**
- * Get available sizes for alerts
- *
- * @return array
- */
+ /**
+ * Get available sizes for alerts
+ *
+ * @return array
+ */
public static function getSizes(): array
{
return [
- self::SMALL => __("Small", 'news'),
- self::MEDIUM => __("Medium", 'news'),
- self::BIG => __("Big", 'news'),
- self::MAXIMUM => __("Max", 'news'),
+ self::SMALL => __('Small', 'news'),
+ self::MEDIUM => __('Medium', 'news'),
+ self::BIG => __('Big', 'news'),
+ self::MAXIMUM => __('Max', 'news'),
];
}
- /**
- * Get available icons for alerts
- *
- * @return array
- */
+ /**
+ * Get available icons for alerts
+ *
+ * @return array
+ */
public static function getIcons(): array
{
return [
@@ -659,33 +660,33 @@ public static function getIcons(): array
];
}
- /**
- * Get available colors for alerts (text, background and accent)
- *
- * @return array
- */
+ /**
+ * Get available colors for alerts (text, background and accent)
+ *
+ * @return array
+ */
public static function getColors(): array
{
return [
- self::DARK => __("Black", 'news'),
- self::WHITE => __("White", 'news'),
- self::BLUE => __("Blue", 'news'),
- self::CYAN => __("Cyan", 'news'),
- self::INDIGO => __("Indigo", 'news'),
- self::PURPLE => __("Purple", 'news'),
- self::PINK => __("Pink", 'news'),
- self::RED => __("Red", 'news'),
- self::ORANGE => __("Orange", 'news'),
- self::YELLOW => __("Yellow", 'news'),
- self::LIME => __("Lime", 'news'),
+ self::DARK => __('Black', 'news'),
+ self::WHITE => __('White', 'news'),
+ self::BLUE => __('Blue', 'news'),
+ self::CYAN => __('Cyan', 'news'),
+ self::INDIGO => __('Indigo', 'news'),
+ self::PURPLE => __('Purple', 'news'),
+ self::PINK => __('Pink', 'news'),
+ self::RED => __('Red', 'news'),
+ self::ORANGE => __('Orange', 'news'),
+ self::YELLOW => __('Yellow', 'news'),
+ self::LIME => __('Lime', 'news'),
];
}
- /**
- * Get icon and colors values for each available templates
- *
- * @return array
- */
+ /**
+ * Get icon and colors values for each available templates
+ *
+ * @return array
+ */
public static function getTemplatesValues(): array
{
return [
@@ -733,25 +734,24 @@ public static function preItemForm($params = [])
$entities_id = isset($params['item']->fields['entities_id'])
? $params['item']->fields['entities_id']
: false; // false to use current entity
- self::displayAlerts(['show_only_helpdesk_alerts' => true,
- 'show_hidden_alerts' => false,
- 'entities_id' => $entities_id
+ self::displayAlerts(['show_only_helpdesk_alerts' => true,
+ 'show_hidden_alerts' => false,
+ 'entities_id' => $entities_id,
]);
}
}
public static function preItemList($params = [])
{
- if (isset($params['itemtype']) && $params['itemtype'] == "Ticket") {
+ if (isset($params['itemtype']) && $params['itemtype'] == 'Ticket') {
echo "";
self::displayAlerts(['show_only_helpdesk_alerts' => true]);
- echo " |
";
+ echo '';
}
}
-
public static function getIcon()
{
- return "fas fa-bell";
+ return 'fas fa-bell';
}
}
diff --git a/inc/alert_target.class.php b/inc/alert_target.class.php
index e234a7b..f80e1fc 100644
--- a/inc/alert_target.class.php
+++ b/inc/alert_target.class.php
@@ -56,18 +56,18 @@ public static function canPurge()
public function addNeededInfoToInput($input)
{
if (
- $input['itemtype'] == 'Profile'
+ $input['itemtype'] == 'Profile'
&& $input['items_id'] == -1
) {
$input['all_items'] = 1;
- $input['items_id'] = 0;
+ $input['items_id'] = 0;
}
+
return $input;
}
public static function getSpecificValueToDisplay($field, $values, array $options = [])
{
-
if (!is_array($values)) {
$values = [$field => $values];
}
@@ -79,16 +79,18 @@ public static function getSpecificValueToDisplay($field, $values, array $options
) {
$item = new $values['itemtype']();
if (
- $values['itemtype'] == "Profile"
+ $values['itemtype'] == 'Profile'
&& $values['all_items'] == 1
) {
- return $item->getTypeName() . " - " . __('All', 'news');
+ return $item->getTypeName() . ' - ' . __('All', 'news');
}
$item->getFromDB($values['items_id']);
- return $item->getTypeName() . " - " . $item->getName();
+
+ return $item->getTypeName() . ' - ' . $item->getName();
}
break;
}
+
return parent::getSpecificValueToDisplay($field, $values, $options);
}
@@ -97,8 +99,9 @@ public function getTabNameForItem(CommonGLPI $item, $withtemplate = 0)
if ($item instanceof PluginNewsAlert) {
$nb = countElementsInTable(
self::getTable(),
- ['plugin_news_alerts_id' => $item->getID()]
+ ['plugin_news_alerts_id' => $item->getID()],
);
+
return self::createTabEntry(self::getTypeName(Session::getPluralNumber()), $nb);
}
@@ -123,26 +126,26 @@ public static function showForAlert(PluginNewsAlert $alert)
$types = ['Group', 'Profile', 'User'];
echo "";
- echo "";
- echo "";
- echo __('Add a target', 'news') . ": ";
+ echo ' |
';
+ echo '';
+ echo __('Add a target', 'news') . ': ';
$addrand = Dropdown::showItemTypes('itemtype', $types, ['width' => '']);
- echo " | ";
- $params = ['type' => '__VALUE__',
+ echo '';
+ $params = ['type' => '__VALUE__',
'entities_id' => $alert->fields['entities_id'],
- 'is_recursive' => $alert->fields['is_recursive']
+ 'is_recursive' => $alert->fields['is_recursive'],
];
Ajax::updateItemOnSelectEvent(
- "dropdown_itemtype" . $addrand,
+ 'dropdown_itemtype' . $addrand,
"visibility$rand",
- Plugin::getWebDir('news') . "/ajax/targets.php",
- $params
+ Plugin::getWebDir('news') . '/ajax/targets.php',
+ $params,
);
- echo "";
+ echo ' | ';
echo "";
- echo " | ";
- echo "
";
- echo "
";
+ echo '';
+ echo '';
+ echo '';
Html::closeForm();
echo "";
@@ -151,46 +154,46 @@ public static function showForAlert(PluginNewsAlert $alert)
if ($nb = count($found_target) > 0) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams
- = ['num_displayed' => $nb,
+ = ['num_displayed' => $nb,
'container' => 'mass' . __CLASS__ . $rand,
- 'specific_actions' => ['delete' => _x('button', 'Delete permanently', 'news')]
+ 'specific_actions' => ['delete' => _x('button', 'Delete permanently', 'news')],
];
Html::showMassiveActions($massiveactionparams);
echo "
";
- echo "";
- echo "" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand) . " | ";
- echo "" . __('Type', 'news') . " | ";
- echo "" . __('Recipient', 'news') . " | ";
- echo "
";
+ echo '';
+ echo "" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand) . ' | ';
+ echo '' . __('Type', 'news') . ' | ';
+ echo '' . __('Recipient', 'news') . ' | ';
+ echo '
';
foreach ($found_target as $current_target) {
if (class_exists($current_target['itemtype'])) {
$item = new $current_target['itemtype']();
$item->getFromDB($current_target['items_id']);
$name = ($current_target['all_items'] == 1
- && $current_target['itemtype'] == "Profile")
+ && $current_target['itemtype'] == 'Profile')
? __('All', 'news')
: $item->getName(['complete' => true]);
echo "";
- echo "";
- Html::showMassiveActionCheckBox(__CLASS__, $current_target["id"]);
- echo " | ";
- echo "" . $item->getTypeName() . " | ";
+ echo '';
+ Html::showMassiveActionCheckBox(__CLASS__, $current_target['id']);
+ echo ' | ';
+ echo '' . $item->getTypeName() . ' | ';
echo "$name | ";
- echo "
";
+ echo '';
}
}
- echo "
";
+ echo '';
$massiveactionparams['ontop'] = false;
Html::showMassiveActions($massiveactionparams);
Html::closeForm();
}
- echo "
";
+ echo '';
return true;
}
diff --git a/inc/alert_user.class.php b/inc/alert_user.class.php
index 6162792..16a6a1f 100644
--- a/inc/alert_user.class.php
+++ b/inc/alert_user.class.php
@@ -36,12 +36,12 @@
class PluginNewsAlert_User extends CommonDBRelation
{
// @codingStandardsIgnoreEnd
- const HIDDEN = 1;
+ public const HIDDEN = 1;
- const VISIBLE = 0;
+ public const VISIBLE = 0;
- public static $itemtype_1 = 'PluginNewsAlert';
- public static $items_id_1 = 'plugin_news_alerts_id';
+ public static $itemtype_1 = 'PluginNewsAlert';
+ public static $items_id_1 = 'plugin_news_alerts_id';
public static $checkItem_1_Rights = self::HAVE_VIEW_RIGHT_ON_ITEM;
public static $itemtype_2 = 'User';
@@ -57,7 +57,7 @@ public static function hideAlert($params = [])
}
$plugin_news_alerts_id = intval($params['id']);
- $users_id = $_SESSION['glpiID'];
+ $users_id = $_SESSION['glpiID'];
return $DB->updateOrInsert(
self::getTable(),
@@ -66,8 +66,8 @@ public static function hideAlert($params = [])
],
[
'plugin_news_alerts_id' => $plugin_news_alerts_id,
- 'users_id' => $users_id,
- ]
+ 'users_id' => $users_id,
+ ],
);
}
@@ -85,11 +85,11 @@ public function rawSearchOptions()
$tab = parent::rawSearchOptions();
$tab[] = [
- 'id' => 5,
- 'table' => $this->getTable(),
- 'field' => 'state',
- 'name' => __('Status', 'news'),
- 'datatype' => 'dropdown',
+ 'id' => 5,
+ 'table' => $this->getTable(),
+ 'field' => 'state',
+ 'name' => __('Status', 'news'),
+ 'datatype' => 'dropdown',
];
return $tab;
diff --git a/inc/profile.class.php b/inc/profile.class.php
index 7d3b895..7998dba 100644
--- a/inc/profile.class.php
+++ b/inc/profile.class.php
@@ -63,7 +63,7 @@ class PluginNewsProfile extends Profile
public function getTabNameForItem(CommonGLPI $item, $withtemplate = 0)
{
return self::createTabEntry(
- PluginNewsAlert::getTypeName(Session::getPluralNumber())
+ PluginNewsAlert::getTypeName(Session::getPluralNumber()),
);
}
@@ -80,7 +80,7 @@ public static function displayTabContentForItem(
$profile->getFromDB($item->getID());
$twig = TemplateRenderer::getInstance();
- $twig->display("@news/profile.html.twig", [
+ $twig->display('@news/profile.html.twig', [
'id' => $item->getID(),
'profile' => $profile,
'title' => PluginNewsAlert::getTypeName(Session::getPluralNumber()),
@@ -89,8 +89,8 @@ public static function displayTabContentForItem(
'itemtype' => PluginNewsAlert::getType(),
'label' => PluginNewsAlert::getTypeName(Session::getPluralNumber()),
'field' => PluginNewsAlert::$rightname,
- ]
- ]
+ ],
+ ],
]);
return true;
diff --git a/setup.php b/setup.php
index 10b406a..b104a8d 100644
--- a/setup.php
+++ b/setup.php
@@ -31,9 +31,9 @@
define('PLUGIN_NEWS_VERSION', '1.12.3');
// Minimal GLPI version, inclusive
-define("PLUGIN_NEWS_MIN_GLPI", "10.0.0");
+define('PLUGIN_NEWS_MIN_GLPI', '10.0.0');
// Maximum GLPI version, exclusive
-define("PLUGIN_NEWS_MAX_GLPI", "10.0.99");
+define('PLUGIN_NEWS_MAX_GLPI', '10.0.99');
function plugin_init_news()
{
@@ -52,15 +52,15 @@ function plugin_init_news()
) {
Plugin::registerClass('PluginNewsProfile', ['addtabon' => 'Profile']);
- $PLUGIN_HOOKS['add_css']['news'] = 'css/styles.css';
- $PLUGIN_HOOKS['add_javascript']['news'][] = "js/news.js";
- $PLUGIN_HOOKS['display_login']['news'] = [
- "PluginNewsAlert", "displayOnLogin"
+ $PLUGIN_HOOKS['add_css']['news'] = 'css/styles.css';
+ $PLUGIN_HOOKS['add_javascript']['news'][] = 'js/news.js';
+ $PLUGIN_HOOKS['display_login']['news'] = [
+ 'PluginNewsAlert', 'displayOnLogin',
];
$PLUGIN_HOOKS['display_central']['news'] = [
- "PluginNewsAlert", "displayOnCentral"
+ 'PluginNewsAlert', 'displayOnCentral',
];
- $PLUGIN_HOOKS['pre_item_list']['news'] = ["PluginNewsAlert", "preItemList"];
+ $PLUGIN_HOOKS['pre_item_list']['news'] = ['PluginNewsAlert', 'preItemList'];
$PLUGIN_HOOKS['pre_item_form']['news'] = ['PluginNewsAlert', 'preItemForm'];
@@ -70,7 +70,7 @@ function plugin_init_news()
];
$PLUGIN_HOOKS['config_page']['news'] = 'front/alert.php';
- // require tinymce (for glpi >= 9.2)
+ // require tinymce (for glpi >= 9.2)
$CFG_GLPI['javascript']['tools']['pluginnewsalert'] = ['tinymce'];
}
}
@@ -79,16 +79,16 @@ function plugin_init_news()
function plugin_version_news()
{
return [
- 'name' => __('Alerts', 'news'),
- 'version' => PLUGIN_NEWS_VERSION,
- 'author' => "TECLIB'",
- 'license' => "GPLv2+",
- 'homepage' => 'https://github.com/pluginsGLPI/news',
- 'requirements' => [
+ 'name' => __('Alerts', 'news'),
+ 'version' => PLUGIN_NEWS_VERSION,
+ 'author' => "TECLIB'",
+ 'license' => 'GPLv2+',
+ 'homepage' => 'https://github.com/pluginsGLPI/news',
+ 'requirements' => [
'glpi' => [
'min' => PLUGIN_NEWS_MIN_GLPI,
'max' => PLUGIN_NEWS_MAX_GLPI,
- ]
- ]
+ ],
+ ],
];
}