From 307fba886e68472f54f4bbf30449e4f8abd3c7f2 Mon Sep 17 00:00:00 2001 From: Rom1-B <8530352+Rom1-B@users.noreply.github.com> Date: Mon, 17 Aug 2026 10:58:57 +0200 Subject: [PATCH 1/8] feature/glpi-12.0 --- .github/workflows/continuous-integration.yml | 2 +- CHANGELOG.md | 6 + composer.json | 3 - composer.lock | 722 +----------------- inc/abstractcontainerinstance.class.php | 4 +- inc/checkdatabasecommand.class.php | 2 +- inc/command/regeneratefilescommand.class.php | 4 +- inc/container.class.php | 4 +- inc/containerdisplaycondition.class.php | 6 +- inc/destinationfield.class.php | 2 +- inc/dropdown.class.php | 4 +- inc/field.class.php | 4 +- inc/labeltranslation.class.php | 4 +- inc/menu.class.php | 2 +- inc/profile.class.php | 8 +- inc/statusoverride.class.php | 4 +- setup.php | 4 +- src/Controller/QuestionTypeAjaxController.php | 2 +- templates/container.class.tpl | 2 +- .../container_display_conditions.html.twig | 1 - templates/dropdown.class.tpl | 2 +- .../container_display_condition.html.twig | 1 - templates/forms/status_override.html.twig | 1 - templates/forms/tab_container.html.twig | 1 - templates/injection.class.tpl | 2 +- templates/status_overrides.html.twig | 1 - tests/QuestionTypeTestCase.php | 13 +- tests/Units/FieldDestinationFieldTest.php | 2 - tests/Units/FieldQuestionTypeTest.php | 18 +- 29 files changed, 53 insertions(+), 778 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 850f4482..4f6d5c53 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 f7ff05c1..4b8b2c2e 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.24.4] - 2026-08-06 ### Fixed diff --git a/composer.json b/composer.json index 27d0106e..b5809263 100644 --- a/composer.json +++ b/composer.json @@ -3,9 +3,6 @@ "php": ">=8.2", "symfony/yaml": "^7.4" }, - "require-dev": { - "glpi-project/tools": "^0.8.3" - }, "config": { "optimize-autoloader": true, "platform": { diff --git a/composer.lock b/composer.lock index 75765ee6..bcc4234c 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": "bad011ca3a9a9c1776c1e7cc4b1e6d85", + "content-hash": "b87a0b8a1b33072443a8af342f9afbf9", "packages": [ { "name": "symfony/deprecation-contracts", @@ -237,725 +237,7 @@ "time": "2026-07-21T15:13:06+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/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/abstractcontainerinstance.class.php b/inc/abstractcontainerinstance.class.php index 7b918fd2..871bb916 100644 --- a/inc/abstractcontainerinstance.class.php +++ b/inc/abstractcontainerinstance.class.php @@ -30,9 +30,9 @@ abstract class PluginFieldsAbstractContainerInstance extends CommonDBChild { - public static $itemtype = 'itemtype'; + public static string $itemtype = 'itemtype'; - public static $items_id = 'items_id'; + public static string $items_id = 'items_id'; /** * This function relies on the static property `static::$plugins_forward_entity`, diff --git a/inc/checkdatabasecommand.class.php b/inc/checkdatabasecommand.class.php index 758ac783..df0db760 100644 --- a/inc/checkdatabasecommand.class.php +++ b/inc/checkdatabasecommand.class.php @@ -58,7 +58,7 @@ protected function configure() ); } - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { // Read option $fix = $input->getOption('fix'); diff --git a/inc/command/regeneratefilescommand.class.php b/inc/command/regeneratefilescommand.class.php index ef69ca1c..8c9636c4 100644 --- a/inc/command/regeneratefilescommand.class.php +++ b/inc/command/regeneratefilescommand.class.php @@ -32,6 +32,8 @@ use Glpi\Console\AbstractCommand; use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; class RegenerateFilesCommand extends AbstractCommand { @@ -44,7 +46,7 @@ protected function configure() ); } - protected function execute($input, $output) + protected function execute(InputInterface $input, OutputInterface $output): int { plugin_fields_checkFiles(); diff --git a/inc/container.class.php b/inc/container.class.php index 0c0b2ebb..d77714c4 100644 --- a/inc/container.class.php +++ b/inc/container.class.php @@ -35,7 +35,7 @@ class PluginFieldsContainer extends CommonDBTM { use Clonable; - public static $rightname = 'config'; + public static string $rightname = 'config'; public static function canCreate(): bool { @@ -1935,7 +1935,7 @@ public static function preItem(CommonDBTM $item) $entities = getSonsOf(getTableForItemType('Entity'), $loc_c->fields['entities_id']); } - if (count($item->fields) === 0) { + if ($item->fields === []) { $item->fields = $item->input; } diff --git a/inc/containerdisplaycondition.class.php b/inc/containerdisplaycondition.class.php index 8c87b234..5aea4261 100644 --- a/inc/containerdisplaycondition.class.php +++ b/inc/containerdisplaycondition.class.php @@ -34,9 +34,9 @@ class PluginFieldsContainerDisplayCondition extends CommonDBChild { use Clonable; - public static $itemtype = PluginFieldsContainer::class; + public static string $itemtype = PluginFieldsContainer::class; - public static $items_id = 'plugin_fields_containers_id'; + public static string $items_id = 'plugin_fields_containers_id'; public const SHOW_CONDITION_EQ = 1; @@ -383,7 +383,7 @@ public static function removeBlackListedOption($array, $itemtype_class) $main_table == getTableForItemType($itemtype_class) ) { foreach ($foreignKey as $foreign_class) { - if (!is_array($foreign_class) && getTableNameForForeignKeyField($foreign_class) != getTableForItemType(Location::getType())) { + if (!is_array($foreign_class) && getTableNameForForeignKeyField($foreign_class) !== getTableForItemType(Location::getType())) { $allowed_table[] = getTableForItemType(getItemtypeForForeignKeyField($foreign_class)); } } diff --git a/inc/destinationfield.class.php b/inc/destinationfield.class.php index b55be89c..bacd9722 100644 --- a/inc/destinationfield.class.php +++ b/inc/destinationfield.class.php @@ -106,7 +106,7 @@ public function applyConfiguratedValueToInputUsingAnswers( continue; } - /** @var object{field_name: string} $item */ + /** @var CommonGLPI&object{field_name: string} $item */ $item = getItemForItemtype($itemtype); $field = new PluginFieldsField(); if (!$field->getFromDBByCrit(['name' => $item->field_name])) { diff --git a/inc/dropdown.class.php b/inc/dropdown.class.php index 3ec0d2eb..ba0e9bab 100644 --- a/inc/dropdown.class.php +++ b/inc/dropdown.class.php @@ -30,9 +30,9 @@ class PluginFieldsDropdown { - public static $rightname = 'dropdown'; + public static string $rightname = 'dropdown'; - public $can_be_translated = true; + public bool $can_be_translated = true; /** * Install or update user data. diff --git a/inc/field.class.php b/inc/field.class.php index 07f25d69..37212ada 100644 --- a/inc/field.class.php +++ b/inc/field.class.php @@ -42,9 +42,9 @@ class PluginFieldsField extends CommonDBChild */ public const SEARCH_OPTION_STARTING_INDEX = 76665; - public static $itemtype = PluginFieldsContainer::class; + public static string $itemtype = PluginFieldsContainer::class; - public static $items_id = 'plugin_fields_containers_id'; + public static string $items_id = 'plugin_fields_containers_id'; public function getForbiddenStandardMassiveAction() { diff --git a/inc/labeltranslation.class.php b/inc/labeltranslation.class.php index 8b1ff9ac..8a863742 100644 --- a/inc/labeltranslation.class.php +++ b/inc/labeltranslation.class.php @@ -34,9 +34,9 @@ class PluginFieldsLabelTranslation extends CommonDBChild { use Clonable; - public static $itemtype = 'itemtype'; + public static string $itemtype = 'itemtype'; - public static $items_id = 'items_id'; + public static string $items_id = 'items_id'; /** * Install or update plugin base data. diff --git a/inc/menu.class.php b/inc/menu.class.php index e1dda5bf..47277b1a 100644 --- a/inc/menu.class.php +++ b/inc/menu.class.php @@ -30,7 +30,7 @@ class PluginFieldsMenu extends CommonGLPI { - public static $rightname = 'entity'; + public static string $rightname = 'entity'; public static function getMenuName() { diff --git a/inc/profile.class.php b/inc/profile.class.php index 6cd97e32..e419340d 100644 --- a/inc/profile.class.php +++ b/inc/profile.class.php @@ -34,13 +34,13 @@ class PluginFieldsProfile extends CommonDBRelation { use Clonable; - public static $itemtype_1 = PluginFieldsContainer::class; + public static ?string $itemtype_1 = PluginFieldsContainer::class; - public static $items_id_1 = 'plugin_fields_containers_id'; + public static ?string $items_id_1 = 'plugin_fields_containers_id'; - public static $itemtype_2 = Profile::class; + public static ?string $itemtype_2 = Profile::class; - public static $items_id_2 = 'profiles_id'; + public static ?string $items_id_2 = 'profiles_id'; /** * Install or update plugin base data. diff --git a/inc/statusoverride.class.php b/inc/statusoverride.class.php index e60eda37..87c10f60 100644 --- a/inc/statusoverride.class.php +++ b/inc/statusoverride.class.php @@ -34,9 +34,9 @@ class PluginFieldsStatusOverride extends CommonDBChild { use Clonable; - public static $itemtype = PluginFieldsField::class; + public static string $itemtype = PluginFieldsField::class; - public static $items_id = 'plugin_fields_fields_id'; + public static string $items_id = 'plugin_fields_fields_id'; /** * Install or update plugin base data. diff --git a/setup.php b/setup.php index 78127f31..8109f6ee 100644 --- a/setup.php +++ b/setup.php @@ -34,9 +34,9 @@ define('PLUGIN_FIELDS_VERSION', '1.24.4'); // Minimal GLPI version, inclusive -define('PLUGIN_FIELDS_MIN_GLPI', '11.0.2'); +define('PLUGIN_FIELDS_MIN_GLPI', '12.0.0'); // Maximum GLPI version, exclusive -define('PLUGIN_FIELDS_MAX_GLPI', '11.0.99'); +define('PLUGIN_FIELDS_MAX_GLPI', '12.0.99'); if (!defined('PLUGINFIELDS_DIR')) { define('PLUGINFIELDS_DIR', Plugin::getPhpDir('fields')); diff --git a/src/Controller/QuestionTypeAjaxController.php b/src/Controller/QuestionTypeAjaxController.php index 0fc4a9b3..03d7c6d2 100644 --- a/src/Controller/QuestionTypeAjaxController.php +++ b/src/Controller/QuestionTypeAjaxController.php @@ -76,7 +76,7 @@ public function __invoke(Request $request): Response $current_container = PluginFieldsContainer::getById((int) $block_id); $current_field = PluginFieldsField::getById($current_field_id); - if (!$current_container || !$current_field || empty($current_field->fields)) { + if (!$current_container || !$current_field || $current_field->fields === []) { return new Response('Invalid container or field', Response::HTTP_BAD_REQUEST); } diff --git a/templates/container.class.tpl b/templates/container.class.tpl index b1c7c04c..6c5a147d 100644 --- a/templates/container.class.tpl +++ b/templates/container.class.tpl @@ -4,7 +4,7 @@ use Glpi\DBAL\QueryParam; class %%CLASSNAME%% extends PluginFieldsAbstractContainerInstance { - static $rightname = %%ITEMTYPE_RIGHT%%; + public static string $rightname = %%ITEMTYPE_RIGHT%%; static function install() { global $DB; diff --git a/templates/container_display_conditions.html.twig b/templates/container_display_conditions.html.twig index bcd543ce..3eff1578 100644 --- a/templates/container_display_conditions.html.twig +++ b/templates/container_display_conditions.html.twig @@ -86,7 +86,6 @@ data-bs-toggle="tooltip" data-bs-placement="top"> - diff --git a/templates/dropdown.class.tpl b/templates/dropdown.class.tpl index 851fbacc..7ddd9b07 100644 --- a/templates/dropdown.class.tpl +++ b/templates/dropdown.class.tpl @@ -2,7 +2,7 @@ class %%CLASSNAME%% extends CommonTreeDropdown { public $field_name = %%FIELDNAME%%; - public $can_be_translated = true; + public bool $can_be_translated = true; static function getTypeName($nb=0) { $item = [ diff --git a/templates/forms/container_display_condition.html.twig b/templates/forms/container_display_condition.html.twig index 687c397f..9a81c05a 100644 --- a/templates/forms/container_display_condition.html.twig +++ b/templates/forms/container_display_condition.html.twig @@ -92,7 +92,6 @@ {{ _x('button', 'Add') }} {% endif %} - {# .row #} {# .flex-row #} diff --git a/templates/forms/status_override.html.twig b/templates/forms/status_override.html.twig index 9c52a5a8..5f789a5f 100644 --- a/templates/forms/status_override.html.twig +++ b/templates/forms/status_override.html.twig @@ -64,7 +64,6 @@ {{ _x('button', 'Update') }} {% endif %} - {# .row #} {# .flex-row #} diff --git a/templates/forms/tab_container.html.twig b/templates/forms/tab_container.html.twig index 40dc850a..2080e449 100644 --- a/templates/forms/tab_container.html.twig +++ b/templates/forms/tab_container.html.twig @@ -42,7 +42,6 @@ {{ html_fields|raw }} {% if canedit %} -
- diff --git a/tests/QuestionTypeTestCase.php b/tests/QuestionTypeTestCase.php index 1aaba5a5..e3fd1c3b 100644 --- a/tests/QuestionTypeTestCase.php +++ b/tests/QuestionTypeTestCase.php @@ -104,15 +104,10 @@ protected function renderHelpdeskForm(Form $form): Crawler { $this->login(); $controller = new RendererController(); - $response = $controller->__invoke( - Request::create( - '', - 'GET', - [ - 'id' => $form->getID(), - ], - ), - ); + $request = Request::create('', 'GET', ['id' => $form->getID()]); + $request->attributes->set('id', $form->getID()); + + $response = $controller->__invoke($request); return new Crawler($response->getContent()); } diff --git a/tests/Units/FieldDestinationFieldTest.php b/tests/Units/FieldDestinationFieldTest.php index 7a6f5e89..50d48a46 100644 --- a/tests/Units/FieldDestinationFieldTest.php +++ b/tests/Units/FieldDestinationFieldTest.php @@ -51,8 +51,6 @@ use Ticket; use User; -include_once __DIR__ . '/../../../../tests/abstracts/AbstractDestinationFieldTest.php'; - final class FieldDestinationFieldTest extends AbstractDestinationFieldTest { use FormTesterTrait; diff --git a/tests/Units/FieldQuestionTypeTest.php b/tests/Units/FieldQuestionTypeTest.php index afccf7f6..856fca89 100644 --- a/tests/Units/FieldQuestionTypeTest.php +++ b/tests/Units/FieldQuestionTypeTest.php @@ -275,11 +275,11 @@ public function testDropdownConditionHandlerEqualsOperator(): void ); // Test: matching item → question is visible - $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_id' => $item1_id]])); + $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_ids' => [$item1_id]]])); $this->assertTrue($engine->computeVisibility()->isQuestionVisible($question_id)); // Test: different item → question is not visible - $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_id' => $item2_id]])); + $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_ids' => [$item2_id]]])); $this->assertFalse($engine->computeVisibility()->isQuestionVisible($question_id)); } @@ -292,11 +292,11 @@ public function testDropdownConditionHandlerNotEqualsOperator(): void ); // Test: same item → question is not visible - $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_id' => $item1_id]])); + $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_ids' => [$item1_id]]])); $this->assertFalse($engine->computeVisibility()->isQuestionVisible($question_id)); // Test: different item → question is visible - $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_id' => $item2_id]])); + $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_ids' => [$item2_id]]])); $this->assertTrue($engine->computeVisibility()->isQuestionVisible($question_id)); } @@ -330,7 +330,7 @@ public function testDropdownConditionHandlerContainsOperator(): void $dropdown_question_id = $this->getQuestionId($form, "Dropdown question"); // Test: item name contains the condition value → question is visible - $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_id' => $item_id]])); + $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_ids' => [$item_id]]])); $this->assertTrue($engine->computeVisibility()->isQuestionVisible($question_id)); // Test: item name does not contain the condition value → question is not visible @@ -354,7 +354,7 @@ public function testDropdownConditionHandlerContainsOperator(): void $question_id2 = $this->getQuestionId($form2, "Subject"); $dropdown_question_id2 = $this->getQuestionId($form2, "Dropdown question"); - $engine = new Engine($form2, new EngineInput([$dropdown_question_id2 => ['itemtype' => $itemtype, 'items_id' => $item_id]])); + $engine = new Engine($form2, new EngineInput([$dropdown_question_id2 => ['itemtype' => $itemtype, 'items_ids' => [$item_id]]])); $this->assertFalse($engine->computeVisibility()->isQuestionVisible($question_id2)); } @@ -388,7 +388,7 @@ public function testDropdownConditionHandlerNotContainsOperator(): void $dropdown_question_id = $this->getQuestionId($form, "Dropdown question"); // Test: item name does not contain the value → question is visible - $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_id' => $item_id]])); + $engine = new Engine($form, new EngineInput([$dropdown_question_id => ['itemtype' => $itemtype, 'items_ids' => [$item_id]]])); $this->assertTrue($engine->computeVisibility()->isQuestionVisible($question_id)); // Test: item name contains the value → question is not visible @@ -412,7 +412,7 @@ public function testDropdownConditionHandlerNotContainsOperator(): void $question_id2 = $this->getQuestionId($form2, "Subject"); $dropdown_question_id2 = $this->getQuestionId($form2, "Dropdown question"); - $engine = new Engine($form2, new EngineInput([$dropdown_question_id2 => ['itemtype' => $itemtype, 'items_id' => $item_id]])); + $engine = new Engine($form2, new EngineInput([$dropdown_question_id2 => ['itemtype' => $itemtype, 'items_ids' => [$item_id]]])); $this->assertFalse($engine->computeVisibility()->isQuestionVisible($question_id2)); } @@ -436,7 +436,7 @@ private function createDropdownConditionForm(ValueOperator $operator): array $item1_id = $dropdown_item->add(['name' => 'First Option']); $item2_id = $dropdown_item->add(['name' => 'Second Option']); - $condition_value = ['itemtype' => $itemtype, 'items_id' => $item1_id]; + $condition_value = ['itemtype' => $itemtype, 'items_ids' => [$item1_id]]; $builder = new FormBuilder("Dropdown condition form"); $builder->addQuestion( From 6338075ee0340164d645ea058f8cb2c03792a195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Tue, 18 Aug 2026 10:17:50 +0200 Subject: [PATCH 2/8] Update locales (#1244) Co-authored-by: stonebuzz <7335054+stonebuzz@users.noreply.github.com> --- locales/cs_CZ.po | 146 +++++++++++++++++++++---------------------- locales/de_DE.po | 146 +++++++++++++++++++++---------------------- locales/en_GB.mo | Bin 6493 -> 6493 bytes locales/en_GB.po | 152 ++++++++++++++++++++++----------------------- locales/en_US.po | 146 +++++++++++++++++++++---------------------- locales/es_AR.po | 146 +++++++++++++++++++++---------------------- locales/es_EC.po | 146 +++++++++++++++++++++---------------------- locales/es_MX.po | 146 +++++++++++++++++++++---------------------- locales/fields.pot | 128 +++++++++++++++++++------------------- locales/fr_FR.mo | Bin 7224 -> 7472 bytes locales/fr_FR.po | 152 ++++++++++++++++++++++----------------------- locales/hr_HR.po | 146 +++++++++++++++++++++---------------------- locales/it_IT.po | 146 +++++++++++++++++++++---------------------- locales/ja_JP.po | 146 +++++++++++++++++++++---------------------- locales/pt_BR.po | 146 +++++++++++++++++++++---------------------- locales/pt_PT.po | 146 +++++++++++++++++++++---------------------- locales/ro_RO.po | 146 +++++++++++++++++++++---------------------- locales/ru_RU.po | 146 +++++++++++++++++++++---------------------- locales/sk_SK.po | 146 +++++++++++++++++++++---------------------- locales/sv_SE.po | 146 +++++++++++++++++++++---------------------- locales/tr_TR.po | 146 +++++++++++++++++++++---------------------- 21 files changed, 1384 insertions(+), 1384 deletions(-) diff --git a/locales/cs_CZ.po b/locales/cs_CZ.po index d0f61db7..c78b87bd 100644 --- a/locales/cs_CZ.po +++ b/locales/cs_CZ.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: David Stepan , 2016,2025\n" "Language-Team: Czech (Czech Republic) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/cs_CZ/)\n" @@ -25,6 +25,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Kolonka" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Pouze pro čtení" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Přidat podmínku pro skrytí bloku" @@ -38,6 +47,10 @@ msgstr[1] "Podmínky pro skrytí bloku" msgstr[2] "Podmínek pro skrytí bloku" msgstr[3] "Podmínky pro skrytí bloku" +#: templates/fields.html.twig +msgid "show" +msgstr "zobrazit" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Přidat nové přepsání stavu" @@ -50,35 +63,22 @@ msgstr "Přepsání stavu" msgid "No item found" msgstr "Žádná položka nenalezena" -#: templates/fields.html.twig -msgid "show" -msgstr "zobrazit" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Kolonka" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Pouze pro čtení" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Další kolonky" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Přepsat podle stavu" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Instalace MySQL tabulek" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Opravit názvy kolonek" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Zásuvný modul nemůže být odinstalován protože je vypnutý." -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Položky komponent" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Odebrání MySQL tabulek" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -107,26 +107,6 @@ msgstr "Přidat novou kolonku" msgid "No field for this block" msgstr "Žádná kolonka pro tento blok" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "pod" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "ne pod" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "shody regulárních výrazů" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Musíte zadat typ položky, možnost vyhledávání a podmínku." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Zkontrolujte databázi, abyste odhalili nesrovnalosti." @@ -176,6 +156,32 @@ msgstr "-> „%s.%s“ by mělo být smazáno." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Spuštěním příkazu \"%s\" opravíte nekonzistence v databázi." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Přepsat podle stavu" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Regeneruje soubory kontejnerů." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Tento příkaz vyčistí všechny soubory vygenerované zásuvným modulem a regeneruje je." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Jazyk" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Štítek" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Aktualizují se vytvořené soubory rozbalovací nabídky" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Znovu vytvořit kontejnerové soubory" @@ -256,39 +262,33 @@ msgstr "Některé číselné kolonky obsahují nečíselné hodnoty" msgid "Some URL fields contains invalid links" msgstr "Některé URL kolonky obsahují neplatné odkazy" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Regeneruje soubory kontejnerů." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Tento příkaz vyčistí všechny soubory vygenerované zásuvným modulem a regeneruje je." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Aktualizují se vytvořené soubory rozbalovací nabídky" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Opravit názvy kolonek" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Jazyk" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Položky komponent" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Štítek" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "pod" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Instalace MySQL tabulek" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "ne pod" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Zásuvný modul nemůže být odinstalován protože je vypnutý." +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "shody regulárních výrazů" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Odebrání MySQL tabulek" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Musíte zadat typ položky, možnost vyhledávání a podmínku." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/de_DE.po b/locales/de_DE.po index 3fa1d64e..3ff1eba5 100644 --- a/locales/de_DE.po +++ b/locales/de_DE.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Christian Hoffmeister, 2025\n" "Language-Team: German (Germany) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/de_DE/)\n" @@ -22,6 +22,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Feld" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Nur lesen" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Bedingung zum Ausblenden des Blocks hinzufügen" @@ -33,6 +42,10 @@ msgid_plural "Conditions to hide block" msgstr[0] "Bedingung zum Ausblenden des Blocks hinzufügen" msgstr[1] "Bedingungen zum Ausblenden des Blocks" +#: templates/fields.html.twig +msgid "show" +msgstr "anzeigen" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Neue Statusüberschreibung hinzufügen" @@ -45,35 +58,22 @@ msgstr "Status überschreiben" msgid "No item found" msgstr "Kein Artikel gefunden" -#: templates/fields.html.twig -msgid "show" -msgstr "anzeigen" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Feld" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Nur lesen" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Zusätzliche Felder" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Überschreibung durch Status" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Installation der MySQL-Tabellen" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Feldnamen reparieren" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Das Plugin kann nicht deinstalliert werden, wenn das Plugin deaktiviert ist" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Komponenten" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Deinstallation der MySQL-Tabellen" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -102,26 +102,6 @@ msgstr "Ein neues Feld hinzufügen" msgid "No field for this block" msgstr "Kein Feld für diesen Block" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "unter" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "nicht unter" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "Übereinstimmungen mit regulären Ausdrücken" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Sie müssen einen Artikeltyp, eine Suchoption und eine Bedingung angeben." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Prüfen Sie die Datenbank, um Inkonsistenzen festzustellen." @@ -171,6 +151,32 @@ msgstr "" msgid "Run \"%s\" to fix database inconsistencies." msgstr "Führen Sie \" %s \" aus, um Datenbankinkonsistenzen zu beheben." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Überschreibung durch Status" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Containerdateien neu generieren" + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Dieser Befehl bereinigt alle vom Plugin erzeugten Dateien und generiert sie neu." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Sprache" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Bezeichnung" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Aktualisierung der generierten Dropdown-Dateien" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Containerdateien neu generieren" @@ -251,39 +257,33 @@ msgstr "Einige numerische Felder enthalten nicht numerische Werte" msgid "Some URL fields contains invalid links" msgstr "Einige URL-Felder enthalten ungültige Links" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Containerdateien neu generieren" - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Dieser Befehl bereinigt alle vom Plugin erzeugten Dateien und generiert sie neu." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Aktualisierung der generierten Dropdown-Dateien" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Feldnamen reparieren" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Sprache" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Komponenten" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Bezeichnung" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "unter" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Installation der MySQL-Tabellen" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "nicht unter" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Das Plugin kann nicht deinstalliert werden, wenn das Plugin deaktiviert ist" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "Übereinstimmungen mit regulären Ausdrücken" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Deinstallation der MySQL-Tabellen" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Sie müssen einen Artikeltyp, eine Suchoption und eine Bedingung angeben." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/en_GB.mo b/locales/en_GB.mo index daae806db127913db65bed7fd83388b5a1316376..558a4ce1b627a8dd6f2b2a97d22b35e8339f4d13 100644 GIT binary patch delta 20 bcmca>bk}Hu7C*a%f`NgRsnKRbejP3VM_vVy delta 20 bcmca>bk}Hu7C*azf`Orxp~+@LejP3VM)w7X diff --git a/locales/en_GB.po b/locales/en_GB.po index a37bd035..76cc522d 100644 --- a/locales/en_GB.po +++ b/locales/en_GB.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-10 01:14+0000\n" -"PO-Revision-Date: 2026-08-10 01:14+0000\n" +"POT-Creation-Date: 2026-08-18 00:52+0000\n" +"PO-Revision-Date: 2026-08-18 00:52+0000\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en_GB\n" @@ -21,6 +21,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "Bind additional fields to the destination" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Field" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Read only" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Add condition to hide block" @@ -32,6 +41,10 @@ msgid_plural "Conditions to hide block" msgstr[0] "Condition to hide block" msgstr[1] "Conditions to hide block" +#: templates/fields.html.twig +msgid "show" +msgstr "show" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Add new status override" @@ -44,35 +57,22 @@ msgstr "Status overrides" msgid "No item found" msgstr "No item found" -#: templates/fields.html.twig -msgid "show" -msgstr "show" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Field" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Read only" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Additional fields" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Override by status" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "MySQL tables installation" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Fix fields names" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "The plugin can't be uninstalled when the plugin is disabled" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Component items" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "MySQL tables uninstallation" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -105,26 +105,6 @@ msgstr "Add a new field" msgid "No field for this block" msgstr "No field for this block" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "under" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "not under" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "regular expression matches" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "You must specify an item type, search option and condition." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Check database to detect inconsistencies." @@ -177,6 +157,34 @@ msgstr "-> \"%s.%s\" should be deleted." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Run \"%s\" to fix database inconsistencies." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Override by status" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Regenerates containers files." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "" +"This command will clean up all files generated by the plugin and regenerate " +"them." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Language" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Label" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Updating generated dropdown files" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Regenerate container files" @@ -265,41 +273,33 @@ msgstr "Some numeric fields contains non numeric values" msgid "Some URL fields contains invalid links" msgstr "Some URL fields contains invalid links" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Regenerates containers files." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "" -"This command will clean up all files generated by the plugin and regenerate " -"them." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Updating generated dropdown files" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Fix fields names" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Language" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Component items" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Label" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "under" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "MySQL tables installation" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "not under" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "The plugin can't be uninstalled when the plugin is disabled" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "regular expression matches" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "MySQL tables uninstallation" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "You must specify an item type, search option and condition." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/en_US.po b/locales/en_US.po index 60b23841..13231d5a 100644 --- a/locales/en_US.po +++ b/locales/en_US.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Shawn Long , 2016-2017,2019,2023-2025\n" "Language-Team: English (United States) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/en_US/)\n" @@ -24,6 +24,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Field" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Read Only" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Add Condition to Hide Block" @@ -35,6 +44,10 @@ msgid_plural "Conditions to hide block" msgstr[0] "Condition to Hide Block" msgstr[1] "Conditions to Hide Block" +#: templates/fields.html.twig +msgid "show" +msgstr "show" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Add New Status Override" @@ -47,35 +60,22 @@ msgstr "Status Overrides" msgid "No item found" msgstr "No Item Found" -#: templates/fields.html.twig -msgid "show" -msgstr "show" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Field" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Read Only" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Additional Fields" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Override by Status" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "MySQL tables installation" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Fix fields names" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "The plugin can't be uninstalled when the plugin is disabled" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Component Items" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "MySQL tables uninstallation" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -104,26 +104,6 @@ msgstr "Add a New Field" msgid "No field for this block" msgstr "No Field for this Block" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "under" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "not under" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "regular expression matches" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "You must specify an item type, search option and condition." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Check database to detect inconsistencies." @@ -173,6 +153,32 @@ msgstr "-> \"%s.%s\" should be deleted." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Run \"%s\" to fix database inconsistencies." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Override by Status" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Regenerates containers files." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "This command will clean up all files generated by the plugin and regenerate them." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Language" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Label" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Updating generated dropdown files" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Regenerate container files" @@ -253,39 +259,33 @@ msgstr "Some numeric fields contains non-numeric values" msgid "Some URL fields contains invalid links" msgstr "Some URL fields contains invalid links" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Regenerates containers files." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "This command will clean up all files generated by the plugin and regenerate them." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Updating generated dropdown files" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Fix fields names" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Language" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Component Items" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Label" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "under" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "MySQL tables installation" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "not under" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "The plugin can't be uninstalled when the plugin is disabled" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "regular expression matches" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "MySQL tables uninstallation" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "You must specify an item type, search option and condition." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/es_AR.po b/locales/es_AR.po index 23fddb6c..4d2b396e 100644 --- a/locales/es_AR.po +++ b/locales/es_AR.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Alan Lehoux, 2025\n" "Language-Team: Spanish (Argentina) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/es_AR/)\n" @@ -23,6 +23,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "Vincular campos adicionales al destino" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Campo" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Sólo lectura" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Agregar condición para ocultar el bloque" @@ -35,6 +44,10 @@ msgstr[0] "Condición para ocultar el bloque" msgstr[1] "Condiciones para ocultar el bloque" msgstr[2] "Condición para ocultar el bloque" +#: templates/fields.html.twig +msgid "show" +msgstr "mostrar" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Agregar nueva sobrescritura de estado" @@ -47,35 +60,22 @@ msgstr "Sobrescrituras de estado" msgid "No item found" msgstr "No se encontró ningún elemento" -#: templates/fields.html.twig -msgid "show" -msgstr "mostrar" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Campo" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Sólo lectura" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Campos adicionales" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Sobrescribir por estado" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Instalación de tablas MySQL" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Corregir nombres de campos" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "El complemento no puede ser desinstalado cuando está desactivado" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Elementos de componente" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Desinstalación de tablas MySQL" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -104,26 +104,6 @@ msgstr "Agregar un nuevo campo" msgid "No field for this block" msgstr "No hay campos para este bloque" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "debajo" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "no debajo" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "coincidencias de expresiones regulares" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Debés especificar un tipo de elemento, una opción de búsqueda y una condición." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Verificar la base de datos para detectar inconsistencias." @@ -173,6 +153,32 @@ msgstr "-> \"%s.%s\" debería ser eliminado." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Ejecutá \"%s\" para corregir las inconsistencias de la base de datos." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Sobrescribir por estado" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Regenera los archivos de los contenedores." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Este comando limpiará todos los archivos generados por el complemento y los regenerará." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Idioma" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Etiqueta" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Actualizando archivos de menús desplegables generados" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Regenerar archivos de contenedor" @@ -253,39 +259,33 @@ msgstr "Algunos campos numéricos contienen valores no numéricos" msgid "Some URL fields contains invalid links" msgstr "Algunos campos URL contienen enlaces inválidos" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Regenera los archivos de los contenedores." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Este comando limpiará todos los archivos generados por el complemento y los regenerará." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Actualizando archivos de menús desplegables generados" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Corregir nombres de campos" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Idioma" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Elementos de componente" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Etiqueta" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "debajo" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Instalación de tablas MySQL" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "no debajo" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "El complemento no puede ser desinstalado cuando está desactivado" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "coincidencias de expresiones regulares" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Desinstalación de tablas MySQL" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Debés especificar un tipo de elemento, una opción de búsqueda y una condición." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/es_EC.po b/locales/es_EC.po index fe7db31b..53873e84 100644 --- a/locales/es_EC.po +++ b/locales/es_EC.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Soporte Infraestructura Standby, 2023-2024\n" "Language-Team: Spanish (Ecuador) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/es_EC/)\n" @@ -23,6 +23,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Campo" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Sólo lectura" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Añadir condición para ocultar bloque" @@ -35,6 +44,10 @@ msgstr[0] "Condición para ocultar el bloque" msgstr[1] "Condiciones para ocultar el bloque" msgstr[2] "Condiciones para ocultar el bloque" +#: templates/fields.html.twig +msgid "show" +msgstr "mostrar" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Añadir validación por estado" @@ -47,35 +60,22 @@ msgstr "Validaciones por estados" msgid "No item found" msgstr "Ningún elemento encontrado" -#: templates/fields.html.twig -msgid "show" -msgstr "mostrar" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Campo" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Sólo lectura" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Campos adicionales" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Validación por estado" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Instalación de tablas MySQL" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Corregir los nombres de los campos" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "El complemento no se puede desinstalar cuando está desactivado" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Componentes" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Desinstalación de tablas MySQL" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -104,26 +104,6 @@ msgstr "Añadir un nuevo campo" msgid "No field for this block" msgstr "No hay campo para este bloque" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "debajo" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "no bajo" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "coincidencias de expresiones regulares" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Debe especificar un tipo de elemento, una opción de búsqueda y una condición." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Compruebe la base de datos para detectar incoherencias." @@ -173,6 +153,32 @@ msgstr "-> \"%s.%s\" debe eliminarse." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Ejecute \"%s\" para corregir inconsistencias en la base de datos." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Validación por estado" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Regenera los archivos de los contenedores." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Este comando limpiará todos los archivos generados por el complemento y los regenerará." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Idioma" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Etiqueta" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Actualización de los archivos desplegables generados" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Regenerar archivos contenedores" @@ -253,39 +259,33 @@ msgstr "Algunos campos numéricos contienen valores no numéricos" msgid "Some URL fields contains invalid links" msgstr "Algunos campos URL contienen enlaces no válidos" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Regenera los archivos de los contenedores." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Este comando limpiará todos los archivos generados por el complemento y los regenerará." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Actualización de los archivos desplegables generados" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Corregir los nombres de los campos" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Idioma" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Componentes" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Etiqueta" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "debajo" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Instalación de tablas MySQL" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "no bajo" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "El complemento no se puede desinstalar cuando está desactivado" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "coincidencias de expresiones regulares" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Desinstalación de tablas MySQL" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Debe especificar un tipo de elemento, una opción de búsqueda y una condición." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/es_MX.po b/locales/es_MX.po index a4c611b0..cc93327e 100644 --- a/locales/es_MX.po +++ b/locales/es_MX.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Edwin Elias Alvarez , 2026\n" "Language-Team: Spanish (Mexico) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/es_MX/)\n" @@ -24,6 +24,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "Vincular campos adicionales al destino" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Campo" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Solo lectura" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Agregar condición para ocultar bloque" @@ -36,6 +45,10 @@ msgstr[0] "Condición para ocultar bloque" msgstr[1] "Condición para ocultar bloque\nCondiciones para ocultar bloque" msgstr[2] "Condiciones para ocultar bloque" +#: templates/fields.html.twig +msgid "show" +msgstr "mostrar" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Agregar nueva anulación de estado" @@ -48,35 +61,22 @@ msgstr "Anular estados" msgid "No item found" msgstr "Ningún elemento encontrado" -#: templates/fields.html.twig -msgid "show" -msgstr "mostrar" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Campo" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Solo lectura" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Campos adicionales" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Anular por estado" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Instalación de las tablas MySQL" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Corregir los nombres de los campos" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "El plugin no se puede desinstalar el plugin cuando se desactiva" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Elementos componentes" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Desinstalación de las tablas MySQL" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -105,26 +105,6 @@ msgstr "Agregar nuevo campo" msgid "No field for this block" msgstr "Ningún campo para este bloque" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "debajo" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "sobre" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "coincidencias de expresiones regulares" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Debes especificar un tipo de artículo, una opción de búsqueda y una condición." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Verificar la base de datos para detectar inconsistencias." @@ -174,6 +154,32 @@ msgstr "-> \"%s.%s\" debe eliminarse." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Ejecute \"%s\" para corregir las inconsistencias de la base de datos." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Anular por estado" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Regenerar archivos de contenedores." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Este comando limpiará todos los archivos generados por el complemento y los regenerará." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Idioma" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Etiqueta" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Actualizar campos de menús desplegables generados" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Regenerar archivos contenedores" @@ -254,39 +260,33 @@ msgstr "Algunos campos numéricos contienen valores no numéricos" msgid "Some URL fields contains invalid links" msgstr "Algunos campos de URL contienen vínculos no válidos" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Regenerar archivos de contenedores." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Este comando limpiará todos los archivos generados por el complemento y los regenerará." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Actualizar campos de menús desplegables generados" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Corregir los nombres de los campos" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Idioma" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Elementos componentes" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Etiqueta" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "debajo" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Instalación de las tablas MySQL" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "sobre" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "El plugin no se puede desinstalar el plugin cuando se desactiva" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "coincidencias de expresiones regulares" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Desinstalación de las tablas MySQL" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Debes especificar un tipo de artículo, una opción de búsqueda y una condición." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/fields.pot b/locales/fields.pot index c674cc98..85cf5f5a 100644 --- a/locales/fields.pot +++ b/locales/fields.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-10 01:14+0000\n" +"POT-Creation-Date: 2026-08-18 00:52+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,6 +22,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "" @@ -33,6 +42,10 @@ msgid_plural "Conditions to hide block" msgstr[0] "" msgstr[1] "" +#: templates/fields.html.twig +msgid "show" +msgstr "" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "" @@ -45,34 +58,21 @@ msgstr "" msgid "No item found" msgstr "" -#: templates/fields.html.twig -msgid "show" -msgstr "" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "" -#: inc/statusoverride.class.php:91 -msgid "Override by status" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" msgstr "" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" msgstr "" -#: inc/toolbox.class.php:331 -msgid "Component items" +#: hook.php:127 +msgid "MySQL tables uninstallation" msgstr "" #: inc/field.class.php:296 inc/field.class.php:323 @@ -103,26 +103,6 @@ msgstr "" msgid "No field for this block" msgstr "" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "" - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "" @@ -172,6 +152,32 @@ msgstr "" msgid "Run \"%s\" to fix database inconsistencies." msgstr "" +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "" + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "" + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "" @@ -252,38 +258,32 @@ msgstr "" msgid "Some URL fields contains invalid links" msgstr "" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "" - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "" - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" msgstr "" -#: inc/labeltranslation.class.php:238 -msgid "Language" +#: inc/toolbox.class.php:331 +msgid "Component items" msgstr "" -#: inc/labeltranslation.class.php:239 -msgid "Label" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" msgstr "" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" msgstr "" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" msgstr "" -#: hook.php:127 -msgid "MySQL tables uninstallation" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." msgstr "" #: ajax/field_specific_fields.php:52 diff --git a/locales/fr_FR.mo b/locales/fr_FR.mo index 715512b7a255b3d4e0cd96117d50c01693721fb4..29709f366fa38149254bae4c22f8479b32701849 100644 GIT binary patch delta 1618 zcmYk+TWAzl9LMp0qN}NQw;H2XJ*M%JjfonsT`x_f7PP1+#nP9;W_J=-H#2KyRwxBW z@z$5N&=N~fumnL8rHXl|whxMnh!*-#^ua##MUcJ}pQ=P?==V2ip@;nEbIxSu%sKya z&feO5BOCvop4e}c4&p6Et=Y$NA{WYulvyvHME(B-F2ZS(%w}Q+7h)FY;X#~?KF-Et zI0HY&F8mgo@io#_Y)w3^8yQrGAL1G;U=Q}=d-yl*#vOHL)A0-3ju$Y4zo9;qdL!xB z=3t)o0_0nE9N)wU$;1(RiotT|wwjWR6 z+xROk#h17e8yHnPc47e|+>1}~U0g|;)ZZbDHR8)uG~(}3%l;6RiC^$;joD-Tl6F6% z(@dI3i$1&q8?YNQ7^7x5jQrVSF3Qw%RO-i26Hb#Z4e;wUO?~h_H@4v;)C+Yy{Ruk! z4rA9lu{fO(4dLcm}lx8tdr;n^Bv2cRj<&Qt9Ew0USiF z{a>gT#!xd!F)Gb`9xBxvP&5AsHM24@20M*p*#=MLZ*^6SA#4k%b>cBsMb_FT$$4Psc7e~Pio^A9bpw^PkTih za{{rP*hX-QlO+buxR+|IY3+<$$;*Y23w+OoUdhWxUcm)jhpD)H&i8}Jb$PB-^pALj zZx&BqU(+^nc2ZYes0hoe5v<-#z?7pp@qS8>s&WzXHa>UQ~|*Qa+}7*s-6%DL{Kuh(;h6?7i> bJtZ%4VYxb#FLoD?R(R#7wvmC^m!|v!HEg>i delta 1408 zcmXxk%}Z2a6vy#1zKo`hFXNbH>X?;{lQq6nzKmv(2^ADc2vKNeIJ7Vgg51Pi2n}Qz z2yG%P7ZODD;t&dLs*Mm-P`egM|A5fK7E##u_e>r*_jB*n=icWz=ehH;W2w#i9?ZIL zL^oMUhBC~~VL=uLVm#Yy6tAKFzJgWw2aB-6Z?+AiSdP7zg9BKCBUp$NSdU3$sJ%*G zd$!1l9`pkn@h2v*mZ$XKZ9IXWF@P1hW`{6>QB0s-FoSyV91i0XCp4lZ%H1H8J#^zBoe~w%6Eoz0|P%Hd}nn+ImsZ$}s@w$* zs?=3f>2IMX_5k&skJyD@N~pj7v6wmzU<4my5=V5+Xx+bu+_F_Xg1%6CuN+0)zmA%C z5+CASRPUo@W;NJ^+Pr<(fn(T*Ps^ykdj6Li8sOiYUO@o0;xMYjU8ofgqEVXQ{>o!;%wLi2{m0cCuO)7ShRMK;wguC, 2024 msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-18 00:52+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" -"Last-Translator: EpicIT33, 2025\n" +"Last-Translator: EpicIT33, 2025-2026\n" "Language-Team: French (France) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/fr_FR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,6 +29,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "Lier des champs supplémentaires à la destination" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Champ" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Lecture seule" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Ajouter une condition pour masquer le bloc" @@ -41,6 +50,10 @@ msgstr[0] "Condition pour masquer le bloc" msgstr[1] "Conditions pour masquer le bloc" msgstr[2] "Conditions pour masquer le bloc" +#: templates/fields.html.twig +msgid "show" +msgstr "afficher" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Ajouter une nouvelle surcharge par statut" @@ -53,35 +66,22 @@ msgstr "Surcharges par statut" msgid "No item found" msgstr "Aucun objet trouvé" -#: templates/fields.html.twig -msgid "show" -msgstr "afficher" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Champ" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Lecture seule" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Champs supplémentaires" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Surcharge par statut" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Installation des tables MySQL" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Correction du nom des champs" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Le plugin ne peut etre désinstallé quand le plugin est désactivé" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Éléments de composant" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Désinstallation des tables MySQL" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -110,26 +110,6 @@ msgstr "Ajouter un nouveau champ" msgid "No field for this block" msgstr "Aucun champ pour ce bloc" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "sous" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "pas sous" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "valide l'expression régulière" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Vous devez spécifier un type, un champ et une condition." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Vérifie la base de données pour détecter les incohérences" @@ -179,6 +159,32 @@ msgstr "-> \"%s.%s\" devrait être supprimé." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Exécutez \"%s\" pour corriger les incohérences de la base de données." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Surcharge par statut" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Re-génère les fichiers des conteneurs." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Cette commande supprime tous les fichiers générés par le plugin et les re-génère." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Langue" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Libellé" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Mise à jour des fichiers générés des listes déroulantes " + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Régénérer les fichiers des blocs" @@ -215,7 +221,7 @@ msgstr "Vous ne pouvez pas créer plusieurs blocs de type 'Insertion dans le for msgid "" "At least one selected object cannot be linked with type 'Insertion in the " "form of a specific tab'." -msgstr "" +msgstr "Au moins un des objets sélectionnés ne peut pas être associé au type « Insertion sous la forme d'un onglet spécifique »." #: inc/container.class.php:696 msgid "" @@ -259,39 +265,33 @@ msgstr "Des champs numériques contiennent des données non numériques" msgid "Some URL fields contains invalid links" msgstr "Des champs URL contiennent des liens invalides" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Re-génère les fichiers des conteneurs." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Cette commande supprime tous les fichiers générés par le plugin et les re-génère." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Mise à jour des fichiers générés des listes déroulantes " +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Correction du nom des champs" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Langue" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Éléments de composant" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Libellé" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "sous" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Installation des tables MySQL" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "pas sous" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Le plugin ne peut etre désinstallé quand le plugin est désactivé" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "valide l'expression régulière" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Désinstallation des tables MySQL" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Vous devez spécifier un type, un champ et une condition." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/hr_HR.po b/locales/hr_HR.po index 21d4b1e3..a3909e47 100644 --- a/locales/hr_HR.po +++ b/locales/hr_HR.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Milo Ivir , 2020,2022-2023\n" "Language-Team: Croatian (Croatia) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/hr_HR/)\n" @@ -24,6 +24,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Polje" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Samo-za-čitanje" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Dodaj uvjet za skrivanje bloka" @@ -36,6 +45,10 @@ msgstr[0] "Uvjet za skrivanje bloka" msgstr[1] "Uvjeti za skrivanje bloka" msgstr[2] "Uvjeti za skrivanje bloka" +#: templates/fields.html.twig +msgid "show" +msgstr "prikaži" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Dodaj novu zamjenu stanja" @@ -48,35 +61,22 @@ msgstr "Zamjene stanja" msgid "No item found" msgstr "Nijedan predmet nije pronađen" -#: templates/fields.html.twig -msgid "show" -msgstr "prikaži" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Polje" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Samo-za-čitanje" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Dodatna polja" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Zamijeni po stanju" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Instalacija MySQL tablica" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Ispravi imena polja" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Nije moguće deinstalirati dodatak kad je dodatak deaktiviran" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Elementi komponente" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Deinstalacija MySQL tablica" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -105,26 +105,6 @@ msgstr "Dodaj novo polje" msgid "No field for this block" msgstr "Nema polja za ovaj blok" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "ispod" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "ne ispod" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "regularni izraz se podudara" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Moraš navesti vrstu predmeta, opciju pretraživanja i uvjet." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Provjeri bazu podataka za otkrivanje nedosljednosti." @@ -174,6 +154,32 @@ msgstr "-> „%s.%s” treba izbrisati." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Za ispravljanje nedosljednosti u bazi podataka pokreni „%s”." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Zamijeni po stanju" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Ponovo generira datoteke kontejnera." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Ova naredba će očistiti sve datoteke koje je dodatak generirao i ponovno će ih generirati." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Jezik" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Oznaka" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Aktualiziranje generiranih datoteka padajućih popisa" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Ponovo generiraj datoteke spremnika" @@ -254,39 +260,33 @@ msgstr "Neka numerička polja sadrže ne numeričke vrijednosti" msgid "Some URL fields contains invalid links" msgstr "Neka URL polja sadrže neispravne poveznice" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Ponovo generira datoteke kontejnera." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Ova naredba će očistiti sve datoteke koje je dodatak generirao i ponovno će ih generirati." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Aktualiziranje generiranih datoteka padajućih popisa" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Ispravi imena polja" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Jezik" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Elementi komponente" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Oznaka" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "ispod" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Instalacija MySQL tablica" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "ne ispod" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Nije moguće deinstalirati dodatak kad je dodatak deaktiviran" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "regularni izraz se podudara" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Deinstalacija MySQL tablica" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Moraš navesti vrstu predmeta, opciju pretraživanja i uvjet." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/it_IT.po b/locales/it_IT.po index eb5fb1aa..5f336b60 100644 --- a/locales/it_IT.po +++ b/locales/it_IT.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Davide , 2025\n" "Language-Team: Italian (Italy) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/it_IT/)\n" @@ -23,6 +23,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "Associa campi aggiuntivi alla destinazione" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Campo" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Sola lettura" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Aggiungere una condizione per nascondere il blocco" @@ -35,6 +44,10 @@ msgstr[0] "Condizione per nascondere il blocco" msgstr[1] "Condizioni per nascondere il blocco" msgstr[2] "Condizioni per nascondere il blocco" +#: templates/fields.html.twig +msgid "show" +msgstr "mostra" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Aggiungere una nuova sovrascrittura di stato" @@ -47,35 +60,22 @@ msgstr "Sovrascrittura dello stato" msgid "No item found" msgstr "Nessun oggetto trovato" -#: templates/fields.html.twig -msgid "show" -msgstr "mostra" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Campo" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Sola lettura" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Campi aggiuntivi" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Sovrascritture per stato" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Installazione tabelle MySQL" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Ripara i nomi dei campi" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Il plugin non può essere disinstallato quando è disabilitato" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Oggetti componente" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Disinstallazione tabelle MySQL" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -104,26 +104,6 @@ msgstr "Aggiungi nuovo campo" msgid "No field for this block" msgstr "Nessun campo per questo blocco" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "sotto" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "non sotto" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "concorda con l'espressione regolare" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "È necessario specificare un tipo di oggetto, un'opzione di ricerca e una condizione." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Controllare il database per rilevare le incongruenze." @@ -173,6 +153,32 @@ msgstr "-> \"%s.%s\" dovrebbe essere cancellato." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Esegui \"%s\" per correggere le inconsistenze del database." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Sovrascritture per stato" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Rigenera i file dei contenitori" + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Questo comando pulisce tutti i file generati dal plugin e li rigenera." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Lingua" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Etichetta" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Aggiornamento dei file a tendina generati" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Rigenera i file dei contenitori" @@ -253,39 +259,33 @@ msgstr "Alcuni campi numerici contengono valori non numerici" msgid "Some URL fields contains invalid links" msgstr "Alcuni campi URL contengono link non validi" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Rigenera i file dei contenitori" - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Questo comando pulisce tutti i file generati dal plugin e li rigenera." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Aggiornamento dei file a tendina generati" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Ripara i nomi dei campi" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Lingua" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Oggetti componente" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Etichetta" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "sotto" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Installazione tabelle MySQL" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "non sotto" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Il plugin non può essere disinstallato quando è disabilitato" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "concorda con l'espressione regolare" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Disinstallazione tabelle MySQL" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "È necessario specificare un tipo di oggetto, un'opzione di ricerca e una condizione." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/ja_JP.po b/locales/ja_JP.po index c4972221..1afbfa34 100644 --- a/locales/ja_JP.po +++ b/locales/ja_JP.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Daisuke INOUE, 2023-2025\n" "Language-Team: Japanese (Japan) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/ja_JP/)\n" @@ -25,6 +25,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "フィールド" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "読取専用" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "ブロックを非表示にする条件を追加" @@ -35,6 +44,10 @@ msgid "Condition to hide block" msgid_plural "Conditions to hide block" msgstr[0] "ブロックを非表示にする条件" +#: templates/fields.html.twig +msgid "show" +msgstr "表示" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "状態による上書きを追加" @@ -47,35 +60,22 @@ msgstr "状態による上書き" msgid "No item found" msgstr "アイテムがありません" -#: templates/fields.html.twig -msgid "show" -msgstr "表示" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "フィールド" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "読取専用" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "追加フィールド" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "状態による上書き" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "MySQL テーブルのインストール" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "フィールド名を修正する" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "プラグインが無効だと、プラグインをアンインストールできません" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "コンポーネント項目" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "MySQL テーブルのアンインストール" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -104,26 +104,6 @@ msgstr "新しいフィールドを追加" msgid "No field for this block" msgstr "このブロック用のフィールドがありません" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "未満" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "以上" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "正規表現での照合" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "検索設定と状態では、アイテムの型を特定する必要があります。" - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "不整合を検出するためにデータベースをチェックしてください。" @@ -173,6 +153,32 @@ msgstr "-> \"%s.%s\" は削除すべきです。" msgid "Run \"%s\" to fix database inconsistencies." msgstr "「%s」を実行してデータベースの不整合を修復してください。" +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "状態による上書き" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "コンテナファイルを再生成します。" + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "このコマンドでプラグインが生成したすべてのファイルを初期化し、再生成します。" + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "言語" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "ラベル" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "生成済みドロップダウン ファイルを更新しています" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "コンテナファイルを再生成" @@ -253,39 +259,33 @@ msgstr "非数値が入っている数値フィールドがあります" msgid "Some URL fields contains invalid links" msgstr "不正なリンクを含む URL フィールドがあります" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "コンテナファイルを再生成します。" - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "このコマンドでプラグインが生成したすべてのファイルを初期化し、再生成します。" - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "生成済みドロップダウン ファイルを更新しています" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "フィールド名を修正する" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "言語" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "コンポーネント項目" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "ラベル" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "未満" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "MySQL テーブルのインストール" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "以上" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "プラグインが無効だと、プラグインをアンインストールできません" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "正規表現での照合" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "MySQL テーブルのアンインストール" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "検索設定と状態では、アイテムの型を特定する必要があります。" #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/pt_BR.po b/locales/pt_BR.po index 3a88531f..516e9b3e 100644 --- a/locales/pt_BR.po +++ b/locales/pt_BR.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Diego Nobre , 2023,2025\n" "Language-Team: Portuguese (Brazil) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/pt_BR/)\n" @@ -29,6 +29,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Campo" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Somente leitura" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Adicionar condição para ocultar o bloco" @@ -41,6 +50,10 @@ msgstr[0] "Condição para ocultar o bloco" msgstr[1] "Condições para ocultar o bloco" msgstr[2] "Condições para ocultar o bloco" +#: templates/fields.html.twig +msgid "show" +msgstr "Exibir" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Adicionar nova substituição de status" @@ -53,35 +66,22 @@ msgstr "Substituições de status" msgid "No item found" msgstr "Nenhum item encontrado" -#: templates/fields.html.twig -msgid "show" -msgstr "Exibir" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Campo" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Somente leitura" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Campos adicionais" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Substituir por status" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Instalação de tabelas no MySQL" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Corrigir nomes de campos" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "O plugin não pode ser desinstalado enquando o plugin estiver desabilitado" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Itens componentes" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Desinstalação de tabelas no MySQL" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -110,26 +110,6 @@ msgstr "Adicionar um novo campo" msgid "No field for this block" msgstr "Nenhum campo para este bloco" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "sob" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "não sob" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "correspondências de expressão regular" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Você deve especificar um tipo de item, opção de pesquisa e condição." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Verifique o banco de dados para detectar inconsistências." @@ -179,6 +159,32 @@ msgstr "-> \"%s.%s\" deve ser excluído." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Execute\"%s\" para corrigir inconsistências do banco de dados." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Substituir por status" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Regerar arquivos de contêineres." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Este comando limpará todos os arquivos gerados pelo plug-in e os regenerará." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Idioma" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Rótulo" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Atualizando arquivos que foram baixados" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Regerar arquivos de contêiner" @@ -259,39 +265,33 @@ msgstr "Alguns campos numéricos contém valores não numéricos" msgid "Some URL fields contains invalid links" msgstr "Alguns campos de URL contém links inválidos" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Regerar arquivos de contêineres." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Este comando limpará todos os arquivos gerados pelo plug-in e os regenerará." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Atualizando arquivos que foram baixados" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Corrigir nomes de campos" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Idioma" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Itens componentes" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Rótulo" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "sob" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Instalação de tabelas no MySQL" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "não sob" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "O plugin não pode ser desinstalado enquando o plugin estiver desabilitado" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "correspondências de expressão regular" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Desinstalação de tabelas no MySQL" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Você deve especificar um tipo de item, opção de pesquisa e condição." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/pt_PT.po b/locales/pt_PT.po index 78641af2..adced6e8 100644 --- a/locales/pt_PT.po +++ b/locales/pt_PT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Gonçalo Dumas, 2024\n" "Language-Team: Portuguese (Portugal) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/pt_PT/)\n" @@ -22,6 +22,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Campo" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Somente leitura" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Adicionar condição para ocultar o bloco" @@ -34,6 +43,10 @@ msgstr[0] "Condição para ocultar bloco" msgstr[1] "Condições para ocultar bloco" msgstr[2] "Condição para ocultar bloco" +#: templates/fields.html.twig +msgid "show" +msgstr "mostrar" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Adicionar novo override de estado" @@ -46,35 +59,22 @@ msgstr "Overrides de estado" msgid "No item found" msgstr "Nenhum item encontrado" -#: templates/fields.html.twig -msgid "show" -msgstr "mostrar" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Campo" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Somente leitura" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Campos adicionais" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Override por estado" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Instalação das tabelas no MySQL" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Corrigir os nomes de campos" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "O plugin não pode ser desinstalado enquanto está desativado" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Itens do componente" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Desinstalação das tabelas no MySQL" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -103,26 +103,6 @@ msgstr "Adicionar um novo campo" msgid "No field for this block" msgstr "Nenhum campo para este bloco" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "sob" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "não sob" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "correspondências de expressão regular" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Deve especificar um tipo de item, uma opção de pesquisa e uma condição." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Verificar a base de dados para detetar inconsistências." @@ -172,6 +152,32 @@ msgstr "-> \"%s.%s\" deverá ser apagado." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Executar \"%s\" para corrigir inconsistências na base de dados." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Override por estado" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Regenera ficheiros dos contentores" + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Este comando irá limpar todos os ficheiros gerados pelo plugin e regenerá-los." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Idioma" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Etiqueta" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "A atualizar ficheiros gerados de menus suspensos" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Regenerar ficheiros do contentor" @@ -252,39 +258,33 @@ msgstr "Alguns campos numéricos contêm valores não numéricos" msgid "Some URL fields contains invalid links" msgstr "Alguns campos de URL contêm links inválidos" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Regenera ficheiros dos contentores" - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Este comando irá limpar todos os ficheiros gerados pelo plugin e regenerá-los." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "A atualizar ficheiros gerados de menus suspensos" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Corrigir os nomes de campos" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Idioma" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Itens do componente" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Etiqueta" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "sob" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Instalação das tabelas no MySQL" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "não sob" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "O plugin não pode ser desinstalado enquanto está desativado" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "correspondências de expressão regular" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Desinstalação das tabelas no MySQL" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Deve especificar um tipo de item, uma opção de pesquisa e uma condição." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/ro_RO.po b/locales/ro_RO.po index 3e5f3138..e2f9ba5e 100644 --- a/locales/ro_RO.po +++ b/locales/ro_RO.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Virgiliu Antonescu, 2022\n" "Language-Team: Romanian (Romania) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/ro_RO/)\n" @@ -24,6 +24,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Câmp" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Nu poate fi editat" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Adăugați o condiție pentru a ascunde blocul" @@ -36,6 +45,10 @@ msgstr[0] "Condiții pentru ascunderea blocului" msgstr[1] "Condiții ascundere bloc" msgstr[2] "Condiții pentru ascunderea blocului" +#: templates/fields.html.twig +msgid "show" +msgstr "arată" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Adăugați un status suplimentar" @@ -48,35 +61,22 @@ msgstr "Status nepreluat" msgid "No item found" msgstr "Nu a fost găsit niciun element" -#: templates/fields.html.twig -msgid "show" -msgstr "arată" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Câmp" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Nu poate fi editat" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Câmpuri adiționale" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Ignorați în funcție de stare" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Generarea tabelelor MySQL pentru instalare " -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Remediați numele câmpurilor" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Plugin-ul nu poate fi dezinstalat când este dezactivat" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Elemente componente" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Ștergerea tabelelor MySQL instalate" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -105,26 +105,6 @@ msgstr "Adaugă un câmp nou" msgid "No field for this block" msgstr "Nu există niciun câmp pentru acest bloc" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "sub" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "nu sub" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "expresia se potrivește" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Trebuie să specificați un tip de articol, o opțiune de căutare și o condiție." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Verificați baza de date pentru a detecta inconsecvența datelor." @@ -174,6 +154,32 @@ msgstr "-> \"%s.%s\" trebuie șters." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Rulați „%s” pentru a remedia inconsecvențele bazei de date." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Ignorați în funcție de stare" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "" + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "" + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Limba" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Eticheta" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Actualizarea fișierelor tip desfășurător generate" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Regenerați fișierele container" @@ -254,39 +260,33 @@ msgstr "Unele câmpuri numerice conțin valori non numerice" msgid "Some URL fields contains invalid links" msgstr "Unele câmpuri URL conțin linkuri nevalide" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "" - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "" - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Actualizarea fișierelor tip desfășurător generate" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Remediați numele câmpurilor" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Limba" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Elemente componente" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Eticheta" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "sub" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Generarea tabelelor MySQL pentru instalare " +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "nu sub" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Plugin-ul nu poate fi dezinstalat când este dezactivat" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "expresia se potrivește" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Ștergerea tabelelor MySQL instalate" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Trebuie să specificați un tip de articol, o opțiune de căutare și o condiție." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/ru_RU.po b/locales/ru_RU.po index b71173a2..a0a2791d 100644 --- a/locales/ru_RU.po +++ b/locales/ru_RU.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: hamkms, 2024\n" "Language-Team: Russian (Russia) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/ru_RU/)\n" @@ -28,6 +28,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Поле" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Только чтение" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Добавить условие для скрытия блока" @@ -41,6 +50,10 @@ msgstr[1] "Условия для скрытия блока" msgstr[2] "Условия для скрытия блока" msgstr[3] "Условия для скрытия блока" +#: templates/fields.html.twig +msgid "show" +msgstr "показать" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Добавить новое переопределение статуса" @@ -53,35 +66,22 @@ msgstr "Переопределение статуса" msgid "No item found" msgstr "Объект не найден" -#: templates/fields.html.twig -msgid "show" -msgstr "показать" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Поле" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Только чтение" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Дополнительные поля" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Переопределение по статусу" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Установка таблиц MySQL " -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Исправить названия полей" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Плагин не может быть удален пока плагин выключен" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Составные элементы" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Удаление таблиц MySQL" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -110,26 +110,6 @@ msgstr "Добавить новое поле" msgid "No field for this block" msgstr "Нет поля для этого блока" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "под" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "не под" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "соответствует регулярному выражению" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Необходимо указать тип элемента, вариант поиска и условие." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Проверьте базу данных на наличие несоответствий." @@ -179,6 +159,32 @@ msgstr "-> \"%s.%s\" должно быть удалено." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Запустите \"%s\" для устранения несоответствий базы данных." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Переопределение по статусу" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Восстановленные файлы контейнеров." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Эта команда очистит все файлы, сгенерированные плагином, и восстановит их заново." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Язык" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Метка" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Обновление автоматически раскрывающегося списка файлов" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Восстановить файлы контейнера" @@ -259,39 +265,33 @@ msgstr "Некоторые числовые поля содержат не то msgid "Some URL fields contains invalid links" msgstr "Некоторый URL полей содержат недействительные ссылки" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Восстановленные файлы контейнеров." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Эта команда очистит все файлы, сгенерированные плагином, и восстановит их заново." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Обновление автоматически раскрывающегося списка файлов" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Исправить названия полей" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Язык" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Составные элементы" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Метка" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "под" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Установка таблиц MySQL " +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "не под" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Плагин не может быть удален пока плагин выключен" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "соответствует регулярному выражению" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Удаление таблиц MySQL" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Необходимо указать тип элемента, вариант поиска и условие." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/sk_SK.po b/locales/sk_SK.po index 3b115c5d..5ae835d9 100644 --- a/locales/sk_SK.po +++ b/locales/sk_SK.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: feonsu , 2023-2026\n" "Language-Team: Slovak (Slovakia) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/sk_SK/)\n" @@ -22,6 +22,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "Pripojiť dodatočné polia k cieľu" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Pole" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Iba na čítanie" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Pridať podmienku na skrytie bloku" @@ -35,6 +44,10 @@ msgstr[1] "Podmienky na skrytie bloku" msgstr[2] "Podmienky na skrytie bloku" msgstr[3] "Podmienky na skrytie bloku" +#: templates/fields.html.twig +msgid "show" +msgstr "zobraziť" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Pridať nové prepísanie stavu" @@ -47,35 +60,22 @@ msgstr "Prepísania stavov" msgid "No item found" msgstr "Nenašla sa žiadna položka" -#: templates/fields.html.twig -msgid "show" -msgstr "zobraziť" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Pole" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Iba na čítanie" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Dodatočné polia" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Prepísanie podľa stavu" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Inštalácia MySQL tabuliek" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Opraviť názvy polí" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Plugin nemožno odinštalovať ak je plugin vypnutý" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Položky komponentov" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Odinštalovanie MySQL tabuliek" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -104,26 +104,6 @@ msgstr "Pridať nové pole" msgid "No field for this block" msgstr "Žiadne pole pre tento blok" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "pod" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "nie je pod" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "regulárny výraz zodpovedá" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Musíte špecifikovať typ položky, možnosť hľadania a podmienku." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Kontrola databázy na zistenie nekonzistencií." @@ -173,6 +153,32 @@ msgstr "-> \"%s.%s\" by mala byť vymazaná." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Spustite \"%s\" na opravu nekonzistencií databázy." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Prepísanie podľa stavu" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Znova generovať kontajnerové súbory." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Tento príkaz vyčistí všetky súbory vygenerované týmto pluginom a znova ich vygeneruje." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Jazyk" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Popisok" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Aktualizácia vygenerovaných súborov rozbaľovacích ponúk" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Znova generovať kontajnerové súbory" @@ -253,39 +259,33 @@ msgstr "Niektoré číselné polia obsahujú nečíselné hodnoty" msgid "Some URL fields contains invalid links" msgstr "Niektoré URL polia obsahujú neplatné odkazy" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Znova generovať kontajnerové súbory." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Tento príkaz vyčistí všetky súbory vygenerované týmto pluginom a znova ich vygeneruje." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Aktualizácia vygenerovaných súborov rozbaľovacích ponúk" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Opraviť názvy polí" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Jazyk" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Položky komponentov" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Popisok" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "pod" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Inštalácia MySQL tabuliek" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "nie je pod" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Plugin nemožno odinštalovať ak je plugin vypnutý" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "regulárny výraz zodpovedá" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Odinštalovanie MySQL tabuliek" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Musíte špecifikovať typ položky, možnosť hľadania a podmienku." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/sv_SE.po b/locales/sv_SE.po index 43c50b33..31d055cd 100644 --- a/locales/sv_SE.po +++ b/locales/sv_SE.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-07 02:21+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Peter Rundqvist, 2025\n" "Language-Team: Swedish (Sweden) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/sv_SE/)\n" @@ -22,6 +22,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "Knyt ytterligare fält till målet" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Fält" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Skrivskyddat" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Lägg till villkor för att dölja block" @@ -33,6 +42,10 @@ msgid_plural "Conditions to hide block" msgstr[0] "Villkor för att dölja block" msgstr[1] "Villkor för att dölja block" +#: templates/fields.html.twig +msgid "show" +msgstr "visa" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Lägg till ny statusåsidosättning" @@ -45,35 +58,22 @@ msgstr "Åsidosättningar" msgid "No item found" msgstr "Inga objekt" -#: templates/fields.html.twig -msgid "show" -msgstr "visa" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Fält" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Skrivskyddat" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Ytterligare fält" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Åsidosätt via status" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "Installera MySQL-tabeller" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Korrigera fältnamn" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Tillägget kan inte avinstalleras när det är inaktivt" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Komponentobjekt" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "Avinstallera MySQL-tabeller" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -102,26 +102,6 @@ msgstr "Lägg till nytt fält" msgid "No field for this block" msgstr "Inga fält för detta block" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "nedanför" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "ej nedanför" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "Regex matchar" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Du måste ange en objekttyp, ett sökalternativ och ett villkor." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Kontrollera databasen för att upptäcka problem." @@ -171,6 +151,32 @@ msgstr "-> \"%s.%s\" bör tas bort." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Kör \"%s\" för att korrigera problem i databasen." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Åsidosätt via status" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Återskapar behållarfiler." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Detta kommando rensar alla filer som genererats av tillägget och återskapar dem." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Språk" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Etikett" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Uppdaterar genererade filer över menyalternativ" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Återskapa behållarfiler" @@ -251,39 +257,33 @@ msgstr "Vissa numeriska fält innehåller icke-numeriska värden" msgid "Some URL fields contains invalid links" msgstr "Vissa URL-fält innehåler ogiltiga länkar" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Återskapar behållarfiler." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Detta kommando rensar alla filer som genererats av tillägget och återskapar dem." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Uppdaterar genererade filer över menyalternativ" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Korrigera fältnamn" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Språk" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Komponentobjekt" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Etikett" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "nedanför" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "Installera MySQL-tabeller" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "ej nedanför" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Tillägget kan inte avinstalleras när det är inaktivt" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "Regex matchar" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "Avinstallera MySQL-tabeller" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Du måste ange en objekttyp, ett sökalternativ och ett villkor." #: ajax/field_specific_fields.php:52 msgid "Allowed values" diff --git a/locales/tr_TR.po b/locales/tr_TR.po index 126ee219..4531082e 100644 --- a/locales/tr_TR.po +++ b/locales/tr_TR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GLPI Plugin - Fields\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-10 01:14+0000\n" +"POT-Creation-Date: 2026-08-14 01:21+0000\n" "PO-Revision-Date: 2015-09-18 09:34+0000\n" "Last-Translator: Kaya Zeren , 2015-2026\n" "Language-Team: Turkish (Turkey) (http://app.transifex.com/teclib/glpi-plugin-plugin-fields/language/tr_TR/)\n" @@ -22,6 +22,15 @@ msgstr "" msgid "Bind additional fields to the destination" msgstr "Ek alanları hedefe bağla" +#: templates/forms/status_override.html.twig inc/field.class.php:281 +msgid "Field" +msgstr "Alan" + +#: templates/forms/status_override.html.twig inc/field.class.php:682 +#: inc/field.class.php:861 +msgid "Read only" +msgstr "Salt okunur" + #: templates/container_display_conditions.html.twig msgid "Add condition to hide block" msgstr "Bloğu gizleyecek bir koşul ekle" @@ -33,6 +42,10 @@ msgid_plural "Conditions to hide block" msgstr[0] "Bloğu gizleyecek koşul" msgstr[1] "Bloğu gizleyecek koşullar" +#: templates/fields.html.twig +msgid "show" +msgstr "görüntüle" + #: templates/status_overrides.html.twig msgid "Add new status override" msgstr "Yeni bir durum değişikliği ekle" @@ -45,35 +58,22 @@ msgstr "Durum değişiklikleri" msgid "No item found" msgstr "Herhangi bir öge bulunamadı" -#: templates/fields.html.twig -msgid "show" -msgstr "görüntüle" - -#: templates/forms/status_override.html.twig inc/field.class.php:281 -msgid "Field" -msgstr "Alan" - -#: templates/forms/status_override.html.twig inc/field.class.php:682 -#: inc/field.class.php:861 -msgid "Read only" -msgstr "Salt okunur" - -#: front/container.php:34 front/container.form.php:74 inc/menu.class.php:37 -#: inc/destinationfield.class.php:50 setup.php:248 +#: front/container.php:34 front/container.form.php:74 setup.php:248 +#: inc/destinationfield.class.php:50 inc/menu.class.php:37 msgid "Additional fields" msgstr "Ek alanlar" -#: inc/statusoverride.class.php:91 -msgid "Override by status" -msgstr "Duruma göre değiştir" +#: hook.php:57 hook.php:61 +msgid "MySQL tables installation" +msgstr "MySQL tabloları yükleme" -#: inc/toolbox.class.php:122 -msgid "Fix fields names" -msgstr "Alan adlarını düzelt" +#: hook.php:114 +msgid "The plugin can't be uninstalled when the plugin is disabled" +msgstr "Bu uygulama eklenti kullanımdan kaldırılmışken kaldırılamaz" -#: inc/toolbox.class.php:331 -msgid "Component items" -msgstr "Bileşen ögeleri" +#: hook.php:127 +msgid "MySQL tables uninstallation" +msgstr "MySQL tabloları kaldırma" #: inc/field.class.php:296 inc/field.class.php:323 msgid "" @@ -102,26 +102,6 @@ msgstr "Alan ekle" msgid "No field for this block" msgstr "Bu blokta henüz bir alan yok" -#: inc/containerdisplaycondition.class.php:106 -#: inc/containerdisplaycondition.class.php:138 -msgid "under" -msgstr "şunun altında olan" - -#: inc/containerdisplaycondition.class.php:107 -#: inc/containerdisplaycondition.class.php:141 -msgid "not under" -msgstr "şunun altında olmayan" - -#: inc/containerdisplaycondition.class.php:113 -#: inc/containerdisplaycondition.class.php:135 -msgid "regular expression matches" -msgstr "kurallı ifade eşleşmeleri" - -#: inc/containerdisplaycondition.class.php:511 -#: inc/containerdisplaycondition.class.php:527 -msgid "You must specify an item type, search option and condition." -msgstr "Bir öge türü, arama seçeneği ve koşulu belirtmelisiniz." - #: inc/checkdatabasecommand.class.php:42 msgid "Check database to detect inconsistencies." msgstr "Veri tabanını tutarsızlıklara karşı denetle." @@ -171,6 +151,32 @@ msgstr "-> \"%s.%s\" silinmeli." msgid "Run \"%s\" to fix database inconsistencies." msgstr "Veri tabanı tutarsızlıklarını düzeltmek için \"%s\" çalıştırın." +#: inc/statusoverride.class.php:91 +msgid "Override by status" +msgstr "Duruma göre değiştir" + +#: inc/command/regeneratefilescommand.class.php:41 +msgid "Regenerates containers files." +msgstr "Kapsayıcı dosyaları yeniden oluşturur." + +#: inc/command/regeneratefilescommand.class.php:43 +msgid "" +"This command will clean up all files generated by the plugin and regenerate " +"them." +msgstr "Bu komut eklenti tarafından oluşturulmuş tüm dosyaları siler ve yeniden oluşturur." + +#: inc/labeltranslation.class.php:238 +msgid "Language" +msgstr "Dil" + +#: inc/labeltranslation.class.php:239 +msgid "Label" +msgstr "Etiket" + +#: inc/dropdown.class.php:79 +msgid "Updating generated dropdown files" +msgstr "Oluşturulmuş açılan kutu dosyaları güncelleniyor" + #: inc/container.class.php:53 msgid "Regenerate container files" msgstr "Kapsayıcı dosyalar yeniden oluşturulsun" @@ -251,39 +257,33 @@ msgstr "Bazı sayısal alanlarda sayısal olmayan değerler var" msgid "Some URL fields contains invalid links" msgstr "Bazı adres alanlarında geçersiz bağlantılar var" -#: inc/command/regeneratefilescommand.class.php:41 -msgid "Regenerates containers files." -msgstr "Kapsayıcı dosyaları yeniden oluşturur." - -#: inc/command/regeneratefilescommand.class.php:43 -msgid "" -"This command will clean up all files generated by the plugin and regenerate " -"them." -msgstr "Bu komut eklenti tarafından oluşturulmuş tüm dosyaları siler ve yeniden oluşturur." - -#: inc/dropdown.class.php:79 -msgid "Updating generated dropdown files" -msgstr "Oluşturulmuş açılan kutu dosyaları güncelleniyor" +#: inc/toolbox.class.php:122 +msgid "Fix fields names" +msgstr "Alan adlarını düzelt" -#: inc/labeltranslation.class.php:238 -msgid "Language" -msgstr "Dil" +#: inc/toolbox.class.php:331 +msgid "Component items" +msgstr "Bileşen ögeleri" -#: inc/labeltranslation.class.php:239 -msgid "Label" -msgstr "Etiket" +#: inc/containerdisplaycondition.class.php:106 +#: inc/containerdisplaycondition.class.php:138 +msgid "under" +msgstr "şunun altında olan" -#: hook.php:57 hook.php:61 -msgid "MySQL tables installation" -msgstr "MySQL tabloları yükleme" +#: inc/containerdisplaycondition.class.php:107 +#: inc/containerdisplaycondition.class.php:141 +msgid "not under" +msgstr "şunun altında olmayan" -#: hook.php:114 -msgid "The plugin can't be uninstalled when the plugin is disabled" -msgstr "Bu uygulama eklenti kullanımdan kaldırılmışken kaldırılamaz" +#: inc/containerdisplaycondition.class.php:113 +#: inc/containerdisplaycondition.class.php:135 +msgid "regular expression matches" +msgstr "kurallı ifade eşleşmeleri" -#: hook.php:127 -msgid "MySQL tables uninstallation" -msgstr "MySQL tabloları kaldırma" +#: inc/containerdisplaycondition.class.php:511 +#: inc/containerdisplaycondition.class.php:527 +msgid "You must specify an item type, search option and condition." +msgstr "Bir öge türü, arama seçeneği ve koşulu belirtmelisiniz." #: ajax/field_specific_fields.php:52 msgid "Allowed values" From 4ccb1a23cc2ad34b436419d830537f346d0cc48d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Thu, 20 Aug 2026 08:07:02 +0200 Subject: [PATCH 3/8] Update locales (#1246) Co-authored-by: stonebuzz <7335054+stonebuzz@users.noreply.github.com> --- locales/en_GB.mo | Bin 6493 -> 6493 bytes locales/en_GB.po | 4 ++-- locales/es_AR.mo | Bin 7132 -> 7386 bytes locales/es_AR.po | 8 ++++---- locales/fields.pot | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/locales/en_GB.mo b/locales/en_GB.mo index 558a4ce1b627a8dd6f2b2a97d22b35e8339f4d13..8d5b036277b155384e6440e8c984a9863f941ac7 100644 GIT binary patch delta 15 Wcmca>bk}HuCO?yr!DelKBQ5|gR0Na& delta 15 Wcmca>bk}HuCO?y*#b#}OBQ5|geFU2T diff --git a/locales/en_GB.po b/locales/en_GB.po index 76cc522d..17d81d60 100644 --- a/locales/en_GB.po +++ b/locales/en_GB.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-18 00:52+0000\n" -"PO-Revision-Date: 2026-08-18 00:52+0000\n" +"POT-Creation-Date: 2026-08-20 00:52+0000\n" +"PO-Revision-Date: 2026-08-20 00:52+0000\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en_GB\n" diff --git a/locales/es_AR.mo b/locales/es_AR.mo index 0da5c9957455c0bef156401011fba292632de6a9..c37ee05a1720251b3f2e5cdd8e9fc7c053224878 100644 GIT binary patch delta 1559 zcmYk+TS!zv9LMqhns%|Pb~Cd&n%%ZE@8)KuQ5u0o(S?d0*4)FuNx7rK}p`sw7 z8wg57MAU;120;)+5kU`@4@p$eOHt5UQPJi5J8RJ3|9oc7IXh?OKQq3r9;r#b$xgp$ zlsY0$k!H3>rgNbj&oFDlZq)NHI1eX{HJge-oQolxjk|ChdYFY>I0bvK886{7{DE|p zv_jt2jUcMS9aw@X^cy0CuC#oMU&pP(}K z9+zQYqS<0xjtls{ZKtvl+fgIy$1ym74LFFa@i%V7&?K{McpMkv5a#1oT#7l2stoHf ziV56;uW%hMB~9wD1(O=_bt)S19n`WvMP=eS-Vd0)#M89TGdj&AkF*qE2xsAb)XWmN z2zyZzd4$T$@Tec~B<-K540LCcf33|;-m1a7sMLPM0~lbz&SMMi#P7HZx6Vi{%?;c{ z`yN(eU}kC$Rih@*h#Ghk>N~Gc8G47B@Pt|9zlusB)7XytP-}k&^@Bmw8a_bn{t;Y& z-*7(8X0#4gp$5L23t6`K=>4OpO!Z(tR@O|{!T`}@(Y>q z&%GLC*Uy6LO0$lecDnXJF`=S$t?+B9i*~+>PEtOh<vXs=H^wX3%>4f|JCm4=d!Ng5t{G(y zHB1d=ne}2(4j+`ET(dzOMm?Xy)wqbI7|JtSg;89I9k>KfVHu{d1TSDcUPgx6ROY*9 zPibhPd2GNRIDoax(vG8e5Z_}lhVspJV;x3u0QG{asEKc5AKpWzvcjci%ds4nVFWcU zj&0_dou#3HH<2+miCXzXtioy34rfq1{DoRbNdc2$80oSYhA@Hp{V`OehOi#TF@n!< zEzV(#_uD@jT3M{nEF1S?2exA?j^TcMjonyWWVQ}ZV-1dA9Zuple24uQV3mh4g-Y*Z z)OtsSL+S28MdBnr37DP1F}_!_I_=~R*5XTCfnQKNTf_|*A#6155GpcB z-yzh_M^GtwfC-!`BmN5MH#$<7&8RDQ4v*ts?7?ml$WQD(cH#@%f!V>#*-4-l-i2E5 z5!8!5p(3+@+Gt^gSu;lPC?+e2zjFSF4h?vY%H1^Tw9le)^&8h<72B@H7SzIfk!aem z-|wL!bPJ>S3U!FTV+@-Zr2als1jaoYl{DU<7BY`X{EGXqlZPj86m=~ZP!qLrGMn){ zHsAyvzz=u{!)#acOrZJ$>`FWCLgoGjM$o%UgPUb\n" "Language-Team: LANGUAGE \n" From d7ee0022494fdfb2331a40a23f973c420ca591a5 Mon Sep 17 00:00:00 2001 From: Julien Durand Date: Wed, 2 Sep 2026 10:12:43 +0200 Subject: [PATCH 4/8] fix: block display conditon form not displaying --- templates/forms/container_display_condition.html.twig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/forms/container_display_condition.html.twig b/templates/forms/container_display_condition.html.twig index 9a81c05a..cc8b06dc 100644 --- a/templates/forms/container_display_condition.html.twig +++ b/templates/forms/container_display_condition.html.twig @@ -41,7 +41,7 @@ [ 'dropdown_itemtype' ~ rand, 'results_fields', - get_plugin_web_dir('fields') ~ '/ajax/container_display_condition.php', + path('/plugins/fields/ajax/container_display_condition.php'), { 'itemtype': '__VALUE__', 'action' : 'get_itemtype_so', @@ -54,7 +54,7 @@ [ 'dropdown_search_option' ~ rand, 'results_condition', - get_plugin_web_dir('fields') ~ '/ajax/container_display_condition.php', + path('/plugins/fields/ajax/container_display_condition.php'), { 'search_option_id' : '__VALUE__', 'itemtype' : container_display_condition.fields['itemtype'], From 51d3294d27a1879dc73afae0b5fa23fd9a225075 Mon Sep 17 00:00:00 2001 From: Julien Durand Date: Wed, 2 Sep 2026 10:29:08 +0200 Subject: [PATCH 5/8] chore: rector + change getType() to ::class in tpl --- ajax/container_display_condition.php | 2 +- ajax/field_specific_fields.php | 2 +- ajax/reorder.php | 2 +- ajax/status_override.php | 2 +- front/container.php | 2 +- front/containerdisplaycondition.form.php | 2 +- front/export_to_yaml.php | 2 +- front/field.form.php | 2 +- front/labeltranslation.form.php | 2 +- front/profile.form.php | 2 +- front/regenerate_files.php | 2 +- front/statusoverride.form.php | 2 +- hook.php | 4 +-- inc/container.class.php | 42 +++++++++++------------ inc/containerdisplaycondition.class.php | 8 ++--- inc/field.class.php | 6 ++-- inc/inventory.class.php | 8 ++--- inc/labeltranslation.class.php | 10 +++--- inc/menu.class.php | 2 +- inc/statusoverride.class.php | 6 ++-- setup.php | 6 ++-- templates/dropdown.class.tpl | 2 +- tests/Units/FieldDestinationFieldTest.php | 2 +- 23 files changed, 60 insertions(+), 60 deletions(-) diff --git a/ajax/container_display_condition.php b/ajax/container_display_condition.php index 55253479..0479959e 100644 --- a/ajax/container_display_condition.php +++ b/ajax/container_display_condition.php @@ -27,7 +27,7 @@ * @link https://github.com/pluginsGLPI/fields * ------------------------------------------------------------------------- */ -Session::checkRight('config', READ); +Session::checkRight(Config::$rightname, READ); if (isset($_GET['action'])) { if ($_GET['action'] === 'get_add_form') { diff --git a/ajax/field_specific_fields.php b/ajax/field_specific_fields.php index e5745ad6..aa9addb3 100644 --- a/ajax/field_specific_fields.php +++ b/ajax/field_specific_fields.php @@ -33,7 +33,7 @@ header('Content-Type: text/html; charset=UTF-8'); Html::header_nocache(); -Session::checkRight('config', READ); +Session::checkRight(Config::$rightname, READ); $id = $_POST['id']; $type = $_POST['type']; diff --git a/ajax/reorder.php b/ajax/reorder.php index e287ccaa..8ff8e7bb 100644 --- a/ajax/reorder.php +++ b/ajax/reorder.php @@ -30,7 +30,7 @@ use Glpi\DBAL\QueryExpression; -Session::checkRight('config', UPDATE); +Session::checkRight(Config::$rightname, UPDATE); if ( !array_key_exists('container_id', $_POST) diff --git a/ajax/status_override.php b/ajax/status_override.php index 75e9d219..2354f612 100644 --- a/ajax/status_override.php +++ b/ajax/status_override.php @@ -28,7 +28,7 @@ * ------------------------------------------------------------------------- */ -Session::checkRight('config', READ); +Session::checkRight(Config::$rightname, READ); if (isset($_GET['action'])) { if ($_GET['action'] === 'get_status_dropdown') { diff --git a/front/container.php b/front/container.php index 1ce24fc2..71f450cc 100644 --- a/front/container.php +++ b/front/container.php @@ -38,7 +38,7 @@ 'fieldscontainer', ); -Session::checkRight('config', READ); +Session::checkRight(Config::$rightname, READ); PluginFieldsContainer::titleList(); Search::show('PluginFieldsContainer'); diff --git a/front/containerdisplaycondition.form.php b/front/containerdisplaycondition.form.php index 43683b59..ef65068c 100644 --- a/front/containerdisplaycondition.form.php +++ b/front/containerdisplaycondition.form.php @@ -28,7 +28,7 @@ * ------------------------------------------------------------------------- */ -Session::checkRight('config', READ); +Session::checkRight(Config::$rightname, READ); $status_override = new PluginFieldsContainerDisplayCondition(); if (isset($_POST['add'])) { diff --git a/front/export_to_yaml.php b/front/export_to_yaml.php index 6eb20dd0..5578264d 100644 --- a/front/export_to_yaml.php +++ b/front/export_to_yaml.php @@ -32,7 +32,7 @@ include(__DIR__ . '/../hook.php'); -Session::checkRight('config', READ); +Session::checkRight(Config::$rightname, READ); $ID = null; if (isset($_GET['id'])) { diff --git a/front/field.form.php b/front/field.form.php index 01c4d1b5..64545c60 100644 --- a/front/field.form.php +++ b/front/field.form.php @@ -33,7 +33,7 @@ $_GET['id'] = ''; } -Session::checkRight('config', READ); +Session::checkRight(Config::$rightname, READ); $field = new PluginFieldsField(); diff --git a/front/labeltranslation.form.php b/front/labeltranslation.form.php index f928dce3..4a56ca2e 100644 --- a/front/labeltranslation.form.php +++ b/front/labeltranslation.form.php @@ -30,7 +30,7 @@ declare(strict_types=1); -Session::checkRight('config', UPDATE); +Session::checkRight(Config::$rightname, UPDATE); $translation = new PluginFieldsLabelTranslation(); if (isset($_POST['add'])) { diff --git a/front/profile.form.php b/front/profile.form.php index a27ed64c..817ef904 100644 --- a/front/profile.form.php +++ b/front/profile.form.php @@ -30,7 +30,7 @@ declare(strict_types=1); -Session::checkRight('config', UPDATE); +Session::checkRight(Config::$rightname, UPDATE); if (isset($_POST['update'])) { PluginFieldsProfile::updateProfile($_POST); diff --git a/front/regenerate_files.php b/front/regenerate_files.php index 02acb6b2..b3dac2ad 100644 --- a/front/regenerate_files.php +++ b/front/regenerate_files.php @@ -32,7 +32,7 @@ include(__DIR__ . '/../hook.php'); -Session::checkRight('config', READ); +Session::checkRight(Config::$rightname, READ); plugin_fields_checkFiles(); diff --git a/front/statusoverride.form.php b/front/statusoverride.form.php index 42aa9338..9a8f46fb 100644 --- a/front/statusoverride.form.php +++ b/front/statusoverride.form.php @@ -28,7 +28,7 @@ * ------------------------------------------------------------------------- */ -Session::checkRight('config', READ); +Session::checkRight(Config::$rightname, READ); $status_override = new PluginFieldsStatusOverride(); if (isset($_POST['add'])) { diff --git a/hook.php b/hook.php index 409b9af2..ba106b6b 100644 --- a/hook.php +++ b/hook.php @@ -198,7 +198,7 @@ function plugin_fields_getDropdown() $field_obj = new PluginFieldsField(); $fields = $field_obj->find(['type' => 'dropdown']); foreach ($fields as $field) { - $field['itemtype'] = PluginFieldsField::getType(); + $field['itemtype'] = PluginFieldsField::class; $label = PluginFieldsLabelTranslation::getLabelFor($field); $dropdowns['PluginFields' . ucfirst((string) $field['name']) . 'Dropdown'] = $label; } @@ -307,7 +307,7 @@ function plugin_fields_rule_matched($params = []) $field => $value, 'items_id' => $agent->fields['computers_id'], ], - Computer::getType(), + Computer::class, ); } } diff --git a/inc/container.class.php b/inc/container.class.php index d77714c4..c8bd0158 100644 --- a/inc/container.class.php +++ b/inc/container.class.php @@ -324,10 +324,10 @@ public static function installUserData(Migration $migration, $version) } //Computer OS tab is no longer part of computer object. Moving to main - $ostab = self::findContainer(Computer::getType(), 'domtab', Computer::getType() . '$1'); + $ostab = self::findContainer(Computer::class, 'domtab', Computer::class . '$1'); if ($ostab) { //check if we already have a container on Computer main tab - $comptab = self::findContainer(Computer::getType(), 'dom'); + $comptab = self::findContainer(Computer::class, 'dom'); if ($comptab) { $oscontainer = new PluginFieldsContainer(); $oscontainer->getFromDB($ostab); @@ -338,10 +338,10 @@ public static function installUserData(Migration $migration, $version) $fields = new PluginFieldsField(); $fieldsdata = $fields->find(['plugin_fields_containers_id' => $ostab]); - $classname = self::getClassname(Computer::getType(), $oscontainer->fields['name']); + $classname = self::getClassname(Computer::class, $oscontainer->fields['name']); $dbu = new DbUtils(); $osdata = $dbu->getItemForItemtype($classname); - $classname = self::getClassname(Computer::getType(), $compcontainer->fields['name']); + $classname = self::getClassname(Computer::class, $compcontainer->fields['name']); $compdata = $dbu->getItemForItemtype($classname); $fieldnames = []; @@ -488,7 +488,7 @@ public function rawSearchOptions() 'field' => 'name', 'name' => __('Name'), 'datatype' => 'itemlink', - 'itemlink_type' => self::getType(), + 'itemlink_type' => static::class, 'massiveaction' => false, ], [ 'id' => 2, @@ -496,7 +496,7 @@ public function rawSearchOptions() 'field' => 'label', 'name' => __('Label'), 'datatype' => 'itemlink', - 'itemlink_type' => self::getType(), + 'itemlink_type' => static::class, 'massiveaction' => false, 'autocomplete' => true, ], [ @@ -877,7 +877,7 @@ public function pre_deleteItem() //delete label translations $translation_obj = new PluginFieldsLabelTranslation(); $translation_obj->deleteByCriteria([ - 'itemtype' => self::getType(), + 'itemtype' => static::class, 'items_id' => $this->fields['id'], ]); @@ -1255,7 +1255,7 @@ public static function getEntries($type = 'tab', $full = false): array foreach ($jsonitemtypes as $v) { if ($full) { //check for translation - $item['itemtype'] = self::getType(); + $item['itemtype'] = static::class; $label = PluginFieldsLabelTranslation::getLabelFor($item); $itemtypes[$v][$item['name']] = $label; } else { @@ -1307,10 +1307,10 @@ public function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) } $itemtypes = self::getEntries('tab', true); - if (isset($itemtypes[$item->getType()]) && $item instanceof CommonDBTM) { + if (isset($itemtypes[$item::class]) && $item instanceof CommonDBTM) { $tabs_entries = []; $container = new self(); - foreach ($itemtypes[$item->getType()] as $tab_name => $tab_label) { + foreach ($itemtypes[$item::class] as $tab_name => $tab_label) { // needs to check if entity of item is in hierachy of $tab_name foreach ($container->find(['is_active' => 1, 'name' => $tab_name]) as $data) { $dataitemtypes = PluginFieldsToolbox::decodeJSONItemtypes($data['itemtypes']); @@ -1707,7 +1707,7 @@ public static function validateValues($data, $itemtype, $massiveaction) } //translate label - $field['itemtype'] = PluginFieldsField::getType(); + $field['itemtype'] = PluginFieldsField::class; $field['label'] = PluginFieldsLabelTranslation::getLabelFor($field); // Check mandatory fields @@ -1838,7 +1838,7 @@ public static function postItemAdd(CommonDBTM $item) $data['entities_id'] = $item->isEntityAssign() ? $item->getEntityID() : 0; //update data $container = new self(); - if ($container->updateFieldsValues($data, $item->getType(), isset($_REQUEST['massiveaction']))) { + if ($container->updateFieldsValues($data, $item::class, isset($_REQUEST['massiveaction']))) { return true; } @@ -1868,7 +1868,7 @@ public static function preItemUpdate(CommonDBTM $item) $container = new self(); if ( count($data) === 0 - || $container->updateFieldsValues($data, $item->getType(), isset($_REQUEST['massiveaction'])) + || $container->updateFieldsValues($data, $item::class, isset($_REQUEST['massiveaction'])) ) { $item->input['date_mod'] = $_SESSION['glpi_currenttime']; @@ -1944,7 +1944,7 @@ public static function preItem(CommonDBTM $item) } if (false !== ($data = self::populateData($c_id, $item))) { - if (self::validateValues($data, $item::getType(), isset($_REQUEST['massiveaction'])) === false) { + if (self::validateValues($data, $item::class, isset($_REQUEST['massiveaction'])) === false) { $item->input = []; return false; @@ -1958,7 +1958,7 @@ public static function preItem(CommonDBTM $item) //call validateValues() with a minimal data array to check for missing mandatory fields //in case populateData() fails if ($item->isNewItem() && $loc_c->fields['type'] === 'dom') { - $status_field_name = PluginFieldsStatusOverride::getStatusFieldName($item::getType()); + $status_field_name = PluginFieldsStatusOverride::getStatusFieldName($item::class); $data = ['plugin_fields_containers_id' => $c_id]; if (array_key_exists($status_field_name, $item->input) && $item->input[$status_field_name] !== '') { $data[$status_field_name] = (int) $item->input[$status_field_name]; @@ -1966,7 +1966,7 @@ public static function preItem(CommonDBTM $item) $data[$status_field_name] = (int) $item->fields[$status_field_name]; } - if (self::validateValues($data, $item::getType(), isset($_REQUEST['massiveaction'])) === false) { + if (self::validateValues($data, $item::class, isset($_REQUEST['massiveaction'])) === false) { $item->input = []; } } @@ -2018,7 +2018,7 @@ private static function populateData($c_id, CommonDBTM $item) } // Add status so it can be used with status overrides - $status_field_name = PluginFieldsStatusOverride::getStatusFieldName($item->getType()); + $status_field_name = PluginFieldsStatusOverride::getStatusFieldName($item::class); $data[$status_field_name] = null; if (array_key_exists($status_field_name, $item->input) && $item->input[$status_field_name] !== '') { $data[$status_field_name] = (int) $item->input[$status_field_name]; @@ -2195,14 +2195,14 @@ public static function getAddSearchOptions($itemtype, $containers_id = false) //get translations $container = [ - 'itemtype' => PluginFieldsContainer::getType(), + 'itemtype' => PluginFieldsContainer::class, 'id' => $data['container_id'], 'label' => $data['container_label'], ]; $data['container_label'] = PluginFieldsLabelTranslation::getLabelFor($container); $field = [ - 'itemtype' => PluginFieldsField::getType(), + 'itemtype' => PluginFieldsField::class, 'id' => $data['field_id'], 'label' => $data['field_label'], ]; @@ -2335,8 +2335,8 @@ public static function getAddSearchOptions($itemtype, $containers_id = false) private static function getSubtypes($item) { $tabs = []; - switch ($item::getType()) { - case Entity::getType(): + switch ($item::class) { + case Entity::class: $tabs = [ 'Entity$2' => __('Address'), 'Entity$3' => __('Advanced information'), diff --git a/inc/containerdisplaycondition.class.php b/inc/containerdisplaycondition.class.php index 5aea4261..50995344 100644 --- a/inc/containerdisplaycondition.class.php +++ b/inc/containerdisplaycondition.class.php @@ -287,7 +287,7 @@ public static function showSearchOptionCondition($searchoption_id, $itemtype, ?s if ($twig_params['dropdown_itemtype'] == User::class) { $twig_params['dropdown_option'] = ['right' => 'all']; } - } elseif ($so['datatype'] == 'specific' && get_parent_class($itemtype) == CommonITILObject::getType()) { + } elseif ($so['datatype'] == 'specific' && get_parent_class($itemtype) == CommonITILObject::class) { $twig_params['list_conditions'] = self::getComparisonOperators(true); $twig_params['is_specific'] = true; switch ($so['field']) { @@ -334,7 +334,7 @@ public static function getRawValue($searchoption_id, $itemtype, $value) if ($dropdown->getFromDB($value)) { $raw_value = $dropdown->fields['name']; } - } elseif ($so['datatype'] == 'specific' && get_parent_class($itemtype) == CommonITILObject::getType()) { + } elseif ($so['datatype'] == 'specific' && get_parent_class($itemtype) == CommonITILObject::class) { switch ($so['field']) { case 'status': $raw_value = $itemtype::getStatus($value); @@ -383,7 +383,7 @@ public static function removeBlackListedOption($array, $itemtype_class) $main_table == getTableForItemType($itemtype_class) ) { foreach ($foreignKey as $foreign_class) { - if (!is_array($foreign_class) && getTableNameForForeignKeyField($foreign_class) !== getTableForItemType(Location::getType())) { + if (!is_array($foreign_class) && getTableNameForForeignKeyField($foreign_class) !== getTableForItemType(Location::class)) { $allowed_table[] = getTableForItemType(getItemtypeForForeignKeyField($foreign_class)); } } @@ -392,7 +392,7 @@ public static function removeBlackListedOption($array, $itemtype_class) } if ($itemtype_object->isEntityAssign()) { - $allowed_table[] = getTableForItemType(Entity::getType()); + $allowed_table[] = getTableForItemType(Entity::class); } //allow specific datatype diff --git a/inc/field.class.php b/inc/field.class.php index 37212ada..edbc3583 100644 --- a/inc/field.class.php +++ b/inc/field.class.php @@ -447,7 +447,7 @@ public function pre_deleteItem() //delete label translations $translation_obj = new PluginFieldsLabelTranslation(); $translation_obj->deleteByCriteria([ - 'itemtype' => self::getType(), + 'itemtype' => static::class, 'items_id' => $this->fields['id'], ]); @@ -588,7 +588,7 @@ public function getNextRanking() public function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) { - if (!$withtemplate && $item->getType() === self::class) { + if (!$withtemplate && $item::class === self::class) { return static::getTypeName(1); } @@ -1207,7 +1207,7 @@ public static function prepareHtmlFields( //show all fields foreach ($fields as &$field) { - $field['itemtype'] = self::getType(); + $field['itemtype'] = static::class; $field['label'] = PluginFieldsLabelTranslation::getLabelFor($field); $field['allowed_values'] = empty($field['allowed_values']) ? [] : json_decode((string) $field['allowed_values']); diff --git a/inc/inventory.class.php b/inc/inventory.class.php index 14cdbc8d..6db6dd32 100644 --- a/inc/inventory.class.php +++ b/inc/inventory.class.php @@ -42,21 +42,21 @@ public static function updateInventory($params = []) $items_id = 0; //retrieve items id switch itemtype switch ($itemtype) { - case Computer::getType(): + case Computer::class: $items_id = $params['computers_id']; break; - case NetworkEquipment::getType(): + case NetworkEquipment::class: $items_id = $params['networkequipments_id']; break; - case Printer::getType(): + case Printer::class: $items_id = $params['printers_id']; break; } if (class_exists('PluginFusioninventoryInventoryComputerComputer')) { - if ($itemtype == Computer::getType()) { + if ($itemtype == Computer::class) { //load inventory from DB because //FI not update XML file if computer is not update $db_info = new PluginFusioninventoryInventoryComputerComputer(); diff --git a/inc/labeltranslation.class.php b/inc/labeltranslation.class.php index 8a863742..f189f51f 100644 --- a/inc/labeltranslation.class.php +++ b/inc/labeltranslation.class.php @@ -131,7 +131,7 @@ public static function createForItem(CommonDBTM $item) $translation = new PluginFieldsLabelTranslation(); $translation->add([ - 'itemtype' => $item::getType(), + 'itemtype' => $item::class, 'items_id' => $item->getID(), 'language' => $_SESSION['glpilanguage'], 'label' => $item->fields['label'], @@ -149,7 +149,7 @@ public function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) $nb = countElementsInTable( self::getTable(), [ - 'itemtype' => $item::getType(), + 'itemtype' => $item::class, 'items_id' => $item->getID(), ], ); @@ -192,7 +192,7 @@ public static function showTranslations(CommonDBTM $item) $ajax_params = [ 'type' => self::class, - 'itemtype' => $item::getType(), + 'itemtype' => $item::class, 'items_id' => $item->fields['id'], 'id' => -1, ]; @@ -213,7 +213,7 @@ public static function showTranslations(CommonDBTM $item) $obj = new self(); $found = $obj->find( [ - 'itemtype' => $item::getType(), + 'itemtype' => $item::class, 'items_id' => $item->getID(), ], 'language ASC', @@ -250,7 +250,7 @@ public static function showTranslations(CommonDBTM $item) if ($canedit) { $ajax_params = [ 'type' => self::class, - 'itemtype' => $item::getType(), + 'itemtype' => $item::class, 'items_id' => $item->getID(), 'id' => $data['id'], ]; diff --git a/inc/menu.class.php b/inc/menu.class.php index 47277b1a..ddc8c175 100644 --- a/inc/menu.class.php +++ b/inc/menu.class.php @@ -42,7 +42,7 @@ public static function getMenuContent() /** @var array $CFG_GLPI */ global $CFG_GLPI; - if (!Session::haveRight('entity', READ)) { + if (!Session::haveRight(Entity::$rightname, READ)) { return false; } diff --git a/inc/statusoverride.class.php b/inc/statusoverride.class.php index 87c10f60..7815b378 100644 --- a/inc/statusoverride.class.php +++ b/inc/statusoverride.class.php @@ -229,11 +229,11 @@ public static function getOverridesForContainer(int $container_id): array public static function getOverridesForItem(int $container_id, CommonDBTM $item): array { - if (!in_array($item::getType(), self::getStatusItemtypes(), true)) { + if (!in_array($item::class, self::getStatusItemtypes(), true)) { return []; } - $status_field_name = self::getStatusFieldName($item->getType()); + $status_field_name = self::getStatusFieldName($item::class); $status = null; if (array_key_exists($status_field_name, $item->input) && $item->input[$status_field_name] !== '') { $status = (int) $item->input[$status_field_name]; @@ -242,7 +242,7 @@ public static function getOverridesForItem(int $container_id, CommonDBTM $item): } return $status !== null - ? self::getOverridesForItemtypeAndStatus($container_id, $item->getType(), $status) + ? self::getOverridesForItemtypeAndStatus($container_id, $item::class, $status) : []; } diff --git a/setup.php b/setup.php index 8109f6ee..f9a2e1cb 100644 --- a/setup.php +++ b/setup.php @@ -168,7 +168,7 @@ function plugin_init_fields() $PLUGIN_HOOKS['config_page']['fields'] = 'front/container.php'; // add entry to configuration menu (only if user has read access to config) - if (Session::haveRight('config', READ)) { + if (Session::haveRight(Config::$rightname, READ)) { $PLUGIN_HOOKS['menu_toadd']['fields'] = ['config' => PluginFieldsMenu::class]; } @@ -337,7 +337,7 @@ function plugin_fields_exportBlockAsYaml($container_id = null) foreach ($itemtypes as $itemtype) { $fields_obj = new PluginFieldsField(); // to get translation - $container['itemtype'] = PluginFieldsContainer::getType(); + $container['itemtype'] = PluginFieldsContainer::class; $yaml_conf['container'][$container['id'] . '-' . $itemtype] = [ 'id' => (int) $container['id'], 'name' => PluginFieldsLabelTranslation::getLabelFor($container), @@ -356,7 +356,7 @@ function plugin_fields_exportBlockAsYaml($container_id = null) $tmp_field['id'] = (int) $field['id']; //to get translation - $field['itemtype'] = PluginFieldsField::getType(); + $field['itemtype'] = PluginFieldsField::class; $tmp_field['label'] = PluginFieldsLabelTranslation::getLabelFor($field); $tmp_field['xml_node'] = strtoupper((string) $field['name']); $tmp_field['type'] = $field['type']; diff --git a/templates/dropdown.class.tpl b/templates/dropdown.class.tpl index 7ddd9b07..1241fe5c 100644 --- a/templates/dropdown.class.tpl +++ b/templates/dropdown.class.tpl @@ -6,7 +6,7 @@ class %%CLASSNAME%% extends CommonTreeDropdown { static function getTypeName($nb=0) { $item = [ - "itemtype" => PluginFieldsField::getType(), + "itemtype" => PluginFieldsField::class, "id" => %%FIELDID%%, "label" => %%LABEL%% ]; diff --git a/tests/Units/FieldDestinationFieldTest.php b/tests/Units/FieldDestinationFieldTest.php index 50d48a46..246bfa9b 100644 --- a/tests/Units/FieldDestinationFieldTest.php +++ b/tests/Units/FieldDestinationFieldTest.php @@ -272,7 +272,7 @@ private function sendFormAndAssertITILObjectAdditionalFields( $destinations = $form->getDestinations(); foreach ($destinations as $destination) { $this->updateItem( - $destination::getType(), + $destination::class, $destination->getId(), ['config' => [PluginFieldsDestinationField::getKey() => $config->jsonSerialize()]], ["config"], From 741e37418e1b814830346e61448b97435c3c5ba2 Mon Sep 17 00:00:00 2001 From: Julien Durand Date: Wed, 2 Sep 2026 11:25:11 +0200 Subject: [PATCH 6/8] chore: rector fix --- ajax/field_specific_fields.php | 4 +-- hook.php | 17 +++++---- inc/abstractcontainerinstance.class.php | 35 ++++++------------- inc/autoload.php | 3 +- inc/container.class.php | 10 ++---- inc/containerdisplaycondition.class.php | 5 ++- inc/questiontype.class.php | 16 +++------ setup.php | 5 +-- src/Controller/QuestionTypeAjaxController.php | 2 +- 9 files changed, 31 insertions(+), 66 deletions(-) diff --git a/ajax/field_specific_fields.php b/ajax/field_specific_fields.php index aa9addb3..4e33bbb9 100644 --- a/ajax/field_specific_fields.php +++ b/ajax/field_specific_fields.php @@ -129,9 +129,7 @@ $itemtype = $type == 'dropdown' ? PluginFieldsDropdown::getClassname($field->fields['name']) : $dropdown_matches['class']; - if ($field->fields['default_value'] === null) { - $field->fields['default_value'] = ''; - } + $field->fields['default_value'] ??= ''; $default_value = $multiple ? json_decode((string) $field->fields['default_value']) : $field->fields['default_value']; Dropdown::show( diff --git a/hook.php b/hook.php index ba106b6b..55b7da3e 100644 --- a/hook.php +++ b/hook.php @@ -381,15 +381,14 @@ function plugin_fields_addWhere($link, $nott, $itemtype, $ID, $val, $searchtype) } return $link . ' CAST(' . $DB->quoteName($table . '_' . $field) . '.' . $DB->quoteName($field) . ' AS DECIMAL(10,7))' . $operator . ' ' . $DB->quoteValue($val); - } else { - // if 'number' field with <= or >= or < or > search - // update WHERE clause with the correct operator - $val = html_entity_decode((string) $val); - if (preg_match('/(<=|>=|>|<)/', $val, $matches)) { - $operator = $matches[1]; - $val = trim(str_replace($operator, '', $val)); - return $link . $DB->quoteName($table . '_' . $field) . '.' . $DB->quoteName($field) . $operator . ' ' . $DB->quoteValue($val); - } + } + // if 'number' field with <= or >= or < or > search + // update WHERE clause with the correct operator + $val = html_entity_decode((string) $val); + if (preg_match('/(<=|>=|>|<)/', $val, $matches)) { + $operator = $matches[1]; + $val = trim(str_replace($operator, '', $val)); + return $link . $DB->quoteName($table . '_' . $field) . '.' . $DB->quoteName($field) . $operator . ' ' . $DB->quoteValue($val); } } diff --git a/inc/abstractcontainerinstance.class.php b/inc/abstractcontainerinstance.class.php index 871bb916..8396c72e 100644 --- a/inc/abstractcontainerinstance.class.php +++ b/inc/abstractcontainerinstance.class.php @@ -85,27 +85,21 @@ public static function getSpecificValueToSelect($field, $name = '', $values = '' $field_specs = new PluginFieldsField(); if ($field_id !== null && $field_specs->getFromDB($field_id)) { $dropdown_matches = []; - if ( - preg_match('/^dropdown-(?.+)$/i', (string) $field_specs->fields['type'], $dropdown_matches) === 1 - && $field_specs->fields['multiple'] - ) { + if (preg_match('/^dropdown-(?.+)$/i', (string) $field_specs->fields['type'], $dropdown_matches) === 1 + && $field_specs->fields['multiple']) { $itemtype = $dropdown_matches['class']; if (!is_a($itemtype, CommonDBTM::class, true)) { return ''; // Itemtype not exists (maybe a deactivated plugin) } - $display_with = []; if ($itemtype === User::class) { $display_with = ['realname', 'firstname']; } - return Dropdown::show($itemtype, ['displaywith' => $display_with, 'name' => $name, 'display' => false]); - } elseif ( - $field_specs->fields['type'] === 'dropdown' - && $field_specs->fields['multiple'] - ) { + } + if ($field_specs->fields['type'] === 'dropdown' + && $field_specs->fields['multiple']) { $itemtype = PluginFieldsDropdown::getClassname($field_specs->fields['name']); - return Dropdown::show($itemtype, ['name' => $name, 'display' => false]); } } @@ -124,24 +118,19 @@ public static function getSpecificValueToDisplay($field, $values, array $options $field_specs = new PluginFieldsField(); if ($field_id !== null && $field_specs->getFromDB($field_id)) { $dropdown_matches = []; - if ( - preg_match('/^dropdown-(?.+)$/i', (string) $field_specs->fields['type'], $dropdown_matches) === 1 - && $field_specs->fields['multiple'] - ) { + if (preg_match('/^dropdown-(?.+)$/i', (string) $field_specs->fields['type'], $dropdown_matches) === 1 + && $field_specs->fields['multiple']) { $itemtype = $dropdown_matches['class']; if (!is_a($itemtype, CommonDBTM::class, true)) { return ''; // Itemtype not exists (maybe a deactivated plugin) } - if (empty($values[$field])) { return ''; // Value not defined } - $values = json_decode((string) $values[$field]); if (!is_array($values)) { return ''; // Invalid value } - $names = []; foreach ($values as $id) { $item = new $itemtype(); @@ -149,12 +138,10 @@ public static function getSpecificValueToDisplay($field, $values, array $options $names[] = $item->getName(); } } - return implode($options['separator'] ?? '
', $names); - } elseif ( - $field_specs->fields['type'] === 'dropdown' - && $field_specs->fields['multiple'] - ) { + } + if ($field_specs->fields['type'] === 'dropdown' + && $field_specs->fields['multiple']) { $itemtype = PluginFieldsDropdown::getClassname($field_specs->fields['name']); if (empty($values[$field])) { if (!empty($field_specs->fields["default_value"])) { @@ -163,12 +150,10 @@ public static function getSpecificValueToDisplay($field, $values, array $options return ''; // Value not defined } } - $values = json_decode((string) $values[$field]); if (!is_array($values)) { return ''; // Invalid value } - return implode( $options['separator'] ?? '
', Dropdown::getDropdownArrayNames($itemtype::getTable(), $values), diff --git a/inc/autoload.php b/inc/autoload.php index 440b2715..fec965cd 100644 --- a/inc/autoload.php +++ b/inc/autoload.php @@ -61,9 +61,8 @@ public function processClassname($classname) if (count($matches) < 3) { return false; - } else { - return $matches; } + return $matches; } public function autoload($classname) diff --git a/inc/container.class.php b/inc/container.class.php index c8bd0158..6e28f457 100644 --- a/inc/container.class.php +++ b/inc/container.class.php @@ -1141,9 +1141,7 @@ public static function showFormSubtype($params, $display = false) } } - if (!isset($params['subtype'])) { - $params['subtype'] = null; - } + $params['subtype'] ??= null; $out .= Dropdown::showFromArray( 'subtype', @@ -1160,9 +1158,8 @@ public static function showFormSubtype($params, $display = false) if ($display === false) { return $out; - } else { - echo $out; } + echo $out; return null; } @@ -2110,9 +2107,8 @@ private static function populateData($c_id, CommonDBTM $item) if ($has_fields) { return $data; - } else { - return false; } + return false; } public static function getAddSearchOptions($itemtype, $containers_id = false) diff --git a/inc/containerdisplaycondition.class.php b/inc/containerdisplaycondition.class.php index 50995344..37485ccb 100644 --- a/inc/containerdisplaycondition.class.php +++ b/inc/containerdisplaycondition.class.php @@ -430,10 +430,9 @@ public function computeDisplayContainer($item, $container_id) } return $display; - } else { - //no condition found -> display container - return true; } + //no condition found -> display container + return true; } public function checkCondition($item) diff --git a/inc/questiontype.class.php b/inc/questiontype.class.php index a38daf1b..0d83b1ce 100644 --- a/inc/questiontype.class.php +++ b/inc/questiontype.class.php @@ -114,17 +114,13 @@ public function renderAdministrationTemplate(?Question $question): string { // Get the block_id from the question's extra data or use the first available block $block_id = $this->getDefaultValueBlockId($question); - if ($block_id === null) { - $block_id = current(array_keys($this->getAvailableBlocks())); - } + $block_id ??= array_key_first($this->getAvailableBlocks()); $available_fields = self::getFieldsFromBlock($block_id); // Retrieve current field $current_field_id = $this->getDefaultValueFieldId($question); - if ($current_field_id === null) { - $current_field_id = current(array_keys($available_fields)); - } + $current_field_id ??= array_key_first($available_fields); $current_field = PluginFieldsField::getById($current_field_id); @@ -150,17 +146,13 @@ public function renderEndUserTemplate(Question $question): string { // Get the block_id from the question's extra data or use the first available block $block_id = $this->getDefaultValueBlockId($question); - if ($block_id === null) { - $block_id = current(array_keys($this->getAvailableBlocks())); - } + $block_id ??= array_key_first($this->getAvailableBlocks()); $available_fields = self::getFieldsFromBlock($block_id); // Retrieve current field $current_field_id = $this->getDefaultValueFieldId($question); - if ($current_field_id === null) { - $current_field_id = current(array_keys($available_fields)); - } + $current_field_id ??= array_key_first($available_fields); $current_field = PluginFieldsField::getById($current_field_id); diff --git a/setup.php b/setup.php index f9a2e1cb..1327f636 100644 --- a/setup.php +++ b/setup.php @@ -136,10 +136,7 @@ function plugin_init_fields() plugin_fields_register_plugin_types(); if (Session::getLoginUserID() || isCommandLine()) { - // Init hook about itemtype(s) for plugin fields - if (!isset($PLUGIN_HOOKS['plugin_fields'])) { - $PLUGIN_HOOKS['plugin_fields'] = []; - } + $PLUGIN_HOOKS['plugin_fields'] ??= []; // When a Category is changed during ticket creation if ( diff --git a/src/Controller/QuestionTypeAjaxController.php b/src/Controller/QuestionTypeAjaxController.php index 03d7c6d2..f368c7a4 100644 --- a/src/Controller/QuestionTypeAjaxController.php +++ b/src/Controller/QuestionTypeAjaxController.php @@ -65,7 +65,7 @@ public function __invoke(Request $request): Response if ($field_id && is_numeric($field_id) && isset($available_fields[$field_id])) { $current_field_id = (int) $field_id; } else { - $current_field_id = $available_fields === [] ? null : (int) current(array_keys($available_fields)); + $current_field_id = $available_fields === [] ? null : (int) array_key_first($available_fields); } if ($current_field_id === null) { From 4a216f154fe16f123d5aa9cb1a51916df75cf17c Mon Sep 17 00:00:00 2001 From: Julien Durand Date: Wed, 2 Sep 2026 11:31:30 +0200 Subject: [PATCH 7/8] chore: rector --- hook.php | 1 + inc/abstractcontainerinstance.class.php | 10 ++++++++++ inc/autoload.php | 1 + inc/container.class.php | 2 ++ inc/containerdisplaycondition.class.php | 1 + 5 files changed, 15 insertions(+) diff --git a/hook.php b/hook.php index 55b7da3e..f601ff2b 100644 --- a/hook.php +++ b/hook.php @@ -382,6 +382,7 @@ function plugin_fields_addWhere($link, $nott, $itemtype, $ID, $val, $searchtype) return $link . ' CAST(' . $DB->quoteName($table . '_' . $field) . '.' . $DB->quoteName($field) . ' AS DECIMAL(10,7))' . $operator . ' ' . $DB->quoteValue($val); } + // if 'number' field with <= or >= or < or > search // update WHERE clause with the correct operator $val = html_entity_decode((string) $val); diff --git a/inc/abstractcontainerinstance.class.php b/inc/abstractcontainerinstance.class.php index 8396c72e..bb62d500 100644 --- a/inc/abstractcontainerinstance.class.php +++ b/inc/abstractcontainerinstance.class.php @@ -91,12 +91,15 @@ public static function getSpecificValueToSelect($field, $name = '', $values = '' if (!is_a($itemtype, CommonDBTM::class, true)) { return ''; // Itemtype not exists (maybe a deactivated plugin) } + $display_with = []; if ($itemtype === User::class) { $display_with = ['realname', 'firstname']; } + return Dropdown::show($itemtype, ['displaywith' => $display_with, 'name' => $name, 'display' => false]); } + if ($field_specs->fields['type'] === 'dropdown' && $field_specs->fields['multiple']) { $itemtype = PluginFieldsDropdown::getClassname($field_specs->fields['name']); @@ -124,13 +127,16 @@ public static function getSpecificValueToDisplay($field, $values, array $options if (!is_a($itemtype, CommonDBTM::class, true)) { return ''; // Itemtype not exists (maybe a deactivated plugin) } + if (empty($values[$field])) { return ''; // Value not defined } + $values = json_decode((string) $values[$field]); if (!is_array($values)) { return ''; // Invalid value } + $names = []; foreach ($values as $id) { $item = new $itemtype(); @@ -138,8 +144,10 @@ public static function getSpecificValueToDisplay($field, $values, array $options $names[] = $item->getName(); } } + return implode($options['separator'] ?? '
', $names); } + if ($field_specs->fields['type'] === 'dropdown' && $field_specs->fields['multiple']) { $itemtype = PluginFieldsDropdown::getClassname($field_specs->fields['name']); @@ -150,10 +158,12 @@ public static function getSpecificValueToDisplay($field, $values, array $options return ''; // Value not defined } } + $values = json_decode((string) $values[$field]); if (!is_array($values)) { return ''; // Invalid value } + return implode( $options['separator'] ?? '
', Dropdown::getDropdownArrayNames($itemtype::getTable(), $values), diff --git a/inc/autoload.php b/inc/autoload.php index fec965cd..f0f01bc6 100644 --- a/inc/autoload.php +++ b/inc/autoload.php @@ -62,6 +62,7 @@ public function processClassname($classname) if (count($matches) < 3) { return false; } + return $matches; } diff --git a/inc/container.class.php b/inc/container.class.php index 6e28f457..9b520b83 100644 --- a/inc/container.class.php +++ b/inc/container.class.php @@ -1159,6 +1159,7 @@ public static function showFormSubtype($params, $display = false) if ($display === false) { return $out; } + echo $out; return null; @@ -2108,6 +2109,7 @@ private static function populateData($c_id, CommonDBTM $item) if ($has_fields) { return $data; } + return false; } diff --git a/inc/containerdisplaycondition.class.php b/inc/containerdisplaycondition.class.php index 37485ccb..7627c1e8 100644 --- a/inc/containerdisplaycondition.class.php +++ b/inc/containerdisplaycondition.class.php @@ -431,6 +431,7 @@ public function computeDisplayContainer($item, $container_id) return $display; } + //no condition found -> display container return true; } From 14815e0a2f87602d4087c2c501f9d5efef304e3f Mon Sep 17 00:00:00 2001 From: Julien Durand Date: Wed, 2 Sep 2026 16:01:35 +0200 Subject: [PATCH 8/8] fix: call to getSubTypes() passing strings instead of CommonDBTM --- inc/container.class.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/inc/container.class.php b/inc/container.class.php index 9b520b83..8ce7f11a 100644 --- a/inc/container.class.php +++ b/inc/container.class.php @@ -1178,10 +1178,15 @@ public static function getItemtypes($is_domtab) if ($is_domtab) { // Filter items that do not have tab handled + $dbu = new DbUtils(); foreach ($all_itemtypes as $section => $itemtypes) { $all_itemtypes[$section] = array_filter( $itemtypes, - fn($itemtype) => count(self::getSubtypes($itemtype)) > 0, + function ($itemtype) use ($dbu) { + $item = $dbu->getItemForItemtype($itemtype); + $item->getEmpty(); + return count(self::getSubtypes($item)) > 0; + }, ARRAY_FILTER_USE_KEY, ); }