1

イベント登録には drupal 7 と entity_registration モジュール ( registration-7.x-1.0-alpha5) を使用しています。

そこでは、特定のロールに対してのみ登録リンクが表示されます。つまり、認証されたユーザーに権限が設定されている場合、登録リンクは認証されたユーザーに表示されます。

たとえば node/9/register などのページに手動でアクセスしようとすると、アクセスが拒否されたと表示されます。

現在、LoginToboggan リダイレクトされたアクセス拒否ページをユーザー ログイン ページに使用しています。しかし、パス node/9/register を持つ Register という名前のメニュー項目を手動で作成すると、メニュー項目自体が表示されません。

ユーザーにログインして登録するように指示する方法などが必要です..

あなたが私の主張を理解したことを願っています。

これがモジュール ファイルのコードです。書式設定に問題があると思われるため、hook_menu と hook_permission 関数のみを貼り付けました。完全なコードを表示するには、リンクを参照してください www.karyashala.in/code.html

    /**

     * Implements hook_menu().

     */

    function registration_menu() {

      $items['registration/%registration'] = array(

        'title callback' => 'registration_page_title',

        'title arguments' => array(1),

        'page callback' => 'registration_view',

        'page arguments' => array(1),

        'access callback' => 'entity_access',

        'access arguments' => array('view', 'registration', 1),

      );

      $items['registration/%registration/view'] = array(

        'title' => 'View',

        'page callback' => 'registration_view',

        'page arguments' => array(1),

        'access callback' => 'entity_access',

        'access arguments' => array('view', 'registration', 1),

        'type' => MENU_DEFAULT_LOCAL_TASK,

      );

      $items['registration/%registration/edit'] = array(

        'title' => 'Edit',

        'page callback' => 'drupal_get_form',

        'page arguments' => array('registration_form', 1),

        'access callback' => 'entity_access',

        'access arguments' => array('update', 'registration', 1),

        'weight' => 10,

        'type' => MENU_LOCAL_TASK,

      );

      $items['registration/%registration/delete'] = array(

        'title' => 'Delete',

        'page callback' => 'drupal_get_form',

        'page arguments' => array('registration_delete_confirm', 1),

        'access callback' => 'entity_access',

        'access arguments' => array('delete', 'registration', 1),

        'type' => MENU_CALLBACK,

      );



      // entity local tasks

      foreach (registration_get_registration_instances() as $instance) {

        $type = $instance['entity_type'];

        if (!in_array($type, array('registration', 'registration_type'))) {

          $items[$type . '/%entity_object/register'] = array(

            'load arguments' => array($type),

            'title' => 'Register',

            'page callback' => 'registration_register_page',

            'page arguments' => array(0, 1),

            'access callback' => 'registration_register_page_access',

            'access arguments' => array(0, 1),

            'type' => MENU_LOCAL_TASK,

          );

          $items[$type . '/%entity_object/registrations'] = array(

            'load arguments' => array($type),

            'title' => 'Manage Registrations',

            'page callback' => 'registration_registrations_page',

            'page arguments' => array(0, 1),



                            'access callback' => 

            'registration_administer_registrations_access',

            'access arguments' => array(0, 1),

            'type' => MENU_LOCAL_TASK,

          );

          $items[$type . '/%entity_object/registrations/list'] = array(

            'load arguments' => array($type),

            'title' => 'Registrations',

            'page callback' => 'registration_registrations_page',


                    'page arguments' => array(0, 1),

            'access callback' => 'registration_administer_registrations_access',


                    'access arguments' => array(0, 1),




                                    'type' => MENU_DEFAULT_LOCAL_TASK,


                  );

          $items[$type . '/%entity_object/registrations/settings'] = array(

            'load arguments' => array($type),

            'title' => 'Settings',

            'page callback' => 'drupal_get_form',

            'page arguments' => array('registration_registrations_settings_form', 0, 
    1),

            'access callback' => 'registration_administer_registrations_access',

            'access arguments' => array(0, 1),

            'weight' => 9,

            'type' => MENU_LOCAL_TASK,

          );

          $items[$type . '/%entity_object/registrations/broadcast'] = array(

            'load arguments' => array($type),

            'title' => 'Email Registrants',

            'page callback' => 'drupal_get_form',

            'page arguments' => array('registration_registrations_broadcast_form', 0, 
    1),

            'access callback' => 'registration_administer_registrations_access',

            'access arguments' => array(0, 1),

            'weight' => 10,

            'type' => MENU_LOCAL_TASK,

          );

        }

      }



      if (module_exists('devel')) {

        $items['registration/%registration/devel'] = array(

          'title' => 'Devel',

          'page callback' => 'devel_load_object',

          'page arguments' => array('node', 1),

          'access arguments' => array('access devel information'),

          'type' => MENU_LOCAL_TASK,

          'file path' => drupal_get_path('module', 'devel'),

          'file' => 'devel.pages.inc',

          'weight' => 100,

        );

        $items['registration/%registration/devel/load'] = array(

          'title' => 'Load',

          'type' => MENU_DEFAULT_LOCAL_TASK,

        );

      }



      return $items;

    }



    /**

     * Implements hook_permission().

    */

    function registration_permission() {

      $permissions = array(

        'administer registration types' => array(

          'title' => t('Administer registration types'),

          'description' => t('Manage registration types, fields, and display 
    settings.'),

          'restrict access' => TRUE,


                ),

        'administer registration' => array(

          'title' => t('Administer registration'),

          'description' => t('View, edit, delete, and manage all registrations, 
    regardless of type.'),

          'restrict access' => TRUE,


                ),

      );



      foreach(registration_get_types() as $type_info) {

        $permissions += registration_permission_list($type_info);

      }




      return $permissions;

    }
4

1 に答える 1

1
Add the line after + sign and clear cache after that check it again.
function registration_menu() {
  $items['registration/%registration'] = array(
    'title callback' => 'registration_page_title',
    'title arguments' => array(1),
    'page callback' => 'registration_view',
    'page arguments' => array(1),
    'access callback' => 'entity_access',
    'access arguments' => array('view', 'registration', 1),
+   'type' => MENU_NORMAL_ITEM,
  );
于 2012-05-02T04:51:40.783 に答える