Ergebnis 1 bis 14 von 14

Thema: DCA tl_news um weitere Felder erweitern.

  1. #1
    Contao-Nutzer
    Registriert seit
    09.07.2024.
    Beiträge
    12

    Standard DCA tl_news um weitere Felder erweitern.

    Hallo,
    ich hab hier ein ein Problem, dass ich mir einfach nicht erklären kann.
    Ok, ich hab mehrere Bundles gebaut und in Contao eingebunden, dabei die einzelnen Tabellen um diverse Felder erweitert, angelegt u.s.w. und eigentlich noch nie Probleme. Wenn wars halt mal ein Tippfehler, aber diesen hier bekomme ich nicht aufgedröselt.
    Ich habe jetzt das ganze Bundle runtergebrochen bis auf /src/Resources/contao/dca/tl_news.php
    Mit dem Inhalt:
    PHP-Code:
    <?php
    $GLOBALS
    ['TL_DCA']['tl_news']['palettes']['default'] = str_replace('teaser;''teaser;{text_legend},text;'$GLOBALS['TL_DCA']['tl_news']['palettes']['default']);

    $GLOBALS['TL_DCA']['tl_news']['fields']['text'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['text'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'textarea',
        
    'eval'                    => array('rte'=>'tinyMCE''helpwizard'=>true),
        
    'explanation'             => 'insertTags',
        
    'sql'                     => "text NULL"
    );
    Ich bekomme die Fehlermeldung: Warning: Undefined global variable $TL_DCA
    Das interessante daran ist, nehme ich meine Datei tl_news.php und bewege sie in ein anderes Bundle, dass den gleichen Aufbau hat, dann funktioniert die Geschichte problemlos.
    Das wäre zwar eine Lösung für mein Problem, aber nur am Symtom gedocktert.
    Hat jemand für das Verhalten eine Erklärung?

    Vielen Dank.
    Grüße Chris
    Geändert von Spooky (Gestern um 14:10 Uhr) Grund: Added [php] tags

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

    Standard

    Zitat Zitat von JamesBolivar Beitrag anzeigen
    Ich bekomme die Fehlermeldung: Warning: Undefined global variable $TL_DCA
    Ich vermute im Contao Manager Plugin deines Bundles fehlt die Angabe nach dem NewsBundle geladen zu werden.
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    09.07.2024.
    Beiträge
    12

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ich vermute im Contao Manager Plugin deines Bundles fehlt die Angabe nach dem NewsBundle geladen zu werden.
    Danke! Auf die Idee sind wir hier auch schon gekommen.
    In meinem Bundle, eingesetzt:
    PHP-Code:
    class Plugin implements BundlePluginInterface
    {
        public function 
    getBundles(ParserInterface $parser): array
        {
        
            return [
                
    BundleConfig::create(PgVeroeffentBundle::class)
                    ->
    setLoadAfter([ContaoCoreBundle::class, ContaoNewsBundle::class]),
            ];
        }

    Leider klappt das nicht.
    Nehme ich die DCA Dateien in das andere Bundle, in dem ich diese Angabe nicht habe sondern nur:
    PHP-Code:
    class Plugin implements BundlePluginInterface
    {
        public function 
    getBundles(ParserInterface $parser): array
        {
        
            return [
                
    BundleConfig::create(PgVeroeffentBundle::class)
                    ->
    setLoadAfter([ContaoCoreBundle::class]),
            ];
        }

    dort funktioniert alles.
    Da beide Bundle identisch sein und sich nur durch den Namen unterscheiden, bin ich ratlos.
    Geändert von Spooky (Gestern um 14:50 Uhr)

  4. #4
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.778
    Contao-Projekt unterstützen

    Support Contao

    Standard

    composer dump-autoload?

    Ich vermute, dass das andere Bundle einfach nach dem News-Bundle lädt - just because autoload-Reihenfolge

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

    Standard

    Zitat Zitat von JamesBolivar Beitrag anzeigen
    Danke! Auf die Idee sind wir hier auch schon gekommen.
    In meinem Bundle, eingesetzt:
    Und danach composer install ausgeführt?
    » sponsor me via GitHub or Revolut

  6. #6
    Contao-Nutzer
    Registriert seit
    09.07.2024.
    Beiträge
    12

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Und danach composer install ausgeführt?
    Ja, composer install, Cache .... alle Knöppe die es gibt im Manager. Auch schon alles deinstalliert und nur das betroffene Bundle installiert, immer wieder das gleich:
    Warning: Undefined global variable $TL_DCA

    Mich wundert das $ Zeichen von TL_DCA. Ich meine: $GLOBALS['TL_DCA'], da ist dann TL_DCA nur ein konstanter String und keine Variable.
    Was ich dabei halt so gar nicht kapiere, warum geht es, wenn ich tl_news.php in ein anderes bundle verschiebe.

    Gruß Chris

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

    Standard

    Ich vermute nach wie vor, dass das Contao Manager Plugin nicht stimmt. Ist der Code öffentlich einsehbar?
    » sponsor me via GitHub or Revolut

  8. #8
    Contao-Nutzer
    Registriert seit
    09.07.2024.
    Beiträge
    12

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ich vermute nach wie vor, dass das Contao Manager Plugin nicht stimmt. Ist der Code öffentlich einsehbar?
    Das jetzt nicht. Aber ist ja überschaubar:

    <?php

    declare(strict_types=1);

    namespace PgVeroeffentBundle\ContaoManager;

    use Contao\CoreBundle\ContaoCoreBundle;
    use Contao\ManagerPlugin\Bundle\BundlePluginInterface;
    use Contao\ManagerPlugin\Bundle\Config\BundleConfig;
    use Contao\ManagerPlugin\Bundle\Parser\ParserInterface ;

    use PgVeroeffentBundle\PgVeroeffentBundle;

    class Plugin implements BundlePluginInterface
    {
    public function getBundles(ParserInterface $parser): array
    {
    return [
    BundleConfig::create(PgVeroeffentBundle::class)
    ->setLoadAfter([ContaoNewsBundle::class, ContaoCoreBundle::class]),
    ];
    }
    }

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

    Standard

    Bitte nutze immer [php] Tags für PHP Code.

    Und wenn das wirklich der Code deines Plugins ist: da fehlt der FQCN für die ContaoNewsBundle Klasse, daher funktioniert es nicht.
    » sponsor me via GitHub or Revolut

  10. #10
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.673
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ist denn in der Datenbank die neue Spalte angelegt worden?
    Wenn ja, dann wurde Deine DCA-Ergänzung auch verarbeitet, dann wäre die Frage, warum sie in der Palette nicht sichbar ist.

  11. #11
    Contao-Nutzer
    Registriert seit
    09.07.2024.
    Beiträge
    12

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Bitte nutze immer [php] Tags für PHP Code.
    Und wenn das wirklich der Code deines Plugins ist: da fehlt der FQCN für die ContaoNewsBundle Klasse, daher funktioniert es nicht.
    Ok, Sorry. Ich bin hier etwas ungeübt.
    Nun, ja, es ist die die komplette Plugin.php aus dem Verzeichnis: /src/ContaoManager/Plugin.php

    Was den FQCN angeht, war ich der Meinung, dass namespace PgVeroeffentBundle\ContaoManager; ausreichen würde.
    Da das andere Bundle identisch aufgebaut ist, nur das es dort eine andere Bundle Bezeichnung (namespace PgPodLoveBundle\ContaoManager steht und es dort funktioniert, würde ich nicht denken, dass hier das Problem zu finden ist.

    Gruß Chris

  12. #12
    Contao-Nutzer
    Registriert seit
    09.07.2024.
    Beiträge
    12

    Standard

    Zitat Zitat von do_while Beitrag anzeigen
    Ist denn in der Datenbank die neue Spalte angelegt worden?
    Wenn ja, dann wurde Deine DCA-Ergänzung auch verarbeitet, dann wäre die Frage, warum sie in der Palette nicht sichbar ist.
    Da ich von Contao 4 nach 5 gebundelt habe, war das Feld natürlich schon da.
    Allerdings wenn ich das ganze Ding hier neu installiere und die Datenbank vorher clean mache, kann das Feld nicht neu angelegt werden. Soweit kommt er dann nicht.
    Ein dump wird ausgegeben, allerdings ist der Key TL_DCA dann nicht da, was auch den Fehler auslöst.

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

    Standard

    Zitat Zitat von JamesBolivar Beitrag anzeigen
    Ok, Sorry. Ich bin hier etwas ungeübt.
    Nun, ja, es ist die die komplette Plugin.php aus dem Verzeichnis: /src/ContaoManager/Plugin.php

    Was den FQCN angeht, war ich der Meinung, dass namespace PgVeroeffentBundle\ContaoManager; ausreichen würde.
    Da das andere Bundle identisch aufgebaut ist, nur das es dort eine andere Bundle Bezeichnung (namespace PgPodLoveBundle\ContaoManager steht und es dort funktioniert, würde ich nicht denken, dass hier das Problem zu finden ist.

    Gruß Chris
    Nicht der Namespace deiner Klasse ist das Problem. Dir fehlt der FQCN der ContaoNewsBundle Klasse, die du ja referenzierst.
    Geändert von Spooky (Gestern um 21:09 Uhr)
    » sponsor me via GitHub or Revolut

  14. #14
    Contao-Nutzer
    Registriert seit
    09.07.2024.
    Beiträge
    12

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Nicht der Namespace deiner Klasse ist das Problem. Dir fehlt der FQCN der ContaoNewsBundle Klasse, die du ja referenzierst.
    Ok,
    Danke. Das löst das Problem.
    Ich habe diese zwei Zeilen in meine Plugin.php eingesetzt:

    use Contao\NewsBundle\ContaoNewsBundle;
    use Symfony\Component\HttpKernel\Bundle\Bundle;

    Anscheinend hab ich das mit dem FQCN falsch verstanden.
    Wobei, dass erklärt mir immer noch nicht, warum die DCA Dateien in meinem zweiten Bundle genau das gemacht haben, was Sie jetzt auch (im richtigen Bundle) machen, ohne das ich die use Anweisungen eingesetzt hatte. Bleibt mir ein Rätsel.

    Jedenfalls vielen Dank für die Hilfe.
    Gruß Chris

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 8 (Registrierte Benutzer: 2, Gäste: 6)

  1. JamesBolivar,
  2. Spooky

Berechtigungen

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