Ergebnis 1 bis 11 von 11

Thema: Grundsätzliche Frage zu Erweiterung/App/Bundle

  1. #1
    Contao-Nutzer
    Registriert seit
    09.03.2014.
    Beiträge
    87

    Standard Grundsätzliche Frage zu Erweiterung/App/Bundle

    Ich habe unter 4.4/4.9 verschiedene kleine Apps entwickelt und diese als Bundle eingebaut. Wohl falsch konzipiert, denn unter 4.13 läuft nichts mehr davon. Alle Projekte sind jeweils für je einen Kunden, also wäre nach https://docs.contao.org/dev/getting-...g-development/ wohl kein Bundle notwendig, da die Erweiterungen nur je einmalig verwendet werden. Mit der genannten Anleitung komme ich allerdings keinen Schritt weiter.

    Alle Erweiterungen sind sehr einfach aufgebaut, modifizierte tl_member, verschiedene Tabellen und Frontendmodule mit je Modul + Template. Alles im Ordner /src, Module unter /src/Module, Templates unter /src/Resources/contao/templates, dca unter /src/Resources/contao/dca. Dazu unter /src/Resources/contao/config eine config.php, in der die Module mit use angegeben, dazu $GLOBALS['FE_MOD']['pbtime'] = ['erfassen' => ModuleErfassen::class]; gesetzt wurden.

    Gibt es irgendwo ein funktionierendes Beispiel einer Minimal-Erweiterung für 4.13? Ich habe testweise markocupic/contao-bundle-creator-bundle geladen, allerdings kreiert das ja ein Bundle (das ich nach Anleitung nicht brauche) und produziert im FE dann Fehlermeldung (weil wohl nicht 4.13-kompatibel).

    Wo finde ich ein Beispiel einer einfachen simplen Erweiterung? Danke für jeden Hinweis.

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

    Standard

    Zitat Zitat von msol Beitrag anzeigen
    Templates unter /src/Resources/contao/templates
    Nach /contao/templates verschieben.



    Zitat Zitat von msol Beitrag anzeigen
    dca unter /src/Resources/contao/dca
    Nach /contao/dca verschieben.



    Zitat Zitat von msol Beitrag anzeigen
    Dazu unter /src/Resources/contao/config eine config.php
    Nach /contao/config verschieben.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    09.03.2014.
    Beiträge
    87

    Standard

    Wenn du sagst nach /contao/... verschieben: /contao habe ich nur als /vendor/contao. Darin die verschiedenen Contao-eigenen Erweiterungen.
    Also einen neuen Ordner mit üblicher Substruktur in vendor/contao anlegen? Mit namespace Contao?

    Danke!

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

    Standard

    Nein, nicht vendor/contao. Einfach nur /contao. Also <contao-installationsverzeichnis>/contao (siehe auch die von dir verlinkte Dokumentation).

    Zitat Zitat von msol Beitrag anzeigen
    Mit namespace Contao?
    Im Ordner contao/ liegen nur DCA, Config und Translation Files. Dort definierst du keine Klassen mit Namespaces.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    09.03.2014.
    Beiträge
    87

    Standard

    Ok. Heisst, ich muss den Ordner neu anlegen. Wohin kommen die Module? In /contao/module ?

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

    Standard

    Zitat Zitat von msol Beitrag anzeigen
    Ok. Heisst, ich muss den Ordner neu anlegen.
    Neu anlegen musst du nichts (vom contao/ Ordner abgesehen), nur die genannten Ordner verschieben.


    Zitat Zitat von msol Beitrag anzeigen
    Wohin kommen die Module? In /contao/module ?
    Die können dort bleiben wo sie sind.
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Nutzer
    Registriert seit
    09.03.2014.
    Beiträge
    87

    Standard

    Hm. Die Module lagen bisher im Bundle in einem Ordner /src/Module. Ohne Installation des Bundles habe ich ja keinen entsprechenden Ordner in Vendor. Oder einen Vendor-Ordner anlegen, mit eigenem Namespace?

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

    Standard

    Achso, du hattest das als lokales Bundle installiert. Aber eigentlich sollte das auch weiterhin in Contao 4.13 funktionieren. Falls du alles so beibehalten magst wie es ist: was genau funktioniert den in Contao 4.13 nicht?
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Contao-Nutzer
    Registriert seit
    09.03.2014.
    Beiträge
    87

    Standard

    Das Bundle wird zwar installiert. Aber wohl nicht korrekt angemeldet. Keine Tabellen installiert. Keine Frontendmodule installiert.
    Ich habe jetzt wie empfohlen den Ordner contao angelegt, die drei Ordner dorthin verschoben. Damit werden die FE-Module erkannt, die Tabellen angelegt. Aber die Logik hatte ich unter /src/Module.

    In der config.php hatte ich
    [CODE]use Pnwscm60\PbtimeBundle\Module\ModuleErfassen;
    $GLOBALS['FE_MOD']['pbtime'] = ['erfassen' => ModuleErfassen::class];[CODE]
    Irgendwohin muss ich die Module ja auch noch legen können?

    Die Module starten mit
    Code:
    <?php
    namespace Pnwscm60\PbtimeBundle\Module;
    class ModuleErfassen extends \Contao\Module
    {
    	protected $strTemplate = 'mod_erfassen';
     
    	public function generate()
        {
            if (TL_MODE == 'BE')
            {
                $objTemplate = new \BackendTemplate('be_wildcard');
                $objTemplate->wildcard = '### ERFASSEN ###';
                $objTemplate->project = $this->headline;
                return $objTemplate->parse();
    		}
            return parent::generate();
        }
    
    	protected function compile()
    	{
    Mir ist es noch so recht, wenn es eine einfachere Variante als mit Bundle gibt. Lerne gerne anhand von Beispielen. Aber da finde ich keines. Danke dir für die Hilfe!

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

    Standard

    Alle Beispiele in der Entwicklerdokumentation kannst du dafür heranziehen.

    Contao registriert den src/ Ordner automatisch unter dem Namespace App\ (es sei denn du hast selbst etwas definiert). Contao registriert dann außerdem alle Services im App\ Namespace automatisch (es sei denn du hast selbst etwas definiert). Statt
    PHP-Code:
    // src/Module/ModuleErfassen.php
    namespace Pnwscm60\PbtimeBundle\Module;

    class 
    ModuleErfassen extends \Contao\Module
    {
        
    // …

    Wäre es dann also
    PHP-Code:
    // src/Module/ModuleErfassen.php
    namespace App\Module;

    class 
    ModuleErfassen extends \Contao\Module
    {
        
    // …

    und in der config.php dann
    PHP-Code:
    // contao/config/config.php
    use App\Module\ModuleErfassen;

    $GLOBALS['FE_MOD']['pbtime']['erfassen'] = ModuleErfassen::class; 
    » sponsor me via GitHub or PayPal or Revolut

  11. #11
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

    Standard

    @msol

    Zitat Zitat von msol Beitrag anzeigen
    Gibt es irgendwo ein funktionierendes Beispiel einer Minimal-Erweiterung für 4.13? Ich habe testweise markocupic/contao-bundle-creator-bundle geladen, allerdings kreiert das ja ein Bundle (das ich nach Anleitung nicht brauche) und produziert im FE dann Fehlermeldung (weil wohl nicht 4.13-kompatibel).

    Wo finde ich ein Beispiel einer einfachen simplen Erweiterung? Danke für jeden Hinweis.
    markocupic/contao-bundle-creator-bundle läuft nun auch unter Contao 4.13.

    Du kannst dir ein Frontend Modul oder Inhaltselement generieren lassen, welches dir als Basis für deinen eigenen Code dient.

    Wieso das Ganze nicht als Bundle? Du kannst deinen Code, auch ohne ihn auf packagist.org zu veröffentlichen, als Bundle umsetzen. Nutze dabei in der composer.json einfach die Möglichkeit dein Bundle von einem Dateipfad zu laden. Siehe hier

    All das kannst du beim Konfigurieren der Dummy Extension in markocupic/contao-bundle-creator-bundle bereits so konfigurieren.
    Geändert von markocupic (13.03.2022 um 19:46 Uhr)
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

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
  •