#drupal-7
#drupal-7
Вопрос:
По прямому URL-адресу нажмите на него, показывая результат, я не хочу этого делать, но когда я даю на это разрешение, оно должно работать нормально. Помогите мне в этом, я буду вам очень благодарен.
Это мой модуль, предоставьте мне код для этого модуля:
<?php
// $Id: person.module
/**
* implements hook_menu()
*/
function person_menu(){
$items = array();
$items['person'] = array(
'title' => "Person",
'page callback' => "perso_personal_info", // after visit drupal6/person, person_personal_info() function is called
'access callback' => true, // must return true, otherwise it will not visible as menu item
'type' => MENU_NORMAL_ITEM, // drupal's default menu type
'weight' => '10', // we want to display person link below in our nav menu
);
return $items; // finally, do not forget to return $items array
}
function perso_personal_info(){
$output = 'Name: Gaurav</br>';
$output .= 'City: nanital </br>';
$output .= 'Country: india </br>';
return $output;
}
function person_permission(){
return array(
'administer my module' => array(
'title' => t('Administer my module'),
'description' => t('Perform administration tasks for my module.'),
),
); }
?>
Пожалуйста, предоставьте мне необходимый код; он должен работать нормально, когда я устанавливаю разрешение для своего модуля.
Ответ №1:
Вам необходимо обновить «обратный вызов доступа» в вашем hook_menu, в котором будут проверяться разрешения пользователей, как показано ниже:
/**
* implements hook_menu()
*/
function person_menu() {
$items = array();
$items['person'] = array(
'title' => "Person",
'page callback' => "demo_custom_personal_info", // after visit drupal6/person, person_personal_info() function is called
//'access callback' => true, // must return true, otherwise it will not visible as menu item
'access callback' => 'person_personal_info_check_access',
'type' => MENU_NORMAL_ITEM, // drupal's default menu type
'weight' => '10', // we want to display person link below in our nav menu
);
return $items; // finally, do not forget to return $items array
}
Теперь вам нужно будет добавить нижеприведенную функцию в свой файл модуля (эта функция проверит разрешение пользователя на доступ, которое будет назначено со страницы разрешений)
/**
* To check user's permission
*/
function person_personal_info_check_access() {
if (user_access('administer my module')) {
return TRUE;
}
return FALSE;
}