Ergebnis 1 bis 12 von 12

Thema: Backend Modul Menülink ändern

  1. #1
    Contao-Nutzer
    Registriert seit
    12.05.2014.
    Beiträge
    39

    Standard Backend Modul Menülink ändern

    Hallo,

    ich bin gerade dabei eine Extension zu erstellen. Ist es möglich mein Navigationspunkt des backend Modules gleich auf ein Datensatz des DCAs zu verlinken?
    Also das Modul besitzt nur ein Datensatz, sodass die Verlinkung nicht erst auf die Liste verlinken soll sondern gleich auf die Palettenansicht.

    Oder kann man das auch anders lösen?

    Freue mich sehr auf eure Antworten.
    Ein schönen Abend noch
    Philipp

  2. #2
    Contao-Nutzer
    Registriert seit
    03.09.2009.
    Ort
    Baunatal
    Beiträge
    122
    Partner-ID
    6087

    Standard

    Du kannst DataContainer auf File setzen. Dann hast du es wie in den Einstellungen.

  3. #3
    Contao-Nutzer
    Registriert seit
    12.05.2014.
    Beiträge
    39

    Standard

    Kannst du mir bitte ein Beispiel dazu geben?
    PHP-Code:
    'config' => array
            (
            
    'dataContainer' => 'Table',
            
    'enableVersioning' => true,
            
    'sql' => array
                (
                
    'keys' => array
                    (
                    
    'id' => 'primary'
                
    )
            ),
        ), 
    Habe ich zu
    PHP-Code:
    'config' => array
            (
            
    'dataContainer' => 'File',
            
    'enableVersioning' => true,
            
    'sql' => array
                (
                
    'keys' => array
                    (
                    
    'id' => 'primary'
                
    )
            ),
        ), 
    ersetzt.
    Es kommt jetzt "Fatal error: Call to undefined method Contao\DC_File::edt() in /htdocs/contao-3.5.6/system/modules/core/classes/Backend.php on line 650"

  4. #4
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hi,

    kuck dir halt einfach mal Dateien in Contao an, die mit 'dataContainer' => 'File', arbeiten. Bedenke aber, dass dann alle "Felder" die du speicherst in der localconfig.php landen/gespeichert werden.

    Alternativ weiß ich aber, dass es das Thema schonmal gab :-)

    https://community.contao.org/de/show...irekt-anzeigen
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  5. #5
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Möchtest du trotzdem die Daten in der Datenbank speichern, dann kannst du natürlich dafür sorgen, dass der Backend-Navigationslink direkt auf die Edit-Ansicht des einen Datensatzes (ID 1?) verweist. Du kennst ja die URL, die steht ja da, wenn du editierst ;-)

    Dann behelfen wir uns einfach dem "getUserNavigation" Hook. Beispiel:

    PHP-Code:
    // config.php
    $GLOBALS['TL_HOOKS']['getUserNavigation'][] = ['DeineHelperklasse''direktLinkZuMeinemModul']; 
    PHP-Code:
    // DeineHelperKlasse.php

    class DeineHelperklasse
    {
        public function 
    direktLinkZuMeinemModul($modules)
        {
            
    $modules['content']['modules']['meinmodul']['href'] = specialchars(
                
    'contao/main.php?do=calendar&table=tl_calendar&id=3&act=edit' .
                
    '&rt=' REQUEST_TOKEN .
                
    '&ref=' TL_REFERER_ID
            
    );

            return 
    $modules;
        }

    Natürlich musst du die URL und den Array-Key von
    PHP-Code:
    $modules 
    auf deine Gegebenheiten anpassen. Aber das sollte dir helfen :-)
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  6. #6
    Contao-Nutzer Avatar von miniA4kuser
    Registriert seit
    14.11.2013.
    Beiträge
    130

    Standard

    Hallo Toflar

    Danke für das Beispiel mit dem HOOK, konnte ich direkt gebrauchen und den Umweg im DCA-file in die Tonne treten...
    Tippfehler unterliegen nicht dem Copyright und können frei weitergegeben werden.

  7. #7
    Contao-Nutzer
    Registriert seit
    12.05.2014.
    Beiträge
    39

    Standard

    Danke, ich habe jetzt alles so gemacht wie du geschrieben hast.

    config.php:
    PHP-Code:
    ...
    $GLOBALS['TL_HOOKS']['getUserNavigation'][] = ['Helper''direktLinkZuMeinemModul']; 
    Helper.php:
    PHP-Code:
    class Helper 
        public function 
    direktLinkZuMeinemModul($modules
        { 
            
    $modules['content']['modules']['status']['href'] = specialchars
                
    'contao/main.php?do=status&table=tl_kita_status&id=1&act=edit' 
                
    '&rt=' REQUEST_TOKEN 
                
    '&ref=' TL_REFERER_ID 
            
    ); 

            return 
    $modules
        } 

    muss die Helper.php ins config Verzeichnis?

    Leider kommt eine Fehlermeldung das die Klasse nicht gefunden wird

    Code:
    Warning: in_array() expects parameter 2 to be array, null given in system/modules/core/library/Contao/System.php on line 140
    #0 [internal function]: __error(2, 'in_array() expe...', '/mnt/weba/e2/06...', 140, Array)
    #1 system/modules/core/library/Contao/System.php(140): in_array('getInstance', NULL)
    #2 system/modules/core/classes/BackendUser.php(583): Contao\System->import('Helper')
    #3 system/modules/core/controllers/BackendMain.php(228): Contao\BackendUser->navigation()
    #4 system/modules/core/controllers/BackendMain.php(135): Contao\BackendMain->output()
    #5 contao/main.php(20): Contao\BackendMain->run()
    #6 {main}
    Fatal error: Class 'Helper' not found in /mnt/weba/e2/06/51012206/htdocs/contao-3.5.6/system/modules/core/library/Contao/System.php on line 140
    Was ist denn da falsch?

  8. #8
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Du musst deine Klasse über den Autoloader registrieren
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  9. #9
    Contao-Nutzer Avatar von miniA4kuser
    Registriert seit
    14.11.2013.
    Beiträge
    130

    Standard

    Zitat Zitat von the_scrat Beitrag anzeigen
    Du musst deine Klasse über den Autoloader registrieren
    Also ich habe nur die Datei autoload.php im config-Verzeichnis meiner Extension editiert:
    PHP-Code:
    /**
     * Register the classes
     */
    ClassLoader::addClasses(array
    (
        
    // Classes
        
    'Contao\Helper' => 'system/modules/meineExtension/classes/Helper.php'
    )); 
    Oder hast du das anders gemeint?
    Tippfehler unterliegen nicht dem Copyright und können frei weitergegeben werden.

  10. #10
    Contao-Nutzer
    Registriert seit
    12.05.2014.
    Beiträge
    39

    Standard

    Ich habe jetzt wie the_scrat verlinkt hat gelöst
    Bekomme ich den Button "Speichern und neu" irgendwie weg?

  11. #11
    Contao-Nutzer Avatar von miniA4kuser
    Registriert seit
    14.11.2013.
    Beiträge
    130

    Standard

    Denke die Diskussion in folgendem Thread wird deine Fragen beantworten: Mehrfachauswahl-eigene-Aktionen
    Tippfehler unterliegen nicht dem Copyright und können frei weitergegeben werden.

  12. #12
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    In deinem Fall kannst du dem DCA auch einfach sagen, dass er "closed" ist, also keine neuen Einträge erfasst werden dürfen:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_meinetabelle']['config']['closed'] = true
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

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
  •