Ergebnis 1 bis 19 von 19

Thema: Eigenes Inhaltselemnt erstellen

  1. #1
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard Eigenes Inhaltselemnt erstellen

    Ich habe mir ein Modul erstellt mit dem ichGPX Daten für Wanderwege eintragen kann und im Frontend ausgebe.

    Jetzt möchte ich das Modul gerne so erweitern, dass ich einen einzelnen Datensatz auswählen kann
    und dann ein Template tl_gpx_details.tpl auswähle und das als Inhaltselemt einbinden kann mit der Detailansicht und den GPX Daten.

    Wie kann ich das machen?

    Ich finde keinen vernünftigen Beispiel Code oder ein Tutorial wie so etwas geht.
    Auch in dem Buch (Das offizielle Contao Buch) das ich mir extra gekauft habe gibt es kein Tutorial oder Beispiel Projekt.

    Ich Hoffe das mir einer der Profis eine Antwort geben kann.

    Mfg Maffy

  2. #2
    Contao-Fan Avatar von Birden
    Registriert seit
    15.01.2011.
    Beiträge
    768

    Standard

    Ich bin kein Entwikler, aber über Module ließe sich dies wohl ins Inhaltselement integrieren ...

  3. #3
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Falls du Contao 2.11 verwendest, könnte dich hier der [dma_elementgenerator] interessieren.

    Bei Contao kannst du dir grundsätzlich aber immer bei anderen Erweiterungen abschauen, wie das ganze funktioniert.
    Geändert von Flex (10.11.2012 um 20:37 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard

    Eigendlich bräuchte ich dafür nur eine tl_modul.php oder sowas ähnlich mit einem Auswahlfeld wo ich eine Template
    auswählen kann und oder einen einzelnen Datensatz aus der DB auswählen kann.

    Beim Googeln finde ich leider keine vernünftige Dokumentation.

  5. #5
    Gesperrt
    Registriert seit
    03.04.2010.
    Ort
    Mosbach
    Beiträge
    338

    Standard

    Ehrlich, das ist Quatsch! Ich selbst versuche mir gerade das Entwickeln von Modulen beizubringen und Google hilf da sehr sehr viel. Alles nicht klar, aber das was du willst findest du auch im 'Tagebuch'. Google nach > contao tagebuch wiki < und du wirst fündig.


    cu.Oden

  6. #6
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard

    Also mal ehrlich, das ist wieder eine tolle Antwort.
    Offenbar wird hier im Forum nur gegen Bezahlung geholfen.

    Hier ist mal der Aktuelle Stand:

    Ich möchte Wanderwege in eine Datenbank eintragen und als Inhaltselemnt mit einer Karte unter einen Artikel einfügen.

    BA Modul:
    Ich habe nun ein BA Modul wo ich Daten eingeben und bearbeiten kann.

    FE Modul:
    Nun brauche ich ein Frontend Modul für das Inhaltselemnt
    mit dem ich einen einzelnen Datensatz aus der DB Tabelle auswählen kann
    und als Inhaltselement mit einem eigenen Template einfügen kann.

    Das habe ich im Augenblick mit dem Elementgenerator eingefügt.
    Damit kann ich aber nicht auf meine eigene Datenbank Tabelle zugreifen und einen einzelne Datensatz auswählen.

    Mfg Maffy
    Angehängte Grafiken Angehängte Grafiken
    Angehängte Dateien Angehängte Dateien
    Geändert von maffy (12.11.2012 um 10:33 Uhr) Grund: zip file hinzugefügt

  7. #7
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von maffy Beitrag anzeigen
    Offenbar wird hier im Forum nur gegen Bezahlung geholfen.
    Offtoppic:
    ICH BIN REICH

    Mal scherz beiseite.. meinst du das ernst?
    Ist auf jeden Fall nicht gerade die passende Art hier um hilfe zu bitten wie ich finde.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  8. #8
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard

    Ich habe diese Tutorials gefunden aber:
    Das CD Verwaltung tutorial gibt es nur auf Englisch.
    Das Tutorial Slidshow ist nicht dokumentiert.

    Ansosnten habe zu meinem Problem ein Inhalts Element Modul zu erstellen nichts weiteres gefunden.

  9. #9
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.522
    User beschenken
    Wunschliste

    Standard

    Wenn es denn wirklich ein CE werden soll, im Teil 12 der Screencast Reihe gehts um Inhaltelemente.
    Die Serie ist für Contao 2.
    http://de.contaowiki.org/How_to_be%2...nhaltselemente
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  10. #10
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard

    Danke für den Hinweis.

    Zitat Zitat von BugBuster Beitrag anzeigen
    Wenn es denn wirklich ein CE werden soll, im Teil 12 der Screencast Reihe gehts um Inhaltelemente.
    Die Serie ist für Contao 2.
    http://de.contaowiki.org/How_to_be%2...nhaltselemente

    Obwohl ich bereits seit Stunden bei Google suche, habe ich diese Übersichts Seite noch nicht gefunden.

    Ich werde mir das mal auf der Seite anschauen.

    Mfg Maffy

  11. #11
    Gesperrt
    Registriert seit
    03.04.2010.
    Ort
    Mosbach
    Beiträge
    338

    Standard

    Klick doch einfach nur auf den Link. Das ist doch die Liste! Da gibt es dann noch einen Videolink-Link. Und wenn du da drauf klickst, landest du hier - http://www.youtube.com/watch?v=Vp8I3...DE9846C628F23D


    cu.Oden

  12. #12
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard

    Die Seite habe ich gesehen und gespeichert.

    Ich meinte nur das ich offenbar selber die falschen suchbegriffe eingebe und deshalb nicht fündig werde.

    Gibt es für dieses alte Tutorial auch noch irgendwo die Daten zum herunterladen?

    http://web.archive.org/web/201007021...-erstellen-ii/

  13. #13
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard

    Ich habe mir den Screencast durchgelsen und angeschaut.

    Der Aktuell Stand ist nun so das ich ein eigenes Inhaltselement öffnen kann, eine Überschrift eingeben kann und die Daten in ein einem Select Feld angezeigt werden.

    Im Template wird die Überschrift h1 ausgegeben.

    Nun muss ich noch scheun, warum in der wildcard kein Titel erscheint.
    Und wie ich die Auswahl aus dem Select Feld an eine Abfrage übergeben kann und diese dann den Datensatz in der Templatr anzeigenlässt.


    Code:
    <?php
    
    /**
     * Table tl_content
     */
    $GLOBALS['TL_DCA']['tl_content']['palettes']['gpxviewer'] = '{type_legend},type,headline;{Wanderwege},gpxviewer;{protected_legend:hide},protected;{expert_legend:hide},guests,invisible,cssID,space';
    
    
    //Edit fields
    $GLOBALS['TL_DCA']['tl_content']['fields']['gpxviewer'] = array(
    	'label'					=> &$GLOBALS['TL_LANG']['tl_module']['gpxviewer'],
    	'inputType'				=> 'select',
    	'foreignKey'			=> 'tl_gpx_tracks.title',
    	'chosen'             	=> true,
    	'eval'					=> array('mandatory'=>true)
    );
    
    
    ?>
    Code:
    <?php
    
    /*
    ContentGPXViewer.php
    */
    
    class ContentGPXViewer extends ContentElement
    {
    	/**
    	 * Template
    	 * @var string
    	 */
    	protected $strTemplate = 'ce_gpx_viewer';
    
    
      public function generate() {
        if (TL_MODE == 'BE') {
          $objTemplate = new BackendTemplate('be_wildcard');
    
          $objTemplate->wildcard = '### Modul: GPXViewer ###';
          $objTemplate->title = 'Wanderwegverwaltung - GPX Viewer';
          $objTemplate->id = $this->id;
          $objTemplate->link = $this->title;
          $objTemplate->href = 'contao/main.php?do=gpxviewer&act=edit&id=' . $this->id;
    
          return $objTemplate->parse();
    	}
    	return parent::generate();
      }
    
    
    
    	protected function compile()
    	{
    			
    		// Fetch all data from the database
    		
    		//`thema` varchar(125) NOT NULL default '',
      		// title` varchar(125) NOT NULL default '',
      		//`description` text NULL,
      		//`gpxfile` varchar(64) NOT NULL default '',  
      		//`image` varchar(256) NOT NULL default '',  
    		
    		
    		$row = array();
       		$objtracks = $this->Database->prepare("SELECT 
    											   id,title,thema,description,gpxfile 
    											   FROM tl_gpx_tracks 
    											   WHERE id=? 
    											   ORDER BY id ASC")->execute($this->wanderwege);
    		
    		// Put CDs of current category into array
    		while ($objtracks->next())
    		{
    			$arrtracks[] = array
    			(
    				'title' => $objtracks->title,
    				'thema' => $objtracks->thema,
    				'description' => $objtracks->description,
    				'gpxfile' => $objtracks->gpxfile,
    			);
    		}
    		
    		
    		// Assign data to the template
    		$this->Template->wanderwege = $row;
    		
    
    	}
     
    }
    ?>

  14. #14
    Gesperrt
    Registriert seit
    03.04.2010.
    Ort
    Mosbach
    Beiträge
    338

    Standard

    Ich versuche mal zu helfen, obwohl ich auch erst am Anfang stehe.

    PHP-Code:
            $row = array();
               
    $objtracks $this->Database->prepare("SELECT
                                                   id,title,thema,description,gpxfile
                                                   FROM tl_gpx_tracks
                                                   WHERE id=?
                                                   ORDER BY id ASC"
    )->execute($this->wanderwege);

            
    // Put CDs of current category into array
            
    while ($objtracks->next())
            {
                
    $arrtracks[] = array
                (
                    
    'title' => $objtracks->title,
                    
    'thema' => $objtracks->thema,
                    
    'description' => $objtracks->description,
                    
    'gpxfile' => $objtracks->gpxfile,
                );

                
    $row[] = $arrtracks;
            }


            
    // Assign data to the template
            
    $this->Template->wanderwege $row
    Die Zeile '$row[] = $arrtracks;' muß noch mit rein.
    Ob das aber so funktionieren wird... Im Query übergibst du $this->wanderwege, fragst aber die ID ab?! Versuche es mal mit $this->id.

    Ins Template kommt dann das rein:
    PHP-Code:
    <?php foreach ($this->wanderwege as $weg): ?>

    Titel: <?php echo $weg['title']; ?><br />
    Thema: <?php echo $weg['thema']; ?><br />
    Beschreibung: <?php echo $weg['description']; ?><br />
    gpx-File: <?php echo $weg['gpxfile']; ?>

    <?php endforeach; ?>
    Mit Wildcards muß ich mich selbst noch beschäftigen. Ansonsten hoffe ich mal, daß es dann so funktionieren wird.


    cu.Oden

  15. #15
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard

    Im Anhang ist mal der aktuelle Stand des Modules.

    Ich kann Datensätze anlegen und bearbeiten,
    Inhaltselement auswählen und einen Datensatz suchen oder Auswählen,

    Ich komme mit der Ausgabe der Daten in das Template leider immer noch nicht klar.

    Mfg Maffy
    Angehängte Dateien Angehängte Dateien

  16. #16
    Gesperrt
    Registriert seit
    03.04.2010.
    Ort
    Mosbach
    Beiträge
    338

    Standard

    Sollte jetzt gehen. Die Frage ist: Contao 2.11.x oder 3? Ich hab hier die 3, daher sind jetzt ein paar Autoload-Dateien dabei. Die ev. löschen.
    Ansonsten ruft du in dca/tl_content.php ein options_callback auf. Der muß in der selben Datei stehen. Entsprechend kann dann die Datei aus der Wurzel raus.
    Dann brauchst du erst die ID vom Inhaltselement, wo es eingebunden ist. Dann kannst du mit dieser ID den passenden Datensatz aus deiner Tabelle holen und ausgeben. Das machen wir in dem Array, was bei einem Datensatz aber nicht notwendig ist. Da kann man auch direkt drauf zugreifen.
    Schau es dir an.

    ...noch was: Speichere deine Dateien als UTF-8 ab. Dann gehen auch die Sonderzeichen weg.


    cu.Oden
    Angehängte Dateien Angehängte Dateien

  17. #17
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard

    Danke für deine Hilfe.

    Jetzt muss ich nur noch die Javascript Dateien für den GPX Viewer und die Googel Map Karte in das Template einbinden.
    Wenn es soweit funktioniert werde ich alles hier reinladen.

    Kann man den Pfad zum Javasript direkt in die Config reinmachen?

  18. #18
    Gesperrt
    Registriert seit
    03.04.2010.
    Ort
    Mosbach
    Beiträge
    338

    Standard

    Ja das geht.
    Code:
    $GLOBALS['TL_JAVASCRIPT'][] = '/system/modules/meinmodul/html/js/common.js'
    Hier steht es auch noch mal beschrieben: http://tobias-seckinger.de/2011/04/c...dul-einbinden/

    Du brauchst halt einen eigenen Ordner (html, files, etc.) bei cto2 und bei cto3 einen Ordner der assets heißen muß. Das ins Root deines Moduls.


    cu.Oden

  19. #19
    Contao-Nutzer
    Registriert seit
    01.10.2012.
    Beiträge
    44

    Standard

    Habe es nun soweit zum laufen gebracht.
    Danke für die Hilfe.

    Nun werde ich das ganze noch um ein paar weitere Felder erweitern.
    Die Übersicht und Sortierung im Backend gefällt mir auch noch nicht so recht.

    gpxviewer.jpg

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
  •