Ergebnis 1 bis 3 von 3

Thema: Frontend-Widget wird nicht bei der Entwicklung nicht angezeigt (Managed Edition)

  1. #1
    Contao-Nutzer Avatar von chatjack
    Registriert seit
    02.09.2012.
    Ort
    Essen
    Beiträge
    162

    Frage Frontend-Widget wird nicht bei der Entwicklung nicht angezeigt (Managed Edition)

    Der Fehler wurde inzwischen in der "system/modules/bas/forms/FormProducts.php" entdeckt. Hier steckte noch der alte Klassenname drin.

    Hallo zusammen,

    ich versuche gerade ein Frontend-Widget in Contao 4 zu entwickeln. Leider bekomme ich zurzeit überhaupt keine Ausgabe. Da seit Contao 4 ja einiges über Symfony läuft, habe ich noch arg meine Probleme zu verstehen, wo es ganau hakt.

    Das Feld wird zwar in der Auswahl angezeigt und kann es auch befüllen. In der Übersicht bleibt es aber leer und auch im Frontend sieht man nix.

    contao_forum_produktauswahl.PNG

    contao_forum_luecke.PNG

    Ich vermute, dass die Klasse für das Frontend-Widget gar nicht von Contao geladen wird und die Ausgabe nach Prüfung auf die Klasse einfach übersprungen wird. Es wurden inzwischen sämtliche Caches (Prod-Cache, Dev-Cache, Composer-Class-Loader, Composer-Cache, sowie alle Caches über das Contao-Backend) geleert. Das Backend wird über "app_dev" aufgerufen. Ich hängt leider schon den halben Tag an diesem Problem fest und bin für jeden Tipp dankbar.

    Der Vollständigkeit halber mal alle Dateien, die zum Widget gehören. Ich habe die nach und nach runter gekürzt, weshalb das Ganze inzwischen recht übersichtlich ausfällt.

    system/modules/bas/config/autoload.ini
    system/modules/bas/config/autoload.php
    system/modules/bas/config/config.php
    system/modules/bas/dca/tl_form_field.php
    system/modules/bas/forms/FormProducts.php
    system/modules/bas/languages/de/tl_form_field.php
    system/modules/bas/templates/form_products.html5

    system/modules/bas/config/autoload.ini
    PHP-Code:
    ;;
    ; List 
    modules which are required to be loaded beforehand
    ;;
    requires[] = "core"

    ;;
    Configure what you want the autoload creator to register
    ;;
    register_namespaces false
    register_classes    
    true
    register_templates  
    true 
    system/modules/bas/config/autoload.php
    PHP-Code:
    <?php

    /**
     * Register the classes
     */
    ClassLoader::addClasses(array
    (
        
    // Forms
        
    'FormProducts'  => 'system/modules/bas/forms/FormProducts.php',
    ));

    /**
     * Register the templates
     */
    TemplateLoader::addFiles(array
    (
        
    'form_products' => 'system/modules/bas/templates',
    ));
    system/modules/bas/config/config.php
    PHP-Code:
    <?php

    $GLOBALS
    ['TL_FFL']['products'] = 'FormProducts';
    system/modules/bas/dca/tl_form_field.php
    PHP-Code:
    <?php

    $GLOBALS
    ['TL_DCA']['tl_form_field']['palettes']['products'] = "{type_legend},type,name,label;{options_legend},options;";
    system/modules/bas/forms/FormProducts.php
    Achtung: Hier musste in Zeile 3 statt "ProductWidgets" der Klassenname "FormProducts" verwendet werden.
    PHP-Code:
    <?php

    class ProductsWidget extends \Widget
    {
        protected 
    $blnSubmitInput true;
        protected 
    $blnForAttribute true;
        protected 
    $strTemplate 'form_products';
        protected 
    $strPrefix 'widget widget-products';
        
        public function 
    parse($arrAttributes=null)
        {
            return 
    "Output from parse function.";
        }
        
        public function 
    generate()
        {
            return 
    "Output from generate function.";
        }

    }
    system/modules/bas/languages/de/tl_form_field.php
    PHP-Code:
    <?php

    $GLOBALS
    ['TL_LANG']['FFL']['products'] = array('Produktauswahl''Auswahl für mehrere Produkte');
    system/modules/bas/templates/form_products.html5
    PHP-Code:
    Output from template
    Hat jemand eine Idee, warum die Klasse nicht geladen werden könnte?

    Beste Grüße und
    vielen Dank,
    Dennis
    Geändert von chatjack (22.08.2018 um 19:48 Uhr)

  2. #2
    Contao-Nutzer Avatar von chatjack
    Registriert seit
    02.09.2012.
    Ort
    Essen
    Beiträge
    162

    Standard

    Oh, das ist peinlich. Ich denke ich habe den Fehler entdeckt. In der Klasse steht noch die alte Klassenname.

    Kann man seine Beiträge eigentlich auch wieder löschen? Ich fürchte der hilft keinem.

  3. #3
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Du kannst den Beitrag selber melden, dann wird ein Moderator bzw. eine Moderatorin darauf aufmerksam
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

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
  •