Ergebnis 1 bis 15 von 15

Thema: Löschen von Content-Elementen nicht mehr möglich nach Umzug auf php 8.1.16 / Haste ??

  1. #1
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    681

    Standard Löschen von Content-Elementen nicht mehr möglich nach Umzug auf php 8.1.16 / Haste ??

    Hallo zusammen,

    ich habe ein contao umgezogen auf einen neuen Server mit php8.1.16 und bekomme jetzt bei Versuch Content-Elemente zu löschen einen Fehler

    Code:
    Codefog\HasteBundle\DcaRelationsManager::getRelation(): Argument #2 ($fieldName) must be of type string, int given, called in /var/www/clients/client2/web506/web/v1/vendor/codefog/contao-haste/src/DcaRelationsManager.php on line 72
    in var/logs steht
    Code:
    [2023-04-06T16:04:47.956408+02:00] request.CRITICAL: Uncaught PHP Exception TypeError: "Codefog\HasteBundle\DcaRelationsManager::getRelation(): Argument #2 ($fieldName) must be of type string, int given, called in /var/www/clients/client2/web506/web/v1/vendor/codefog/contao-haste/src/DcaRelationsManager.php on line 72" at /var/www/clients/client2/web506/web/v1/vendor/codefog/contao-haste/src/DcaRelationsManager.php line 742 {"exception":"[object] (TypeError(code: 0): Codefog\\HasteBundle\\DcaRelationsManager::getRelation(): Argument #2 ($fieldName) must be of type string, int given, called in /var/www/clients/client2/web506/web/v1/vendor/codefog/contao-haste/src/DcaRelationsManager.php on line 72 at /var/www/clients/client2/web506/web/v1/vendor/codefog/contao-haste/src/DcaRelationsManager.php:742)"} []
    Ich habe die gleichen Bedingungen wie in diesem Post:
    https://community.contao.org/de/show...-PHP-8-1-Haste

    Meine composer.json sieht so aus

    Code:
    {
        "type": "project",
        "require": {
            "alnv/catalog-manager": "^1.32",
            "alnv/catalog-manager-export": "^1.2",
            "alnv/catalog-manager-importer": "^1.3",
            "bugbuster/contao-dlstats-bundle": "^1.3",
            "codefog/contao-news_categories": "^3.4",
            "codefog/tags-bundle": "^3.3",
            "contao/calendar-bundle": "4.13.*",
            "contao/conflicts": "*@dev",
            "contao/manager-bundle": "4.13.*",
            "contao/news-bundle": "4.13.*",
            "contao/newsletter-bundle": "4.13.*",
            "derhaeuptling/contao-mega-menu": "^1.0",
            "dma/dma_simple_grid": "^1.1",
            "erdmannfreunde/theme-toolbox": "^2.2",
            "fritzmg/contao-file-access": "^2.3",
            "fritzmg/contao-news-sorting": "^3.0",
            "fritzmg/contao-sharebuttons": "^2.2",
            "heimrichhannot/contao-filename-sanitizer-bundle": "^2.4",
            "hofff/contao-recursive-download-folder": "^3.2",
            "madeyourday/contao-rocksolid-custom-elements": "^2.3",
            "netzmacht/contao-font-awesome-inserttag": "^2.2",
            "sineos/filemanager-bundle": "^1.0",
            "terminal42/contao-root-protection": "^1.0",
            "terminal42/notification_center": "^1.6"
        },
        "extra": {
            "contao-component-dir": "assets"
        },
        "scripts": {
            "post-install-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ],
            "post-update-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ]
        }
    }
    Stacktrace nach Löschen-Fehler im Debug-Modus
    Code:
    TypeError:
    Codefog\HasteBundle\DcaRelationsManager::getRelation(): Argument #2 ($fieldName) must be of type string, int given, called in /var/www/clients/client2/web506/web/v1/vendor/codefog/contao-haste/src/DcaRelationsManager.php on line 72
    
      at vendor/codefog/contao-haste/src/DcaRelationsManager.php:742
      at Codefog\HasteBundle\DcaRelationsManager->getRelation()
         (vendor/codefog/contao-haste/src/DcaRelationsManager.php:72)
      at Codefog\HasteBundle\DcaRelationsManager->addRelationCallbacks()
         (vendor/contao/core-bundle/src/Resources/contao/library/Contao/DcaLoader.php:133)
      at Contao\DcaLoader->loadDcaFiles()
         (vendor/contao/core-bundle/src/Resources/contao/library/Contao/DcaLoader.php:75)
      at Contao\DcaLoader->load()
         (vendor/contao/core-bundle/src/Resources/contao/library/Contao/Controller.php:1448)
      at Contao\Controller::loadDataContainer()
         (vendor/codefog/contao-haste/src/DcaRelationsManager.php:744)
      at Codefog\HasteBundle\DcaRelationsManager->getRelation()
         (vendor/codefog/contao-haste/src/DcaRelationsManager.php:332)
      at Codefog\HasteBundle\DcaRelationsManager->cleanRelatedRecords()
         (vendor/contao/core-bundle/src/Resources/contao/drivers/DC_Table.php:1536)
      at Contao\DC_Table->delete()
         (vendor/contao/core-bundle/src/Resources/contao/classes/Backend.php:667)
      at Contao\Backend->getBackendModule()
         (vendor/contao/core-bundle/src/Resources/contao/controllers/BackendMain.php:168)
      at Contao\BackendMain->run()
         (vendor/contao/core-bundle/src/Controller/BackendController.php:49)
      at Contao\CoreBundle\Controller\BackendController->mainAction()
         (vendor/symfony/http-kernel/HttpKernel.php:163)
      at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
         (vendor/symfony/http-kernel/HttpKernel.php:75)
      at Symfony\Component\HttpKernel\HttpKernel->handle()
         (vendor/symfony/http-kernel/Kernel.php:202)
      at Symfony\Component\HttpKernel\Kernel->handle()
         (public/index.php:44)
      at require('/var/www/clients/client2/web506/web/v1/public/index.php')
         (public/app.php:13)
    Eben auch den catalog-manager im Einsatz. Ich habe auch dieses hier durchgelesen, möchte aber nicht downgraden auf php7.4.

    WIe könnte ich den wir vorgeschlagen
    "In theory you have a misconfigured DCA in your system. You should debug the DCA that is responsible for this."
    das DCA debuggen?

    Gibt es noch eine andere Möglichkeit, das Problem zu lösen, dass ich nichts mehr löschen kann?

    Viele Grüße,
    conter
    Geändert von conter (11.04.2023 um 13:04 Uhr)

  2. #2
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    681

    Standard

    Ich schiebe die Frage noch mal hoch.
    Fehlen von meiner Seite noch Informationen?

    Viele Grüße,
    conter

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Wie im Ticket bereits erwähnt ist das vermutlich ein Fehler im Catalog Manager. Siehe auch https://github.com/alnv/catalog-manager/issues/363
    » sponsor me via GitHub or PayPal or Revolut

  4. #4
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    681

    Standard

    Hmm, vielleicht ist es bei mir doch was anderes.

    Derkosmonaut kriegt den Fehler ja bei Catalog Manager "I get an error message when I try to delete catalog entries, for example:"

    Ich kann gar keine Elemente löschen, nicht nur catalog-manager-Elemente, sondern ganz nochmale contao core Elemente

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Ich denke du wirst das selbst bei dir debuggen müssen.
    » sponsor me via GitHub or PayPal or Revolut

  6. #6
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    681

    Standard

    Hmm als Frontendler stehe ich da etwas auf dem Schlauch ...

    Ist der Fehler "$fieldName) must be of type string, int given" in haste oder in den DCA-Anpassungen?

    Kann es sein, dass codefog/haste mit der DcaRelationsManager.php einen DCA Fehler wirft, der dann wahrscheinlich in den beiden vom Theme vorgegebenen DCA-Anpassungen contao/dca/tl_content.php oder contao/dca/tl_article.php erzeugt wird?

    Code:
    <?php
    
    // allow html in backend fields
    // $GLOBALS['TL_DCA']['tl_content']['fields']['headline']['eval']['allowHtml'] = true;
    
    // adds custom article backend fields
    $GLOBALS['TL_DCA']['tl_content']['palettes']['image'] = str_replace(
    	'overwriteMeta',
    	'overwriteMeta,imageSizeExtend',
    	$GLOBALS['TL_DCA']['tl_content']['palettes']['image']
    );
    
    $GLOBALS['TL_DCA']['tl_content']['fields']['imageSizeExtend'] = array(
    	'label'			=> array('Bildgröße erweitern','Erweitert die dargestellte Bildgröße'),
    	'inputType'	=> 'radio',
    	'default'		=> false,
    	'options'		=> array(
    		false 								 => 'ohne',
    		'o-image--extendRight' => 'nach rechts',
    		'o-image--extendLeft'	 => 'nach links',
    	),
    	'eval'			=> ['tl_class'=>'clr w50'],
    	'sql'				=> "varchar(50) NOT NULL default ''",
    );
    Code:
    <?php
    
    // unset article backend fields (will also remove them in database table)
    // Layoutbereich und Suchbegriffe
    unset($GLOBALS['TL_DCA']['tl_article']['fields']['keywords']);
    // Artikelteaser
    # unset($GLOBALS['TL_DCA']['tl_article']['fields']['showTeaser']); // TODO: undone, causes bug when accessing page structure
    unset($GLOBALS['TL_DCA']['tl_article']['fields']['teaserCssID']);
    unset($GLOBALS['TL_DCA']['tl_article']['fields']['teaser']);
    // Syndikation
    unset($GLOBALS['TL_DCA']['tl_article']['fields']['printable']);
    
    // adds custom article backend fields
    $GLOBALS['TL_DCA']['tl_article']['palettes']['default'] = str_replace( 
    	'cssID',
    	'cssID,classWidth,classUnroot,classMargin,classGutter,classAlign,classBackground,classTheme', 
    	$GLOBALS['TL_DCA']['tl_article']['palettes']['default'] 
    );
    
    $GLOBALS['TL_DCA']['tl_article']['fields']['classWidth'] = array(
    	'label'			=> array('Artikel Breite','Verändert die Artikel Breite'),
    	'inputType'	=> 'radio',
    	'default'		=> false,
    	'options'		=> array(false=>'normal', 'u-width-small'=>'small', 'u-width-large'=>'large', 'u-width-xlarge'=>'extra large', 'u-width-full'=>'full'),
    	'eval'			=> ['tl_class'=>'clr w50'],
    	'sql'				=> "varchar(50) NOT NULL default ''",
    );
    
    $GLOBALS['TL_DCA']['tl_article']['fields']['classUnroot'] = array(
    	'label'			=> array('Artikel Unroot','Lässt den Artikel randabfallend werden'),
    	'inputType'	=> 'checkbox',
    	'eval'			=> ['tl_class'=>'w50'],
    	'sql'				=> "char(1) NOT NULL default ''"
    );
    
    $GLOBALS['TL_DCA']['tl_article']['fields']['classMargin'] = array( // TODO: maybe move to subgrid completly?
    	'label'			=> array('Artikel Abstand','Verändert den Abstand des Artikels nach oben'),
    	'inputType'	=> 'radio',
    	'default'		=> false,
    	'options'		=> array(false=>'normal', 'm-article--margin-small'=>'gering', 'm-article--margin-none'=>'keiner', /*'m-article--margin-negativ'=>'negativ',*/ ),
    	'eval'			=> ['tl_class'=>'clr w50'],
    	'sql'				=> "varchar(50) NOT NULL default ''",
    );
    
    $GLOBALS['TL_DCA']['tl_article']['fields']['classGutter'] = array(
    	'label'			=> array('Inhalt Abstand','Verändert den Abstand der Inhalte zueinander'),
    	'inputType'	=> 'radio',
    	'default'		=> false,
    	'options'		=> array(
    		false 								=> 'normal',
    		'row--gutterVH-small' => 'schmal',
    		'row--gutterVH-large' => 'weit',
    		'row--gutterVH-off' 	=> 'ohne',
    		'row--gutterEQ-small'	=> 'gleichmäßig',
    	),
    	'eval'			=> ['tl_class'=>'clr w50'],
    	'sql'				=> "varchar(50) NOT NULL default ''",
    );
    
    $GLOBALS['TL_DCA']['tl_article']['fields']['classAlign'] = array(
    	'label'			=> array('Inhalt Ausrichtung mittig','Richtet die Inhalte im Artikel horizontal mittig aus'),
    	'inputType'	=> 'checkbox',
    	'eval'			=> ['tl_class'=>'w50'],
    	'sql'				=> "char(1) NOT NULL default ''"
    );
    
    $GLOBALS['TL_DCA']['tl_article']['fields']['classBackground'] = array(
    	'label'			=> array('Hintergrund','Verändert die Hintergrundfarbe'),
    	'inputType'	=> 'radio',
    	'default'		=> false,
    	'options'		=> array(
    		false 			=> 'normal',
    		'Dark'			=> 'schwarz',
    		'Primary' 	=> 'primär',
    		'Secondary'	=> 'sekundär',
    		'Grey' 			=> 'grau',
    	),
    	'eval'			=> ['tl_class'=>'clr w50'],
    	'sql'				=> "varchar(50) NOT NULL default ''",
    );
    
    $GLOBALS['TL_DCA']['tl_article']['fields']['classTheme'] = array(
    	'label'			=> array('Theme','Verändert die farbliche Darstellung der Inhalte'),
    	'inputType'	=> 'radio',
    	'default'		=> false,
    	'options'		=> array(
    		false 			=> 'normal',
    		'light'			=> 'light',
    		'inverted'	=> 'invertiert',
    	),
    	'eval'			=> ['tl_class'=>'w50'],
    	'sql'				=> "varchar(50) NOT NULL default ''",
    );

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Du könntest im DcaRelationsManager.php vor dem Code der Zeile 332 ein dump($table); reingeben, dann findest du zumindest raus welches DCA das Problem verursacht.
    » sponsor me via GitHub or PayPal or Revolut

  8. #8
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    681

    Standard

    Also doch Catalog-Manager, der Dump gibt folgendes aus:

    Code:
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    ....
    Danke für den Tipp mit dem Dump zum Debuggen!

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Du hast die Ausgabe abgeschnitten. Wichtig ist der letzte Eintrag bevor der Fehler auftritt. Alle anderen DCAs davor haben das Problem ja nicht.
    » sponsor me via GitHub or PayPal or Revolut

  10. #10
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    681

    Standard

    Hier habe ich die dump Funktion eingetragen, das ist dann Zeile 333

    Code:
                foreach (array_keys($dca['fields']) as $fieldName) {
                    $relation = $this->getRelation($table, $fieldName);
                    dump($table);
    
                    if (null === $relation || $relation['related_table'] !== $dc->table) {
                        continue;
                    }
    Und die Ausgabe ist nur die ctlg-Tabellen und die Contao-Fehlerseite

    Code:
    ^ "ctlg_automationsgrad"
    
    ^ "ctlg_automationsgrad"
    
    ^ "ctlg_automationsgrad"
    
    ^ "ctlg_automationsgrad"
    
    ^ "ctlg_automationsgrad"
    
    ^ "ctlg_automationsgrad"
    
    ^ "ctlg_automationsgrad"
    
    ^ "ctlg_automationsgrad"
    
    ^ "ctlg_automationsgrad"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_branche"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    ^ "ctlg_language"
    
    Internal Server Error
    Was ist das Problem?
    
    Codefog\HasteBundle\DcaRelationsManager::getRelation(): Argument #2 ($fieldName) must be of type string, int given, called in /var/www/clients/client2/web506/web/v1/vendor/codefog/contao-haste/src/DcaRelationsManager.php on line 72

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Den dump() musst du wie gesagt vor dem ausgeführten Code in Zeile 332 setzen. Also vor
    PHP-Code:
    $relation $this->getRelation($table$fieldName); 
    da bei diesem Aufruf ja der Fehler dann passiert. Die letzte dump() Ausgabe ist dann das DCA, wo sich der Fehler befindet.
    » sponsor me via GitHub or PayPal or Revolut

  12. #12
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    681

    Standard

    Bin nicht sicher , ob ich jetzt korrekt gemacht habe, es kommt keine Fehlerseite mehr im Frontend und im Debug bekomme ich nur die ctlg-Tabellen

    dumped-contents.png

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Im Frontend? Ich dachte der Fehler passiert beim Löschen im Backend?
    » sponsor me via GitHub or PayPal or Revolut

  14. #14
    Contao-Fan
    Registriert seit
    28.02.2011.
    Beiträge
    681

    Standard

    Ja stimmt natürlich, blöd ausgedrückt.
    Es ich werde nicht mehr auf die Fehlerseite weitergeleitet.
    Sondern ich kriege direkt das Debug Fenster
    Codefog_HasteBundle_DcaRelationsManager-getRelation-Argument-2-fieldName-must-be-of-type-string-.png

    Bin gleich erstmal unterwegs. Ich schaue heute abend noch mal rein. Danke auf jeden Fall schon mal für die Hilfe bis hier.
    Geändert von conter (11.04.2023 um 16:29 Uhr)

  15. #15
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Genau - und dort in diesem Screenshot hast du jetzt 26 Debug Ausgaben. Die letzte Debug Ausgabe müsste dann das problematische DCA sein.
    » sponsor me via GitHub or PayPal or Revolut

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •