Contao-Camp 2024
Ergebnis 1 bis 27 von 27

Thema: Modul-ID anzeigen im Backend

  1. #1
    Contao-Nutzer Avatar von siebenvier
    Registriert seit
    26.08.2010.
    Ort
    Potsdam
    Beiträge
    80

    Standard Modul-ID anzeigen im Backend

    Hallo,

    in diesem Beitrag aus dem Contao-Forum findet man eine tolle Möglichkeit, Artikel- bzw. Seiten-IDs im Backend darzustellen.

    Allerdings gibt es ein Anzeigeproblem für Modul-IDs seit Contao 2.9.0.
    Kann mir da jemand einen Tipp geben, wie man folgende Zeile modifizieren kann, um die Modul-ID in allen Themes anzeigen zu lassen?

    Code:
    /*
     * Show module id
     */
    $GLOBALS['TL_DCA']['tl_module']['list']['label']['fields'][] = 'id';
    $GLOBALS['TL_DCA']['tl_module']['list']['label']['format'] = '%s <span style="color: #A3A3A3; padding-left: 3px;">[%s, ID: %s]</span>';
    Merci
    Geändert von Sebastian (01.03.2011 um 14:24 Uhr)
    Vergessen du musst, was früher du gelernt!

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

    Standard

    Ganz so einfach geht das nicht mehr. Durch direkte Anpassung an der DCA Definition habe ich die Anzeige schon wieder hinbekommen.
    Mal sehen ob ich das auch ohne Hack und updatesicher irgendwie gebacken bekomme.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

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

    Standard Modul ID anzeigen in Übersicht in Contao 2.9.1

    Ok, trage folgende Zeile in die dcaconfig.php ein:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_module']['list']['sorting']['child_record_callback'] = array('tl_moduleid''listModule'); 
    Lege im Verzeichnis /system/modules ein neues an. z.b. "zzz_moduleid",
    in /system/modules/zzz_moduleid legst du eine Datei an mit Namen "tl_moduleid.php" mit folgendem Inhalt:
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');



    /**
     * Class tl_moduleid
     * Add ID in the module list
     */
    class tl_moduleid extends Backend
    {

            
    /**
             * Import the back end user object
             */
            
    public function __construct()
            {
                    
    parent::__construct();
            }


            
    /**
             * List a front end module
             * @param array
             * @return string
             */
            
    public function listModule($row)
            {
                    return 
    '<div style="float:left;">'$row['name'] .' <span style="color:#b3b3b3; padding-left:3px;">['
    .$GLOBALS['TL_LANG']['FMD'][$row['type']][0] .']</span> (ID:' .$row['id']. ")</div>\n";
            }
    }

    ?>
    Das ganze sieht dann so aus:


    Edit: Wegen umbruch auf 2 Zeilen verteilt die Return Ausgabe, sollte alles in einer Zeile stehen
    Geändert von BugBuster (01.11.2010 um 18:23 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  4. #4
    Contao-Nutzer Avatar von siebenvier
    Registriert seit
    26.08.2010.
    Ort
    Potsdam
    Beiträge
    80

    Standard

    Hallo BugBuster,

    vielen Dank für deine schnelle Antwort und natürlich für deine Mühe!

    Ich habe dein Tutorial umgesetzt, habe aber einen Fehler in der Darstellung:


    Anscheinend stimmt bei mir was mit dem Wert $row['type'] nicht:
    Code:
    ['. $GLOBALS['TL_LANG']['FMD'][$row['type']][0] .']
    Die ID ($row['id']) haut hin nur die Modulart wird nicht angezeigt.
    Ich habe das grad bei 2 unterschiedlichen Contao-Installationen getestet mit gleichem Ergebnis ...

    Was kann das sein?
    Geändert von siebenvier (02.11.2010 um 10:21 Uhr)
    Vergessen du musst, was früher du gelernt!

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

    Standard

    Diese Art kenne ich nur, wenn die Module deaktiviert sind.
    Welche Contao Version hast du?

    Und nochwas, das muss alles in eine Zeile!
    Also ....$GLOBALS['TL_LANG']['FMD'][$row['type']][0]....
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  6. #6
    Contao-Nutzer Avatar von siebenvier
    Registriert seit
    26.08.2010.
    Ort
    Potsdam
    Beiträge
    80

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Diese Art kenne ich nur, wenn die Module deaktiviert sind.
    Welche Contao Version hast du?

    Und nochwas, das muss alles in eine Zeile!
    Also ....$GLOBALS['TL_LANG']['FMD'][$row['type']][0]....

    Ich hatte doch tatsächlich noch einen Umbruch in der tl_moduleid.php beim return drin.
    Jetzt klappt es prima

    Vielen Dank nochmal für deine Hilfe!
    Geändert von siebenvier (02.11.2010 um 10:32 Uhr)
    Vergessen du musst, was früher du gelernt!

  7. #7
    Contao-Nutzer
    Registriert seit
    24.01.2011.
    Beiträge
    33

    Standard

    Hallo,
    ich habe mich riesig gefreut über diese Hilfestellung, weil es manchmal sehr umständlich ist, über die Angaben in der system-log herauszufinden, was bearbeitet wurde.
    Gerade, wenn mehrere Leute im Backend rumwuseln, wäre es eine sehr praktische Funktion.
    Hmm... habe das ganze brav über FTP eingefügt, incl. der Modul-Datei.
    Leider ändert sich in der Anzeige gar nix.
    Positiv formuliert, es sieht nicht so aus, als hätte ich mir mein Contao damit zerschossen.
    Hat jemand ne Ahnung, was ein DAU falsch gemacht haben könnte?
    Vielen Dank
    newbiene

  8. #8
    Contao-Urgestein Avatar von Sebastian
    Registriert seit
    19.06.2009.
    Ort
    Stuttgart
    Beiträge
    3.361

    Standard

    HI

    Blöde Frage: Bist du dir sicher, dass du es an der richtigen Stelle eingefügt hast?

    Sebastian
    Ich arbeite beim Linux-Systemhaus ETES in Stuttgart

  9. #9
    Contao-Nutzer
    Registriert seit
    24.01.2011.
    Beiträge
    33

    Standard

    Die Frage ist leider sowas von überhaupt nicht blöd , Sebastian.
    Ich sollte wohl grundsätzlich nicht solche Versuche vor der ersten Tasse Kaffee starten.
    Die Seite liegt auf 2 Servern........
    Ich würde am liebsten im Erdboden versinken.
    Allerdings klappt das mit der Anzeige der Modulnummer trotzdem noch nicht.
    Den Zeilenumbruch, habe ich (hoffentlich) entfernt; jedenfalls ist im Proton die nächste Zeilenzahl erst danach angegeben.
    Werde es aber nochmal in nem anderen Editor testen.
    Vorerst schon mal vielen Dank
    Newbiene

  10. #10
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.681
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Ok, trage folgende Zeile in die dcaconfig.php ein:....
    Hallo BugBugster,

    hast Du eine Idee bei dem Thread https://www.contao-community.de/show...686#post227686 wie man die Seitennamen anzeigen lassen kann??

    Gruss zonky

  11. #11
    Contao-Nutzer
    Registriert seit
    09.09.2011.
    Beiträge
    213

    Standard

    Inzwischen ist ja der ursprünglich zitierte Beitrag von Nina Gerling hierhin gewandert.

    Da steht im zweiten Kommentar darunter :

    Zitat Zitat von Daniel Ritter | 22.02.2010
    Meine Version:
    Code:
    /*
     * Show page id
     */
    $GLOBALS['TL_DCA']['tl_page']['list']['label']['fields'][] = 'id';
    $GLOBALS['TL_DCA']['tl_page']['list']['label']['format'] = '%s <span style="color: #A3A3A3; padding-left: 3px;">[ID: %s]</span>';
    /*
     * Show article id
     */
    $GLOBALS['TL_DCA']['tl_article']['list']['label']['fields'][] = 'id';
    $GLOBALS['TL_DCA']['tl_article']['list']['label']['format'] = '%s <span style="color: #A3A3A3; padding-left: 3px;">[%s, ID: %s]</span>';
    /*
     * Show module id
     */
    $GLOBALS['TL_DCA']['tl_module']['list']['label']['fields'][] = 'id';
    $GLOBALS['TL_DCA']['tl_module']['list']['label']['format'] = '%s <span style="color: #A3A3A3; padding-left: 3px;">[%s, ID: %s]</span>';
    OK! Das ist jetzt auch schon 'ne Weile und ein paar Contao-Versionen her – aber es passt in die Zeit dieses Themas hier und wahrscheinlich hat es mal funktioniert.

    Wäre das nicht ein Ansatz?

    Und dann hätte ich da noch eine andere Idee ... aber dazu eröffne ich wohl am besten ein neues Thema....
    Geändert von wanst (11.05.2019 um 12:17 Uhr)

  12. #12
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.681
    User beschenken
    Wunschliste

    Standard

    http://www.e-spin.de/dcaconfig-editor.html

    IDs der Module anzeigen

    Leider geht die Anzeige bei den Moduln nicht so einfach wie bei Seiten und Artikeln - hier muss eine eigene Callback-Klasse geschrieben werden - mehr dazu im Contao-Forum>>

  13. #13
    Contao-Fan
    Registriert seit
    28.11.2011.
    Ort
    Nürnberg
    Beiträge
    691

    Standard

    Ich habe in der DCA_config.php diese Zeile eingefügt:
    $GLOBALS['TL_DCA']['tl_module']['list']['sorting']['child_record_callback'] = array('tl_moduleid', 'listModule');
    habe ein eigenes Modul angelegt:
    mit /zzz_moduleid
    habe mit dem Creator eine Class erzeugt:
    und habe diese Datei (UTF-8 ohne Bom):
    HTML-Code:
    /<?php if (!defined('TL_ROOT')) die('You can not access this file directly!'); 
    
    
    
    /** 
     * Class tl_moduleid 
     * Add ID in the module list 
     */ 
    class tl_moduleid extends Backend 
    { 
    
            /** 
             * Import the back end user object 
             */ 
            public function __construct() 
            { 
                    parent::__construct(); 
            } 
    
    
            /** 
             * List a front end module 
             * @param array 
             * @return string 
             */ 
            public function listModule($row) 
            { 
                    return '<div style="float:left;">'. $row['name'] .' <span style="color:#b3b3b3; padding-left:3px;">[' .$GLOBALS['TL_LANG']['FMD'][$row['type']][0] .']</span> (ID:' .$row['id']. ")</div>\n"; 
            } 
    } 
    und trotzdem kommt der parameter 2 Fehler.

    meine Seite:
    https://www.eventcorner.de/contao/ma...tl_module&id=3

    Kann mir da jemand einen Tip geben? Danke Im Voraus!

  14. #14
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.681
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von my-om Beitrag anzeigen
    und trotzdem kommt der parameter 2 Fehler.
    da du die Zugangsdaten für das BE nicht mitlieferst, bitte die Fehlermeldung posten ;-)


    edit: die Autoload-Generierung mal angestossen?

  15. #15
    Contao-Fan
    Registriert seit
    28.11.2011.
    Ort
    Nürnberg
    Beiträge
    691

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    da du die Zugangsdaten für das BE nicht mitlieferst, bitte die Fehlermeldung posten ;-)


    edit: die Autoload-Generierung mal angestossen?
    Hier die beiden Fehlermeldungen - Sorry...

    HTML-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...', '/var/customers/...', 140, Array)
    #1 system/modules/core/library/Contao/System.php(140): in_array('getInstance', NULL)
    #2 system/modules/core/drivers/DC_Table.php(4283): Contao\System->import('tl_moduleid')
    #3 system/modules/core/drivers/DC_Table.php(378): Contao\DC_Table->parentView()
    #4 system/modules/core/classes/Backend.php(650): Contao\DC_Table->showAll()
    #5 system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('themes')
    #6 contao/main.php(20): Contao\BackendMain->run()
    #7 {main}
    
    Fatal error: Uncaught exception Error with message Class 'tl_moduleid' not found thrown in system/modules/core/library/Contao/System.php on line 140
    #0 system/modules/core/drivers/DC_Table.php(4283): Contao\System->import('tl_moduleid')
    #1 system/modules/core/drivers/DC_Table.php(378): Contao\DC_Table->parentView()
    #2 system/modules/core/classes/Backend.php(650): Contao\DC_Table->showAll()
    #3 system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('themes')
    #4 contao/main.php(20): Contao\BackendMain->run()
    #5 {main}

  16. #16
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.681
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von my-om Beitrag anzeigen
    Class 'tl_moduleid' not found...
    => aktualisiere die Autoload über die Developer-Tools im BE

  17. #17
    Contao-Fan
    Registriert seit
    28.11.2011.
    Ort
    Nürnberg
    Beiträge
    691

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    => aktualisiere die Autoload über die Developer-Tools im BE
    Habe das File erneuert über den Autocreator, leider unverändert.

    Kh

  18. #18
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Hallo,

    was bedeutet folgende Meldung:
    Attempted to load class "tl_module_id" from the global namespace. Did you forget a "use" statement?

    Ich habe in der Datei /system/config/dcaconfig.php folgenden Code:

    PHP-Code:
    <?php

    // Zeige Modul ID im Backend
    $GLOBALS['TL_DCA']['tl_module']['list']['sorting']['child_record_callback'] = array('tl_module_id''listModule');
    und in der Datei /app/Resources/contao/dca/tl_module_id folgenden Code:

    PHP-Code:
    <?php

    /**
     * Class tl_moduleid
     * Add ID in the module list
     */
    $GLOBALS['TL_DCA']['tl_module']['list']['sorting']['child_record_callback'] = array('tl_module_id''listModule');
    class 
    tl_module_id extends tl_module {
      public function 
    listModule($arrRow) {   
        return 
    '<div class="tl_content_left"><span style="color:#A3A3A3;width:50px;display:inline-block;padding-right:3px">[ID: '.$arrRow['id'].'] </span>' $arrRow['name'] . ' <span style="color:#b3b3b3;padding-left:3px">[' . (isset($GLOBALS['TL_LANG']['FMD'][$arrRow['type']][0]) ? $GLOBALS['TL_LANG']['FMD'][$arrRow['type']][0] : $arrRow['type']) . ']</span></div>';
      }
    }
    Wo ist mein Denkfehler?

    ToM

  19. #19

  20. #20
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Herzlichen Dank und ein schönes WE!

    ToM

  21. #21
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Hallo,

    wie würde man denn ein imagemargin mit verschiedenen Werten angeben?
    Beispiel: margin 2,0,0,2
    PHP-Code:
    // Einheit Bildabstände em vorbelegen
    $GLOBALS['TL_DCA']['tl_content']['fields']['imagemargin']['default'] = serialize(['unit' => 'em']);
    // Bildposition vorbelegen
    $GLOBALS['TL_DCA']['tl_content']['fields']['floating']['default'] = 'right'
    ToM

  22. #22
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.681
    User beschenken
    Wunschliste

    Standard

    lass dir mal einen Wert ausgeben

    PHP-Code:
    dump($GLOBALS['TL_DCA']['tl_content']['fields']['imagemargin']....??); 
    und das muss dann da rein

  23. #23
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Hallo,

    Leider erscheint da dann nur null
    Gibts eine andere Möglichkeit, den Inhalt vom array zu bekommen?

    ToM

  24. #24
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Okay, ich hatte Deinen obigen Code im Template ..._full drin, nicht im ..._teaser. Da erscheint, was ich will, nur werde ich daraus nicht schlau:

    Abfrage von dump($GLOBALS['TL_DCA']['tl_content']['fields']; ergibt:

    Unbenannt.PNG

    Wie gebe ich jetzt im DCA Feld einen Standard vor?

    ToM

  25. #25
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.681
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['fields']['imagemargin']['default'] = ['top'=>20'right'=>20'bottom'=>20'left'=>20'unit' => 'px']; 
    probier mal

  26. #26
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Wundervoll, genau so funktioniert es. Danke Dir!

    PHP-Code:
    // Bildabstände und Einheit em vorbelegen
    $GLOBALS['TL_DCA']['tl_content']['fields']['imagemargin']['default'] = ['top'=>0'right'=>0'bottom'=>2'left'=>2'unit' => 'em'];
    $GLOBALS['TL_DCA']['tl_news']['fields']['imagemargin']['default'] = ['top'=>0'right'=>0'bottom'=>2'left'=>2'unit' => 'em'];
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['imagemargin']['default'] = ['top'=>0'right'=>0'bottom'=>2'left'=>2'unit' => 'em']; 
    Ich nehme an, ganz korrekt wäre es, die Settings von /system/config/dcaconfig rauszunehmen und in /app/Resources/contao/dca/tl_xxx zu speichern?

    ToM

  27. #27
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.681
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Nightwing Beitrag anzeigen
    Ich nehme an, ganz korrekt wäre es, die Settings von /system/config/dcaconfig rauszunehmen und in /app/Resources/contao/dca/tl_xxx zu speichern?

    ToM
    ja

    obwhl mich das (auch) nervt, für jede Zeile eine eigene Datei anlegen zu müssen... bis Contao 5 ist es noch lange hin

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Antworten: 22
    Letzter Beitrag: 27.04.2015, 14:56
  2. Antworten: 8
    Letzter Beitrag: 31.01.2011, 09:24
  3. Error-Anzeigen im Backend
    Von sailor2001 im Forum Installation / Update
    Antworten: 4
    Letzter Beitrag: 14.12.2010, 14:34
  4. Datenbank im CT-Backend anzeigen
    Von phreak im Forum Sonstige Erweiterungen
    Antworten: 2
    Letzter Beitrag: 18.08.2010, 15:37
  5. [gelöst]Backend Modul nur bestimmte Datensätze anzeigen
    Von smung0r im Forum Entwickler-Fragen
    Antworten: 3
    Letzter Beitrag: 12.08.2009, 11:35

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •