# Edocman Lite – Hướng dẫn tạo trang Frontend (Tiếng Việt)

Tài liệu này hướng dẫn cách tạo các trang hiển thị cho Edocman Lite bằng cách sử dụng WordPress shortcodes.

---

## Các Shortcode có sẵn

| Shortcode | Mô tả |
|---|---|
| `[edocman_lite_categories]` | Hiển thị danh sách các danh mục tài liệu |
| `[edocman_lite_documents]` | Hiển thị tài liệu (có thể lọc theo danh mục) |
| `[edocman_lite_document]` | Hiển thị chi tiết một tài liệu |
| `[edocman_lite_upload_document]` | Form upload tài liệu phía frontend (chỉ dành cho người dùng đã đăng nhập) |
| `[edocman_lite_my_documents]` | Danh sách tài liệu đã upload của người dùng hiện tại |

---

## 1. Trang Danh sách Danh mục (Category List)

**Mục đích:** Hiển thị tất cả các danh mục tài liệu cấp cao nhất. Khi click vào một danh mục, người dùng sẽ thấy các tài liệu trong danh mục đó.

**Các bước:**
1. Tạo trang WordPress mới (ví dụ: "Danh mục tài liệu").
2. Thêm shortcode vào nội dung trang:

   ```
   [edocman_lite_categories]
   ```

3. Xuất bản trang.

**Các tham số shortcode:**

| Tham số | Mặc định | Mô tả |
|---|---|---|
| `parent_id` | `0` | Hiển thị danh mục con của ID này (0 = cấp cao nhất) |
| `show_description` | `1` | Hiển thị mô tả danh mục (1 = có, 0 = không) |
| `show_image` | `1` | Hiển thị ảnh đại diện danh mục (1 = có, 0 = không) |

**Ví dụ – hiển thị danh mục con của danh mục #5:**
```
[edocman_lite_categories parent_id="5"]
```

---

## 2. Trang Chi tiết Danh mục / Tài liệu theo Danh mục

**Mục đích:** Hiển thị danh sách tài liệu thuộc một danh mục cụ thể.

Có thể sử dụng một trong hai cách sau:

### Cách A – Dùng trang danh sách danh mục (tự động)

Khi người dùng click vào một danh mục trên trang Danh sách Danh mục, URL tự động thêm `?cat_id=X` và cùng trang đó sẽ hiển thị tài liệu của danh mục đó.

### Cách B – Trang riêng cho từng danh mục

Tạo trang với shortcode sau (thay `5` bằng ID danh mục thực tế):

```
[edocman_lite_documents category_id="5"]
```

**Các tham số shortcode:**

| Tham số | Mặc định | Mô tả |
|---|---|---|
| `category_id` | `0` | Lọc tài liệu theo danh mục (0 = tất cả) |
| `limit` | `10` | Số tài liệu tối đa hiển thị |
| `show_description` | `1` | Hiển thị mô tả tài liệu (1 = có, 0 = không) |

---

## 3. Trang Danh sách Tài liệu (All Documents)

**Mục đích:** Hiển thị tất cả tài liệu đã xuất bản, không phân biệt danh mục.

1. Tạo trang WordPress mới (ví dụ: "Tất cả tài liệu").
2. Thêm shortcode:

   ```
   [edocman_lite_documents]
   ```

3. Xuất bản trang.

---

## 4. Trang Chi tiết Tài liệu (Document Detail)

**Mục đích:** Hiển thị đầy đủ thông tin một tài liệu: tiêu đề, mô tả, dung lượng file, nút Download và nút Xem.

**Điều hướng tự động:** Khi người dùng click vào tiêu đề tài liệu trên trang Danh sách Tài liệu, URL thêm `?doc_id=X` và cùng trang đó sẽ hiển thị chi tiết tài liệu đó.

**Trang chi tiết riêng:** Nếu muốn có trang riêng cho chi tiết tài liệu, tạo trang và thêm:

```
[edocman_lite_document]
```

Shortcode này đọc tham số `doc_id` từ URL để xác định tài liệu cần hiển thị.

---

## 5. Trang Upload Tài liệu (yêu cầu đăng nhập)

**Mục đích:** Cho phép người dùng đã đăng ký tải lên tài liệu của họ để chờ duyệt.

1. Tạo trang WordPress mới (ví dụ: "Upload tài liệu").
2. Thêm shortcode:

   ```
   [edocman_lite_upload_document]
   ```

3. Xuất bản trang.

Người dùng **chưa đăng nhập** sẽ thấy thông báo yêu cầu đăng nhập. Người dùng đã đăng nhập sẽ thấy form upload gồm:
- Tiêu đề (bắt buộc)
- Chọn danh mục
- Mô tả
- Chọn file

Tài liệu sau khi upload sẽ được lưu với trạng thái `published = 0` (chờ duyệt). Quản trị viên có thể duyệt và xuất bản từ trang quản lý Documents trong admin.

---

## 6. Trang Tài liệu của tôi (yêu cầu đăng nhập)

**Mục đích:** Hiển thị danh sách tài liệu mà người dùng đã upload, có nút xóa.

1. Tạo trang WordPress mới (ví dụ: "Tài liệu của tôi").
2. Thêm shortcode:

   ```
   [edocman_lite_my_documents]
   ```

3. Xuất bản trang.

---

## Cấu trúc trang đề xuất

Cấu trúc điển hình sử dụng tất cả shortcode:

```
Trang chủ
├── Danh mục tài liệu     → [edocman_lite_categories]
│   └── (click danh mục → hiển thị tài liệu qua ?cat_id=X)
│       └── (click tài liệu → hiển thị chi tiết qua ?doc_id=X)
├── Tất cả tài liệu       → [edocman_lite_documents]
├── Upload tài liệu       → [edocman_lite_upload_document]
└── Tài liệu của tôi      → [edocman_lite_my_documents]
```

---

## Cơ chế Phát hiện Phiên bản Mới

Edocman Lite kiểm tra phiên bản mới trên WordPress.org mỗi 12 giờ một lần. Nếu phát hiện phiên bản mới, thông báo sẽ được hiển thị trên trang **Configuration** trong admin (Edocman Lite → Configuration), kèm link tải về.

**Cơ chế hoạt động:**

1. Plugin gọi API: `https://api.wordpress.org/plugins/info/1.0/edocman-lite.json`
2. Kết quả phản hồi (bao gồm số phiên bản mới nhất) được lưu vào WordPress transient tên `edocman_lite_version_info` trong 12 giờ để tránh gọi HTTP liên tục.
3. Số phiên bản từ API được so sánh với hằng số `EDOCMAN_LITE_VERSION` hiện tại của plugin.
4. Nếu phiên bản từ API cao hơn, thông báo cập nhật sẽ xuất hiện:
   - Banner cảnh báo ở đầu trang Configuration
   - Dòng thông tin phiên bản ở cuối form hiển thị "(New version X.X.X available)"
