Skip to content

Undefined array key "name" in containerdisplaycondition.class.php #900

@jsdarges

Description

@jsdarges

Code of Conduct

  • I agree to follow this project's Code of Conduct

Is there an existing issue for this?

  • I have searched the existing issues

GLPI Version

10.0.15

Plugin version

1.21.17

Bug description

Hello,

This is impossible to display Hidden condition in the setup of the additional field.

This error occures after the plugin update from 1.21.9 to 1.21.17

Relevant log output

[2025-01-13 21:26:54] glpiphplog.WARNING:   *** PHP Warning (2): Undefined array key "name" in C:\inetpub\wwwroot\marketplace\fields\inc\containerdisplaycondition.class.php at line 317
  Backtrace :
  :                                                  PluginFieldsContainerDisplayCondition::getRawValue()
  src\Application\View\Extension\PhpExtension.php:91 call_user_func_array()
  ...tes\86\86a9b7ee8550628a0e58a90c54895503.php:137 Glpi\Application\View\Extension\PhpExtension->call()
  vendor\twig\twig\src\Template.php:394              __TwigTemplate_4fe1b15a78defa43ac28da26b63f1d32->doDisplay()
  vendor\twig\twig\src\Template.php:367              Twig\Template->displayWithErrorHandling()
  vendor\twig\twig\src\TemplateWrapper.php:45        Twig\Template->display()
  src\Application\View\TemplateRenderer.php:184      Twig\TemplateWrapper->display()
  ...lds\inc\containerdisplaycondition.class.php:540 Glpi\Application\View\TemplateRenderer->display()
  ...lds\inc\containerdisplaycondition.class.php:168 PluginFieldsContainerDisplayCondition::showForTabContainer()
  src\CommonGLPI.php:694                             PluginFieldsContainerDisplayCondition::displayTabContentForItem()
  ajax\common.tabs.php:120                           CommonGLPI::displayStandardTab()
  public\index.php:82                                require()

Page URL

No response

Steps To reproduce

  1. Creation a custom field link to a ticket a create 2 or more hidden condition block based on an itil category.
  2. Remove on of the itil category linked to the hidden condition block.
  3. Go back to the setup of hidden condition block : impossible do display and the error message in the log is displayed

Your GLPI setup information

Informations sur le système, l'installation et la configuration
GLPI 10.0.15 ( => C:\inetpub\wwwroot)
Installation mode: GIT
Current language:fr_FR

Server
 
Operating system: Windows NT SRVMANTISDEV 10.0 build 17763 (Windows Server 2019) AMD64
PHP 8.3.8 cgi-fcgi (Core, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, bcmath, bz2, calendar, cgi-fcgi, ctype, curl,
date, dom, exif, fileinfo, filter, gd, hash, iconv, intl, json, ldap, libxml, mbstring, mysqli, mysqlnd, openssl, pcre,
pdo_mysql, random, readline, session, sodium, standard, tokenizer, xml, xmlreader, xmlwriter, zip, zlib)
Setup: max_execution_time="600" memory_limit="512M" post_max_size="10M" safe_mode="" session.save_handler="files"
upload_max_filesize="10M" disable_functions=""
Software: Microsoft-IIS/10.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Server Software: MySQL Community Server - GPL
Server Version: 8.0.28
Server SQL Mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
Parameters: cigonline@localhost/glpi_adecco
Host info: localhost via TCP/IP

PHP version (8.3.8) is supported.
Sessions configuration is OK.
Allocated memory is sufficient.
mysqli extension is installed.
Following extensions are installed: dom, fileinfo, filter, libxml, json, simplexml, xmlreader, xmlwriter.
curl extension is installed.
gd extension is installed.
intl extension is installed.
zlib extension is installed.
The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.
Database engine version (8.0.28) is supported.
No files from previous GLPI version detected.
The log file has been created successfully.
Write access to C:\inetpub\wwwroot/files/_cache has been validated.
Write access to C:\inetpub\wwwroot/files/_cron has been validated.
Write access to C:\inetpub\wwwroot/files has been validated.
Write access to C:\inetpub\wwwroot/files/_dumps has been validated.
Write access to C:\inetpub\wwwroot/files/_graphs has been validated.
Write access to C:\inetpub\wwwroot/files/_lock has been validated.
Write access to C:\inetpub\wwwroot/files/_pictures has been validated.
Write access to C:\inetpub\wwwroot/files/_plugins has been validated.
Write access to C:\inetpub\wwwroot/files/_rss has been validated.
Write access to C:\inetpub\wwwroot/files/_sessions has been validated.
Write access to C:\inetpub\wwwroot/files/_tmp has been validated.
Write access to C:\inetpub\wwwroot/files/_uploads has been validated.

