Contao-Camp 2024
Ergebnis 1 bis 14 von 14

Thema: Fremde Bundle Configs erweitern?

  1. #1
    Contao-Nutzer
    Registriert seit
    24.08.2018.
    Ort
    Magdeburg
    Beiträge
    131

    Standard Fremde Bundle Configs erweitern?

    Ich bin seit Montag am Erweitern von Contao und habe dazu ein paar Bundles verwendet: contao-list-bundle, contao-reader-bundle und was der Namespace so hergibt. Die Erweiterungen sind super und soweit klappt fast alles:
    Ich wollte dem contao-list-bundle weitere, eigene Templates hinzufügen. Ich wollte jetzt ungern wieder ein Bundle anlegen - aktuell liegen alle Korrekturen und Änderungen in contao/ und src/

    Gibt es einen Weg ohne Bundle ein BundleConfig eines Moduls zu erweitern?

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

    Standard

    Hm, ich habe nicht genau verstanden was du machen möchtest. In wie fern willst du ein Bundle um Templates "erweitern"?

  3. #3
    Contao-Nutzer
    Registriert seit
    24.08.2018.
    Ort
    Magdeburg
    Beiträge
    131

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Hm, ich habe nicht genau verstanden was du machen möchtest. In wie fern willst du ein Bundle um Templates "erweitern"?
    Ich weiß, ich bin schlecht in sowas

    Und zwar findet man ja hier (https://github.com/heimrichhannot/co...2-by-configyml) die Möglichkeit die config um eigene Templates zu erweitern. Dazu müsste ich jetzt ein Bundle erstellen. Das wollte ich vermeiden.

    Daher die Frage, ob man ContainerUtil::mergeConfigFile auch einfach ohne Bundle über src/* irgendwo abwickeln kann - ich hoffe das war verständlich

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

    Standard

    Achso, ja du kannst auch ein Contao Manager Plugin für die App erstellen, wenn es das ist, was du suchst (ganz habe ich es noch immer nicht verstanden ). Siehe https://docs.contao.org/dev/framewor...manager-plugin

  5. #5
    Contao-Nutzer
    Registriert seit
    24.08.2018.
    Ort
    Magdeburg
    Beiträge
    131

    Standard

    So, ich bin jetzt an dem Punkt, an dem ich fast Monitore + Tastatur zerlegt hätte

    Ich verstehe absolut nicht, wie das gehen soll... Ich habe aktuell meinen ganzen Source unter contao/ /DCA; Languages) und /src (Models, views sollen hier rein) drin - ich brauche ja dafür kein Bundle anlegen (ist eh komplett kundenspezifisch). Soweit klappt das erstmal auch (denke ich).

    Ich weiß jetzt ehrlich gesagt gar nicht, was in die app/ContaoManagerPlugin.php genau rein muss, damit ich https://github.com/heimrichhannot/co...2-by-configyml den config.yml Kram ergänzen kann.

    Gibt es da irgendwo eine genaue Beschreibung wir das geht?

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

    Standard

    Zitat Zitat von WorkerBeeEu Beitrag anzeigen
    Ich weiß jetzt ehrlich gesagt gar nicht, was in die app/ContaoManagerPlugin.php genau rein muss
    Du meinst wohl src/ContaoManagerPlugin.php - aber das ist deprecated. Korrekt wäre der Namespace App\ContaoManager\Plugin - also src/ContaoManager/Plugin.php. Siehe https://docs.contao.org/dev/framewor...manager-plugin



    Zitat Zitat von WorkerBeeEu Beitrag anzeigen
    Ich weiß jetzt ehrlich gesagt gar nicht, was in die app/ContaoManagerPlugin.php genau rein muss, damit ich https://github.com/heimrichhannot/co...2-by-configyml den config.yml Kram ergänzen kann.
    Du musst, laut der Beschreibung, in deinem Contao Manager Plugin für die App einfach nur das ExtensionPluginInterface implementieren.

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

    Standard

    Aber eigentlich brauchst du das alles doch gar nicht? Wenn du diese Anpassung nur für die Applikation machen willst, dann kannst du das, was dort für die config.yml beschrieben ist, in deine eigene config.yml kopieren.

  8. #8
    Contao-Nutzer
    Registriert seit
    24.08.2018.
    Ort
    Magdeburg
    Beiträge
    131

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Aber eigentlich brauchst du das alles doch gar nicht? Wenn du diese Anpassung nur für die Applikation machen willst, dann kannst du das, was dort für die config.yml beschrieben ist, in deine eigene config.yml kopieren.
    In die config/config.yml?

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

    Standard

    Ja. Dort konfigurierst du die Applikation, bzw. die Bundles der Applikation.

  10. #10
    Contao-Nutzer
    Registriert seit
    24.08.2018.
    Ort
    Magdeburg
    Beiträge
    131

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ja. Dort konfigurierst du die Applikation, bzw. die Bundles der Applikation.
    Das war mein erster Plan, aber der wurde wie folgt quittiert:

    Code:
    There is no extension able to load the configuration for "huh" (in "/app/config/config.yml"). Looked for namespace "huh", found ""doctrine", "fram
    Das ist meine config.yml
    Code:
    contao:
      image:
        valid_extensions:
          ["jpg", "jpeg", "gif", "png", "tif", "tiff", "bmp", "svg", "svgz", "webp"]
        imagine_service: contao.image.imagine.gd
    huh:
      list:
        templates:
          list:
            - { name: list_dozenten, template: "@App/list/list_dozenten.html.html.twig" }
            - { name: list_kurse, template: "@App/item/list_kurse.html.twig" }
          item:
            - { name: list_item_dozenten, template: "@App/item/list_item_dozenten.html.twig" }
            - { name: list_item_kurse, template: "@App/item/list_item_kurse.html.twig" }
    Hier die zu ergänzende: https://github.com/heimrichhannot/co...fig/config.yml

    Aber anscheinend lädt die config/config.yml vor der Erweiterung?

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

    Standard

    Nein, die Config der Applikation lädt immer zum Schluss. Und die Extension funktioniert ansonsten?

  12. #12
    Contao-Nutzer
    Registriert seit
    24.08.2018.
    Ort
    Magdeburg
    Beiträge
    131

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Nein, die Config der Applikation lädt immer zum Schluss. Und die Extension funktioniert ansonsten?
    Naja das sind aktuell nur ein paar DCA's sowie die Models für das contao-listing-bundle. Der braucht wohl die Models zu den DCA's. Das lief alles auch bisher super. Jetzt wollte ich halt eigene Templates fest hinterlegen

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

    Standard

    Sonst frage mal bei den Entwicklern direkt. Ich habe sonst auch keine Idee (und auch keine Erfahrung mit dieser Extension).

  14. #14
    Contao-Nutzer
    Registriert seit
    24.08.2018.
    Ort
    Magdeburg
    Beiträge
    131

    Standard

    Kleines Update, falls jmd. einmal darüber stolpert.

    unter /src/ContaoManager/Plugin.php eine entsprechende Datei anlegen und befüllen:
    PHP-Code:
    namespace App\ContaoManager;

    use 
    Contao\ManagerPlugin\Bundle\BundlePluginInterface;
    use 
    Contao\ManagerPlugin\Config\ExtensionPluginInterface;
    use 
    Contao\ManagerPlugin\Bundle\Parser\ParserInterface;
    use 
    Contao\ManagerPlugin\Config\ContainerBuilder;
    use 
    HeimrichHannot\UtilsBundle\Container\ContainerUtil;

    class 
    Plugin implements ExtensionPluginInterface {

        
    /**
         * {@inheritdoc}
         */
        
    public function getExtensionConfig($extensionName, array $extensionConfigsContainerBuilder $container) {
            
    $extensionConfigs =  ContainerUtil::mergeConfigFile(
                
    'huh_list',
                
    $extensionName,
                
    $extensionConfigs,
                
    __DIR__ '/../Resources/config/huh_list.yml'
            
    );
            
    $extensionConfigs =  ContainerUtil::mergeConfigFile(
                
    'huh_reader',
                
    $extensionName,
                
    $extensionConfigs,
                
    __DIR__ '/../Resources/config/huh_reader.yml'
            
    );

            return 
    $extensionConfigs;
        }

    Ich erweitere hier das list-bundle und das reader-bundle um eigene Twig-Templates hinzuzufügen. Das soll Updatesicher sein und die Dateien sollen nicht in templates/ liegen.

    Dann einfach unter src/Resources/config/ die beiden Dateien huh_list.yml und huh_reader.yml anlegen, wie in der Doku stehend bestücken und fertig ist die Suppe. Die Templates liegen ind src/Resources/views/ und können mit @App/<dirname>/<twig-file> referenziert werden.

    Eigentlich ist das total simpel, ABER bitte jedes mal, wenn die ContaoManagerPlugin-Datei geändert wird einmal composer install laufen lassen - sonst nimmt Contao die Änderungen nicht an.

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
  •