提交 08b4d1c1 编写于 作者: R root

product custom options

上级 cccf1c80
......@@ -28,22 +28,23 @@ class Index {
$this->initProduct();
return [
'name' => Yii::$service->store->getStoreAttrVal($this->_product['name'],'name'),
'image' => $this->_product['image'],
'sku' => $this->_product['sku'],
'price_info' => $this->getProductPriceInfo(),
'tier_price' => $this->_product['tier_price'],
'media_size' => [
'small_img_width' => $productImgSize['small_img_width'],
'small_img_height' => $productImgSize['small_img_height'],
'middle_img_width' => $productImgSize['middle_img_width'],
'small_img_width' => $productImgSize['small_img_width'],
'small_img_height' => $productImgSize['small_img_height'],
'middle_img_width' => $productImgSize['middle_img_width'],
],
'productImgMagnifier' => $productImgMagnifier,
'productImgMagnifier' => $productImgMagnifier,
'options' => $this->getSameSpuInfo(),
'custom_option' => $this->_product['custom_option'],
];
}
protected function getSpuData(){
$spu = $this->_product['spu'];
$filter = [
......@@ -127,46 +128,8 @@ class Index {
}
$data = $this->getSpuData();
list($all_color,$all_size,$color_2_size,$size_2_color) = $this->getColorAndSizeInfo($data,$current_size,$current_color);
$str = '';
$all_size = $this->sortSizeArr($all_size);
if(is_array($all_color) && !empty($all_color)){
$str .= '<div class="chose_color">';
foreach($all_color as $color => $info){
$main_img = isset($info['image']['main']['image']) ? $info['image']['main']['image'] : '';
$url = '';
$active = 'class="active"';
if(isset($color_2_size[$color])){
$url = Yii::$service->url->getUrl($color_2_size[$color]['url_key']);
}else{
$url = Yii::$service->url->getUrl($info['url_key']);
}
if($color == $current_color){
$active = 'class="current"';
}
$str .= '<a '.$active.' href="javascript:void(0)" rel="'.$url.'"><img src="'.Yii::$service->product->image->getResize($main_img,[50,55],false).'"/></a>';
}
$str .= '<div class="clear"></div>';
$str .= '</div>';
}
if(is_array($all_size) && !empty($all_size)){
$str .= '<div class="chose_size">';
foreach($all_size as $size => $info){
$url = '';
$active = 'class="noactive"';
if(isset($size_2_color[$size])){
$url = Yii::$service->url->getUrl($size_2_color[$size]['url_key']);
$active = 'class="active"';
}
if($size == $current_size){
$active = 'class="current"';
}
$str .= '<a '.$active.' href="javascript:void(0)" rel="'.$url.'"><span>'.$size.'</span></a>';
}
$str .= '<div class="clear"></div>';
$str .= '</div>';
}
//echo $str;exit;
return $str;
$all_size = $this->sortSizeArr($all_size);
return [$current_color,$current_size,$all_color,$all_size,$color_2_size,$size_2_color];
}
/**
* @property $data | Array 各个尺码对应的产品数组
......
......@@ -1812,3 +1812,61 @@ padding: 0 0 0 20px;
.product_options a.active{
border:1px solid #ccc;
}
.product_custom_options .one_option{
margin:10px 0;
}
.product_custom_options .custom_option{
float:left;display:block;
width:100px;
margin:4px 0 0;
}
.product_custom_options .one_option_title{
float:left;display:block;width:80px;
}
......@@ -33,27 +33,38 @@
</div>
<div style="height:300px;">
<div class="product_options">
<?= $options; ?>
<?php # options部分
$optionsView = [
'view' => 'catalog/product/index/options.php'
];
$optionsParam = [
'options' => $options,
];
?>
<?= Yii::$service->page->widget->render($optionsView,$optionsParam); ?>
</div>
<div class="product_custom_options">
<?php # options部分
$optionsView = [
'view' => 'catalog/product/index/custom_option.php'
];
$optionsParam = [
'custom_option' => $custom_option,
];
?>
<?= Yii::$service->page->widget->render($optionsView,$optionsParam); ?>
</div>
<div class="product_qty">
<div>Qty:</div>
<div>
<input type="text" name="qty" class="qty" value="1" />
</div>
<div class="clear"></div>
</div>
<script>
<?php $this->beginBlock('product_options') ?>
$(document).ready(function(){
$(".product_options a").click(function(){
$url = $(this).attr("rel");
if($url){
window.location.href=$url;
}else{
}
});
});
<?php $this->endBlock(); ?>
</script>
<?php $this->registerJs($this->blocks['product_options'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
</div>
<div class="tier_price_info">
......
<?php $custom_option = $parentThis['custom_option']; ?>
<?php if(is_array($custom_option) && !empty($custom_option)){ ?>
<?php $custom_option = \fec\helpers\CFunc::array_sort($custom_option,'sort_order','asc'); ?>
<?php foreach($custom_option as $one){ ?>
<?php $option_title = $one['title']; ?>
<?php $is_require = $one['is_require']; ?>
<?php $data = $one['data']; ?>
<?php if(is_array($data) && !empty($data)){ ?>
<div class="one_option">
<div class="one_option_title"><?= $option_title ?>:</div>
<select class="custom_option <?= $title ?> <?= $is_require ? 'required' : '' ?>" name="custom_option[<?= $title ?>]">
<?php $data = \fec\helpers\CFunc::array_sort($data,'sort_order','asc'); ?>
<?php foreach($data as $one){ ?>
<?php $title = $one['title']; ?>
<?php $price = $one['price']; ?>
<?php $val = Yii::$service->store->getStoreAttrVal($title,'title'); ?>
<option value="<?= $val ?>"><?= $val ?></option>
<?php } ?>
</select>
<div class="clear"></div>
</div>
<?php } ?>
<?php } ?>
<?php } ?>
\ No newline at end of file
<?php
list($current_color,$current_size,$all_color,$all_size,$color_2_size,$size_2_color) = $parentThis['options'];
?>
<?php ?>
<?php if(is_array($all_color) && !empty($all_color)){ ?>
<div class="chose_color">
<?php foreach($all_color as $color => $info){ ?>
<?php $main_img = isset($info['image']['main']['image']) ? $info['image']['main']['image'] : ''; ?>
<?php $url = ''; ?>
<?php $active = 'class="active"'; ?>
<?php if(isset($color_2_size[$color])){ ?>
<?php $url = Yii::$service->url->getUrl($color_2_size[$color]['url_key']); ?>
<?php }else{ ?>
<?php $url = Yii::$service->url->getUrl($info['url_key']); ?>
<?php } ?>
<?php if($color == $current_color){ ?>
<?php $active = 'class="current"'; ?>
<?php } ?>
<a <?= $active ?> href="javascript:void(0)" rel="<?= $url ?>"><img src="<?= Yii::$service->product->image->getResize($main_img,[50,55],false) ?>"/></a>
<?php } ?>
<div class="clear"></div>
</div>
<?php
}
?>
<?php if(is_array($all_size) && !empty($all_size)){ ?>
<div class="chose_size">
<?php foreach($all_size as $size => $info){ ?>
<?php $url = ''; ?>
<?php $active = 'class="noactive"'; ?>
<?php if(isset($size_2_color[$size])){ ?>
<?php $url = Yii::$service->url->getUrl($size_2_color[$size]['url_key']); ?>
<?php $active = 'class="active"'; ?>
<?php } ?>
<?php if($size == $current_size){ ?>
<?php $active = 'class="current"'; ?>
<?php } ?>
<a <?=$active ?> href="javascript:void(0)" rel="<?= $url ?>"><span><?= $size ?></span></a>
<?php } ?>
<div class="clear"></div>
</div>
<?php } ?>
<script>
<?php $this->beginBlock('product_options') ?>
$(document).ready(function(){
$(".product_options a").click(function(){
$url = $(this).attr("rel");
if($url){
window.location.href=$url;
}
});
});
<?php $this->endBlock(); ?>
</script>
<?php $this->registerJs($this->blocks['product_options'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册