diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index da4e8e70..ec555ac6 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -20,7 +20,7 @@ jobs: name: "Generate CI matrix" uses: "glpi-project/plugin-ci-workflows/.github/workflows/generate-ci-matrix.yml@v1" with: - glpi-version: "11.0.x" + glpi-version: "12.0.x" ci: name: "GLPI ${{ matrix.glpi-version }} - php:${{ matrix.php-version }} - ${{ matrix.db-image }}" needs: "generate-ci-matrix" diff --git a/CHANGELOG.md b/CHANGELOG.md index 718fff52..745e844b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [UNRELEASED] + +### Added + +- GLPI 12 compatibility + ## [1.10.1] - 2026-08-04 ### Fixed diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..ef1bed5a --- /dev/null +++ b/Makefile @@ -0,0 +1 @@ +include ../../PluginsMakefile.mk diff --git a/README.md b/README.md index 3726ad76..a5f5fabe 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,25 @@ -# More reporting GLPI plugin +# More Reporting GLPI plugin + +:warning: This plugin reached its end of life. [Read more here](#end-of-life) [![Join the chat at https://gitter.im/TECLIB/mreporting](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/TECLIB/mreporting?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ![Dashboard](https://raw.githubusercontent.com/PluginsGLPI/mreporting/main/screenshots/dashboard.png) -* Download : https://github.com/PluginsGLPI/mreporting/releases -* Translations on Transifex service : https://explore.transifex.com/teclib/glpi-project-plugin-mreporting/ -* WIKI (Develop new reports) : https://github.com/PluginsGLPI/mreporting/wiki +## End of life + +**This plugin has reached End of Life.** + +All reports provided by this plugin are now available natively in GLPI's built-in dashboards. + +This release (compatible with GLPI 12.0.x) is the last one. No further development or maintenance will be carried out. + + +## Links + +* Download: https://github.com/PluginsGLPI/mreporting/releases +* Translations on Transifex: https://explore.transifex.com/teclib/glpi-project-plugin-mreporting/ +* Wiki (developing new reports): https://github.com/PluginsGLPI/mreporting/wiki ## Contributing diff --git a/composer.json b/composer.json index 5822844d..30525037 100644 --- a/composer.json +++ b/composer.json @@ -4,20 +4,11 @@ "php": ">=8.2", "sboden/odtphp": "^3.2" }, - "require-dev": { - "glpi-project/tools": "^0.8" - }, "config": { "optimize-autoloader": true, "platform": { "php": "8.2.99" }, "sort-packages": true - }, - "repositories": [ - { - "type": "vcs", - "url": "https://github.com/teclib/odtphp/" - } - ] + } } diff --git a/composer.lock b/composer.lock index 8769f7b1..6ef5b57c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ba9723d009652c93fa45394b8392e0c1", + "content-hash": "a07d7c5c7125b73d0c183d1d89115621", "packages": [ { "name": "sboden/odtphp", @@ -61,879 +61,7 @@ "time": "2025-07-24T20:26:09+00:00" } ], - "packages-dev": [ - { - "name": "glpi-project/tools", - "version": "0.8.3", - "source": { - "type": "git", - "url": "https://github.com/glpi-project/tools.git", - "reference": "8ea2a7d4702a858f4b0360ba7d4f1841a5e77026" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/glpi-project/tools/zipball/8ea2a7d4702a858f4b0360ba7d4f1841a5e77026", - "reference": "8ea2a7d4702a858f4b0360ba7d4f1841a5e77026", - "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": "2025-10-14T10:26:06+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "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/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "symfony/console", - "version": "v6.4.43", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "3b643aa587acbc42f967a429af088a56ed8f046d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3b643aa587acbc42f967a429af088a56ed8f046d", - "reference": "3b643aa587acbc42f967a429af088a56ed8f046d", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "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/v6.4.43" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-07-26T14:44:19+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.7.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.7-dev" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-06-05T06:23:12+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.37.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-04-10T16:19:22+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.41.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-07-28T08:25:59+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.38.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "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 for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-25T13:48:31+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.38.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": ">=7.2" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-27T06:59:30+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.7.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.7-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "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 writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-06-16T09:55:08+00:00" - }, - { - "name": "symfony/string", - "version": "v7.4.15", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "e394af32256bf9e7bf80849d95e589167c10097b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/e394af32256bf9e7bf80849d95e589167c10097b", - "reference": "e394af32256bf9e7bf80849d95e589167c10097b", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.33", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/emoji": "^7.1|^8.0", - "symfony/http-client": "^6.4|^7.0|^8.0", - "symfony/intl": "^6.4|^7.0|^8.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0|^8.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v7.4.15" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-07-28T07:33:02+00:00" - }, - { - "name": "twig/twig", - "version": "v3.28.0", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/597c12ed286fb9d1701a36684ce6e0cbe28ebc8b", - "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b", - "shasum": "" - }, - "require": { - "php": ">=8.1.0", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3" - }, - "require-dev": { - "php-cs-fixer/shim": "^3.0@stable", - "phpstan/phpstan": "^2.0@stable", - "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" - }, - "type": "library", - "autoload": { - "files": [ - "src/Resources/core.php", - "src/Resources/debug.php", - "src/Resources/escaper.php", - "src/Resources/string_loader.php" - ], - "psr-4": { - "Twig\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], - "support": { - "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.28.0" - }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/twig/twig", - "type": "tidelift" - } - ], - "time": "2026-07-03T20:44:34+00:00" - } - ], + "packages-dev": [], "aliases": [], "minimum-stability": "stable", "stability-flags": {}, diff --git a/inc/common.class.php b/inc/common.class.php index eba36547..3612b193 100644 --- a/inc/common.class.php +++ b/inc/common.class.php @@ -33,7 +33,7 @@ class PluginMreportingCommon extends CommonDBTM { - public static $rightname = 'statistic'; + public static string $rightname = 'statistic'; public const MNBSP = '                @@ -60,16 +60,8 @@ public static function canCreate(): bool public static function getMenuContent() { - /** @var array $CFG_GLPI */ - global $CFG_GLPI; - - $web_full_dir = $CFG_GLPI['url_base'] . '/plugins/mreporting'; - $img_db = "" . __s("; - $img_ct = "" . __s("; + $icon_db = "" . __s('Dashboard', 'mreporting'); + $icon_ct = "" . __s('Reports list', 'mreporting'); $web_rel_dir = '/plugins/mreporting'; $url_central = "$web_rel_dir/front/central.php"; @@ -82,15 +74,17 @@ public static function getMenuContent() $menu['title'] = self::getTypeName(Session::getPluralNumber()); $menu['options']['dashboard']['page'] = $url_dashboard; + $menu['options']['dashboard']['icon'] = 'ti ti-layout-dashboard'; $menu['options']['dashboard']['title'] = __s('Dashboard', 'mreporting'); - $menu['options']['dashboard']['links'][$img_db] = $url_dashboard; - $menu['options']['dashboard']['links'][$img_ct] = $url_central; + $menu['options']['dashboard']['links'][$icon_db] = $url_dashboard; + $menu['options']['dashboard']['links'][$icon_ct] = $url_central; if (PluginMreportingConfig::canCreate()) { $menu['options']['dashboard']['links']['config'] = PluginMreportingConfig::getSearchURL(false); } $menu['options']['dashboard_list'] = $menu['options']['dashboard']; $menu['options']['dashboard_list']['page'] = $url_central; + $menu['options']['dashboard_list']['icon'] = 'ti ti-list'; $menu['options']['dashboard_list']['title'] = __s('Reports list', 'mreporting'); $menu['options']['config']['title'] = PluginMreportingConfig::getTypeName(2); diff --git a/inc/config.class.php b/inc/config.class.php index 5af5f6e1..9fef79e1 100644 --- a/inc/config.class.php +++ b/inc/config.class.php @@ -64,7 +64,7 @@ class PluginMreportingConfig extends CommonDBTM { - public static $rightname = 'config'; + public static string $rightname = 'config'; public static function getTypeName($nb = 0) { diff --git a/inc/inventory.class.php b/inc/inventory.class.php index de30da4d..299d98de 100644 --- a/inc/inventory.class.php +++ b/inc/inventory.class.php @@ -717,7 +717,7 @@ public function reportHbarLinuxDistro($config = []) ], ); - if ($number) { + if ($number !== 0) { $data['datas'][$os['name']] = $number; } } diff --git a/inc/notification.class.php b/inc/notification.class.php index e17d86c5..e44ecee5 100644 --- a/inc/notification.class.php +++ b/inc/notification.class.php @@ -33,7 +33,7 @@ class PluginMreportingNotification extends CommonDBTM /** * @var boolean activate the history for the plugin */ - public $dohistory = true; + public bool $dohistory = true; /** * Return the localized name of the current Type (PluginMreporting) diff --git a/inc/preference.class.php b/inc/preference.class.php index 56ad16ea..da52ba8d 100644 --- a/inc/preference.class.php +++ b/inc/preference.class.php @@ -59,7 +59,7 @@ public function addDefaultPreference($users_id) public static function checkPreferenceValue($field, $users_id = 0) { $data = getAllDataFromTable(getTableForItemType(self::class), ['users_id' => $users_id]); - if (!empty($data)) { + if ($data !== []) { $first = array_pop($data); return $first[$field]; diff --git a/inc/profile.class.php b/inc/profile.class.php index f5495aa1..bb57775c 100644 --- a/inc/profile.class.php +++ b/inc/profile.class.php @@ -64,7 +64,7 @@ class PluginMreportingProfile extends CommonDBTM { - public static $rightname = 'profile'; + public static string $rightname = 'profile'; public static function getTypeName($nb = 0) { @@ -143,7 +143,7 @@ public function getFromDBByProfile($profiles_id) } $this->fields = $result->current(); - return (is_array($this->fields) && count($this->fields)); + return count($this->fields) > 0; } /** diff --git a/mreporting.xml b/mreporting.xml index dd9a3cdb..497a5553 100644 --- a/mreporting.xml +++ b/mreporting.xml @@ -1,19 +1,19 @@ - More Reporting + More Reporting End-of-Life mreporting stable https://raw.githubusercontent.com/pluginsGLPI/mreporting/main/mreporting.png Přidání (a vytváření) nových výkazů s grafy pro glpi - Add (and develop) new graphical reports for glpi - Ajouter (et développer) de nouveaux rapports graphiques pour glpi + [End of Life] Last release for GLPI 12 — reports are now available natively in GLPI dashboards + [Fin de vie] Dernière version pour GLPI 12 — les rapports sont désormais disponibles nativement dans GLPI - Přidání (a vytváření) nových výkazů s grafy pro glpi. + Přidání (a vytváření) nových výkazů s grafy pro glpi. -Tento zásuvný modul obsahuje sadu nových statistických výkazů: +Tento zásuvný modul obsahuje sadu nových statistických výkazů: * Služba podpory * Nahromaděné požadavky @@ -33,13 +33,15 @@ Tento zásuvný modul obsahuje sadu nových statistických výkazů: * Distribuce záznamů o událostech -Můžete si také vytvořit nový výkaz pomocí kostry zásuvného modulu. +Můžete si také vytvořit nový výkaz pomocí kostry zásuvného modulu. Viz dokumentace: https://github.com/PluginsGLPI/mreporting/wiki - Add (and develop) new graphical reports for glpi. + This plugin has reached End of Life. -This plugins embed a set of new statistics reports : +All reports it provided are now available natively in GLPI's built-in dashboard system. This release (compatible with GLPI 12.0.x) is the last one. No further development or maintenance will be carried out. + +Previously included reports: * Helpdesk * Backlog @@ -50,42 +52,36 @@ This plugins embed a set of new statistics reports : * 5 SLA reports * Inventory - * Os versions and distributions + * OS versions and distributions * Top manufacturers * Top types (server, laptop, ...) * Top status * Age of computers - * FusionInventory agents * Logs distribution - -You can also develop new report with the framework of plugin. -See documentation : https://github.com/PluginsGLPI/mreporting/wiki - Ajouter (et développer) de nouveaux rapports grahiques pour glpi. + Ce plugin a atteint sa fin de vie. -Ce plugin contient un ensemble de nouveaux rapports statistiques. +L'ensemble des rapports qu'il proposait sont désormais disponibles nativement dans le système de tableaux de bord intégré à GLPI. Cette version (compatible GLPI 12.0.x) est la dernière. Aucun développement ni maintenance supplémentaire ne sera effectué. + +Rapports précédemment disponibles : * Assistance * Backlog * Ancienneté des tickets * Tickets par groupes ou techniciens * Top catégories ou groupes demandeurs - * Nombre de changement de groupes + * Nombre de changements de groupes * 5 rapports SLA * Inventaire * Versions et distributions des OS * Top fabricants - * top types (serveurs, portables, ...) + * Top types (serveurs, portables, ...) * Top statuts - * Age des ordinateurs - * Agents FusionInventory + * Âge des ordinateurs * Répartition des logs - -Vous pouvez aussi ajouter vos propre rapports en utilisant le "framework" fourni par le plugin -Voir documentation : https://github.com/PluginsGLPI/mreporting/wiki diff --git a/setup.php b/setup.php index 7e5563a5..fac89798 100644 --- a/setup.php +++ b/setup.php @@ -31,9 +31,9 @@ define('PLUGIN_MREPORTING_VERSION', '1.10.1'); // Minimal GLPI version, inclusive -define('PLUGIN_MREPORTING_MIN_GLPI', '11.0.0'); +define('PLUGIN_MREPORTING_MIN_GLPI', '12.0.0'); // Maximum GLPI version, exclusive -define('PLUGIN_MREPORTING_MAX_GLPI', '11.0.99'); +define('PLUGIN_MREPORTING_MAX_GLPI', '12.0.99'); if (!defined('PLUGIN_MREPORTING_DIR')) { define('PLUGIN_MREPORTING_DIR', __DIR__); @@ -190,7 +190,7 @@ function plugin_init_mreporting() function plugin_version_mreporting() { return [ - 'name' => __s('More Reporting', 'mreporting'), + 'name' => 'More Reporting End-of-Life', 'version' => PLUGIN_MREPORTING_VERSION, 'author' => "Teclib' & Infotel", 'homepage' => 'https://github.com/pluginsGLPI/mreporting',