Ergebnis 1 bis 14 von 14

Thema: Weiteren Menüpunkt in Contao einfügen- wie am Besten?

  1. #1
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    131

    Standard Weiteren Menüpunkt in Contao einfügen- wie am Besten?

    Hallöchen,

    aktuell bereitet mir ein etwas simples Vorhaben doch viele Kopfschmerzen: Ich hätte gerne einfach nur einen Navigationsbereich im Contao-Backend wie "Inhalte" oder "Benutzer".

    Das klappt auch prinzipiell am einfachsten mit folgendem Eintrag unter /system/config/localconfig.php:

    PHP-Code:
    $GLOBALS['BE_MOD']['neuerpunkt'] = [];
    $GLOBALS['BE_MOD'] = array_merge([
        
    'neuerpunkt' => [
            
    '' => [
                
    'tables' => [],
                
    'stylesheet' => 'files/neuerpunkt/backend/backend.css',
            ],
        ],
    ], 
    $GLOBALS['BE_MOD']); 
    Ich wollte jetzt nicht unbedingt ein eigenes Plugin hierfür, aber...

    1.) Wie beeinflusse ich die Position dieses Menüpunktes? Als Admin kommt er als erstes, aber als Mitglied einer Gruppe als letztes? Ich hätte prinzipiell gerne, dass es als letztes oder nach einem bestimmten Punkt (wie bspw. "Inhalte") kommt.
    2.) Wie sonst bekommt man einen eigenen Bereich ab Contao 5.3 sauber hin? (Wir wollen hier nur ein paar eigene Punkte mit Hilfeseiten, Verlinkungen und ggf. MetaModels ablegen)

    Grüße!

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.585
    Partner-ID
    10107

    Standard

    Wenn du's als Symfony Controller bauen willst: https://docs.contao.org/5.x/dev/guides/back-end-routes/

    Wenn du's als Legacy Modul bauen willst: https://docs.contao.org/5.x/dev/fram...k-end-modules/
    » sponsor me via GitHub or Revolut

  3. #3

  4. #4
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    131

    Standard

    Mein Problem bisher bei der Dokumentation war, dass das hinterlegte Skript einen Menüpunkt *unter* einer Kategorie erstellt-
    PHP-Code:
    $contentNode $tree->getChild('content'); 
    Wenn man die Zeile weglässt, dann wird eine Kategorie angelegt- so einfach kann es sein...


    Also: Der minimalste Weg scheint zu sein eine "BackendMenuListener.php" unter "/src/Eventlistener" zu erstellen mit dem Inhalt:

    PHP-Code:
    <?php

    namespace App\EventListener;

    use 
    App\Controller\BackendController;
    use 
    Contao\CoreBundle\Event\ContaoCoreEvents;
    use 
    Contao\CoreBundle\Event\MenuEvent;
    use 
    Symfony\Component\HttpFoundation\RequestStack;
    use 
    Symfony\Component\EventDispatcher\Attribute\AsEventListener;

    #[AsEventListener]
    class BackendMenuListener
    {

        public function 
    __construct(private readonly RequestStack $requestStack)
        {
        }

        public function 
    __invoke(MenuEvent $event): void
        
    {
            
    $tree $event->getTree();
            
    $factory $event->getFactory();

            if (
    'mainMenu' !== $tree->getName()) {
                return;
            }

            
    $node $factory
                
    ->createItem('meine_kategorie')
                ->
    setLabel('meine_kategorie')
                ->
    setLinkAttribute('title''meine_kategorie')
                ->
    setLinkAttribute('class''group-meine_kategorie')
                ->
    setExtra('is_group'true)
                ->
    setExtra('order'PHP_INT_MAX);

            
    $tree->addChild($node);
        }
    }
    Allerdings erscheint meine Kategorie dann als span- also:
    PHP-Code:
    ->createItem('meine_kategorie', ['uri' => '/contao?mtg=meine_kategorie']) 
    Dann kommt nur die Startseite von Contao- ich möchte eigentlich keine Seite hinterlegen, nur, dass die Überschrift zusammenklappbar ist, wie alle anderen Punkte. Ich dachte dafür ist
    PHP-Code:
    ->setExtra('is_group'true
    gedacht? Übersehe ich etwas?
    Geändert von d33eniz (Gestern um 16:20 Uhr)

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.585
    Partner-ID
    10107

    Standard

    Zitat Zitat von d33eniz Beitrag anzeigen
    PHP-Code:
    ->createItem('meine_kategorie', ['uri' => '/contao?do=meine_kategorie']) 
    Dann folgt natürlich eine Fehlermeldung:
    Code:
    Back end module "meine_kategorie" is not defined in the BE_MOD array
    Wenn du das so machen willst ("/contao?do=…"), dann brauchst du ein Legacy Backend Modul (zweiter Link oben), bspw. mit callback.

    Oder du machst dir einen Controller wie im ersten Link beschrieben - dann übergibst du statt "/contao?do=…" die URL zu der Route des Controllers.
    » sponsor me via GitHub or Revolut

  6. #6
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    131

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Oder du machst dir einen Controller wie im ersten Link beschrieben - dann übergibst du statt "/contao?do=…" die URL zu der Route des Controllers.
    Ist das notwendig, damit die Überschrift einklappbar wird? Ich habe nur als Dummy etwas eingegeben- mit "?mtg" statt "?do" kommt übrigens zumindest kein Fehler, nur die Contao Startseite. Aber dennoch nicht einklappbar.

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.585
    Partner-ID
    10107

    Standard

    Zitat Zitat von d33eniz Beitrag anzeigen
    Ist das notwendig, damit die Überschrift einklappbar wird?
    Nein, damit hat das nichts zu tun. Ich vermute da muss man noch andere Attribute setzen, die noch nicht dokumentiert sind. Aber das ist ja erstmal Zweitrangig, oder?
    » sponsor me via GitHub or Revolut

  8. #8
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    131

    Standard

    Tatsächlich ist das zweitrangig, es ging nur darum, einen weiteren, einklappbaren (der Übersicht wegen) Bereich zu erstellen, dem man MetaModels Einträge zuordnen kann. Das ist alles. Ich habe aber hier gepostet, da ich dachte, dass das aber nicht direkt etwas mit MetaModels erstmal zu tun hat.

    Wenn jemand weiß, wie das Attribut lautet oder weiß, wie man das Ding einklappbar macht, gerne her damit
    Geändert von d33eniz (Gestern um 16:28 Uhr)

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.585
    Partner-ID
    10107

    Standard

    Zitat Zitat von d33eniz Beitrag anzeigen
    es ging nur darum, einen weiteren, einklappbaren (der Übersicht wegen) Bereich zu erstellen, dem man MetaModels Einträge zuordnen kann.
    Achso, ich denke das ist etwas komplett anderes. Vielleicht fragst du da am besten im MetaModels Unterforum nach.

    Oder was meinst du überhaupt genau mit "MetaModels Einträge"?
    » sponsor me via GitHub or Revolut

  10. #10
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    131

    Standard

    Man kann MetaModels Tabellen einer Backendkategorie zuordnen, damit sie nicht alle unter "Meta Models" auflaufen, Beispiel:





    Ich hätte hier aber natürlich auch meine eigenen Backendpunkte eintragen können, daher hat es erstmal mit MetaModels nichts zu tun denke ich?
    Geändert von d33eniz (Gestern um 16:48 Uhr)

  11. #11
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.285
    User beschenken
    Wunschliste

    Standard

    ggf. hilft Dir das weiter https://github.com/terminal42/contao...nuListener.php oder https://github.com/MetaModels/core/b...onListener.php


    Du willst einen neuen Gruppeneintrag

    "demnächst" wird das für MM auch etwas einfacher https://github.com/MetaModels/core/issues/1519

  12. #12
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    131

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    ggf. hilft Dir das weiter https://github.com/terminal42/contao...nuListener.php oder https://github.com/MetaModels/core/b...onListener.php


    Du willst einen neuen Gruppeneintrag

    "demnächst" wird das für MM auch etwas einfacher https://github.com/MetaModels/core/issues/1519
    Danke, sehe ich mir an- die Funktion / eigene Backendbereiche machen sehr viel Sinn (eigentlich immer mit MetaModels?).

  13. #13
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.285
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von d33eniz Beitrag anzeigen
    Danke, sehe ich mir an- die Funktion / eigene Backendbereiche machen sehr viel Sinn (eigentlich immer mit MetaModels?).
    ich mache (fast) immer eine eigene Sektion für die MMs bzw. auch mehrere, wenn es thematisch passt

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.585
    Partner-ID
    10107

    Standard

    Zitat Zitat von d33eniz Beitrag anzeigen
    Wenn jemand weiß, wie das Attribut lautet oder weiß, wie man das Ding einklappbar macht, gerne her damit
    Folgendes musst du dafür setzen: https://github.com/contao/contao/blo...er.php#L76-L77
    » sponsor me via GitHub or Revolut

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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