Advanced search  

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Pages: [1]   Go Down

Author Topic: [Solved]: Ausblenden von Menüoptionen  (Read 5664 times)

0 Members and 1 Guest are viewing this topic.

AlexHartmann

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 37
[Solved]: Ausblenden von Menüoptionen
« on: August 24, 2009, 03:52:39 am »

Hallo,
in Version 1.4.14 habe ich das Plugin "Menu filter" verwendet, um Menüoptionen auszublenden, da aber immer wieder betont wird, die Finger von "themes.inc.php" lassen, habe ich erst das Plugin "Nosubmenu" ausprobiert, das blendet aber auch die "Suche" aus, was nicht gewollt ist.
"Final Extract" scheint nicht richtig zu funktionieren, da es für alle Gruppen lediglich das Anmeldemenü ausblendet, den Rest aber stehen läßt, was auch nicht der Sinn der Sache ist.
Daher würde ich die Funktion gerne in "theme.php" einbauen (mein Thema basiert auf "fotogallery", zip anbei).
Kann mir jemand sagen, wie ich auf einfache Weise unerwünschte Menü-Optionen entferne?
Alexander

http://www.wissenschaftliches-bildarchiv.de/Archiv/index.php
« Last Edit: August 24, 2009, 11:17:59 pm by Joachim Müller »
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15760
Re: Ausblenden von Menüoptionen
« Reply #1 on: August 24, 2009, 08:17:25 am »

Kann mir jemand sagen, wie ich auf einfache Weise unerwünschte Menü-Optionen entferne?
So wie schon ein paar dutzend male beschrieben. Du kopierst dir die Buttons aus themes/sample/theme.php in deine theme.php und löschst die ungewollten Einträge einfach:
Code: [Select]
// Creates an array of tokens to be used with function assemble_template_buttons
// this function is used in this file it needs to be declared before being called.
function addbutton(&$menu,$href_lnk,$href_title,$href_tgt,$block_id,$spacer) {
  $menu[]=array($href_lnk,$href_title,$href_tgt,$block_id,$spacer);
}


// HTML template for sys_menu
$template_sys_menu = <<<EOT
          {BUTTONS}
EOT;

// HTML template for sub_menu
$template_sub_menu = $template_sys_menu;

