Menüleiste anpassen

Hallo Gemeinde,

im Standard Theme gibt es im oberen Bereich ja die Navigationsleiste

  • Aktivitäten
  • Blogs
  • Coop-Seiten
  • Dateien
  • Der Heiße Draht
  • Weitere

Ich möchte dort gerne einige Dinge entfernen/ausblenden, wie z. B. Coop-Seiten, da ich sie nicht benötige. Zugleich möchte ich einen Eintrag hinzufügen, der allerdings nur für Admins sichtbar ist.

Ist beides möglich? Falls ja, wie?

Würde mich über Hilfe sehr freuen.

Grüße

  • Hallo Zusammen,

    der Beitrag ist zwar schon alt, aber das würde mich auch interessieren.

    VG

    Tuxinger

  • Hab's gerade heraus gefunden wie man die coop-Seite weg bekommt.

    Einfach das Plugin Pages deaktivieren.

     

    VG

    Tuxinger

  • Wenn nicht nur der Menueintrag weg soll, sondern die dazugehörige Seite (bzw. Feature) ebenfalls nicht gewünscht wird, ist es natürlich zielführend, das entsprechende Plugin zu deaktivieren. Mit Ausnahme des Activity-Menutrags (Aktivitäten) werden alle anderen Menueinträge durch ein Plugin erzeugt, d.h. der Blog-Eintrag durch das Blogs-Plugin usw.. Wenn die Seitensprache deutsch ist, ist es vielleicht nicht gleich offensichtlich, welches Plugin mit einem Menueintrag zusammenhängt, da ich beispielsweise "Pages" mit "Coop-Seiten" übersetzt habe ("Seiten" alleine klingt ziemlich blöd in meinen Ohren).

    Wenn nur der Menueintrag weg soll, kann die Erzeugung des Menueintrag mit der Elgg-Funktion elgg_unregister_menu_item('site', <Identifier des Menueintrags>) unterdrückt werden. Also beispielsweise:

    elgg_unregister_menu_item('site', 'pages');

    oder für den "Aktivitäten"-Eintrag, den man nicht durch Deaktivieren eines Plugins wegbekommt mit:

    elgg_unregister_menu_item('site', 'activity');

    Die elgg_unregister_menu_item()-Aufrufe einfach zum Code der init-Funktion eines dafür geeigneten (eigenen) Plugins hinzufügen. Für derartige Anpassungen ist die Erstellung eines kleinen "customizations"-Plugins hilfreich, in dem alle solche kleines Modifikationen zusammengefasst werden können, ohne das der Code der Elgg-Core-Dateien verändert werden muss.

    Einen eigenen Menueintrag kann man mit der Funktion elgg_register_menu_item() erzeugen. Beispiel:

    if (elgg_is_admin_logged_in()) {

        $url = 'Url die der Menueintrag aufrufen soll';

        $item = new ElggMenuItem('eindeutiger_identifier', elgg_echo('my_menutext'), $url);

        elgg_register_menu_item('site', $item);

    }

    Die if-Bedingung checkt, ob der eingeloggte User ein Admin ist und zeigt nur dann den Menueintrag an. Wenn alle User den Menueintrag sehen sollen, ist die if-Bedingung nicht notwendig. Der erste Parameter bei ElggMenuItem() muss ein eindeutig gewählter Identifier sein, der (zumindest für dieses Menu) noch nocht verwendet wird. Der zweite Parameter ist der Menutext und kann entweder direkt als String angeben werden oder muss in einer Language-Datei mit dem Identifier "my_menutext" enthalten sein (dann kann man auch für verschiedene Sprachen unterschiedliche Textausgaben bekommen). Der dritte Parameter ist die Url der Seite, auf die der Menueintrag leitet. Die Url kann entweder relativ (ohne http://domain_der_elgg.seite/) oder absolut sein, also z.B.

    $url = 'http://domain_der_elgg.seite/activity&#39;; // absolute Url aber schlecht, da die Seitendomain fest eingetragen ist oder

    $url = elgg_get_site_url() . 'activity'; // immer noch absolut aber Domain nicht mehr fest codiert oder

    $url = 'activity'; // relativ, d.h. die Domain wird automatisch hinzugefügt

    Für die Erzeugung eines völlig eigenen Seitenmenus gibt es auch noch das Menu Builder-Plugin (https://community.elgg.org/plugins/674289/1.3/menu-builder). Damit kann man das Seitenmenu relativ einfach anpassen. Einzige Einschränkung ist wohl, dass zumindest derzeit die Menutexte nicht mehrsprachig konfiguriert werden können.

German Support Group

German Support Group

The German support group within the Elgg community.