Bagaimana cara menampilkan bendera kepada pengguna anonim?

8

Saya menggunakan modul Bendera , tetapi saya memiliki masalah dalam menampilkan bendera kepada pengguna anonim.

Saya memiliki 2 flag yang disebut "make feature" dan "add to Favorites". Saya ingin menampilkan bendera ini juga untuk pengguna anonim. Saat ini ditampilkan hanya untuk pengguna yang masuk (pengguna yang diautentikasi).

Saya ingin bendera ini ditampilkan kepada semua pengguna (apakah masuk atau tidak). Tetapi ketika pengguna anonim mengklik bendera daripada pengguna tersebut harus diarahkan ke halaman login. Setelah login, pengguna harus dapat mengatur flag.

Apakah ini mungkin?

Pranav Gandhi
sumber
Apa bendera dalam konteks Anda? Entri menu?
BetaRide
@BetaRide: Saya pikir OP berbicara tentang bendera dengan modul Bendera
AjitS
ya saya menggunakan modul flag.
Pranav Gandhi

Jawaban:

10

Anda dapat melakukan ini di 'node.tpl.php' Anda dengan sesuatu seperti di bawah ini, jika pengguna login tampilan bendera seperti biasa dan jika tidak login redirect pengguna untuk masuk halaman dengan destinationparameter

global $user;
if(!$user->uid) {
    // $flag: bookmark or make_feature, $action: flag, $content_id: $nid.....
    $flag_link = flag_flag_link($flag, $action, $content_id);
    $flag_url = $flag_link['href'];
    if(isset($flag_link['query']['token'])) {
        $flag_url .= '?'.$flag_link['query']['token'];
    }
    print l(t('bookmark'), 'user/login' , array('query'=> array('destination' => $flag_url)));
} else {
    print render($content['links']['flag']);
}
Mohammad Ali Akbari
sumber
Terima kasih, kerjanya.
Pranav Gandhi
4

Untuk menampilkan bendera kepada pengguna anonim , lihat apa yang tertulis dalam dokumentasi komunitas modul Bendera , yaitu:

Memberi tanda panji untuk pengguna anonim (bahkan dengan cache halaman diaktifkan). Membutuhkan API Sesi .

Sesuatu yang mirip dari README.txt :

Instalasi opsional

1) Kemampuan pengguna anonim untuk menandai konten disediakan oleh modul Session API, tersedia di http://drupal.org/project/session_api .

Perlu diketahui juga bahwa Session API tidak disebutkan sebagai dependensi dalam modul Bendera .

Pierre
sumber