user_is_anonymous()とuser_is_logged_in()の違いは何ですか?

drupal.stackexchange https://drupal.stackexchange.com/questions/291

  •  16-10-2019
  •  | 
  •  

質問

2つの関数の違いは何ですか?一方はいつ他方の代わりに使用する必要がありますか?

役に立ちましたか?

解決

関数は本質的に正反対です。

唯一の本当の違いは、user_is_anonymous()関数が$ globals ['menu_admin']の追加チェックを持っていることです。メニュー管理者が匿名のユーザーのみに見えるメニューリンクを管理できるようにします。

それはによって使用されています drupal_valid_path() と同様に menu_overview_form() 働き:

function drupal_valid_path($path, $dynamic_allowed = FALSE) {
  global $menu_admin;
  // We indicate that a menu administrator is running the menu access check.
  $menu_admin = TRUE;
  if ($path == '<front>' || url_is_external($path)) {
    $item = array('access' => TRUE);
  }
  elseif ($dynamic_allowed && preg_match('/\/\%/', $path)) {
    // Path is dynamic (ie 'user/%'), so check directly against menu_router table.
    if ($item = db_query("SELECT * FROM {menu_router} where path = :path", array(':path' => $path))->fetchAssoc()) {
      $item['link_path']  = $form_item['link_path'];
      $item['link_title'] = $form_item['link_title'];
      $item['external']   = FALSE;
      $item['options'] = '';
      _menu_link_translate($item);
    }
  }
  else {
    $item = menu_get_item($path);
  }
  $menu_admin = FALSE;
  return $item && $item['access'];
}
ライセンス: CC-BY-SA帰属
所属していません drupal.stackexchange
scroll top