[请教]fecro的手机端收藏无法删除,疑似remove页面不存在

bug问题 · TBMX2 · 于 1年前 发布 · 716 次阅读

新手提问,如果有不准确的地方还请见谅(图片上传总是失败)


顺着代码,去找了提交表单所指向的remove页面,但是在 addons/fecmall/fecro/app/apphtml5/theme/fecro/customer/productfavorite 下并没有找到remove页面,于是remove页面出现了404错误,收藏删除的请求无法完成 想尝试通过补齐remove页面来试试看能不能实现, 如果想要补上这个页面有地方可以下载么?

<script>
<?php $this->beginBlock('customer_favorite') ?> 
    csrfName = "<?= CRequest::getCsrfName() ?>";
    csrfVal = "<?= CRequest::getCsrfValue() ?>";
    $(document).ready(function(){
        $(".favorite_more").click(function(){
            $(".wish-menu-bar").show();
            $(".app-mask-show").show();
            var productId = $(this).attr("productId");
            var favoriteId = $(this).attr("favoriteId");
            var productUrl = $(this).attr("productUrl");
            $(".favorite_cancel").attr("productId", productId);
            $(".favorite_cancel").attr("favoriteId", favoriteId);
            $(".favorite_share").attr("productId", productId);
            $(".favorite_share").attr("favoriteId", favoriteId);
            $(".favorite_share").attr("productUrl", productUrl);
        });
        $(".favorite_share").click(function(){
            var productId = $(this).attr("productId");
            var favoriteId = $(this).attr("favoriteId");
            var productUrl = $(this).attr("productUrl");
            $(".share-bar").show();
        });
        $(".colse_cancel").click(function(){
            $(".wish-menu-bar").hide();
            $(".app-mask-show").hide();
            $(".share-bar").hide();
        });
        $(".app-mask-show").click(function(){
            $(".wish-menu-bar").hide();
            $(".app-mask-show").hide();
            $(".share-bar").hide();
        });
        // favorite cancel
        $(".favorite_cancel").click(function(){
            var productId = $(this).attr("productId");
            var favoriteId = $(this).attr("favoriteId");
            var customerRemoveFavorite = "<?= Yii::$service->url->getUrl('customer/productfavorite/remove'); ?>";
            $data = {
                favorite_id: favoriteId
            };
            $data[csrfName] = csrfVal;
            $.ajax({
                async: true,
                timeout: 6000,
                dataType: 'json', 
                type:'post',
                data: $data,
                url: customerRemoveFavorite,
                success: function(data, textStatus){ 
                    if (data.status == 'success') {
                        window.location.href = "<?= Yii::$service->url->getUrl('customer/productfavorite') ?>";
                    } else {
                        alert(data.content);
                    }
                },
                error:function (XMLHttpRequest, textStatus, errorThrown){}
            });
        });
    });
<?php $this->endBlock(); ?>  
</script>  
<?php $this->registerJs($this->blocks['customer_favorite'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>

翻查到PC版的收藏的删除是通过javascript:doPost 来完成的,只定向到customer/productfavorite就可以完成 addons/fecmall/fecro/app/appfront/theme/fecro/customer/productfavorite/index.php

                            <td class="wishlist-remove-js pa-lg-20 text-center" style="width: 2rem;">
                                <div class="wishlist-item-remove-js btn-cursor">
                                    <a style="color:#555" href='javascript:doPost("<?= Yii::$service->url->getUrl('customer/productfavorite') ?>", {"type":"remove", "favorite_id":"<?= $one['favorite_id'] ?>", "<?= CRequest::getCsrfName() ?>": "<?= CRequest::getCsrfValue() ?>" })' >
                                        <i class="nc-icon nc-icon-trash"></i>
                                        <span class="text-grey-dark-1"><?= Yii::$service->page->translate->__('Remove'); ?></span>

在以下目录还发现一段手机版的删除收藏夹方法(貌似是fecshop的版本?),也是直接dopost的方式 vendor/fancyecommerce/fecshop/app/apphtml5/theme/base/html5/customer/productfavorite/index.php

                              <div class="favorite-Operation addressbook " style="display:inline-block;float:right; margin-top: 0px;">
                                        <a href='javascript:doPost("<?= Yii::$service->url->getUrl('customer/productfavorite') ?>", {"type":"remove", "favorite_id":"<?= $one['favorite_id'] ?>", "<?= CRequest::getCsrfName() ?>": "<?= CRequest::getCsrfValue() ?>" })' >
                                        <span class="icon icon-remove"></span>


共收到 2 条回复 fecshop 问题提问
Fecmall#11年前 1 个赞

addons/fecmall/fecro/apphtml5/modules/Customer/controllers/ProductfavoriteController.php

添加函数:


public function actionRemove()
	{
        $favorite_id = Yii::$app->request->post('favorite_id');
		if ($favorite_id) {
            $this->getBlock('index')->remove($favorite_id);
			
			echo json_encode([
				"status" => "success",
			]);exit;
        }
		
	}
TBMX2#21年前 0 个赞

机能复活了,多谢大神@Fecmall [#1楼](#comment1)

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