appadmin 一处代码错误

bug问题 · dionyang · 于 6年前 发布 · 2605 次阅读

vendor/fancyecommerce/fecshop/app/appadmin/modules/AppadminController.php

    public function getBlock($blockname=''){
	    $_currentNameSpace = \fec\helpers\CModule::param("_currentNameSpace");
		//echo $_currentNameSpace;exit;
        if(empty($_currentNameSpace)){
			$message = "Modules Param '_currentNameSpace'  is not set , you can set like fecadmin\\Module";
			throw new \yii\web\HttpException(406,$message);
		}
		$modulesDir = "\\".$_currentNameSpace."\\block\\";
		$url_key = \fec\helpers\CUrl::getUrlKey();
		$url_key = trim($url_key,"/");
		$url_key = substr($url_key,strpos($url_key,"/")+1 );
		$url_key_arr = explode("/",$url_key);
		if(!isset($url_key_arr[1])) $url_key_arr[1] = 'index';
		if($blockname){
			$url_key_arr[count($url_key_arr)-1] = ucfirst($blockname);
		}else{
			$url_key_arr[count($url_key_arr)-1] = ucfirst($url_key_arr[count($url_key_arr)-1]);
		}
		
		$block_space = implode("\\",$url_key_arr);
		$blockFile = $modulesDir.$block_space;
		//�����Ƿ���rewriteMap�д�����д
        $relativeFile = Yii::mapGetName($relativeFile);
        //echo $blockFile;exit;
        
		return new $blockFile;
		
    }
}

此处 $relativeFile = Yii::mapGetName($relativeFile); 应为 $blockFile = Yii::mapGetName($blockFile);

否则rewriteMap重写失效

共收到 8 条回复
Fecmall#16年前 0 个赞

多谢您,我改一下,多谢!

Fecmall#26年前 0 个赞

已经提交,过段时间发个版本

dionyang#36年前 0 个赞

@Terry #2楼 另外custom_options的配置也建议增加input输入框的配置 目前只有select的。 地址: vendor/fancyecommerce/fecshop/app/appadmin/modules/Catalog/block/productinfo/Manageredit.php

	                    if ($type == 'select' && is_array($data) && !empty($data)) {
                        $str .= '<select atr="'.$attr.'" class="custom_option_attr">';
                        foreach ($info['display']['data'] as $k=>$v) {
                            $str .= '<option value="'.$k.'">'.$v.'</option>';
                        }
                        $str .= '</select>';
                    }else if($type == 'inputString'){
                        $str .= '<input type="text" style="width:40px;" atr="'.$attr.'" class="custom_option_attr">';
                    }
                    $str .= '</div>';
Fecmall#46年前 0 个赞

@dionyang #3楼 input输入框这种,还有radio,textarea,在magento中都是有的,但,就截止到目前,我没有遇到过要输入input框方面的需求,我也就没有加这个。

你有这方面的需求吗?可以说一下,具体是什么样子的需求,必须用input框。

订单中加一个订单备注倒是可以的。

dionyang#56年前 0 个赞

@Terry #4楼 可能我用的有问题。我把custom_options当产品的普通属性用了

Fecmall#66年前 0 个赞

如果你需要加描述属性,你可以在属性组里面加属性,

参考文档:http://www.fecshop.com/doc/fecshop-guide/instructions/cn-1.0/guide-fecshop_product.html

文档的:2、general_attr(普通属性)

custom option 是放到前台页面,让用户选择的属性。

你的需求可以这样加:

'general_attr' => [  
	# 这是input type='text' 的类型
	'my_remark' => [
		'dbtype'=> 'String',
		'label'=>'我的备注',
		'name'=>'my_remark',
		'display'=>[
			'type' => 'inputString',   # 字符串格式的属性
		],
		'require' => 0,
	],
	# 这是input type='email' 的类型
	'my_email' =>[
		'dbtype'=> 'String',
		'label'=>'我的邮箱',
		'name'=>'my_email',
		'require' => 0,
		'display'=>[
			'type' => 'inputEmail',		# 字符串格式的属性(email格式验证)
		],
	],
Fecmall#76年前 0 个赞

添加属性后,在后台新建产品,切换到相应的属性组,就可以看到添加的属性了

Fecmall#86年前 0 个赞

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics