2010-03-22 25 views
5

Làm cách nào để tạo biểu mẫu yêu cầu người xem ẩn danh đăng ký để xem?Yêu cầu người dùng ẩn danh đăng ký để thêm nội dung kiểu

Hiện tại, tôi đã tạo một loại nội dung (Kế hoạch gửi) là một liên kết chính có sẵn cho mọi người (ẩn danh + được xác thực). Tôi đã hạn chế quyền xem 'người dùng' đối với người dùng ẩn danh nhưng họ vẫn có thể thấy đầu vào 'Tiêu đề' (tôi không muốn điều đó).

Tôi muốn nó để khi một người dùng vô danh nhấp chuột vào 'Thêm một kế hoạch' liên kết chính (Gửi Kế hoạch content-type), nó đi vào trang và nói:

  • "Bạn phải đăng ký một tài khoản "HOẶC
  • Chuyển hướng họ đến trang đăng ký yêu cầu họ đăng ký để gửi gói.

Tôi đã tìm kiếm một mô-đun hoặc có thể một số mã để sử dụng nhưng đã đưa ra ngắn về chủ đề này. Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn!

Trả lời

1

Nếu bạn định chuyển hướng người dùng đến trang đăng ký, tôi sẽ cân nhắc sử dụng một cái gì đó như logintoboggan để đăng ký quá trình tạo nút trơn tru. Nếu không, đăng ký là một quy trình nhiều bước và tôi cho rằng người dùng dễ dàng mất đường quay lại biểu mẫu Thêm kế hoạch trong quy trình.

Đối với hướng dẫn "Hiển thị liên kết hoặc hiển thị biểu mẫu", có ít nhất hai cách tiếp cận: 1) tạo trang tùy chỉnh nơi bạn "nhập" biểu mẫu add_plan (hoặc hiển thị liên kết). 2) sửa đổi trang nút/thêm/lập kế hoạch, hoặc thông qua chủ đề hoặc fapi (các hình thức api).

mà không cần phải cố gắng này, tôi có lẽ sẽ nghiêng về phương pháp một.

Cập nhật: chỉ cần có một suy nghĩ khác: bạn cũng có thể thêm biểu mẫu kế hoạch vào biểu mẫu đăng ký để chúng điền vào một lần.Tôi không chắc chắn làm thế nào để làm điều đó nói chung, nhưng node profile sẽ làm việc nếu họ chỉ bao giờ sẽ làm cho một kế hoạch, và nếu không, bạn có thể xem làm thế nào mà được đặt lại với nhau.

1

Điều này có thể được thực hiện theo một vài cách.

One, sản lượng thực đơn của bạn, bạn có thể thay đổi các liên kết đến Submit Kế hoạch như thế này:

<?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; 
    } 
?> 

Đoạn mã trên trông để xem nếu đối tượng người dùng có UID. 0 là ẩn danh, do đó sẽ in liên kết gửi chúng để đăng ký. Nếu không, nó sẽ đưa họ đến nút thêm biểu mẫu cho loại nội dung Kế hoạch gửi. Điều này cũng giả định bạn kiểm soát đầu ra trình đơn của riêng bạn. Bạn cũng có thể ghi đè nó theo cách tương tự bằng cách sử dụng chức năng chủ đề.

Có một vài cách bạn có thể làm điều này, vì vậy hãy bắt đầu ở đó và cho tôi biết suy nghĩ của bạn.

+0

Điều này nghe có vẻ ngu ngốc nhưng làm thế nào để bạn chỉnh sửa đầu ra menu? Tôi đang ở trên tài khoản quản trị vì vậy tôi cho rằng tôi có quyền kiểm soát điều đó. – Chetan

+0

Có một vài cách. Bạn có thể thử điều này: http://api.drupal.org/api/function/theme_menu_item_link cố gắng ghi đè điều đó trong chủ đề của bạn và điều chỉnh mã trên để làm việc với nó. Vì vậy, ví dụ, thay vì in -html- bạn sẽ nói $ link ['href'] = '/ user/register' hoặc $ link ['href'] = '/ node/add/submit-plan' nếu chúng được ghi lại in. – Kevin

+0

Tôi sẽ không đi với phương pháp này trừ khi tôi cũng có thể làm cho nó tinh thể rõ ràng những gì còn lại của công việc sẽ được và làm cho nó tự động xảy ra cho người dùng. (Ví dụ: điều chỉnh thông báo, đăng nhập của họ sau khi xác nhận email của họ tự động đưa họ đến trang tạo kế hoạch, v.v.) Ngoài ra, người dùng ẩn danh có thể không cần phải đăng ký - có thể họ cần phải đăng nhập. – sprugman

Các vấn đề liên quan