Web server root directory configuration seems safe.
Sessions configuration is secured.
OS and PHP are relying on 64 bits integers.
exif extension is installed.
ldap extension is installed.
openssl extension is installed.
Following extensions are installed: bz2, Phar, zip.
Zend OPcache extension is installed.
Following extensions are installed: ctype, iconv, mbstring, sodium.
Write access to C:\inetpub\wwwroot/marketplace has been validated.
Timezones seems loaded in database.

GLPI constants
 
GLPI_ROOT: "C:\inetpub\wwwroot"
GLPI_CONFIG_DIR: "C:\inetpub\wwwroot/config"
GLPI_VAR_DIR: "C:\inetpub\wwwroot/files"
GLPI_MARKETPLACE_DIR: "C:\inetpub\wwwroot/marketplace"
GLPI_USE_CSRF_CHECK: "1"
GLPI_CSRF_EXPIRES: "7200"
GLPI_CSRF_MAX_TOKENS: "100"
GLPI_USE_IDOR_CHECK: "1"
GLPI_IDOR_EXPIRES: "7200"
GLPI_ALLOW_IFRAME_IN_RICH_TEXT: false
GLPI_SERVERSIDE_URL_ALLOWLIST: ["/^(https?|feed):\/\/[^@:]+(\/.*)?$/"]
GLPI_TELEMETRY_URI: "https://telemetry.glpi-project.org"
GLPI_INSTALL_MODE: "GIT"
GLPI_NETWORK_MAIL: "glpi@teclib.com"
GLPI_NETWORK_SERVICES: "https://services.glpi-network.com"
GLPI_MARKETPLACE_ALLOW_OVERRIDE: true
GLPI_MARKETPLACE_MANUAL_DOWNLOADS: true
GLPI_USER_AGENT_EXTRA_COMMENTS: ""
GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE: "1"
GLPI_AJAX_DASHBOARD: "1"
GLPI_CALDAV_IMPORT_STATE: 0
GLPI_DEMO_MODE: "0"
GLPI_CENTRAL_WARNINGS: "1"
GLPI_TEXT_MAXSIZE: "4000"
GLPI_DOC_DIR: "C:\inetpub\wwwroot/files"
GLPI_CACHE_DIR: "C:\inetpub\wwwroot/files/_cache"
GLPI_CRON_DIR: "C:\inetpub\wwwroot/files/_cron"
GLPI_DUMP_DIR: "C:\inetpub\wwwroot/files/_dumps"
GLPI_GRAPH_DIR: "C:\inetpub\wwwroot/files/_graphs"
GLPI_LOCAL_I18N_DIR: "C:\inetpub\wwwroot/files/_locales"
GLPI_LOCK_DIR: "C:\inetpub\wwwroot/files/_lock"
GLPI_LOG_DIR: "C:\inetpub\wwwroot/files/_log"
GLPI_PICTURE_DIR: "C:\inetpub\wwwroot/files/_pictures"
GLPI_PLUGIN_DOC_DIR: "C:\inetpub\wwwroot/files/_plugins"
GLPI_RSS_DIR: "C:\inetpub\wwwroot/files/_rss"
GLPI_SESSION_DIR: "C:\inetpub\wwwroot/files/_sessions"
GLPI_TMP_DIR: "C:\inetpub\wwwroot/files/_tmp"
GLPI_UPLOAD_DIR: "C:\inetpub\wwwroot/files/_uploads"
GLPI_INVENTORY_DIR: "C:\inetpub\wwwroot/files/_inventories"
GLPI_NETWORK_REGISTRATION_API_URL: "https://services.glpi-network.com/api/registration/"
GLPI_MARKETPLACE_PLUGINS_API_URI: "https://services.glpi-network.com/api/marketplace/"
GLPI_I18N_DIR: "C:\inetpub\wwwroot/locales"
GLPI_VERSION: "10.0.15"
GLPI_SCHEMA_VERSION: "10.0.15"
GLPI_MARKETPLACE_PRERELEASES: false
GLPI_MIN_PHP: "7.4.0"
GLPI_MAX_PHP: "8.4.0"
GLPI_YEAR: "2024"

Libraries
 
