Magento无法发表评论

时间:2016-03-09 13:46:14

标签: forms magento templates post review

我正在尝试为magento中的产品添加评论。但是,在前端提交产品的审核表单会给我一个"无法发布评论消息"。

我还没有找到问题的解决方案,这就是为什么我会在你的帮助中呼唤:)

这是我的评论表格中的代码:

<div class="form-add">
<h2><?php echo $this->__('Write Your Own Review') ?></h2>
<?php if ($this->getAllowWriteReviewFlag()): ?>
    <form action="<?php echo $this->getAction() ?>" method="post" id="review-form">
        <?php echo $this->getBlockHtml('formkey'); ?>
        <?php echo $this->getChildHtml('form_fields_before') ?>
        <h3><?php echo $this->__("You're reviewing:"); ?>
            <span><?php echo $this->escapeHtml($this->getProductInfo()->getName()) ?></span>
        </h3>

        <div class="fieldset">
            <?php if ($this->getRatings() && $this->getRatings()->getSize()): ?>
                <h4><?php echo $this->__('How do you rate this product?') ?> <em class="required">*</em></h4>
                <span id="input-message-box"></span>
                <table class="data-table review-summary-table ratings" id="product-review-table">
                    <col width="1"/>
                    <col/>
                    <col/>
                    <col/>
                    <col/>
                    <col/>
                    <thead>
                    <tr>
                        <th>&nbsp;</th>
                        <th>
                            <div class="rating-box">
                                <span class="rating-number">1</span>
                                <span class="rating nobr"
                                      style="width:20%;"><?php echo $this->__('1 star') ?></span>
                            </div>
                        </th>
                        <th>
                            <div class="rating-box">
                                <span class="rating-number">2</span>
                                <span class="rating nobr"
                                      style="width:40%;"><?php echo $this->__('2 star') ?></span>
                            </div>
                        </th>
                        <th>
                            <div class="rating-box">
                                <span class="rating-number">3</span>
                                <span class="rating nobr"
                                      style="width:60%;"><?php echo $this->__('3 star') ?></span>
                            </div>
                        </th>
                        <th>
                            <div class="rating-box">
                                <span class="rating-number">4</span>
                                <span class="rating nobr"
                                      style="width:80%;"><?php echo $this->__('4 star') ?></span>
                            </div>
                        </th>
                        <th>
                            <div class="rating-box">
                                <span class="rating-number">5</span>
                                <span class="rating nobr"
                                      style="width:100%;"><?php echo $this->__('5 star') ?></span>
                            </div>
                        </th>
                    </tr>
                    </thead>
                    <tbody>
                    <?php foreach ($this->getRatings() as $_rating): ?>
                        <tr>
                            <th><?php echo $this->escapeHtml($_rating->getRatingCode()) ?></th>
                            <?php foreach ($_rating->getOptions() as $_option): ?>
                                <td class="value"><label
                                        for="<?php echo $this->escapeHtml($_rating->getRatingCode()) ?>_<?php echo $_option->getValue() ?>"><input
                                            type="radio" name="ratings[<?php echo $_rating->getId() ?>]"
                                            id="<?php echo $this->escapeHtml($_rating->getRatingCode()) ?>_<?php echo $_option->getValue() ?>"
                                            value="<?php echo $_option->getId() ?>" class="radio"/></label></td>
                            <?php endforeach; ?>
                        </tr>
                    <?php endforeach; ?>
                    </tbody>
                </table>
                <input type="hidden" name="validate_rating" class="validate-rating" value=""/>
                <script type="text/javascript">decorateTable('product-review-table')</script>
            <?php endif; ?>

            <ul class="form-list">
                <li>
                    <label for="review_field"
                           class="required"><em>*</em><?php echo $this->__('Let us know your thoughts') ?></label>
                    <div class="input-box">
                        <textarea name="detail" id="review_field" cols="5" rows="3"
                                  class="required-entry"><?php echo $this->escapeHtml($data->getDetail()) ?></textarea>
                    </div>
                </li>

                <li class="inline-label">
                    <label for="summary_field"
                           class="required"><em>*</em><?php echo $this->__('Summary of Your Review') ?></label>
                    <div class="input-box">
                        <input type="text" name="title" id="summary_field" class="input-text required-entry"
                               value="<?php echo $this->escapeHtml($data->getTitle()) ?>"/>
                    </div>
                </li>

                <li class="inline-label">
                    <label for="nickname_field"
                           class="required"><em>*</em><?php echo $this->__("What's your nickname?") ?></label>
                    <div class="input-box">
                        <input type="text" name="nickname" id="nickname_field" class="input-text required-entry"
                               value="<?php echo $this->escapeHtml($data->getNickname()) ?>"/>
                    </div>
                </li>

            </ul>
        </div>
        <div class="buttons-set">
            <button type="submit" title="<?php echo $this->__('Submit Review') ?>" class="button">
                <span><span><?php echo $this->__('Submit Review') ?></span></span></button>
        </div>
    </form>
    <script type="text/javascript">
        //<![CDATA[
        var dataForm = new VarienForm('review-form');
        Validation.addAllThese(
            [
                ['validate-rating', '<?php echo $this->__('Please select one of each of the ratings above') ?>', function (v) {
                    var trs = $('product-review-table').select('tr');
                    var inputs;
                    var error = 1;

                    for (var j = 0; j < trs.length; j++) {
                        var tr = trs[j];
                        if (j > 0) {
                            inputs = tr.select('input');

                            for (i in inputs) {
                                if (inputs[i].checked == true) {
                                    error = 0;
                                }
                            }

                            if (error == 1) {
                                return false;
                            } else {
                                error = 1;
                            }
                        }
                    }
                    return true;
                }]
            ]
        );
        //]]>
    </script>
<?php else: ?>
    <p class="review-nologged" id="review-form">
        <?php echo $this->__('Only registered users can write reviews. Please, <a href="%s">log in</a> or <a href="%s">register</a>', $this->getLoginLink(), Mage::helper('customer')->getRegisterUrl()) ?>
    </p>
<?php endif ?>

看起来像标准的rwd主题布局。如果我删除我的自定义,那么rwd默认弹出它仍然无法正常工作。

我发布的网址如下:

https://www.example.com/review/product/post/id/73/

希望有人可以帮助我朝着正确的方向前进。它让我发疯了!!!

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。

这与评论本身无关。我的第一个想法是阻止访问评论的模块,在de控制器中搜索评论之后,我们发现问题是一个模块,它不能在数据库中存储一定长度的字符。这与评论帖有些冲突。

在联系该模块的开发人员后,我们能够解决问题。该模块是MailPlus,我们通过转到模块的配置解决了它,并为主网站编辑了以下内容: enter image description here

更改后,评论表单重新开始工作。

感谢大家帮助我!