Ergebnis 1 bis 6 von 6

Thema: Toggle Icon in eigenem Modul

  1. #1
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard Toggle Icon in eigenem Modul

    Ich verstehe nicht wie ich die Toggle Funktion in mein BE-Modul bekommen soll.
    Die Anleitung unter Contao-Kochbuch hilft mir nicht weiter.

    Einfügen des Feldes funktioniert so nicht wirklich:
    Code:
    $GLOBALS['TL_DCA']['tl_konzertliste']['fields']['published'] = array
    	(
    	'label'               => &$GLOBALS['TL_LANG']['tl_konzertliste']['published'],
    	'exclude'             => true,
    	'filter'              => true,
    	'inputType'           => 'checkbox',
    	'sql'                 => "char(1) NOT NULL default ''"
    	),
    Auf diese Weise wird bei Aktualisierung der DB gar kein Spaltenname erkannt. Da steht dann nur:
    Code:
    ALTER TABLE `tl_konzertliste` ADD `0` char(1) NOT NULL default '';
    Müsste das nicht so beginnen?:
    Code:
    	'published' => array
    		(
    			'label'		=> &$GLOBALS['TL_LANG']['tl_konzertliste']['published'],
    			'inputType'	=> 'text',
    			usw.

    Auch die operations sehen doch eigentlich ganz anders aus. Der Code zum togglen aus der Anleitung ist auch völlig anders aufgebaut als z.B. edit oder dannach show, wie unten zu sehen:

    Code:
    	'operations'	=> array
    	(
    		'edit'	=> array
    		(
    			'label'	=> &$GLOBALS['TL_LANG']['tl_konzertliste']['edit'],
    			'href'		=> 'act=edit',
    			'icon'		=> 'edit.gif'
    		),
    		
    		$GLOBALS['TL_DCA']['tl_konzertliste']['list']['operations']['toggle'] = array
    		(
    			'label'           => &$GLOBALS['TL_LANG']['tl_konzertliste']['toggle'],
    			'icon'            => 'visible.gif',
    			'attributes'        => 'onclick="Backend.getScrollOffset();return AjaxRequest.toggleVisibility(this,%s)"',
    			'button_callback'   => array('tl_konzertliste', 'toggleIcon')
    		),
    		'show'	=> array
    		(
    			'label'	=> &$GLOBALS['TL_LANG']['tl_konzertliste']['show'],
    			'href'		=> 'act=show',
    			'icon'		=> 'show.gif',
    			'attributes'	=> 'style="margin-right:3px"'
    		)
    		)
    	),
    Ist das Beispiel für eine andere Version? Ich verwedende die 3.3.5
    Wie müsste das eigentlich aussehen?
    Ich würde mich sehr über Hilfe freuen.
    Geändert von Spelmann (16.10.2014 um 17:29 Uhr)

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

    Standard

    Das musst du in deinem DCA so machen wie die restlichen Felder.
    Im Kochbuch ist zur Verdeutlichung die komplette Array Pfadtiefe angegeben.

    Das letzte Beispiel müsste dann so sein:
    PHP-Code:
    'operations'    => array
        (
            
    'edit'    => array
            (
                
    'label'    => &$GLOBALS['TL_LANG']['tl_konzertliste']['edit'],
                
    'href'        => 'act=edit',
                
    'icon'        => 'edit.gif'
            
    ),
            
            
    'toggle' = array
            (
                
    'label'           => &$GLOBALS['TL_LANG']['tl_konzertliste']['toggle'],
                
    'icon'            => 'visible.gif',
                
    'attributes'        => 'onclick="Backend.getScrollOffset();return AjaxRequest.toggleVisibility(this,%s)"',
                
    'button_callback'   => array('tl_konzertliste''toggleIcon')
            ),
            
    'show'    => array
            (
                
    'label'    => &$GLOBALS['TL_LANG']['tl_konzertliste']['show'],
                
    'href'        => 'act=show',
                
    'icon'        => 'show.gif',
                
    'attributes'    => 'style="margin-right:3px"'
            
    )
            )
        ), 
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    Ah, ok.
    Vielen Dank!!

    Jetzt bin ich ein gutes Stück weiter

  4. #4
    Contao-Nutzer
    Registriert seit
    08.12.2011.
    Beiträge
    27

    Frage Toggle funktioniert in Tree View nur teilweise

    Ich habe nach dem Vorbild von tl_page einen Tree View erstellt. Doch weder mit dieser Vorlage, noch mit der Anleitung im Contao Kochbuch funktioniert das Toggle 100%-ig.

    Wenn man das Auge anklickt wird das Label-Icon nicht immer aktualisiert. Interessant ist, dass es bei allen Blättern im Baum funktioniert, nur bei inneren Knoten wird das Icon nicht aktualisiert.

    Im folgenden Bild habe ich alle Einträge per Toggle von Aktiv auf Inaktiv umgeschalten, aber nur die Label-Icons der Blätter wurden auch geändert.
    Toogle.png
    Man sieht die Differenz der Label-Icons zu den Icons der Toggle-Actions.

    Die Datensätze werden aber in der Datenbank tatsächlich geschrieben, was man nach einem Browserrefresh sieht, dann sind die Label-Icons und Toggle-Icons auch synchron.

    Kennt einen Tip, was schief laufen könnte? Ich habe den Quellcode dazu bei GitHub hochgeladen unter https://github.com/falkoschumann/contao-treeview

  5. #5
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Zitat Zitat von Falcon Beitrag anzeigen
    Wenn man das Auge anklickt wird das Label-Icon nicht immer aktualisiert. Interessant ist, dass es bei allen Blättern im Baum funktioniert, nur bei inneren Knoten wird das Icon nicht aktualisiert.
    Ich stehe gerade vor demselben Problem und bin noch nicht dahinter gekommen, wie Contao die Label-Icons in der Seitenstruktur aktualisiert, wenn die Funktion toggleVisibility ausgeführt wird. Wenn ich den Toggle-Button anklicke verschwindet mein selbstdefiniertes Label-Icon. Wo in tl_page finde ich den Code der für die Änderung des Label-Icons verantwortlich ist?

    EDIT: Habe was gefunden. Mich schon über dieses Attribut data-icon gewundert. Muß jetzt wahrscheinlich den ganzen Pfad dort angeben, weil Contao sonst in das themes-Verzeichnis geht.
    HTML-Code:
    <img src="system/themes/flexible/images/grade_16.png" alt="" style="margin-left:20px" data-icon="grade_16.png" data-icon-disabled="grade_16_disabled.png" width="16" height="16">
    Geändert von Samson1964 (09.09.2018 um 19:31 Uhr)
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  6. #6
    Contao-Nutzer Avatar von Tastaturberuf
    Registriert seit
    14.03.2011.
    Ort
    Berlin
    Beiträge
    197
    User beschenken
    Wunschliste

    Standard

    Ich kann euch dafür nur wärmstens contao-haste empfehlen: https://github.com/codefog/contao-ha...ggle-operation

    PHP-Code:
    // Regular "toggle" operation but without "icon" and with the haste specific params
    $GLOBALS['TL_DCA']['tl_mytable']['list']['operations']['toggle'] = [
        
    'label'                 => &$GLOBALS['TL_LANG']['tl_mytable']['toggle'],
        
    'attributes'            => 'onclick="Backend.getScrollOffset();"',
        
    'haste_ajax_operation'  => [
            
    'field'     => 'published',
            
    'options'    => [
                [
                    
    'value'     => '',
                    
    'icon'      => 'invisible.gif'
                
    ],
                [
                    
    'value'     => '1',
                    
    'icon'      => 'visible.gif'
                
    ]
            ]
        ]
    ]; 
    Geändert von Tastaturberuf (11.09.2018 um 10:44 Uhr)
    Tastaturberuf | Code with ♥ and Contao.

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
  •