htmlawed/htmlawed version 1.2.14 in (C:\inetpub\wwwroot\vendor\htmlawed\htmlawed)
phpmailer/phpmailer version 6.8.0 in (C:\inetpub\wwwroot\vendor\phpmailer\phpmailer\src)
simplepie/simplepie version 1.5.8 in (C:\inetpub\wwwroot\vendor\simplepie\simplepie\library)
tecnickcom/tcpdf version 6.7.5 in (C:\inetpub\wwwroot\vendor\tecnickcom\tcpdf)
michelf/php-markdown in (C:\inetpub\wwwroot\vendor\michelf\php-markdown\Michelf)
true/punycode in (C:\inetpub\wwwroot\vendor\true\punycode\src)
iamcal/lib_autolink in (C:\inetpub\wwwroot\vendor\iamcal\lib_autolink)
sabre/dav in (C:\inetpub\wwwroot\vendor\sabre\dav\lib\DAV)
sabre/http in (C:\inetpub\wwwroot\vendor\sabre\http\lib)
sabre/uri in (C:\inetpub\wwwroot\vendor\sabre\uri\lib)
sabre/vobject in (C:\inetpub\wwwroot\vendor\sabre\vobject\lib)
laminas/laminas-i18n in (C:\inetpub\wwwroot\vendor\laminas\laminas-i18n\src)
laminas/laminas-servicemanager in (C:\inetpub\wwwroot\vendor\laminas\laminas-servicemanager\src)
monolog/monolog in (C:\inetpub\wwwroot\vendor\monolog\monolog\src\Monolog)
sebastian/diff in (C:\inetpub\wwwroot\vendor\sebastian\diff\src)
donatj/phpuseragentparser in (C:\inetpub\wwwroot\vendor\donatj\phpuseragentparser\src\UserAgent)
elvanto/litemoji in (C:\inetpub\wwwroot\vendor\elvanto\litemoji\src)
symfony/console in (C:\inetpub\wwwroot\vendor\symfony\console)
scssphp/scssphp in (C:\inetpub\wwwroot\vendor\scssphp\scssphp\src)
laminas/laminas-mail in (C:\inetpub\wwwroot\vendor\laminas\laminas-mail\src\Protocol)
laminas/laminas-mime in (C:\inetpub\wwwroot\vendor\laminas\laminas-mime\src)
rlanvin/php-rrule in (C:\inetpub\wwwroot\vendor\rlanvin\php-rrule\src)
ramsey/uuid in (C:\inetpub\wwwroot\vendor\ramsey\uuid\src)
psr/log in (C:\inetpub\wwwroot\vendor\psr\log\Psr\Log)
psr/simple-cache in (C:\inetpub\wwwroot\vendor\psr\simple-cache\src)
psr/cache in (C:\inetpub\wwwroot\vendor\psr\cache\src)
league/csv in (C:\inetpub\wwwroot\vendor\league\csv\src)
mexitek/phpcolors in (C:\inetpub\wwwroot\vendor\mexitek\phpcolors\src\Mexitek\PHPColors)
guzzlehttp/guzzle in (C:\inetpub\wwwroot\vendor\guzzlehttp\guzzle\src)
guzzlehttp/psr7 in (C:\inetpub\wwwroot\vendor\guzzlehttp\psr7\src)
glpi-project/inventory_format in (C:\inetpub\wwwroot\vendor\glpi-project\inventory_format\lib\php)
wapmorgan/unified-archive in (C:\inetpub\wwwroot\vendor\wapmorgan\unified-archive\src)
paragonie/sodium_compat in (C:\inetpub\wwwroot\vendor\paragonie\sodium_compat\src)
symfony/cache in (C:\inetpub\wwwroot\vendor\symfony\cache)
html2text/html2text in (C:\inetpub\wwwroot\vendor\html2text\html2text\src)
symfony/css-selector in (C:\inetpub\wwwroot\vendor\symfony\css-selector)
symfony/dom-crawler in (C:\inetpub\wwwroot\vendor\symfony\dom-crawler)
twig/twig in (C:\inetpub\wwwroot\vendor\twig\twig\src)
twig/string-extra in (C:\inetpub\wwwroot\vendor\twig\string-extra)
symfony/polyfill-ctype not found
symfony/polyfill-iconv not found
symfony/polyfill-mbstring not found
symfony/polyfill-php80 not found
symfony/polyfill-php81 not found
symfony/polyfill-php82 in (C:\inetpub\wwwroot\vendor\symfony\polyfill-php82)
league/oauth2-client in (C:\inetpub\wwwroot\vendor\league\oauth2-client\src\Provider)
league/oauth2-google in (C:\inetpub\wwwroot\vendor\league\oauth2-google\src\Provider)
thenetworg/oauth2-azure in (C:\inetpub\wwwroot\vendor\thenetworg\oauth2-azure\src\Provider)

SQL replicas
 
Not active

Notifications
 
Way of sending emails: SMTP+TLS (glpi@emea.adecco.net@smtp-mail.outlook.com)

Plugins list
 
fields Name: Champs supplémentaires Version: 1.21.17 State: Enabled
Install Method: Marketplace
datainjection Name: Data Injection Version: 2.14.1 State: Enabled
Install Method: Marketplace
oauthimap Name: Oauth IMAP Version: 1.4.3 State: Enabled
Install Method: Marketplace

Anything else?

I have found something to help: when the hidden condition bloc is linked to a ticket and a category and the category is removed, the condition is not removed and so the id behind the value of the table glpi_plugin_fields_containerdisplayconditions doesn't match with any ids in glpi_itilcategories table => field "name" doesn't exists.
For me when a itil category is linked to a hidden condition bloc it must remove also this hidden condition

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions