Tampilkan 'masuk' di menu pengguna saat tidak masuk

8

Saya bertanya pada diri sendiri, di mana kode yang menyembunyikan "Akun saya" & "Keluar" di menu pengguna? Hanya ingin tahu, untuk belajar dari kode itu. Adakah cara untuk mengetahui ke mana harus mencari jika Anda ingin mengetahui sesuatu seperti ini?

Saya menambahkan tautan "Masuk" ke menu ini, dan saya ingin menyembunyikan ini ketika tidak ada yang masuk.

teriak SiLENCE
sumber

Jawaban:

13

Ketika Anda memiliki sesuatu yang terjadi dengan tautan, Anda perlu melihat kode untuk a hook_menu(). Maka Anda perlu menebak modul mana yang digunakan. Dalam hal ini, lihat modul Pengguna inti:

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

  return $items;
}

Perhatikan 'access callback' => 'user_is_anonymous',barisnya. Ini berarti bahwa Anda hanya dapat melakukan ini jika Anda anonim (yaitu, tidak masuk). Ini berarti bahwa Anda hanya bisa membuat entri menu dengan "pengguna / login" sebagai path, dan tautan hanya akan ditampilkan ketika Anda logout.

mpdonadio
sumber
16

Anda dapat menambahkan tautan menu ke user/login, panggilan balik akses yang memverifikasi bahwa itu hanya ditampilkan kepada pengguna anonim. Sama seperti user/logouthanya terlihat untuk pengguna yang masuk.

Definisi panggilan balik ini () adalah, sebagaimana disebutkan dalam jawaban lain, dalam user_menu()

Berdir
sumber
+1 dan hal yang sama berlaku untuk user/register- membuat tautan dengan cara biasa melalui UI menu, dan hanya muncul untuk pengguna yang tidak masuk secara otomatis.
user56reinstatemonica8
1

Periksa definisi menu di user_menu()dalam modul pengguna. Panggilan balik akses menentukan, kapan item menu ditampilkan.

Gabor Szanto
sumber