Contao-Camp 2024
Ergebnis 1 bis 11 von 11

Thema: Erste eigene Erweiterung mir lokaler Reository

  1. #1
    Contao-Nutzer
    Registriert seit
    28.07.2020.
    Beiträge
    10

    Standard Erste eigene Erweiterung mir lokaler Reository

    Hallo,

    ich bin aktuell dabei, mich an meiner eigenen Erweiterung ranzutasten.

    Leider komme ich schon ganz am Anfang beim erstellen des repos nicht weiter. In der Composer.json ahbe ich einen Repo Eintrag erstellt:

    Code:
    	"repositories": [
        {
          "type": "path",
          "url": "C:\\xampp\\vhost\\contao-test.local\\vendor\\snowball\\test-app"
        }
      ]
    Wenn ich nun über den Browser den Composer Update ausführe, dann bekomme ich Error 400 angezeigt.
    Code:
    HTTP request to https://composer-resolver.cloud/jobs failed with status code 400 ()
    
    ---
    
    ### Der Hintergrundprozess wurde unerwartet beendet ###

    Wie muss der Pfad denn richtig aussehen, dass der Composer den erkennt?

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.941

    Standard

    Der Cloud-Resolver kann den Pfad nicht „auflösen“, weil er keinen Zugriff auf Deinen Rechner hat.

    Wenn Du aber lokal arbeitest — und Dir damit beliebig Arbeitsspeicher geben kannst — ist der Grund für die Verwendung des Cloud-Resolvers nicht gegeben. Schale ihn ab und probiere es erneut oder verwende gleich composer auf der Kommandozeile.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Nutzer
    Registriert seit
    28.07.2020.
    Beiträge
    10

    Standard

    Alles klar, Danke.

    Also liegt es lediglich daran, dass ich Lokal teste. Später auf Produktiv sieht es dann wieder anders aus.

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

    Standard

    @Snowball
    Kennst du das hier?
    https://github.com/markocupic/contao...creator-bundle
    Liebe Grüsse
    Marko
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

  5. #5
    Contao-Nutzer
    Registriert seit
    28.07.2020.
    Beiträge
    10

    Standard

    Ja, habe ich gesehen nur zu spät.

    Habe quasi die erste tabelle angelegt und, somit ist deine Erweiterung bereits überflüssig.

    Bin gerade dabei eine zweite Datentabelle in der Erweiterung einzubinden. Will nur noch nicht so ganz im Insatlltool auftauchen.

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

    Standard

    Zitat Zitat von Snowball Beitrag anzeigen
    Ja, habe ich gesehen nur zu spät.

    Habe quasi die erste tabelle angelegt und, somit ist deine Erweiterung bereits überflüssig.

    Bin gerade dabei eine zweite Datentabelle in der Erweiterung einzubinden. Will nur noch nicht so ganz im Insatlltool auftauchen.
    Cache neu aufgebaut?
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

  7. #7
    Contao-Nutzer
    Registriert seit
    28.07.2020.
    Beiträge
    10

    Standard

    Ja.

    Womöglich mach ich ja Grundsätzlich was falsch...

    Ich habe im Ordner src/Model 2 Dateien angelegt

    - test-appNewsModel.php
    - test-appUpdateModel.php

    UpdateModel will nicht erscheinen
    Inhaltlich eig. nahezu identisch:


    Code:
    declare(strict_types=1);
    
    namespace snowball\test-app\Model;
    
    use Contao\Model;
    
    
    class test-appUpdateModelextends Model
    {
        protected static $strTable = 'tl_testapp_updates';
    
    }

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

    Standard

    Poste doch mal den Inhalt deiner tl_testapp_updates


    Zitat Zitat von Snowball Beitrag anzeigen
    Ja.

    Womöglich mach ich ja Grundsätzlich was falsch...

    Ich habe im Ordner src/Model 2 Dateien angelegt

    - test-appNewsModel.php
    - test-appUpdateModel.php

    UpdateModel will nicht erscheinen
    Inhaltlich eig. nahezu identisch:


    Code:
    declare(strict_types=1);
    
    namespace snowball\test-app\Model;
    
    use Contao\Model;
    
    
    class test-appUpdateModelextends Model
    {
        protected static $strTable = 'tl_testapp_updates';
    
    }
    Ja, der Klassenname deines Models sollte TestAppUpdatesModel lauten und der Dateiname ebenfalls. Gross- und Kleinschreibung ebenfalls relevant. Wenn du diese Konvention nicht einhältst, findet der classloader dein Model nicht.

    In der src/config/contao/config.php nicht vergessen dein Model zu registrieren.
    Geändert von markocupic (29.07.2020 um 08:37 Uhr)
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

  9. #9
    Contao-Nutzer
    Registriert seit
    28.07.2020.
    Beiträge
    10

    Standard

    Mit der News Tabelle hat es so funktioniert.

    Das macht am Ende aber leider dennoch keinen Unterschied.

    Die Tabelle wird nicht im Installtool erkannt.

    In der config hatte ich beide Models bereits eingetragen.

  10. #10
    Contao-Nutzer
    Registriert seit
    28.07.2020.
    Beiträge
    10

    Standard

    Habe die Pfade alle angepasst, dass ging dann auch nicht. Aber am Ende habe ich den Fehler dennoch gefunden.

    Wenn ich über den Contao Manager die Caches gelöscht habe scheint irgendwas nicht korrekt gelöscht zu werden. Wenn ich allerdings manuell auf dem Server die Cache verzeichnisse gelöscht habe, dann wird die Änderung erkannt. Warum, keine Ahnung. Aber nun weiss ich ja damit umzugehen.


    Ich habe nun 2 Tabellen angelegt, die über Formular teilweise gefüllt werden. Nun die Frage, wie kann ich in Contao ForeignKey einbinden?

    TestAppNews als Haupttabelle
    kleiner Auszug hiervon:
    PHP-Code:
     'fields'      => [
            
    'id'             => [
                
    'sql' => "int(10) unsigned NOT NULL auto_increment"
            
    ],
            
    'tstamp'         => [
                
    'sql' => "int(10) unsigned NOT NULL default '0'"
            
    ],
            
    'created_at'          => [
                
    'sorting'   => false,
                
    'inputType' => 'text',
                
    'eval'      => ['rgxp' => 'datim''tl_class' => 'w50 wizard''readonly' => true],
                
    'sql'       => "varchar(10) NOT NULL default ''",
            ],
        
    'note'          => [
                
    'foreignKey'  => 'tl_testapp_update.note',
                
    'inputType' => 'text',
                
    'exclude'   => true,
                
    'search'    => true,
                
    'filter'    => true,
                
    'sorting'   => true,
                
    'flag'      => 1,
                
    'eval'      => ['maxlength' => 255'tl_class' => 'w50','readonly' => true],
                
    'sql'       => "varchar(255) NOT NULL default ''",
                
    'relation'  => array('type'=>'hasOne''load'=>'lazy')
            ], 






    TestAppUpdatel als Zusatztabelle
    PHP-Code:
     'fields'      => [
            
    'id'             => [
                
    'sql' => "int(10) unsigned NOT NULL auto_increment"
            
    ],
            
    'tstamp'         => [
                
    'sql' => "int(10) unsigned NOT NULL default '0'"
            
    ],
            
    'note'          => [
                
    'inputType' => 'text',
                
    'exclude'   => true,
                
    'search'    => true,
                
    'filter'    => true,
                
    'sorting'   => true,
                
    'flag'      => 1,
                
    'eval'      => ['mandatory' => true'maxlength' => 255'tl_class' => 'w50'],
                
    'sql'       => "varchar(255) NOT NULL default ''"
            
    ],        
            
    'version'          => [
                
    'inputType' => 'text',
                
    'exclude'   => true,
                
    'search'    => true,
                
    'filter'    => true,
                
    'sorting'   => true,
                
    'flag'      => 1,
                
    'eval'      => ['mandatory' => false'maxlength' => 255'tl_class' => 'w50'],
                
    'sql'       => "varchar(255) NOT NULL default ''"
            
    ], 

    Ich möchte also, dass das Feld tl_testapp_news.note mit tl_testapp_update.note verknüpft wird. Abgeglichen über das Feld tl_testapp_news.version und tl_testapp_update.version, wenn beide Felder gleich, dann soll Note verknüpft werden.
    Geändert von Snowball (02.08.2020 um 18:11 Uhr)

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

    Standard

    Die Kindtabelle benötigt ein weiteres Feld "pid". Siehe:
    https://github.com/contao/contao/blo...rticle.php#L54
    und
    https://github.com/contao/contao/blo...ticle.php#L169

    Im Config-Abschnitt der dca musst du beibeiden Tabellen zusätzlich vermerken, wer die Parent-Table ist. Und bei der Parenttable musst du analog angeben, welche child-Tabellen die Tabelle hat.
    Schön zu sehen am Beispiel von tl_page im Contao Core. tl_page ist parent und tl_article child.

    Kindtabelle:
    https://github.com/contao/contao/blo...rticle.php#L37


    Elterntabelle:
    https://github.com/contao/contao/blo...l_page.php#L37
    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
  •