提交 9eebf6d0 编写于 作者: T Terry

catalog modules 部分代码调整和注释

上级 d472d7eb
...@@ -18,18 +18,31 @@ use yii\base\InvalidValueException; ...@@ -18,18 +18,31 @@ use yii\base\InvalidValueException;
*/ */
class Index class Index
{ {
// 当前分类对象
protected $_category; protected $_category;
// 页面标题
protected $_title; protected $_title;
// 当前分类主键对应的值
protected $_primaryVal; protected $_primaryVal;
// 默认的排序字段
protected $_defautOrder; protected $_defautOrder;
// 默认的排序方向,升序还是降序
protected $_defautOrderDirection = SORT_DESC; protected $_defautOrderDirection = SORT_DESC;
// 当前的where条件
protected $_where; protected $_where;
// url的参数,每页产品个数
protected $_numPerPage = 'numPerPage'; protected $_numPerPage = 'numPerPage';
// url的参数,排序方向
protected $_direction = 'dir'; protected $_direction = 'dir';
// url的参数,排序字段
protected $_sort = 'sort'; protected $_sort = 'sort';
// url的参数,页数
protected $_page = 'p'; protected $_page = 'p';
// url的参数,价格
protected $_filterPrice = 'price'; protected $_filterPrice = 'price';
// url的参数,价格
protected $_filterPriceAttr = 'price'; protected $_filterPriceAttr = 'price';
// 产品总数
protected $_productCount; protected $_productCount;
protected $_filter_attr; protected $_filter_attr;
protected $_numPerPageVal; protected $_numPerPageVal;
...@@ -77,7 +90,10 @@ class Index ...@@ -77,7 +90,10 @@ class Index
return $filter_category; return $filter_category;
} }
/**
* @property $filter_category | Array
* 通过递归的方式,得到分类以及子分类的html。
*/
protected function getFilterCategoryHtml($filter_category = '') protected function getFilterCategoryHtml($filter_category = '')
{ {
$str = ''; $str = '';
...@@ -104,7 +120,10 @@ class Index ...@@ -104,7 +120,10 @@ class Index
//exit; //exit;
return $str; return $str;
} }
/**
* 得到产品页面的toolbar部分
* 也就是分类页面的分页工具条部分。
*/
protected function getProductPage() protected function getProductPage()
{ {
$productNumPerPage = $this->getNumPerPage(); $productNumPerPage = $this->getNumPerPage();
...@@ -121,12 +140,15 @@ class Index ...@@ -121,12 +140,15 @@ class Index
return Yii::$service->page->widget->renderContent('category_product_page', $config); return Yii::$service->page->widget->renderContent('category_product_page', $config);
} }
/**
* 分类页面toolbar部分:
* 产品排序,产品每页的产品个数等,为这些部分提供数据。
*/
protected function getQueryItem() protected function getQueryItem()
{ {
$category_query = Yii::$app->controller->module->params['category_query']; $category_query = Yii::$app->controller->module->params['category_query'];
$numPerPage = $category_query['numPerPage']; $numPerPage = $category_query['numPerPage'];
$sort = $category_query['sort']; $sort = $category_query['sort'];
$frontNumPerPage = []; $frontNumPerPage = [];
if (is_array($numPerPage) && !empty($numPerPage)) { if (is_array($numPerPage) && !empty($numPerPage)) {
$attrUrlStr = $this->_numPerPage; $attrUrlStr = $this->_numPerPage;
...@@ -174,7 +196,14 @@ class Index ...@@ -174,7 +196,14 @@ class Index
return $data; return $data;
} }
/**
* @return Array
* 得到当前分类,侧栏用于过滤的属性数组,由三部分计算得出
* 1.全局默认属性过滤(catalog module 配置文件中配置 category_filter_attr),
* 2.当前分类属性过滤,也就是分类表的 filter_product_attr_selected 字段
* 3.当前分类去除的属性过滤,也就是分类表的 filter_product_attr_unselected
* 最终出来一个当前分类,用于过滤的属性数组。
*/
protected function getFilterAttr() protected function getFilterAttr()
{ {
if (!$this->_filter_attr) { if (!$this->_filter_attr) {
...@@ -190,7 +219,9 @@ class Index ...@@ -190,7 +219,9 @@ class Index
return $this->_filter_attr; return $this->_filter_attr;
} }
/**
* 得到分类侧栏用于属性过滤的部分数据
*/
protected function getRefineByInfo() protected function getRefineByInfo()
{ {
$get_arr = Yii::$app->request->get(); $get_arr = Yii::$app->request->get();
...@@ -230,7 +261,9 @@ class Index ...@@ -230,7 +261,9 @@ class Index
return $refineInfo; return $refineInfo;
} }
/**
* 侧栏除价格外的其他属性过滤部分
*/
protected function getFilterInfo() protected function getFilterInfo()
{ {
$filter_info = []; $filter_info = [];
...@@ -243,7 +276,9 @@ class Index ...@@ -243,7 +276,9 @@ class Index
return $filter_info; return $filter_info;
} }
/**
* 侧栏价格过滤部分
*/
protected function getFilterPrice() protected function getFilterPrice()
{ {
$filter = []; $filter = [];
...@@ -258,7 +293,9 @@ class Index ...@@ -258,7 +293,9 @@ class Index
return $filter; return $filter;
} }
/**
* 格式化价格格式,侧栏价格过滤部分
*/
protected function getFormatFilterPrice($price_item) protected function getFormatFilterPrice($price_item)
{ {
list($f_price, $l_price) = explode('-', $price_item); list($f_price, $l_price) = explode('-', $price_item);
...@@ -274,7 +311,10 @@ class Index ...@@ -274,7 +311,10 @@ class Index
return $str; return $str;
} }
/**
* @property $str | String
* 字符串转换成数组。
*/
protected function getFilterArr($str) protected function getFilterArr($str)
{ {
$arr = []; $arr = [];
...@@ -291,7 +331,9 @@ class Index ...@@ -291,7 +331,9 @@ class Index
return $arr; return $arr;
} }
/**
* 用于搜索条件的排序部分
*/
protected function getOrderBy() protected function getOrderBy()
{ {
$primaryKey = Yii::$service->category->getPrimaryKey(); $primaryKey = Yii::$service->category->getPrimaryKey();
...@@ -326,7 +368,12 @@ class Index ...@@ -326,7 +368,12 @@ class Index
} }
} }
} }
/**
* 分类页面的产品,每页显示的产品个数。
* 对于前端传递的个数参数,在后台验证一下是否是合法的个数(配置里面有一个分类产品个数列表)
* 如果不合法,则报异常
* 这个功能是为了防止分页攻击,伪造大量的不同个数的url,绕过缓存。
*/
protected function getNumPerPage() protected function getNumPerPage()
{ {
if (!$this->_numPerPageVal) { if (!$this->_numPerPageVal) {
...@@ -352,14 +399,18 @@ class Index ...@@ -352,14 +399,18 @@ class Index
return $this->_numPerPageVal; return $this->_numPerPageVal;
} }
/**
* 得到当前第几页
*/
protected function getPageNum() protected function getPageNum()
{ {
$numPerPage = Yii::$app->request->get($this->_page); $numPerPage = Yii::$app->request->get($this->_page);
return $numPerPage ? (int) $numPerPage : 1; return $numPerPage ? (int) $numPerPage : 1;
} }
/**
* 得到当前分类的产品
*/
protected function getCategoryProductColl() protected function getCategoryProductColl()
{ {
$select = [ $select = [
...@@ -384,7 +435,9 @@ class Index ...@@ -384,7 +435,9 @@ class Index
//var_dump($filter);exit; //var_dump($filter);exit;
return Yii::$service->category->product->getFrontList($filter); return Yii::$service->category->product->getFrontList($filter);
} }
/**
* 得到用于查询的where数组。
*/
protected function initWhere() protected function initWhere()
{ {
$filterAttr = $this->getFilterAttr(); $filterAttr = $this->getFilterAttr();
...@@ -408,7 +461,10 @@ class Index ...@@ -408,7 +461,10 @@ class Index
//var_dump($where);exit; //var_dump($where);exit;
return $where; return $where;
} }
/**
* 分类部分的初始化
* 对一些属性进行赋值。
*/
protected function initCategory() protected function initCategory()
{ {
$primaryKey = Yii::$service->category->getPrimaryKey(); $primaryKey = Yii::$service->category->getPrimaryKey();
......
...@@ -17,6 +17,9 @@ use Yii; ...@@ -17,6 +17,9 @@ use Yii;
*/ */
class Add class Add
{ {
/**
* 用户添加收藏产品
*/
public function getLastData() public function getLastData()
{ {
$product_id = Yii::$app->request->get('product_id'); $product_id = Yii::$app->request->get('product_id');
......
...@@ -29,12 +29,14 @@ class CustomOption ...@@ -29,12 +29,14 @@ class CustomOption
//var_dump($items);exit; //var_dump($items);exit;
return [ return [
'items' => $items, 'items' => $items,
'product_id' => $this->product_id, 'product_id' => $this->product_id,
'custom_option_arr' => json_encode($this->_custom_option_arr), 'custom_option_arr' => json_encode($this->_custom_option_arr),
'middle_img_width' => $this->middle_img_width, 'middle_img_width' => $this->middle_img_width,
]; ];
} }
/**
* 得到custom option 部分
*/
public function getAllItems() public function getAllItems()
{ {
$custom_option_attr_info = Yii::$service->product->getCustomOptionAttrInfo($this->attr_group); $custom_option_attr_info = Yii::$service->product->getCustomOptionAttrInfo($this->attr_group);
......
...@@ -18,12 +18,19 @@ use Yii; ...@@ -18,12 +18,19 @@ use Yii;
*/ */
class Index class Index
{ {
// 当前产品
protected $_product; protected $_product;
// 产品页面的title
protected $_title; protected $_title;
// 产品的主键对应的值
protected $_primaryVal; protected $_primaryVal;
// 产品的spu属性数组。
protected $_productSpuAttrArr; protected $_productSpuAttrArr;
// 以图片方式显示的spu属性
protected $_spuAttrShowAsImg; protected $_spuAttrShowAsImg;
// 在产品详细页面,在橱窗图部分,以放大镜的方式显示的产品图片列表
protected $_image_thumbnails; protected $_image_thumbnails;
// 在产品详细页面,在产品描述部分显示的产品图片列表
protected $_image_detail; protected $_image_detail;
public function getLastData() public function getLastData()
...@@ -60,8 +67,10 @@ class Index ...@@ -60,8 +67,10 @@ class Index
]; ];
} }
/** /**
* * @property $product_images | Array ,产品的图片属性
* 对gallery 中的图片进行处理,只要 is_thumbnails=1 的图片,其他的过滤掉 * 根据图片数组,得到橱窗图,和描述图
* 橱窗图:在产品详细页面顶部,放大镜显示部分的产品列表
* 描述图,在产品description文字描述后面显示的产品图片。
*/ */
public function filterProductImg($product_images){ public function filterProductImg($product_images){
$this->_image_thumbnails = $product_images; $this->_image_thumbnails = $product_images;
...@@ -88,7 +97,7 @@ class Index ...@@ -88,7 +97,7 @@ class Index
} }
/** /**废弃
* @property $data | Array 和当前产品的spu相同,但sku不同的产品 数组。 * @property $data | Array 和当前产品的spu相同,但sku不同的产品 数组。
* @property $current_size | String 当前产品的size值 * @property $current_size | String 当前产品的size值
* @property $current_color | String 当前产品的颜色值 * @property $current_color | String 当前产品的颜色值
...@@ -152,7 +161,9 @@ class Index ...@@ -152,7 +161,9 @@ class Index
} }
/** /**
* @property $select | Array , 需要查询的字段。
* 得到当前spu下面的所有的sku的数组、 * 得到当前spu下面的所有的sku的数组、
* 这个是为了产品详细页面的spu下面的产品切换,譬如同一spu下的不同的颜色尺码切换。
*/ */
protected function getSpuData($select) protected function getSpuData($select)
{ {
...@@ -172,11 +183,10 @@ class Index ...@@ -172,11 +183,10 @@ class Index
} }
/** /**
* 显示这个的前提是,该产品所在属性组对应的spu_attr 只有color 和size 两种 * @return Array得到spu下面的sku的spu属性的数据。用于在产品
* 也就是说,这个只针对服装做的一种方式,其他的会按照大众化的那种方式显示出来过滤。(下拉条) * 得到spu下面的sku的spu属性的数据。用于在产品详细页面显示其他的sku
* 这个有点像定制化的范畴,目前我只做了color和size这类 * 譬如页面:https://fecshop.appfront.fancyecommerce.com/raglan-sleeves-letter-printed-crew-neck-sweatshirt-53386451-77774122
* 衣服类产品需要用到的属性,对于其他的类似属性,就需要自己做定制修改了. * 该spu的其他sku的颜色尺码也在这里显示出来。
* @return 返回和当前产品spu相同的其他产品,然后以颜色和尺码的方式罗列出来。
*/ */
protected function getSameSpuInfo() protected function getSameSpuInfo()
{ {
...@@ -250,7 +260,7 @@ class Index ...@@ -250,7 +260,7 @@ class Index
return $spuShowArr; return $spuShowArr;
} }
// spu属性部分
protected function getSpuAttrInfo($spuAttr, $attrVal, $reverse_val_spu) protected function getSpuAttrInfo($spuAttr, $attrVal, $reverse_val_spu)
{ {
$current = $this->_currentSpuAttrValArr; $current = $this->_currentSpuAttrValArr;
...@@ -409,7 +419,7 @@ class Index ...@@ -409,7 +419,7 @@ class Index
Yii::$service->page->breadcrumbs->active = false; Yii::$service->page->breadcrumbs->active = false;
} }
} }
// 买了的人还买了什么,通过产品字段取出来sku,然后查询得到。
protected function getProductBySkus($skus) protected function getProductBySkus($skus)
{ {
$buy_also_buy_sku = $this->_product['buy_also_buy_sku']; $buy_also_buy_sku = $this->_product['buy_also_buy_sku'];
......
...@@ -28,7 +28,9 @@ class Review ...@@ -28,7 +28,9 @@ class Review
// 初始化当前appfront的设置,覆盖service的初始设置。 // 初始化当前appfront的设置,覆盖service的初始设置。
ReviewHelper::initReviewConfig(); ReviewHelper::initReviewConfig();
} }
/**
* 得到当前spu下面的所有评论信息。
*/
public function getLastData() public function getLastData()
{ {
if (!$this->spu || !$this->product_id) { if (!$this->spu || !$this->product_id) {
...@@ -48,7 +50,9 @@ class Review ...@@ -48,7 +50,9 @@ class Review
]; ];
} }
} }
/**
* 得到当前spu下面的所有评论信息。
*/
public function getReviewsBySpu($spu) public function getReviewsBySpu($spu)
{ {
$review = Yii::$app->getModule('catalog')->params['review']; $review = Yii::$app->getModule('catalog')->params['review'];
......
...@@ -24,7 +24,9 @@ class Add ...@@ -24,7 +24,9 @@ class Add
{ {
ReviewHelper::initReviewConfig(); ReviewHelper::initReviewConfig();
} }
/**
* @return boolean , review页面是否开启验证码验证。
*/
public function getAddCaptcha() public function getAddCaptcha()
{ {
if (!$this->_add_captcha) { if (!$this->_add_captcha) {
...@@ -77,7 +79,10 @@ class Add ...@@ -77,7 +79,10 @@ class Add
'url' => Yii::$service->url->getUrl($url_key), 'url' => Yii::$service->url->getUrl($url_key),
]; ];
} }
/**
* @property $editForm | Array
* @return boolean ,保存评论信息
*/
public function saveReview($editForm) public function saveReview($editForm)
{ {
$add_captcha = $this->getAddCaptcha(); $add_captcha = $this->getAddCaptcha();
...@@ -135,7 +140,10 @@ class Add ...@@ -135,7 +140,10 @@ class Add
return true; return true;
} }
/**
* @property $product | String Or Object
* 得到产品的价格信息
*/
protected function getProductPriceInfo($product) protected function getProductPriceInfo($product)
{ {
$price = $product['price']; $price = $product['price'];
...@@ -145,7 +153,7 @@ class Add ...@@ -145,7 +153,7 @@ class Add
return Yii::$service->product->price->getCurrentCurrencyProductPriceInfo($price, $special_price, $special_from, $special_to); return Yii::$service->product->price->getCurrentCurrencyProductPriceInfo($price, $special_price, $special_from, $special_to);
} }
// 废弃
protected function getSpuData() protected function getSpuData()
{ {
$spu = $this->_product['spu']; $spu = $this->_product['spu'];
......
...@@ -28,9 +28,13 @@ class Lists ...@@ -28,9 +28,13 @@ class Lists
public function __construct() public function __construct()
{ {
// 初始化服务
ReviewHelper::initReviewConfig(); ReviewHelper::initReviewConfig();
} }
/**
* @property $countTotal | Int
* 得到toolbar的分页部分
*/
protected function getProductPage($countTotal) protected function getProductPage($countTotal)
{ {
if ($countTotal <= $this->numPerPage) { if ($countTotal <= $this->numPerPage) {
...@@ -47,7 +51,7 @@ class Lists ...@@ -47,7 +51,7 @@ class Lists
return Yii::$service->page->widget->renderContent('category_product_page', $config); return Yii::$service->page->widget->renderContent('category_product_page', $config);
} }
// 初始化参数
public function initParam() public function initParam()
{ {
$this->pageNum = Yii::$app->request->get($this->_page); $this->pageNum = Yii::$app->request->get($this->_page);
...@@ -104,7 +108,10 @@ class Lists ...@@ -104,7 +108,10 @@ class Lists
]; ];
} }
} }
/**
* @property $spu | String
* 通过spu得到产品评论
*/
public function getReviewsBySpu($spu) public function getReviewsBySpu($spu)
{ {
$currentIp = \fec\helpers\CFunc::get_real_ip(); $currentIp = \fec\helpers\CFunc::get_real_ip();
...@@ -131,7 +138,7 @@ class Lists ...@@ -131,7 +138,7 @@ class Lists
return Yii::$service->product->review->getListBySpu($filter); return Yii::$service->product->review->getListBySpu($filter);
} }
// 产品价格信息
protected function getProductPriceInfo($product) protected function getProductPriceInfo($product)
{ {
$price = $product['price']; $price = $product['price'];
......
...@@ -31,7 +31,10 @@ class CategoryController extends AppfrontController ...@@ -31,7 +31,10 @@ class CategoryController extends AppfrontController
return $this->render($this->action->id, $data); return $this->render($this->action->id, $data);
} }
/**
* Yii2 behaviors 可以参看地址:http://www.yiichina.com/doc/guide/2.0/concept-behaviors
* 这里的行为的作用为添加page cache(整页缓存)。
*/
public function behaviors() public function behaviors()
{ {
$primaryKey = Yii::$service->category->getPrimaryKey(); $primaryKey = Yii::$service->category->getPrimaryKey();
......
...@@ -23,7 +23,7 @@ class FavoriteproductController extends AppfrontController ...@@ -23,7 +23,7 @@ class FavoriteproductController extends AppfrontController
return $this->getBlock()->getLastData(); return $this->getBlock()->getLastData();
//return $this->render($this->action->id,$data); //return $this->render($this->action->id,$data);
} }
// 收藏列表
public function actionLists() public function actionLists()
{ {
$data = $this->getBlock()->getLastData($editForm); $data = $this->getBlock()->getLastData($editForm);
......
...@@ -24,7 +24,7 @@ class ProductController extends AppfrontController ...@@ -24,7 +24,7 @@ class ProductController extends AppfrontController
Yii::$service->page->theme->layoutFile = 'product_view.php'; Yii::$service->page->theme->layoutFile = 'product_view.php';
} }
// 网站信息管理 // 产品详细页面
public function actionIndex() public function actionIndex()
{ {
//$data = Yii::$service->product->apicoll(); //$data = Yii::$service->product->apicoll();
...@@ -34,7 +34,10 @@ class ProductController extends AppfrontController ...@@ -34,7 +34,10 @@ class ProductController extends AppfrontController
return $this->render($this->action->id, $data); return $this->render($this->action->id, $data);
} }
/**
* Yii2 behaviors 可以参看地址:http://www.yiichina.com/doc/guide/2.0/concept-behaviors
* 这里的行为的作用为添加page cache(整页缓存)。
*/
public function behaviors() public function behaviors()
{ {
$primaryKey = Yii::$service->product->getPrimaryKey(); $primaryKey = Yii::$service->product->getPrimaryKey();
......
...@@ -18,18 +18,31 @@ use yii\base\InvalidValueException; ...@@ -18,18 +18,31 @@ use yii\base\InvalidValueException;
*/ */
class Index class Index
{ {
// 当前分类对象
protected $_category; protected $_category;
// 页面标题
protected $_title; protected $_title;
// 当前分类主键对应的值
protected $_primaryVal; protected $_primaryVal;
// 默认的排序字段
protected $_defautOrder; protected $_defautOrder;
// 默认的排序方向,升序还是降序
protected $_defautOrderDirection = SORT_DESC; protected $_defautOrderDirection = SORT_DESC;
// 当前的where条件
protected $_where; protected $_where;
// url的参数,每页产品个数
protected $_numPerPage = 'numPerPage'; protected $_numPerPage = 'numPerPage';
// url的参数,排序方向
protected $_direction = 'dir'; protected $_direction = 'dir';
// url的参数,排序字段
protected $_sort = 'sort'; protected $_sort = 'sort';
// url的参数,页数
protected $_page = 'p'; protected $_page = 'p';
// url的参数,价格
protected $_filterPrice = 'price'; protected $_filterPrice = 'price';
// url的参数,价格
protected $_filterPriceAttr = 'price'; protected $_filterPriceAttr = 'price';
// 产品总数
protected $_productCount; protected $_productCount;
protected $_filter_attr; protected $_filter_attr;
protected $_numPerPageVal; protected $_numPerPageVal;
...@@ -70,7 +83,11 @@ class Index ...@@ -70,7 +83,11 @@ class Index
//'created_at' => $this->_category['created_at'], //'created_at' => $this->_category['created_at'],
]; ];
} }
/**
* @property $products | Array 产品的数组。
* ajax方式访问,得到产品的数据
* 这个是wap端手机页面访问,下拉自动加载下一页的数据的加载实现。
*/
protected function getAjaxProductHtml($products) protected function getAjaxProductHtml($products)
{ {
$parentThis['products'] = $products; $parentThis['products'] = $products;
...@@ -95,7 +112,10 @@ class Index ...@@ -95,7 +112,10 @@ class Index
return $filter_category; return $filter_category;
} }
/**
* @property $filter_category | Array
* 通过递归的方式,得到分类以及子分类的html。
*/
protected function getFilterCategoryHtml($filter_category = '') protected function getFilterCategoryHtml($filter_category = '')
{ {
$str = ''; $str = '';
...@@ -122,7 +142,10 @@ class Index ...@@ -122,7 +142,10 @@ class Index
//exit; //exit;
return $str; return $str;
} }
/**
* 得到产品页面的toolbar部分
* 也就是分类页面的分页工具条部分。
*/
protected function getProductPage() protected function getProductPage()
{ {
$productNumPerPage = $this->getNumPerPage(); $productNumPerPage = $this->getNumPerPage();
...@@ -140,7 +163,10 @@ class Index ...@@ -140,7 +163,10 @@ class Index
return Yii::$service->page->widget->renderContent('category_product_page', $config); return Yii::$service->page->widget->renderContent('category_product_page', $config);
} }
/**
* 分类页面toolbar部分:
* 产品排序,产品每页的产品个数等,为这些部分提供数据。
*/
protected function getQueryItem() protected function getQueryItem()
{ {
$category_query = Yii::$app->controller->module->params['category_query']; $category_query = Yii::$app->controller->module->params['category_query'];
...@@ -193,7 +219,14 @@ class Index ...@@ -193,7 +219,14 @@ class Index
return $data; return $data;
} }
/**
* @return Array
* 得到当前分类,侧栏用于过滤的属性数组,由三部分计算得出
* 1.全局默认属性过滤(catalog module 配置文件中配置 category_filter_attr),
* 2.当前分类属性过滤,也就是分类表的 filter_product_attr_selected 字段
* 3.当前分类去除的属性过滤,也就是分类表的 filter_product_attr_unselected
* 最终出来一个当前分类,用于过滤的属性数组。
*/
protected function getFilterAttr() protected function getFilterAttr()
{ {
if (!$this->_filter_attr) { if (!$this->_filter_attr) {
...@@ -209,7 +242,9 @@ class Index ...@@ -209,7 +242,9 @@ class Index
return $this->_filter_attr; return $this->_filter_attr;
} }
/**
* 得到分类侧栏用于属性过滤的部分数据
*/
protected function getRefineByInfo() protected function getRefineByInfo()
{ {
$get_arr = Yii::$app->request->get(); $get_arr = Yii::$app->request->get();
...@@ -249,7 +284,9 @@ class Index ...@@ -249,7 +284,9 @@ class Index
return $refineInfo; return $refineInfo;
} }
/**
* 侧栏除价格外的其他属性过滤部分
*/
protected function getFilterInfo() protected function getFilterInfo()
{ {
$filter_info = []; $filter_info = [];
...@@ -262,7 +299,9 @@ class Index ...@@ -262,7 +299,9 @@ class Index
return $filter_info; return $filter_info;
} }
/**
* 侧栏价格过滤部分
*/
protected function getFilterPrice() protected function getFilterPrice()
{ {
$filter = []; $filter = [];
...@@ -277,7 +316,9 @@ class Index ...@@ -277,7 +316,9 @@ class Index
return $filter; return $filter;
} }
/**
* 格式化价格格式,侧栏价格过滤部分
*/
protected function getFormatFilterPrice($price_item) protected function getFormatFilterPrice($price_item)
{ {
list($f_price, $l_price) = explode('-', $price_item); list($f_price, $l_price) = explode('-', $price_item);
...@@ -293,7 +334,10 @@ class Index ...@@ -293,7 +334,10 @@ class Index
return $str; return $str;
} }
/**
* @property $str | String
* 字符串转换成数组。
*/
protected function getFilterArr($str) protected function getFilterArr($str)
{ {
$arr = []; $arr = [];
...@@ -310,7 +354,9 @@ class Index ...@@ -310,7 +354,9 @@ class Index
return $arr; return $arr;
} }
/**
* 用于搜索条件的排序部分
*/
protected function getOrderBy() protected function getOrderBy()
{ {
$primaryKey = Yii::$service->category->getPrimaryKey(); $primaryKey = Yii::$service->category->getPrimaryKey();
...@@ -345,7 +391,12 @@ class Index ...@@ -345,7 +391,12 @@ class Index
} }
} }
} }
/**
* 分类页面的产品,每页显示的产品个数。
* 对于前端传递的个数参数,在后台验证一下是否是合法的个数(配置里面有一个分类产品个数列表)
* 如果不合法,则报异常
* 这个功能是为了防止分页攻击,伪造大量的不同个数的url,绕过缓存。
*/
protected function getNumPerPage() protected function getNumPerPage()
{ {
if (!$this->_numPerPageVal) { if (!$this->_numPerPageVal) {
...@@ -371,14 +422,18 @@ class Index ...@@ -371,14 +422,18 @@ class Index
return $this->_numPerPageVal; return $this->_numPerPageVal;
} }
/**
* 得到当前第几页
*/
protected function getPageNum() protected function getPageNum()
{ {
$numPerPage = Yii::$app->request->get($this->_page); $numPerPage = Yii::$app->request->get($this->_page);
return $numPerPage ? (int) $numPerPage : 1; return $numPerPage ? (int) $numPerPage : 1;
} }
/**
* 得到当前分类的产品
*/
protected function getCategoryProductColl() protected function getCategoryProductColl()
{ {
$select = [ $select = [
...@@ -403,7 +458,9 @@ class Index ...@@ -403,7 +458,9 @@ class Index
//var_dump($filter);exit; //var_dump($filter);exit;
return Yii::$service->category->product->getFrontList($filter); return Yii::$service->category->product->getFrontList($filter);
} }
/**
* 得到用于查询的where数组。
*/
protected function initWhere() protected function initWhere()
{ {
$filterAttr = $this->getFilterAttr(); $filterAttr = $this->getFilterAttr();
...@@ -427,7 +484,10 @@ class Index ...@@ -427,7 +484,10 @@ class Index
//var_dump($where);exit; //var_dump($where);exit;
return $where; return $where;
} }
/**
* 分类部分的初始化
* 对一些属性进行赋值。
*/
protected function initCategory() protected function initCategory()
{ {
$primaryKey = Yii::$service->category->getPrimaryKey(); $primaryKey = Yii::$service->category->getPrimaryKey();
......
...@@ -17,6 +17,9 @@ use Yii; ...@@ -17,6 +17,9 @@ use Yii;
*/ */
class Add class Add
{ {
/**
* 用户添加收藏产品
*/
public function getLastData() public function getLastData()
{ {
$product_id = Yii::$app->request->get('product_id'); $product_id = Yii::$app->request->get('product_id');
......
...@@ -34,7 +34,9 @@ class CustomOption ...@@ -34,7 +34,9 @@ class CustomOption
'middle_img_width' => $this->middle_img_width, 'middle_img_width' => $this->middle_img_width,
]; ];
} }
/**
* 得到custom option 部分
*/
public function getAllItems() public function getAllItems()
{ {
$custom_option_attr_info = Yii::$service->product->getCustomOptionAttrInfo($this->attr_group); $custom_option_attr_info = Yii::$service->product->getCustomOptionAttrInfo($this->attr_group);
......
...@@ -57,7 +57,7 @@ class Index ...@@ -57,7 +57,7 @@ class Index
]; ];
} }
/** /**废弃
* @property $data | Array 和当前产品的spu相同,但sku不同的产品 数组。 * @property $data | Array 和当前产品的spu相同,但sku不同的产品 数组。
* @property $current_size | String 当前产品的size值 * @property $current_size | String 当前产品的size值
* @property $current_color | String 当前产品的颜色值 * @property $current_color | String 当前产品的颜色值
...@@ -121,7 +121,9 @@ class Index ...@@ -121,7 +121,9 @@ class Index
} }
/** /**
* @property $select | Array , 需要查询的字段。
* 得到当前spu下面的所有的sku的数组、 * 得到当前spu下面的所有的sku的数组、
* 这个是为了产品详细页面的spu下面的产品切换,譬如同一spu下的不同的颜色尺码切换。
*/ */
protected function getSpuData($select) protected function getSpuData($select)
{ {
...@@ -141,11 +143,10 @@ class Index ...@@ -141,11 +143,10 @@ class Index
} }
/** /**
* 显示这个的前提是,该产品所在属性组对应的spu_attr 只有color 和size 两种 * @return Array得到spu下面的sku的spu属性的数据。用于在产品
* 也就是说,这个只针对服装做的一种方式,其他的会按照大众化的那种方式显示出来过滤。(下拉条) * 得到spu下面的sku的spu属性的数据。用于在产品详细页面显示其他的sku
* 这个有点像定制化的范畴,目前我只做了color和size这类 * 譬如页面:https://fecshop.appfront.fancyecommerce.com/raglan-sleeves-letter-printed-crew-neck-sweatshirt-53386451-77774122
* 衣服类产品需要用到的属性,对于其他的类似属性,就需要自己做定制修改了. * 该spu的其他sku的颜色尺码也在这里显示出来。
* @return 返回和当前产品spu相同的其他产品,然后以颜色和尺码的方式罗列出来。
*/ */
protected function getSameSpuInfo() protected function getSameSpuInfo()
{ {
...@@ -219,7 +220,7 @@ class Index ...@@ -219,7 +220,7 @@ class Index
return $spuShowArr; return $spuShowArr;
} }
// spu属性部分
protected function getSpuAttrInfo($spuAttr, $attrVal, $reverse_val_spu) protected function getSpuAttrInfo($spuAttr, $attrVal, $reverse_val_spu)
{ {
$current = $this->_currentSpuAttrValArr; $current = $this->_currentSpuAttrValArr;
...@@ -378,7 +379,7 @@ class Index ...@@ -378,7 +379,7 @@ class Index
Yii::$service->page->breadcrumbs->active = false; Yii::$service->page->breadcrumbs->active = false;
} }
} }
// 买了的人还买了什么,通过产品字段取出来sku,然后查询得到。
protected function getProductBySkus($skus) protected function getProductBySkus($skus)
{ {
$buy_also_buy_sku = $this->_product['buy_also_buy_sku']; $buy_also_buy_sku = $this->_product['buy_also_buy_sku'];
......
...@@ -28,7 +28,9 @@ class Review ...@@ -28,7 +28,9 @@ class Review
// 初始化当前apphtml5的设置,覆盖service的初始设置。 // 初始化当前apphtml5的设置,覆盖service的初始设置。
ReviewHelper::initReviewConfig(); ReviewHelper::initReviewConfig();
} }
/**
* 得到当前spu下面的所有评论信息。
*/
public function getLastData() public function getLastData()
{ {
if (!$this->spu || !$this->product_id) { if (!$this->spu || !$this->product_id) {
...@@ -48,7 +50,9 @@ class Review ...@@ -48,7 +50,9 @@ class Review
]; ];
} }
} }
/**
* 得到当前spu下面的所有评论信息。
*/
public function getReviewsBySpu($spu) public function getReviewsBySpu($spu)
{ {
$review = Yii::$app->getModule('catalog')->params['review']; $review = Yii::$app->getModule('catalog')->params['review'];
......
...@@ -24,7 +24,9 @@ class Add ...@@ -24,7 +24,9 @@ class Add
{ {
ReviewHelper::initReviewConfig(); ReviewHelper::initReviewConfig();
} }
/**
* @return boolean , review页面是否开启验证码验证。
*/
public function getAddCaptcha() public function getAddCaptcha()
{ {
if (!$this->_add_captcha) { if (!$this->_add_captcha) {
...@@ -77,7 +79,10 @@ class Add ...@@ -77,7 +79,10 @@ class Add
'url' => Yii::$service->url->getUrl($url_key), 'url' => Yii::$service->url->getUrl($url_key),
]; ];
} }
/**
* @property $editForm | Array
* @return boolean ,保存评论信息
*/
public function saveReview($editForm) public function saveReview($editForm)
{ {
$add_captcha = $this->getAddCaptcha(); $add_captcha = $this->getAddCaptcha();
...@@ -85,48 +90,48 @@ class Add ...@@ -85,48 +90,48 @@ class Add
if (!$product_id) { if (!$product_id) {
Yii::$service->page->message->addError(['Product id can not empty']); Yii::$service->page->message->addError(['Product id can not empty']);
return; return false;
} }
$rate_star = isset($editForm['rate_star']) ? $editForm['rate_star'] : ''; $rate_star = isset($editForm['rate_star']) ? $editForm['rate_star'] : '';
if (!$rate_star) { if (!$rate_star) {
Yii::$service->page->message->addError(['Rate Star can not empty']); Yii::$service->page->message->addError(['Rate Star can not empty']);
return; return false;
} }
$name = isset($editForm['name']) ? $editForm['name'] : ''; $name = isset($editForm['name']) ? $editForm['name'] : '';
if (!$name) { if (!$name) {
Yii::$service->page->message->addError(['Your Name can not empty']); Yii::$service->page->message->addError(['Your Name can not empty']);
return; return false;
} }
$summary = isset($editForm['summary']) ? $editForm['summary'] : ''; $summary = isset($editForm['summary']) ? $editForm['summary'] : '';
if (!$summary) { if (!$summary) {
Yii::$service->page->message->addError(['Summary can not empty']); Yii::$service->page->message->addError(['Summary can not empty']);
return; return false;
} }
$review_content = isset($editForm['review_content']) ? $editForm['review_content'] : ''; $review_content = isset($editForm['review_content']) ? $editForm['review_content'] : '';
if (!$review_content) { if (!$review_content) {
Yii::$service->page->message->addError(['Review content can not empty']); Yii::$service->page->message->addError(['Review content can not empty']);
return; return false;
} }
// captcha validate // captcha validate
$captcha = isset($editForm['captcha']) ? $editForm['captcha'] : ''; $captcha = isset($editForm['captcha']) ? $editForm['captcha'] : '';
if ($add_captcha && !$captcha) { if ($add_captcha && !$captcha) {
Yii::$service->page->message->addError(['Captcha can not empty']); Yii::$service->page->message->addError(['Captcha can not empty']);
return; return false;
} elseif ($captcha && $add_captcha && !\Yii::$service->helper->captcha->validateCaptcha($captcha)) { } elseif ($captcha && $add_captcha && !\Yii::$service->helper->captcha->validateCaptcha($captcha)) {
Yii::$service->page->message->addError(['Captcha is not right']); Yii::$service->page->message->addError(['Captcha is not right']);
return; return false;
} }
$product = Yii::$service->product->getByPrimaryKey($product_id); $product = Yii::$service->product->getByPrimaryKey($product_id);
if (!$product['spu']) { if (!$product['spu']) {
Yii::$service->page->message->addError('product _id:'.$product_id.' is not exist in product collection'); Yii::$service->page->message->addError('product _id:'.$product_id.' is not exist in product collection');
return; return false;
} }
$editForm['spu'] = $product['spu']; $editForm['spu'] = $product['spu'];
$editForm['status'] = $product['spu']; $editForm['status'] = $product['spu'];
...@@ -135,7 +140,10 @@ class Add ...@@ -135,7 +140,10 @@ class Add
return true; return true;
} }
/**
* @property $product | String Or Object
* 得到产品的价格信息
*/
protected function getProductPriceInfo($product) protected function getProductPriceInfo($product)
{ {
$price = $product['price']; $price = $product['price'];
...@@ -145,7 +153,7 @@ class Add ...@@ -145,7 +153,7 @@ class Add
return Yii::$service->product->price->getCurrentCurrencyProductPriceInfo($price, $special_price, $special_from, $special_to); return Yii::$service->product->price->getCurrentCurrencyProductPriceInfo($price, $special_price, $special_from, $special_to);
} }
// 废弃
protected function getSpuData() protected function getSpuData()
{ {
$spu = $this->_product['spu']; $spu = $this->_product['spu'];
......
...@@ -25,12 +25,16 @@ class Lists ...@@ -25,12 +25,16 @@ class Lists
public $_page = 'p'; public $_page = 'p';
public $numPerPage = 20; public $numPerPage = 20;
public $pageNum; public $pageNum;
public function __construct() public function __construct()
{ {
// 初始化服务
ReviewHelper::initReviewConfig(); ReviewHelper::initReviewConfig();
} }
/**
* @property $countTotal | Int
* 得到toolbar的分页部分
*/
protected function getProductPage($countTotal) protected function getProductPage($countTotal)
{ {
if ($countTotal <= $this->numPerPage) { if ($countTotal <= $this->numPerPage) {
...@@ -47,7 +51,7 @@ class Lists ...@@ -47,7 +51,7 @@ class Lists
return Yii::$service->page->widget->renderContent('category_product_page', $config); return Yii::$service->page->widget->renderContent('category_product_page', $config);
} }
// 初始化参数
public function initParam() public function initParam()
{ {
$this->pageNum = Yii::$app->request->get($this->_page); $this->pageNum = Yii::$app->request->get($this->_page);
...@@ -104,7 +108,10 @@ class Lists ...@@ -104,7 +108,10 @@ class Lists
]; ];
} }
} }
/**
* @property $spu | String
* 通过spu得到产品评论
*/
public function getReviewsBySpu($spu) public function getReviewsBySpu($spu)
{ {
$currentIp = \fec\helpers\CFunc::get_real_ip(); $currentIp = \fec\helpers\CFunc::get_real_ip();
...@@ -131,7 +138,7 @@ class Lists ...@@ -131,7 +138,7 @@ class Lists
return Yii::$service->product->review->getListBySpu($filter); return Yii::$service->product->review->getListBySpu($filter);
} }
// 产品价格信息
protected function getProductPriceInfo($product) protected function getProductPriceInfo($product)
{ {
$price = $product['price']; $price = $product['price'];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册