ZenCart函數-functions_lookups.php

函數:zen_get_info_page

function zen_get_info_page($zf_product_id)
函數說明:根據產品ID 獲得產品類型 在計算出產品的頁面地址
備註說明:可緩存優化

由於產品具有很多的產品類型 根據產品ID  type_handler
先從產品表查詢出產品的類型 然後在根據產品的類型 獲取產品配置的type_handler

look up the product type from product_id and return an info page name (for template/page handling)
爲模板和頁面處理

先從products表查詢出products_type
然後從TABLE_PRODUCT_TYPES 查詢出 type_handler
最後返回$zp_handler->fields['type_handler'] . '_info';

可能返回值
product_info
product_music_info
document_general_info
document_product_info
product_free_shipping_info


分類相關函數

zen_get_categories_name

根據分類ID----獲得分類名字

zen_get_category_name

根據分類ID和語言ID----獲取分類的名字信息

zen_get_category_description

根據分類ID和語言ID----獲取分類的描述信息

【注意區分上面兩個函數一個是“_categories_”,一個是“_category_”】

zen_get_categories_image

根據分類ID----獲得分類的圖片名字--數據庫categories.categories_image 字段

zen_get_categories_name_from_product

根據產品ID----獲得分類名字【主要是獲取主分類的名字】

實現過程:先從TABLE_PRODUCTS表查找出master_categories_id,然後在從TABLE_CATEGORIES_DESCRIPTION表查找categories_name分類的名字

zen_categories_lookup

【終極函數】根據分類ID,字段名稱,語言ID

從TABLE_CATEGORIES和TABLE_CATEGORIES_DESCRIPTION查詢分類的任意一個字段

比如 zen_categories_lookup('10', 'parent_id');

以上學習的是分類相關的6個函數,都是非常基礎的函數


產品相關的基礎函數

zen_products_id_valid($valid_id)

根據產品ID----檢查產品是否存在,返回bool類型

zen_get_products_virtual($lookup)

檢查產品是否是一個虛擬產品,TABLE_PRODUCTS表的products_virtual字段,如果products_virtual等於1表示產品是一個虛擬產品,返回bool類型

【此處我設置成引用格式】表示是附屬關係

zen_get_products_allow_add_to_cart($lookup) 

檢查產品是否被允許添加到購物車,是否被允許添加到購物車是通過產品類型控制的,也就是表的TABLE_PRODUCT_TYPES的allow_add_to_cart字段,如果allow_add_to_cart==‘Y’表示產品類型可以被添加到購物車

查找過程:通過產品ID查找products_type,然後通過products_type 查找allow_add_to_cart

zen_get_product_is_always_free_shipping($lookup)

檢查一個產品是否總是免郵費TABLE_PRODUCTS表的product_is_always_free_shipping,如果product_is_always_free_shipping==1 表示免郵費,返回bool類型

zen_get_products_category_id($products_id)

根據產品ID----獲得產品的主master_categories_id,在TABLE_PRODUCTS表,返回一個int類型master_categories_id

此函數和zen_get_categories_name_from_product 類似一個返回 master_categories_id 一個返回categories_name

zen_get_products_description($product_id, $language = '') 

根據產品ID和語言ID,從TABLE_PRODUCTS_DESCRIPTION表中獲取products_description描述信息

zen_get_products_name($product_id, $language = '')

根據產品ID和語言ID,從TABLE_PRODUCTS_DESCRIPTION表中獲取products_name名字信息

【上面兩個函數是姐妹函數】

【再來看一個兄弟函數】

zen_get_products_image($product_id, $width = SMALL_IMAGE_WIDTH, $height = SMALL_IMAGE_HEIGHT)

根據產品ID,並且指定寬度高度,獲取產品的圖片信息,從TABLE_PRODUCTS表檢索products_image,最終返回一個img的標籤。此函數調用了zen_get_products_name獲得產品名字,作爲圖片的alt說明

zen_get_products_manufacturers_id($product_id)

根據產品ID----獲得產品的製造商ID

在產品表TABLE_PRODUCTS中有一個manufacturers_id

zen_get_products_manufacturers_image($product_id)

根據產品ID----獲得產品的製造商圖片,在TABLE_PRODUCTS錶鏈接TABLE_MANUFACTURERS表,返回manufacturers_image字段

zen_get_products_manufacturers_name($product_id)

根據產品ID----獲得產品的製造商名字,在TABLE_PRODUCTS錶鏈接TABLE_MANUFACTURERS表,返回manufacturers_name字段

【以上三個函數是一家子】

zen_get_manufacturers($manufacturers_array = '', $have_products = false)

此函數是用來列舉製造商,返回字段manufacturers_idmanufacturers_name,這個函數有兩個點說明

1--參數manufacturers_array,如果是一個數組,並且數組中已經存在一些值,那麼調用之後會將數據庫中查詢出來的值,和已經存在的值合併返回.

2.$have_products表示是否和TABLE_PRODUCTS聯合起來查詢,這樣篩選出的製造商保證都是有產品的。

現在一共學習產品的8個函數了


繼續開始

zen_products_lookup($product_id, $what_field = 'products_name', $language = '')

聯合TABLE_PRODUCTS和TABLE_PRODUCTS_DESCRIPTION兩張表檢索兩張表的任意字段,此函數和zen_categories_lookup函數是姐妹函數

我們的產品總是有庫存的,讓我們看看庫存相關的函數

zen_get_products_stock($products_id)

此函數會觸發一個通知,暫時是什麼我還不清楚。函數內部查找TABLE_PRODUCTS表的products_quantity字段,最終返回一個int類型的數值。函數內部調用了一個zen_get_prid,作用是從購物車id中解析產品ID,比如下面

下面格式的鏈接

http://localhost/ZenCart156c/index.php?main_page=product_info&products_id=8:c9f0f895fb98ab9159f51fd0297e236d

產品ID 是products_id=8:c9f0f895fb98ab9159f51fd0297e236d,zen_get_prid函數就是做了一個內部解析。

zen_check_stock($products_id, $products_quantity)

檢查我們的庫存,是否到達了一個值,根據產品ID查詢我們的數據庫,獲得實際數量,然後減去$products_quantity得到$stock_left,判斷$stock_left是否小於0,如果小於0,表示庫存剩餘量,返回span標籤 附加說明消息。

 

關於新進產品和即將上架產品定義的時間範圍

zen_get_new_date_range($time_limit = false)

 

zen_get_products_new_timelimit($time_limit = false)

獲取最新產品的定義 得到時間條件

 

zen_get_upcoming_date_range()

 

關於區域zone函數

關於屬性選項函數

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章