Yanıtlar:
Sorunuzu anlarsam, özel bir modül (bu örnekte, modülün adı test_remove_field
) kullanabileceğinizi ve aşağıdaki kodu dahil edebileceğinizi düşünüyorum:
function test_remove_field_form_alter(&$form, &$form_state) {
if (arg(0) == 'node' && arg(1) == 'add') {
$form['field_test']['#access'] = 0;
}
}
Not: bunun field_test
ilgili alan adınız olması gerektiğini unutmayın.
Saha İzinler modülü seti alan düzeyinde izinler yapmanızı sağlar:
Bir alan için role dayalı izni etkinleştirmek için bu seçenekleri kullanabilirsiniz.
İzinler etkinleştirildiğinde, bu alana erişim varsayılan olarak reddedilir ve izin yönetimi sayfasından uygun kullanıcı rollerine açık izinler verilmelidir. Diğer yandan, bu seçenekler devre dışı bırakıldığında, alan izinleri içerik görünümünden ve / veya düzenleme izinlerinden devralınır. Örneğin, belirli bir düğümü görüntülemesine izin verilen kullanıcılar da bu alanı görüntüleyebilir ve bu şekilde devam eder.
Alan izinleri
Ben hook_form_alter () kullanmak ve sadece @ moon.watcher tarafından cevap gibi ['#access']
özellik ayarlamak FALSE
.
Drupal 6'daysanız, bunu yapmak için bir modüle ihtiyacınız olacaktır. Drupal 7'de şablonunuzdan hook_form_alter () yöntemini çağırabilirsiniz .
Bu, Kural Formu Destek Modülü için bir kullanım durumudur - https://www.drupal.org/project/rules_forms .
Özellikler:
- Olayları form form bazında form oluşturma, doğrulama ve gönderme için etkinleştirin.
- Koşullarda ve eylemlerde tek tek form öğelerini veya tüm formu hedefleyin. Başlık, açıklama, ağırlık ve daha fazlası gibi bir form öğesinin niteliklerini değiştirin.
- Form doğrulama sırasında form öğelerinin değerlerini doğrulayın.
- Kural tabanlı doğrulama başarısız olduğunda form hatalarını ayarlayın.
- Bir formu görüntüledikten veya gönderdikten sonra kullanıcıları farklı bir sayfaya yönlendirin.
- Eleman kontrol aracı ile aktif formlardaki elemanların niteliklerini inceleyin.