it-swarm-tr.com

Erişim bağımsız değişkenleri ve erişim geri araması arasındaki fark nedir?

Erişim bağımsız değişkenleri ve erişim geri araması arasındaki fark nedir?

Erişim geri aramasını 'user_access' Olarak ayarladığımı ve array('custom permission') öğesinin erişim bağımsız değişkenleri için değer olduğunu varsayalım.

Bu ne anlama geliyor? Birbirlerini nasıl etkilerler?

20
user1359

"Erişim geri araması", kullanıcının sayfaya erişimi olduğunu doğrulamak için çağrılan işlevdir. Özel bir durum olarak, TRUE değeri olabilir ve bu durumda tüm kullanıcılar buna erişebilir; diğer bir deyişle, erişim izni atlanır.

"Access callback" değeri için bir işlev adı kullanıyorsanız (varsayılan olarak "user_access" şeklindedir), ayrıca erişim geri arama işlevine iletilen bağımsız değişkenleri içeren bir dizi olan "access arguments" öğesini de kullanabilirsiniz.
Diğer menü geri çağrılarında olduğu gibi, argümanlar bir dize veya bir sayı olmalıdır; bir sayı olması durumunda değer, menü yolundan alınan bir değerle değiştirilir. Bu değişiklikten kaçınmak istiyorsanız, bir sayı yerine bir dize kullanmanız gerekir; örneğin, erişim geri aramasına iletilen bağımsız değişkenler için "1" olarak kullanılması otomatik değiştirmenin önüne geçecektir.

Bunlar, Drupal çekirdek modüllerinde kullanılan menü geri çağrı bildirimlerine bir örnektir. (Örnekler Drupal 7 kodudur, ancak belirtmek istediğim şey için bu bir fark yaratmaz.)

Bu, erişim geri aramasının ser_access () olduğu bir örnektir.

  $items['file/progress'] = array(
    'page callback' => 'file_ajax_progress', 
    'delivery callback' => 'ajax_deliver', 
    'access arguments' => array('access content'), 
    'theme callback' => 'ajax_base_page_theme', 
    'type' => MENU_CALLBACK,
  );

Bu, erişim geri aramasının bir işlev adı olmadığı bir örnektir.

  $items['user'] = array(
    'title' => 'User account', 
    'title callback' => 'user_menu_title', 
    'page callback' => 'user_page', 
    'access callback' => TRUE, 
    'file' => 'user.pages.inc', 
    'weight' => -10, 
    'menu_name' => 'user-menu',
  );

Bu durumda, erişim geri araması --- 1 numaralı değil, menü yolundan alınan bir değer olan (bu durumda "kullanıcı /% kullanıcı") ser_view_access () şeklindedir; işlev user_load() tarafından döndürülen değeri alacağından, bu özel bir durumdur.

  $items['user/%user'] = array(
    'title' => 'My account', 
    'title callback' => 'user_page_title', 
    'title arguments' => array(1), 
    'page callback' => 'user_view_page', 
    'page arguments' => array(1), 
    'access callback' => 'user_view_access', 
    'access arguments' => array(1),
    // By assigning a different menu name, this item (and all registered child
    // paths) are no longer considered as children of 'user'. When accessing the
    // user account pages, the preferred menu link that is used to build the
    // active trail (breadcrumb) will be found in this menu (unless there is
    // more specific link), so the link to 'user' will not be in the breadcrumb. 
    'menu_name' => 'navigation',
  );

Önceki menünün aşağıdaki gibi tanımlandığını ve "kullanıcı/merhaba" gibi bir yolla çağrıldığını varsayalım.

  $items['user/%'] = array(
    'title' => 'My account', 
    'title callback' => 'user_page_title', 
    'title arguments' => array(1), 
    'page callback' => 'user_view_page', 
    'page arguments' => array(1), 
    'access callback' => 'user_view_access', 
    'access arguments' => array(1),
    // By assigning a different menu name, this item (and all registered child
    // paths) are no longer considered as children of 'user'. When accessing the
    // user account pages, the preferred menu link that is used to build the
    // active trail (breadcrumb) will be found in this menu (unless there is
    // more specific link), so the link to 'user' will not be in the breadcrumb. 
    'menu_name' => 'navigation',
  );

Bu durumda, erişim geri çağrısı, yoldan alınan değeri bağımsız değişken olarak alır (0, "kullanıcı" ve 1, "kullanıcı" ve eğik çizgiden sonraki kısım anlamına gelir); bu durumda, bu değer "merhaba" dır.

Bu joker karakter bağımsız değişkenlerini daha iyi anlamak için bkz. Joker Karakter Yükleyici Bağımsız Değişkenleri . Belge sayfası Drupal 6 olarak etiketlenmiştir, ancak bildirilenler Drupal 7 için hala geçerlidir.

28
kiamlaluno

Erişim geri araması, bazı kullanıcıların bazı izinleri olup olmadığını inceleyen bir işlevdir. Varsayılan erişim geri araması ser_access ()

Erişim bağımsız değişkenleri, erişim geri aramasıyla incelenen izinleri listeler. Örneğin. "içeriğe eriş"

4
Shoaib Nawaz