edit menü
am 19.08.2009 - 10:38 Uhr in
Hi,
es steht eine Frage zum hook_menu an bzgl. edit.
Folgende Situation:
<?php
function name_menu() {
$items['node/name/cat/%cat/edit'] = array(
'title' => t('Edit name cat'),
'page callback' => 'name_cat_page_edit',
'page arguments' => array(1),
'accesss callback' => 'name_access',
'access arguments' => array('edit cat'),
'weight' => 1,
'file' => 'name_cat.pages.inc',
'type' => MENU_NORMAL_ITEM,);
}
?>Innerhalb der Vewaltung wird eine korrekte Auflistung von cat's ausgeführt. Darin ist nun der Link
zum "bearbeiten" vorhanden. Dieser sieht wie folgt aus:
http://local/node/name/cat/4/edit?destination=admin%2Fcontent%2Fname%2Fcat
Klicke ich nun auf den Link zum bearbeiten, folgt die Seite mit dem Hinweis:
Die Seite wurde nicht gefunden.
Die angeforderte Seite konnte nicht gefunden werden.
Alle im Menü erforderlichen Funktionen sind vorhanden - inkl. file.
Wo liegt der Denkfehler - ich kommme nicht dahinter?
Danke vorab.
- Anmelden oder Registrieren um Kommentare zu schreiben

Ist cat_load auch vorhanden?
am 19.08.2009 - 12:51 Uhr
Alle im Menü erforderlichen Funktionen sind vorhanden - inkl. file.
Wirklich alle? Auch
cat_load?--

Hi, ups nö - ist noch nicht
am 19.08.2009 - 13:19 Uhr
Hi,
ups nö - ist noch nicht mal definiert :).
Danke.
Hi, nun ist das mit
am 19.08.2009 - 16:18 Uhr
Hi,
nun ist das mit cat_load($nid) geregelt. Allerdings erhalte ich keine Zugriffsberechtigung. Oblgeich hierfür noch keine angelegt ist bis auf administer.
Gibt es irgendwo eine genauere Erläuterung zum Thema Zugriffsrechte bzgl. der Funktionen:
hook_perm() und hook_access()?
Eben habe ich noch getesetet, wenn ich als Zugriffsrecht $perm = array('administer', 'edit cat'); hinzufüge. Allerdings ist das Ergebnis das gleiche.
Danke vorab.
Node Access
am 19.08.2009 - 17:07 Uhr
Laut deiner Implementation von
hook_menuverwendest du die Funktionname_accessum zu prüfen ob der Zugriff auf den Menüeintrag erlaubt ist. Laut deiner Implementation vonhook_menubekommt die Funktionname_accessals Parameter eine Zeichenkette, nämlich'edit cat'.hook_permundhook_accesssind da erst einmal nicht beteiligt.hook_permgibt lediglich an, welche Berechtigungen unterindex.php?q=admin/user/permissionsaufgelistet werden. Ob ein Benutzer eine dort aufgelistete Berechtigung hat, findest du mit der Funktionuser_accessheraus.hook_accessbrauchst du nur, wenn dein Modul einen eigenen Inhaltstyp bereitstellt und du für diesen eine eigene Rechtevergabe schreiben willst. Schau dir dazu malnode_accessan:true), verbieten (false) und sich enthalten (null).hook_node_grantsundhook_node_access_recordein entsprechender Eintrag vorliegt, dann wird der Zugriff erlaubt.Diese Liste wird von oben nach unten abgearbeitet und die erste zutreffende Bedingung gibt den Ausschlag.
hook_accesskommt an fünfter Stelle ins Spiel.user_accesswird auch manchmal ausgeführt, wenn geprüft werden soll ob ein Benutzer Inhalte eines bestimmten Typs anlegen darf. Allerdings nur wenn der Inhaltstyp vomnode-Modul selbst bereitgestellt wird. Das verbirgt sich in der Funktionnode_content_access, die als Implementierung vonhook_accessdann im fünften Punkt aufgerufen werden würde.--

Danke für die ausführliche
am 19.08.2009 - 17:15 Uhr
Danke für die ausführliche Info. Da werde ich mich ersteinmal durcharbeiten.
Eine Frage noch. In der Regel kann man sich ja alle Daten irgendwo mal ausgeben lassen. Z.B. ein array mit print_r($arrray);
Wo bzw. an welcher Stelle wäre das möglich?
Eigentlich überall, am
am 19.08.2009 - 18:01 Uhr
Eigentlich überall, am besten mittels
<?phpdrupal_set_message(htmlentities(print_r($array, true)));
?>
--
