Seite 1 von 1

[BUG 4.9.13-Dev] PIM: Uncaught Error: [] operator not supported for strings

Verfasst: Mo 24. Jul 2017, 17:28
von Oldperl
Servus,

in der Dev unter PHP 7.1 schmeißt der PIM nach der Installation von Plugins mit Menüeinträgen folgende Fehlermeldung:

Code: Alles auswählen

[24-Jul-2017 16:13:57 UTC] PHP Fatal error:  Uncaught Error: [] operator not supported for strings in /var/www/washop/dev/contenido/plugins/pim/classes/view/class.pimpluginview.navsub.php:345
Stack trace:
#0 /var/www/washop/dev/contenido/plugins/pim/classes/view/class.pimpluginview.navsub.php(165): PimPluginViewNavSub->_getPluginNavigation('Extras')
#1 /var/www/washop/dev/contenido/plugins/pim/includes/include.right_bottom.php(113): PimPluginViewNavSub->getNavSubentries()
#2 /var/www/washop/dev/contenido/main.php(202): include_once('/var/www/washop...')
#3 {main}
  thrown in /var/www/washop/dev/contenido/plugins/pim/classes/view/class.pimpluginview.navsub.php on line 345
Grund ist eine falsche Variablen-Init in der Klasse plugins/pim/classes/view/class.pimpluginview.navsub.php. Dort wird nämlich die Variable $founded in Zeile 308 als String initiiert, dann aber versucht in Zeile 345 als Array mit [] zu befüllen, was dann den entsprechenden Fehler erzeugt.

Code: Alles auswählen

if (cFileHandler::exists($pluginLanguageFileLang) && $contenidoNav != "") {

            // Initializing founded variable
            $founded = "";

            for ($i = 0; $i < $this->_NavCount; $i++) {

                // Get only navigation value (pattern)
                preg_match(self::PATTERN, self::$XmlNavSub->nav[$i], $matches);

                // Define query
                $query = '//' . $matches[1];

                // Load plugin navigation xml file
                $this->_DOMDocument->load($pluginLanguageFileLang);

                // Create new DOMXPath
                $xpath = new DOMXPath($this->_DOMDocument);

                // Run defined query
                $entriesLang = $xpath->query($query);

                // Prevent misarrangement
                if ($entriesLang->length == 0) {
                    return false;
                }

                foreach ($entriesLang as $entry) {

                    // If we have more then one navigation entry, define
                    // menuname for other entries
                    if (self::$XmlNavSub->nav[$i]->attributes()->level == 0 && $this->_NavCount > 1) {
                        $menuName = $entry->nodeValue;
                        continue;
                    } elseif (self::$XmlNavSub->nav[$i]->attributes()->level == 1 && $menuName == '') {
                    	// If we have an plugin with level one and no defined menuName, use subnavigation name
                    	// as menuName
						$menuName = $this->_SubNav;
                    }

                    $founded[] = i18n('You find this plugin at navigation section', 'pim') . " &quot;{$contenidoNav}&quot; " . i18n('as', 'pim') . (($menuName != "") ? ' &quot;' . $menuName . '&quot; ->' : '') . " &quot;{$entry->nodeValue}&quot;<br />";
                }
            }

            // Prevent double entries
            $founded = array_unique($founded);

            // Initializing output variable
            $output = "";

            // Convert founded array to an string
            foreach ($founded as $entry) {
                $output .= $entry;
            }

            return $output;
        } else {
            return false;
        }
Gruß aus Franken

Ortwin

Re: [BUG 4.9.13-Dev] PIM: Uncaught Error: [] operator not supported for strings

Verfasst: Do 27. Jul 2017, 19:33
von frederic.schneider_4fb
Danke Dir! Schaue ich mir bei nächster Gelegenheit an.

Re: [BUG 4.9.13-Dev] PIM: Uncaught Error: [] operator not supported for strings

Verfasst: Do 3. Aug 2017, 08:19
von frederic.schneider_4fb
Lieber Ortwin,

der Fehler ist inzwischen behoben.