Hiển thị 'đăng nhập' trong menu người dùng khi không đăng nhập


8

Tôi đang tự hỏi, đâu là mã ẩn "Tài khoản của tôi" & "Đăng xuất" trong menu người dùng? Chỉ tò mò, để học từ mã đó. Bất cứ cách nào để biết nơi tìm kiếm nếu bạn muốn biết một cái gì đó như thế này?

Tôi đã thêm một liên kết "Đăng nhập" vào menu này và tôi muốn ẩn liên kết này khi không có ai đăng nhập.

Câu trả lời:


13

Khi bạn có một cái gì đó xảy ra với một liên kết, bạn cần tìm mã để tìm hook_menu(). Sau đó, bạn cần đoán nó thuộc mô-đun nào. Trong trường hợp này, hãy xem mô-đun Người dùng cốt lõi:

function user_menu() {
  $items['user/login'] = array(
    'title' => 'Log in',
    'access callback' => 'user_is_anonymous',
    'type' => MENU_DEFAULT_LOCAL_TASK,
  );

  return $items;
}

Lưu ý các 'access callback' => 'user_is_anonymous',dòng. Điều này có nghĩa là bạn chỉ có thể làm điều này nếu bạn ẩn danh (nghĩa là không đăng nhập). Điều này có nghĩa là bạn chỉ có thể tạo một mục menu với "người dùng / đăng nhập" làm đường dẫn và liên kết sẽ chỉ hiển thị khi bạn đăng xuất.


16

Bạn có thể thêm một liên kết menu user/login, gọi lại truy cập của xác minh rằng nó chỉ được hiển thị cho người dùng ẩn danh. Giống như user/logoutchỉ hiển thị cho người dùng đăng nhập.

Định nghĩa của các cuộc gọi lại () này, như được đề cập trong câu trả lời khác, trong user_menu()


+1 và điều tương tự cũng đúng với user/register- tạo liên kết theo cách thông thường thông qua giao diện người dùng menu và nó chỉ xuất hiện cho người dùng không đăng nhập tự động.
user56reinstatemonica8 17/05/2016

1

Kiểm tra các định nghĩa menu user_menu()trong mô-đun người dùng. Cuộc gọi lại truy cập xác định, khi nào mục menu sẽ được hiển thị.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.