2010-03-22 13 views
5

Görmek için kayıt olmak için anonim görüntüleyiciler gerektiren bir formu nasıl oluşturabilirim?İçerik türü eklemek için kayıt yaptırmak üzere anonim kullanıcı iste

Şu anda, herkes tarafından kullanılabilen bir birincil bağlantı olan (Anonim + doğrulanmış) bir içerik türü (Gönderme Planı) oluşturdum. Kullanıcı izinlerini anonim kullanıcılara 'görüntüleme' kısıtladım, ancak yine de 'Başlık' girdisini görebiliyorum (bunu istemiyorum).

anonim kullanıcı birincil bağlantıyı (Submit Planı içerik türü) 'a Plan Ekleme' tıkladığında, bu sayfaya gider ve der ki ben bunu istiyorum:

  • "Sen gerekir Bir hesaba kayıt ol "VEYA
  • Bir plan göndermek için kayıt olmalarını isteyen kayıt sayfasına yönlendirir.

Kullanmak için bir modül veya belki de bazı kodlar arıyordum ama bu konu hakkında kısa bir açıklama yaptım. Herhangi bir yardım takdir edilecektir. Teşekkürler!

cevap

1

Kullanıcıları kayıt sayfasına yönlendirecekseniz, kayıt> düğüm oluşturma işleminin sorunsuz olmasını sağlamak için logintoboggan gibi bir şey kullanmayı şiddetle düşünün. Aksi takdirde, kayıt çok adımlı bir süreçtir ve kullanıcıların süreçte bir Plan Ekle formuna geri dönmelerini kolaylaştıracağını düşünürdüm.

"Bağlantıları göster veya formu göster" yönü için, en az iki yaklaşma yöntemi vardır: 1) add_plan formunu (veya bağlantıları göster) "içe aktardığınız" özel bir sayfa oluşturun. 2) tema/fapi (form api) aracılığıyla düğüm/ekleme/plan sayfasının kendisini düzenleyin.

, muhtemelen yöntem biri düşkündürler ederim.

Güncelleştirme:: başka bir düşünce daha vardı: Ayrıca, kayıt formuna plan formunu ekleyebilir, böylece bir çekimde onları doldurabilirler.Genelde bunu nasıl yapacağımdan emin değilim, ama node profile sadece bir plan yapacaklarsa işe yarayacaktı, eğer olmasaydı, nasıl bir araya getirildiğine bakabilirsin.

1

Bu, birkaç yoldan yapılabilir.

Bir

, menü çıktı, böyle Planı Sunacak bağlantıyı değiştirebilirsiniz:

<?php 
    global $user; 

    if ($user->uid == 0) { 
    print '<a href="/user/register">Add a Plan</a>'; 
    } else { 
    print '<a href="/node/add/submit-plan">Add a Plan</a>'l; 
    } 
?> 

Yukarıdaki kod kullanıcı nesnesi UID olup olmadığını görmek için bakar. 0 anonimdir, böylece kayıt için onları gönderen bağlantıyı basacaktır. Aksi takdirde bunları Submit Plan içerik türü için düğüm ekleme formuna götürecektir. Bu ayrıca kendi menü çıktınızı kontrol ettiğinizi varsayar. Bir tema işlevi kullanarak da benzer bir şekilde geçersiz kılabilirsiniz.

Bunu yapmanın birkaç yolu vardır, o yüzden buradan başlayın ve ne düşündüğünüzü bana bildirin.

+0

Bu aptalca gelebilir, ancak menü çıktısını nasıl düzenlersiniz? Yönetici hesabındayım, bu yüzden üzerinde kontrol sahibi olduğumu farz ediyorum. – Chetan

+0

Birkaç yol var. Bunu deneyebilirsiniz: http://api.drupal.org/api/function/theme_menu_item_link Temanızda bunu geçersiz kılmayı deneyin ve yukarıdaki kodu onunla çalışmaya uyarlayın. Örneğin, print -html-yerine, eğer oturum açmışlarsa $ link ['href'] = '/ user/register' ya da $ link ['href'] = '/ node/add/submit-plan' yazabilirsiniz. – Kevin

+0

Ayrıca, iş akışının geri kalanının ne olacağını ve kullanıcı için otomatik olarak gerçekleşmesini sağlayamayacağımı fark etmedikçe, bu yöntemi kullanmam. (Örn. Mesajların ayarlanması, e-postalarının onaylanmasından sonra oturum açmalarının otomatik olarak plan planı sayfasına götürülmesi vb.). Ayrıca, anonim bir kullanıcının kaydolması gerekmeyebilir - belki de giriş yapmaları gerekir. – sprugman