Sử dụng hàm trong template
(Cập nhật: 2020-10-29 06:15:24)

I. Danh sách biến model
II. Cú pháp sử dụng
III. Danh sách hàm dùng chung
IV. Các hàm đặc biệt

Mỗi file template sẽ có các biến riêng được truyền từ controller cha. Ví dụ (*)
Ngoài ra, S-Cart cung cấp thêm danh sách các biến và các hàm toàn cục có thể gọi ở bất kỳ các file template nào.
Mục đích:

- Tách biệt người làm giao diện với developer: Không cần có nhiều kiến thức về code trong các model, controller.
- Biến model và các hàm của nó được gọi ở bất kỳ view nào: Không phải khai báo ở từng controller cho từng view
- Cú pháp đồng nhất


I. Các biến model được khởi tạo sẵn:
1. $modelProduct -> model Product
2. $modelCategory -> model Category
3. $modelBanner -> model Banner
4. $modelBrand -> model Brand
5. $modelNews -> model News
6. $modelPage -> model Page
7. $modelCmsCategory -> model CMS Category
8. $modelCmsContent -> model CMS Content

II. Cú pháp sử dụng:

$biến_model->start()->(get)group-query->(set)query->getData()|getSql();

Ví dụ:
$modelProduct->start()->getProductHot()->setLimit(20)->setPaginate()->setRandom()->getData();

Trong đó:
- Group-query:
Bản chất là nhiều query đã định nghĩ sẵn
- Query:
Các điều kiện bổ sung. Nếu trùng với query group-query, thì query sau sẽ ghi đè query trước đó.
- getData | getSql
Tương đương với hàm get() và toSql() trong Laravel
- start()
Để tránh trả về kết quả không như ý muốn, nên sử dụng hàm start() trước khi bắt đầu xử lý dữ liệu.

III. Các hàm hỗ trợ chung cho tất cả các biến model:
  • start(): bắt đầu khi sử dụng các hàm model. Hãy đảm bảo luôn sử dụng nó đầu tiên để không nhận về những kết quả nào ý muốn.
  • setLimit(int) // Giới hạn kết quả trả về -> Hàm sau thay thế hàm trước
  • setSort([$key, ‘asc|desc’]) //Sắp xếp kết quả trả về ->  Được sử dụng nhiều lần
  • setRandom(0|1) // Kích hoạt lấy ngẫu nhiên kết quả trả về ->  Hàm sau thay thế hàm trước
  • setPaginate() // Kích hoạt phân trang
  • setMoreWhere([$v1, ‘<|>|=|like|<=|>=|<>’, $v2]) // Bổ sung mệnh đề where ->  Được sử dụng nhiều lần
  • getSql() // Trả về câu truy vấn -> Sử dụng cuối cùng
  • getData() // Trả về kết quả dữ liệu -> Sử dụng cuối dùng
  • getFull() // Trả về kết quả chi tiết 1 model -> Sử dụng cuối cùng.

IV. Các hàm đặc biệt cho 1 số model:
1. $modelProduct
  • setKeyword($string) // Tìm kiếm sản phẩm với từ khóa: sku, tên, mô tả, từ khóa
  • getProductHot() // Danh sách sản phẩm giảm giá
  • getProductBuild() // Danh sách sản phẩm bộ
  • getProductGroup() // Danh sách sản phẩm nhóm
  • getProductSingle() // Danh sách sản phẩm đơn
  • getProductToCategory($arrCategory | int) // Danh sách sản phẩm theo danh mục
  • getProductToBrand($arrBrand | int) // Danh sách sản phẩm theo nhãn hàng
  • getProductLatest() // Top sản phẩm mới nhất
  • getProductLastView() // Danh sách sản phẩm mới xem gần nhất
  • getProductBestSell() // Danh sách sản phẩm bán tốt nhất
  • getProductPromotion() // get top products promotion
  • getFinalPrice() // Lấy giá bán cuối cùng của sản phẩm (không thuế)
  • getFinalPriceTax() // Lấy giá bán cuối cùng của sản phẩm (có thuế)
  • showPrice() //Hiển thị chi tiết giá của sản phẩm ở các trang danh sách sản phẩm
  • showPriceDetail() // Hiển thị chi tiết giá của sản phẩm ở các trang chi tiết sản phẩm
  • getDetail() // Lấy thông tin chi tiết của 1 sản phẩm dựa vào id, model, alias,...
  • getThumb() // Lấy link hình ảnh thumb của sản phẩm
  • getImage() // Lấy link hình ảnh chính của sản phẩm
  • getUrl() // Lấy link sản phẩm
  • getPercentDiscount() / Tỉ lệ giảm giá
  • renderAttributeDetails() // Hiển thị các thuộc tính
  • allowSale() // Kiểm tra sản phẩm có được giảm giá không
  • getProductFromListID($arrID) // Get danh sách sản phẩm dựa vào array ID
2. $modelCategory
  • setParent(int) // Lấy ra danh mục theo danh ID mục cha 
  • getCategoryRoot() // Lấy danh mục gốc (có id = 0)
  • getCategoryTop() // Lấy danh mục hiển thị đầu tiên ngoài trang chủ (top = 1)
  • getDetail() // Lấy thông tin chi tiết của danh mục
  • getThumb() // Lấy link hình ảnh thumb của danh mục
  • getImage() // Lấy link hình ảnh chính của danh mục
  • getUrl() // Lấy link danh mục
  • getParent() / Lấy thông tin danh mục cha
3. $modelBanner
  • getBanner() // lấy Banner (type =banner)
  • getBackground() // hình nền (type = background)
  • getBreadcrumb() // Hình breadcrumb (type=breadcrumb)
  • getDetail() // Lấy thông tin chi tiết của 1 banner
  • getThumb() // Lấy link hình ảnh thumb của banner
  • getImage() // Lấy link hình ảnh chính của banner
4. $modelBrand
  • getDetail() // Lấy thông tin chi tiết của nhãn hàng
  • getThumb() // Lấy link hình ảnh thumb nhãn hàng
  • getImage() // Lấy link hình ảnh chính của nhãn hàng
  • getUrl() // Lấy link nhãn hàng
5. $modelNews 
  • getDetail() // Lấy thông tin chi tiết của blog
  • getThumb() // Lấy link hình ảnh thumb blog
  • getImage() // Lấy link hình ảnh chính của blog
  • getUrl() // Lấy link blog
6. $modelPage
  • getDetail() // Lấy thông tin chi tiết của trang tin
  • getThumb() // Lấy link hình ảnh thumb trang tin
  • getImage() // Lấy link hình ảnh chính của trang tin
  • getUrl() // Lấy link trang tin
7. $modelCmsCategory
  • setParent(int) // Lấy ra danh mục theo danh ID mục cha 
  • getCategoryRoot() // Lấy danh mục gốc (có id = 0)
  • getDetail() // Lấy thông tin chi tiết của danh mục
  • getThumb() // Lấy link hình ảnh thumb của danh mục
  • getImage() // Lấy link hình ảnh chính của danh mục
  • getUrl() // Lấy link danh mục
  • getParent() / Lấy thông tin danh mục cha
8. $modelCmsContent
  • getContentToCategory(array id) // Danh sách bài viết thuộc danh mục
  • getDetail() // Lấy thông tin chi tiết của bài viết
  • getThumb() // Lấy link hình ảnh thumb bài viết
  • getImage() // Lấy link hình ảnh chính của bài viết
  • getUrl() // Lấy link  bài viết
(*)Các biến riêng của mỗi file template được sử dụng:
variable-template

Bài viết liên quan