if (!defined('THEME_HAS_NO_SYS_MENU_BUTTONS')) {

  // HTML template for template sys_menu spacer
  $template_sys_menu_spacer ="::";

  // HTML template for template sys_menu buttons
  $template_sys_menu_button = <<<EOT
  <!-- BEGIN {BLOCK_ID} -->
        <a href="{HREF_TGT}" title="{HREF_TITLE}">{HREF_LNK}</a> {SPACER}
  <!-- END {BLOCK_ID} -->
EOT;

  // HTML template for template sys_menu buttons
    // {HREF_LNK}{HREF_TITLE}{HREF_TGT}{BLOCK_ID}{SPACER}
    addbutton($sys_menu_buttons,'{HOME_LNK}','{HOME_TITLE}','{HOME_TGT}','home',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{MY_GAL_LNK}','{MY_GAL_TITLE}','{MY_GAL_TGT}','my_gallery',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{MEMBERLIST_LNK}','{MEMBERLIST_TITLE}','{MEMBERLIST_TGT}','allow_memberlist',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{MY_PROF_LNK}','{MY_PROF_TITLE}','{MY_PROF_TGT}','my_profile',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{ADM_MODE_LNK}','{ADM_MODE_TITLE}','{ADM_MODE_TGT}','enter_admin_mode',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{USR_MODE_LNK}','{USR_MODE_TITLE}','{USR_MODE_TGT}','leave_admin_mode',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{UPL_PIC_LNK}','{UPL_PIC_TITLE}','{UPL_PIC_TGT}','upload_pic',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{REGISTER_LNK}','{REGISTER_TITLE}','{REGISTER_TGT}','register',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{FAQ_LNK}','{FAQ_TITLE}','{FAQ_TGT}','faq',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{LOGIN_LNK}','{LOGIN_TITLE}','{LOGIN_TGT}','login','');
    addbutton($sys_menu_buttons,'{LOGOUT_LNK}','{LOGOUT_TITLE}','{LOGOUT_TGT}','logout','');
    // Login and Logout don't have a spacer as only one is shown, and either would be the last option.

  $params = array('{BUTTONS}' => assemble_template_buttons($template_sys_menu_button,$sys_menu_buttons));
  $template_sys_menu = template_eval($template_sys_menu,$params);
}

if (!defined('THEME_HAS_NO_SUB_MENU_BUTTONS')) {

  // HTML template for template sub_menu spacer
  $template_sub_menu_spacer = $template_sys_menu_spacer;

  // HTML template for template sub_menu buttons
  $template_sub_menu_button= $template_sys_menu_button;

  // HTML template for template sub_menu buttons
    // {HREF_LNK}{HREF_TITLE}{HREF_TGT}{BLOCK_ID}{SPACER}
    addbutton($sub_menu_buttons,'{CUSTOM_LNK_LNK}','{CUSTOM_LNK_TITLE}','{CUSTOM_LNK_TGT}','custom_link',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{ALB_LIST_LNK}','{ALB_LIST_TITLE}','{ALB_LIST_TGT}','album_list',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{LASTUP_LNK}','{LASTUP_TITLE}','{LASTUP_TGT}','lastup',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{LASTCOM_LNK}','{LASTCOM_TITLE}','{LASTCOM_TGT}','lastcom',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{TOPN_LNK}','{TOPN_TITLE}','{TOPN_TGT}','topn',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{TOPRATED_LNK}','{TOPRATED_TITLE}','{TOPRATED_TGT}','toprated',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{FAV_LNK}','{FAV_TITLE}','{FAV_TGT}','favpics',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{SEARCH_LNK}','{SEARCH_TITLE}','{SEARCH_TGT}','search','');

  $params = array('{BUTTONS}' => assemble_template_buttons($template_sub_menu_button,$sub_menu_buttons));
  $template_sub_menu = template_eval($template_sub_menu,$params);
}
Logged

Joachim Müller

  • Dev Team member
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 47843
  • aka "GauGau"
    • gaugau.de
Re: Ausblenden von Menüoptionen
« Reply #2 on: August 24, 2009, 08:39:44 am »

"Final Extract" scheint nicht richtig zu funktionieren, da es für alle Gruppen lediglich das Anmeldemenü ausblendet, den Rest aber stehen läßt
Das ist nicht der Fall. Final extract ist genau der richtige Kandidat für den Job und kann weit mehr als nur einen Menüpunkt deaktivieren.

Wie eenemeenemuu aber schon gesagt hat wurde das schon wahrlich oft genug durchgekaut. Bitte in Zukunft erst ein bißchen die Suche bemühen.
Logged

AlexHartmann

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 37
Re: Ausblenden von Menüoptionen
« Reply #3 on: August 24, 2009, 01:40:39 pm »

Ich hatte bereits versucht, Teile aus themes/sample/theme.php in meine theme.php einzufügen, das Ergebnis war das Gleiche, wie jetzt, nachdem ich den kompletten von eenemeenemuu angegebenen Code eingefügt habe: Es wird gar nichts mehr angezeigt (Datei anbei).
Auch Final extract habe ich implementiert, und das Ergebnis war das beschriebene: Nach dem Setzen der entsprechenden Häkchen in den Kontrollkästchen waren alle abgewählten Menüs noch da, aber der Anmeldelink war, obwohl für alle Gruppen ausgewählt, nicht mehr da, sodaß ich das Plugin löschen mußte, um mich wieder anmelden zu können.
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15760
Re: Ausblenden von Menüoptionen
« Reply #4 on: August 24, 2009, 01:45:13 pm »

Nach dem Setzen der entsprechenden Häkchen in den Kontrollkästchen waren alle abgewählten Menüs noch da, aber der Anmeldelink war, obwohl für alle Gruppen ausgewählt, nicht mehr da, sodaß ich das Plugin löschen mußte, um mich wieder anmelden zu können.
Vielleicht hast du das Plugin falsch angewendet? Bei allen anderen Personen funkioniert sowohl das Plugin als auch die von mir erwähnte Methode. Wenn du das nicht glaubst, durchsuch bitte das Board ob du evtl. irgendwelche Fehler gemacht hast.
Logged

Joachim Müller

  • Dev Team member
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 47843
  • aka "GauGau"
    • gaugau.de
Re: Ausblenden von Menüoptionen
« Reply #5 on: August 24, 2009, 01:52:10 pm »

zippe Den gesamten Ordner Deines benutzerdefinierten Themes und füge das Zip-Archiv als Anlage zu Deinem Posting an. Lass uns wissen, welche Menüpunkte über die Klinge springen sollen.
Logged

AlexHartmann

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 37
Re: Ausblenden von Menüoptionen
« Reply #6 on: August 24, 2009, 02:36:51 pm »

Für nicht angemeldete Benutzer (also alle außer mir) sollte lediglich "Startseite", "Anmelden" und "Suche" angezeigt werden.
Wenn es eine Möglichkeit gäbe, nach der Anmeldung (durch mich als Admin) noch einmal eine andere Auswahl zu treffen, also z. B. "Am meisten angesehen" anzeigen zu können, wäre das nicht schlecht.
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15760
Re: Ausblenden von Menüoptionen
« Reply #7 on: August 24, 2009, 03:02:55 pm »

Hier der funktionierende Code:
Code: [Select]
// Creates an array of tokens to be used with function assemble_template_buttons
// this function is used in this file it needs to be declared before being called.
function addbutton(&$menu,$href_lnk,$href_title,$href_tgt,$block_id,$spacer) {
  $menu[]=array($href_lnk,$href_title,$href_tgt,$block_id,$spacer);
}


// HTML template for sys_menu
$template_sys_menu = <<<EOT
          {BUTTONS}
EOT;

// HTML template for sub_menu
$template_sub_menu = $template_sys_menu;

if (!defined('THEME_HAS_NO_SYS_MENU_BUTTONS')) {

  // HTML template for template sys_menu spacer
  $template_sys_menu_spacer ="::";

  // HTML template for template sys_menu buttons
  $template_sys_menu_button = <<<EOT
  <!-- BEGIN {BLOCK_ID} -->
        <a href="{HREF_TGT}" title="{HREF_TITLE}">{HREF_LNK}</a> {SPACER}
  <!-- END {BLOCK_ID} -->
EOT;

  // HTML template for template sys_menu buttons
    // {HREF_LNK}{HREF_TITLE}{HREF_TGT}{BLOCK_ID}{SPACER}
    addbutton($sys_menu_buttons,'{HOME_LNK}','{HOME_TITLE}','{HOME_TGT}','home',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{MY_GAL_LNK}','{MY_GAL_TITLE}','{MY_GAL_TGT}','my_gallery',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{MEMBERLIST_LNK}','{MEMBERLIST_TITLE}','{MEMBERLIST_TGT}','allow_memberlist',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{MY_PROF_LNK}','{MY_PROF_TITLE}','{MY_PROF_TGT}','my_profile',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{ADM_MODE_LNK}','{ADM_MODE_TITLE}','{ADM_MODE_TGT}','enter_admin_mode',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{USR_MODE_LNK}','{USR_MODE_TITLE}','{USR_MODE_TGT}','leave_admin_mode',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{UPL_PIC_LNK}','{UPL_PIC_TITLE}','{UPL_PIC_TGT}','upload_pic',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{REGISTER_LNK}','{REGISTER_TITLE}','{REGISTER_TGT}','register',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{FAQ_LNK}','{FAQ_TITLE}','{FAQ_TGT}','faq',$template_sys_menu_spacer);
    addbutton($sys_menu_buttons,'{LOGIN_LNK}','{LOGIN_TITLE}','{LOGIN_TGT}','login','');
    addbutton($sys_menu_buttons,'{LOGOUT_LNK}','{LOGOUT_TITLE}','{LOGOUT_TGT}','logout','');
    // Login and Logout don't have a spacer as only one is shown, and either would be the last option.

  //$params = array('{BUTTONS}' => assemble_template_buttons($template_sys_menu_button,$sys_menu_buttons));
  //$template_sys_menu = template_eval($template_sys_menu,$params);
}

if (!defined('THEME_HAS_NO_SUB_MENU_BUTTONS')) {

  // HTML template for template sub_menu spacer
  $template_sub_menu_spacer = $template_sys_menu_spacer;

  // HTML template for template sub_menu buttons
  $template_sub_menu_button= $template_sys_menu_button;

  // HTML template for template sub_menu buttons
    // {HREF_LNK}{HREF_TITLE}{HREF_TGT}{BLOCK_ID}{SPACER}
    addbutton($sub_menu_buttons,'{CUSTOM_LNK_LNK}','{CUSTOM_LNK_TITLE}','{CUSTOM_LNK_TGT}','custom_link',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{ALB_LIST_LNK}','{ALB_LIST_TITLE}','{ALB_LIST_TGT}','album_list',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{LASTUP_LNK}','{LASTUP_TITLE}','{LASTUP_TGT}','lastup',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{LASTCOM_LNK}','{LASTCOM_TITLE}','{LASTCOM_TGT}','lastcom',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{TOPN_LNK}','{TOPN_TITLE}','{TOPN_TGT}','topn',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{TOPRATED_LNK}','{TOPRATED_TITLE}','{TOPRATED_TGT}','toprated',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{FAV_LNK}','{FAV_TITLE}','{FAV_TGT}','favpics',$template_sub_menu_spacer);
    addbutton($sub_menu_buttons,'{SEARCH_LNK}','{SEARCH_TITLE}','{SEARCH_TGT}','search','');

  //$params = array('{BUTTONS}' => assemble_template_buttons($template_sub_menu_button,$sub_menu_buttons));
  //$template_sub_menu = template_eval($template_sub_menu,$params);
}
Logged

AlexHartmann

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 37
Re: Ausblenden von Menüoptionen
« Reply #8 on: August 24, 2009, 03:35:07 pm »

Hervorragend, vielen Dank!
Wie unterscheidet sich der erste Code-Block unterhelb von "// HTML template for template sys_menu buttons" von dem zweiten unterhalb von
"if (!defined('THEME_HAS_NO_SUB_MENU_BUTTONS')) {," den ich jetzt erfolgreich zum Auskommentieren verwendet habe?
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15760
Re: Ausblenden von Menüoptionen
« Reply #9 on: August 24, 2009, 03:38:26 pm »

Ich verstehe deine Frage nicht. Der erste Block ist für das Sys-Menü, der Zweite für das Sub-Menü.
Logged

AlexHartmann

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 37
Re: Ausblenden von Menüoptionen
« Reply #10 on: August 24, 2009, 04:11:58 pm »

Genau das wollte ich wissen, diese Zuordnung war mir nicht klar.
Ich habe versucht, einen Eintrag aus dem Sub-Menu in das Sys-Menü zu kopieren
Code: [Select]
addbutton($sub_menu_buttons,'{TOPN_LNK}','{TOPN_TITLE}','{TOPN_TGT}','topn',$template_sub_menu_spacer);Trotz Austausch von "sub_menu" durch "sys_menu" schien das nicht zu funktionieren. Es wurde dann sowohl im Sys-Menü als auch im Sub-Menü nur "{TOPN_LNK}" angezeigt.
Geht das irgendwie, einen Eintrag im Sub-Menü auszublenden und ihn dafür im Sys-Menü anzuzeigen?
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15760
Re: Ausblenden von Menüoptionen
« Reply #11 on: August 24, 2009, 04:18:18 pm »

Geht das irgendwie, einen Eintrag im Sub-Menü auszublenden und ihn dafür im Sys-Menü anzuzeigen?
Ja. Dazu musst du aber die jeweiligen Platzhalter in der Funktion theme_main_menu an die richtige Stelle kopieren. Setz dich doch am besten einfach mal ein bisschen mit dem System auseinander, dann wärst du da auch ganz von allein drauf gekommen.

Deine ursprüngliche Frage ist längst gelöst, weshalb wir dieses Thema wieder einmal sperren müssen ::)
Logged
Pages: [1]   Go Up
 

Page created in 0.021 seconds with 20 queries.