How-to: Yêu cầu người dùng đăng nhập để được phép đọc nhưng tin tức trả tiền

How-to: Yêu cầu người dùng đăng nhập để được phép đọc nhưng tin tức trả tiền

Nghịch cảnh:

Có những mục tin như sau:

  • Press news: tin miễn phí
  • Members news: tin phải là thành viên (đăng ký miễn phí) mới được đọc
  • Paid news: tin trả tiền, phải là thành viên thuộc nhóm khách hàng thân thiết (trả tiền hàng tháng) để đọc
Mỗi mục tin có một trang để đọc tin chi tiết và một trang hiển thị backnumber. Với trang yêu cầu đăng nhập sẽ hiện login box để user đăng nhập. Với trang yêu cầu là thành viên đóng tiền thì thông báo "Bạn chưa đăng nhập hoặc bạn chưa là gold members".

Thực hiện:

Bước 1: cài đặt các module cần thiết. Ở đây giả sử bạn đã biết cách sử dụng Module Manager để download & install một module mới. Với mỗi module, sau khi cài đặt, xem phần help của mỗi module để biết thêm chi tiết cũng như các cách dùng cụ thể

Frontend users (FEU): quản lý user ở frontend của website.

CustomContent: module tận dụng FEU để cho phép bạn tuỳ biến những nội dung khác nhau với từng user, group khác nhau.

Bước 2: nhúng vào template các đoạn code kiểm tra user đã login chưa, nếu chưa hiện form login cho user

Lấy mục tin Members news để làm ví dụ ở đây. Có hai trang cho mục tin này: 1 trang members_news_detail và 1 trang liệt kê members_news_list

Thêm đoạn code sau vào trang members_news_list để yêu cầu user đăng nhập trước khi đọc tin

 {cms_module module="CustomContent"}  {if $customcontent_loggedin}  {else}  {cms_module module="Frontendusers" form="login" returnto="members_news_list"} {/if} 

{if $customcontent_loggedin}: kiểm tra user đã đăng nhập chưa. Đọc thêm phần help của module CustomContent để biết thêm cách dùng nếu muốn check user còn phải thuộc một nhóm hay một ip cụ thể nào đó.

{cms_module module="Frontendusers" form="login" returnto="members_news_list"}: dùng Login template của modue FEU đẻ hiện form login. Thuộc tính returnto="members_news_list" là trang mà user sẽ được chuyển tới sau khi đăng nhập thành công. Đọc help của FEU để biết thêm về cách dùng các form khác như: logout, forgotpassword. Vào Admin Panel -> User group -> Frontend User->xxxTemplate để tuỳ biến các form theo yêu cầu.

Đoạn code trên có thể được đặt trong phạm vi một trang. Nếu cần dùng chung cho tất cả các trang khác thì đặt vào template của trang.


emplate của trang.