- Registriert
- 20.08.07
- Beiträge
- 20
Hallo,
Ich schlage mich momentan mit der Drupalmodulprogrammierung herum. Ich bin selbst noch Anfänger und arbeite mich ein, hab aber das Grundsystem verstanden. Momentan möchte ich eine Rollenüberprüfung in mein Modul einbauen. Im Adminbereich soll man die Möglichkeit haben das Modul nur bestimmten Rollen zu zuweisen.
die modulname.admin.inc sieht dementsprechen so aus:
die modulname.module hook_nodeapi:
Im Administrationsbereich werden die Rollen sowie die node types angezeigt. Der Part mit den node types funktioniert auch. Bei den Rollen habe ich noch Probleme.
Der defaultwert wird nicht als angehakte Checkbox angezeigt und die Überprüfung auf die Rolle funktioniert leider auch nicht.
Ich bin momentan mit meinem Latein am Ende. Hat jmd von euch evtl. Ahnung und könnte mir helfen. Danke.
cucube2001
Ich schlage mich momentan mit der Drupalmodulprogrammierung herum. Ich bin selbst noch Anfänger und arbeite mich ein, hab aber das Grundsystem verstanden. Momentan möchte ich eine Rollenüberprüfung in mein Modul einbauen. Im Adminbereich soll man die Möglichkeit haben das Modul nur bestimmten Rollen zu zuweisen.
die modulname.admin.inc sieht dementsprechen so aus:
Code:
function send_admin_settings() {
global $user;
$options = node_get_types('names');
$roles = user_roles($membersonly = FALSE, $permission = NULL);
$form['send_node_types'] = array(
'#type' => 'checkboxes',
'#title' => t('Choose the content types'),
'#options' => $options,
'#default_value' => variable_get('send_node_types', array('page')),
'#description' => t('The App will be available on these content types to send messages.'),
);
$form['send_role_types'] = array(
'#type' => 'checkboxes',
'#title' => t('Choose the Roles'),
'#options' => $roles,
'#default_value' => variable_get('send_role_types', array('authenticated user')),
'#description' => t('Choose the roles this module is supposed to be available for'),
);
return system_settings_form($form);
}
die modulname.module hook_nodeapi:
Code:
function send_nodeapi(&$node, $op, $teaser, $page) {
global $user;
switch ($op) {
case 'view':
if ($user->uid == 0 || !$page) {
break;
}
$roles = variable_get('send_role_types', array('authenticated user'));
if (!in_array($user->role, $roles, TRUE)){
break;
}
// Find out which node types we should send.
$types_to_send = variable_get('send_node_types', array('page'));
// Abort if this node is not one of the types we should send.
if (!in_array($node->type, $types_to_send, TRUE)) {
break;
}
...
Im Administrationsbereich werden die Rollen sowie die node types angezeigt. Der Part mit den node types funktioniert auch. Bei den Rollen habe ich noch Probleme.
Der defaultwert wird nicht als angehakte Checkbox angezeigt und die Überprüfung auf die Rolle funktioniert leider auch nicht.
Ich bin momentan mit meinem Latein am Ende. Hat jmd von euch evtl. Ahnung und könnte mir helfen. Danke.
cucube2001