Menu Item (Menüpunkt unter Tab) wird nur Admin angezeigt
Eingetragen von Peter Majmesku (656)
am 06.06.2010 - 22:47 Uhr in
am 06.06.2010 - 22:47 Uhr in
Hallo,
ich habe ein Menu-Item (die Box unter dem Tab) erstellt, welches nur dem Admin angezeigt wird:
<?php
$items['user/%user/auctions/own/'] = array(
'title' => 'Own auctions',
'type' => MENU_LOCAL_TASK,
'description' => 'My own auctions.',
'access callback' => 'uc_auction_user_auctions_perm',
'access arguments' => array(1),
'weight' => 8
);
?>
So sieht das aus:
Bei den Berechtigungen kann ich nichts finden, was auf dieses Menu-Item hindeutet.
Hat vielleicht zudem jemand eine Idee, wie ich meinen Block bzw. Seite unter dem Menu Item anzeigen kann.
HAND
- Anmelden oder Registrieren um Kommentare zu schreiben
Wo ist denn dein
am 07.06.2010 - 08:29 Uhr
Wo ist denn dein "page callback"?
Stimmt, nachdem ich den "page
am 07.06.2010 - 09:50 Uhr
Stimmt, nachdem ich den "page callback" gesetzt habe, wird mir das Item angezeigt. Danke.
immer wieder gerne ...
am 07.06.2010 - 09:54 Uhr
immer wieder gerne ...
Jetzt habe ich nur das
am 07.06.2010 - 09:59 Uhr
Jetzt habe ich nur das Problem, dass ich nicht steuern kann, welcher Inhalt unter dem Menu-Item dargestellt wird. Habe einen sowohl einen Block als auch eine Seite angelegt. Allerdings wird mir nur ein vorgegebener Inhalt vom Übercart-Modul angezeigt. Welcher Paramter ist denn hierbei relevant?
Den Block kannst du ja anhand
am 07.06.2010 - 10:05 Uhr
Den Block kannst du ja anhand der URL mit Platzhaltern steuern, den "page callback" musst du dann selber schreiben, der Dir die entsprechenden Inhalte anzeigen soll.
Die Sichtbarkeit des Blocks
am 07.06.2010 - 10:19 Uhr
Die Sichtbarkeit des Blocks habe ich bereits mit einem Platzhalter festgelegt. Allerdings wird mir der Block noch nicht angezeigt, obwohl die korrekte Adresse im Browser aufgerufen wird. Den Aufrufe-URL habe ich im Array-Bezeichner bestimmt:
<?php
$items['user/%user/tests/own/']
?>
Und als "page callback" habe ich den Namen meines Moduls mit einem drangehangenen "object" verwendet, was bereits bei solchen Tabs problemlos klappt:
Das ganze sieht dann eben so aus:
<?php
$items['user/%user/auctions/own/'] = array(
'title' => 'Mein Tab',
'type' => MENU_LOCAL_TASK,
'description' => 'Mein Tab ist hier',
'access callback' => 'uc_auction_user_auctions_perm',
'page callback' => 'mein_modul_object',
'access arguments' => array(1),
'weight' => 8
);
?>
Hast Du unten in den
am 07.06.2010 - 10:35 Uhr
Hast Du unten in den Blockeinstellungen unter URL denn folgendes stehen?
"user/*/auctions/own", ohne die Anführungszeichen
Den letzen "/" hinter dem $items Array Key benötigst Du nicht, vielleicht ist auch das das Problem.
<?php
$items['user/%user/acutions/own'] = array();
?>
Sense schrieb Hast Du unten
am 07.06.2010 - 10:54 Uhr
Hast Du unten in den Blockeinstellungen unter URL denn folgendes stehen?
"user/*/auctions/own", ohne die Anführungszeichen
Ja, das ist genau das, was ich dort stehen habe.
Den letzen "/" hinter dem $items Array Key benötigst Du nicht, vielleicht ist auch das das Problem.
<?php
$items['user/%user/acutions/own'] = array();
?>
Den letzten Slash im $items Array Key habe ich gelöscht. Nach einem Cache-Flush kam dann plötzlich die Meldung
Notice: unserialize(): Error at offset 14 of 17 bytes in /var/www/auctions/includes/bootstrap.inc on line 478
Anschließend habe ich dann das Array-Element folgendermaßen umgeschrieben:
<?php
$items['user/%user/auctions/own/../../auctions/own']
?>
Dann ging zwar der Aufruf der korrekten Adresse. Der Inhaltsblock wurde an der Stelle trotzdem nicht angezeigt. Ich vermute, dass die Funktion des Tabs belegt ist, da ja eine Ausgabe des "Übercart Auctions"-Moduls dort erfolgt und zwar die vom "Laufende Auktionen"-Tab. Nur weiß ich nicht, wie ich die derzeitige Funktionsweise, beim Klick auf den Tab aufheben kann. Zudem wird auch nicht der Tab markiert, sobald ich ihn anklicke. Der "Laufende Auktionen"-Tab bleibt gleichfalls unmarkiert.
Ich habe nun festgestellt,
am 07.06.2010 - 11:34 Uhr
Ich habe nun festgestellt, dass mein Block gar nicht angezeigt wird. Selbst dann nicht, wenn ich in der page.tpl.php meines Themes die Ausgabe der $content_top Variable unter keine If-Bedingung festlege.
Folglich habe ich im Array-Schlüssel meinen Pfad umgedreht:
Vorher:
<?php
$items['user/%user/auctions/own/../../auctions/own']
?>
Nachher:
<?php
$items['user/%user/auctions/own/../../own/auctions']
?>
Und nun wird mein Ausgabetext auf einer separaten Seite angezeigt. Also ohne die schönen Menü-Tabs oben drauf. Bisher konnte ich noch nicht durchschauen, wie sich das Übercart-Auction Modul eine Ankoppelung fremder Menü-Items gedacht hat. Vielleicht hat jemand eine bessere Idee.