[Помогите] Проблемы с пагинацией отзывов

Тема в разделе "OpenCart", создана пользователем Dimakusch, 5 фев 2016.

  1. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Здравствуйте! После установки модуля современные отзывы появились проблемы с пагинацией. При переключении страницы в отзывах попадаю на страницу без шаблона, только в верхнем углу отзывы как на скрине:

    Вот код модуля:
    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    <modification>
        <id>reviews-stars</id>
        <version>2.1</version>
        <vqmver>2.4.1</vqmver>
        <author>vivivor</author>
        <file name="admin/model/catalog/review.php">
            <operation>
                <search position="replace"><![CDATA[
                    $this->db->query("INSERT INTO " . DB_PREFIX . "review SET
                ]]></search>
                <add><![CDATA[
                    $this->db->query("INSERT INTO " . DB_PREFIX . "review SET addimage = '" . $this->db->escape($data['addimage']) . "', answer = '" . $this->db->escape(strip_tags($data['answer'])) . "', good = '" . $this->db->escape(strip_tags($data['good'])) . "', bads = '" . $this->db->escape(strip_tags($data['bads'])) . "', html_status = '" . (int)$data['html_status'] . "', purchased = '" . (int)$data['purchased'] . "',
                ]]></add>
            </operation>
            <operation>
                <search position="replace"><![CDATA[
                    date_added = NOW()");
                ]]></search>
                <add><![CDATA[
                    date_added = '" . $this->db->escape($data['date_added']) . "'");
                ]]></add>
            </operation>
            <operation>
                <search position="replace"><![CDATA[
                    $this->db->query("UPDATE " . DB_PREFIX . "review SET
                ]]></search>
                <add><![CDATA[
                    $this->db->query("UPDATE " . DB_PREFIX . "review SET addimage = '" . $this->db->escape($data['addimage']) . "', answer = '" . $this->db->escape(strip_tags($data['answer'])) . "', good = '" . $this->db->escape(strip_tags($data['good'])) . "', bads = '" . $this->db->escape(strip_tags($data['bads'])) . "', html_status = '" . (int)$data['html_status'] . "', purchased = '" . (int)$data['purchased'] . "',
                ]]></add>
            </operation>
            <operation>
                <search position="replace"><![CDATA[
                    date_added = NOW() WHERE review_id = '" . (int)$review_id . "'");
                ]]></search>
                <add><![CDATA[
                    date_added = '" . $this->db->escape($data['date_added']) . "' WHERE review_id = '" . (int)$review_id . "'");
                ]]></add>
            </operation>
            <operation>
                <search position="replace" error="log"><![CDATA[
                    $sql = "SELECT r.review_id,
                ]]></search>
                <add><![CDATA[
                    $sql = "SELECT r.review_id, r.purchased, html_status, r.addimage,
                ]]></add>
            </operation>
        </file>
        <file name="admin/controller/catalog/review.php">
            <operation>
                <search position="after" error="log"><![CDATA[
                    getList() {
                ]]></search>
                <add><![CDATA[
            $query = $this->db->query("DESC ".DB_PREFIX."review good");
                if (!$query->num_rows) {
                    $this->db->query("ALTER TABLE `" . DB_PREFIX . "review` ADD `good` text COLLATE utf8_general_ci NOT NULL AFTER text;");
                }
            $query = $this->db->query("DESC ".DB_PREFIX."review bads");
                if (!$query->num_rows) {
                    $this->db->query("ALTER TABLE `" . DB_PREFIX . "review` ADD `bads` text COLLATE utf8_general_ci NOT NULL AFTER text;");
                }
            $query = $this->db->query("DESC ".DB_PREFIX."review answer");
                if (!$query->num_rows) {
                    $this->db->query("ALTER TABLE `" . DB_PREFIX . "review` ADD `answer` text COLLATE utf8_general_ci NOT NULL AFTER text;");
                }
            $query = $this->db->query("DESC ".DB_PREFIX."review purchased");
                if (!$query->num_rows) {
                    $this->db->query("ALTER TABLE `" . DB_PREFIX . "review` ADD `purchased` tinyint(1) NOT NULL AFTER text;");
                }
            $query = $this->db->query("DESC ".DB_PREFIX."review html_status");
                if (!$query->num_rows) {
                    $this->db->query("ALTER TABLE `" . DB_PREFIX . "review` ADD `html_status` tinyint(1) NOT NULL AFTER text;");
                }
            $query = $this->db->query("DESC ".DB_PREFIX."review addimage");
                if (!$query->num_rows) {
                    $this->db->query("ALTER TABLE `" . DB_PREFIX . "review` ADD `addimage` text NOT NULL AFTER text;");
                }
            ]]></add>
            </operation>
            <operation>
                <search position="after" error="log"><![CDATA[
                    getForm() {
                ]]></search>
                <add><![CDATA[
                    $this->data['entry_texts'] = $this->language->get('entry_texts');
                    $this->data['entry_bads'] = $this->language->get('entry_bads');
                    $this->data['entry_goods'] = $this->language->get('entry_goods');
                    $this->data['entry_answer'] = $this->language->get('entry_answer');
                    $this->data['entry_purchased'] = $this->language->get('entry_purchased');
                    $this->data['entry_addimage'] = $this->language->get('entry_addimage');
                    $this->data['entry_html_status'] = $this->language->get('entry_html_status');
                    $this->data['entry_date_added'] = $this->language->get('entry_date_added');
                ]]></add>
            </operation>
            <operation>
                <search position="after" error="log"><![CDATA[
                    $this->load->model('catalog/product');
                ]]></search>
                <add><![CDATA[
            if (isset($this->request->post['good'])) {
                $this->data['good'] = $this->request->post['good'];
            } elseif (!empty($review_info)) {
                $this->data['good'] = $review_info['good'];
            } else {
                $this->data['good'] = '';
            }
               
            if (isset($this->request->post['bads'])) {
                $this->data['bads'] = $this->request->post['bads'];
            } elseif (!empty($review_info)) {
                $this->data['bads'] = $review_info['bads'];
            } else {
                $this->data['bads'] = '';
            }
           
            if (isset($this->request->post['answer'])) {
                $this->data['answer'] = $this->request->post['answer'];
            } elseif (!empty($review_info)) {
                $this->data['answer'] = $review_info['answer'];
            } else {
                $this->data['answer'] = '';
            }
            if (isset($this->request->post['purchased'])) {
                $this->data['purchased'] = $this->request->post['purchased'];
            } elseif (!empty($review_info)) {
                $this->data['purchased'] = $review_info['purchased'];
            } else {
                $this->data['purchased'] = '';
            }
            if (isset($this->request->post['date_added'])) {
                $this->data['date_added'] = $this->request->post['date_added'];
            } elseif (!empty($review_info)) {
                $this->data['date_added'] = $review_info['date_added'];
            } else {
                $this->data['date_added'] = '';
            }
            if (isset($this->request->post['addimage'])) {
                $this->data['addimage'] = $this->request->post['addimage'];
            } elseif (!empty($review_info)) {
                $this->data['addimage'] = $review_info['addimage'];
            } else {
                $this->data['addimage'] = '';
            }
            if (isset($this->request->post['html_status'])) {
                $this->data['html_status'] = $this->request->post['html_status'];
            } elseif (!empty($review_info)) {
                $this->data['html_status'] = $review_info['html_status'];
            } else {
                $this->data['html_status'] = '';
            }
            ]]></add>
            </operation>
            <operation>
                <search position="after" error="log"><![CDATA[
                    $this->data['reviews'][] = array(
                ]]></search>
                <add><![CDATA[
                    'purchased'     => $result['purchased'],
                    'addimage'      => $result['addimage'],
                    'html_status'   => $result['html_status'],
                ]]></add>
            </operation>
        </file>
        <file name="admin/language/russian/catalog/review.php">
            <operation>
                <search position="before" error="log"><![CDATA[
                    ?>
                ]]></search>
                <add><![CDATA[
                    $_['entry_texts']        = 'Комментарий:';
                    $_['entry_goods']        = 'Достоинства:';
                    $_['entry_bads']        = 'Недостатки:';
                    $_['entry_answer']        = 'Ваш ответ:';
                    $_['entry_purchased']    = 'Куплен в этом магазине:';
                    $_['entry_addimage']    = 'Ссылка на фото:';
                    $_['entry_html_status'] = 'Включить html:';
                    $_['entry_date_added']  = 'Дата добавления:';
                ]]></add>
            </operation>
        </file>
        <file name="admin/view/template/catalog/review_list.tpl">
            <operation>
                <search position="replace" error="log" offset="1"><![CDATA[
                    <td class="left"><?php echo $review['author']; ?></td>
                ]]></search>
                <add><![CDATA[
                    <td class="left">
                    <?php echo $review['author']; ?>
                    <?php if ($review['purchased'] == 1) { ?><img src="../image/man-with-cart2.png" alt="<?php echo $review['author']; ?> купил(а) этот товар в нашем магазине" title="<?php echo $review['author']; ?> купил(а) этот товар в нашем магазине" /><?php } ?>
                    <?php if ($review['addimage']) { ?><img src="../image/addimage.png" alt="<?php echo $review['author']; ?> добавил(а) фотографию к отзыву" title="<?php echo $review['author']; ?> добавил(а) фотографию к отзыву" /><?php } ?>
                    <?php if ($review['html_status'] == 1) { ?><img src="../image/html_status.png" alt="html включен" title="html включен" /><?php } ?>
                    </td>
                    <td class="right"><img src="../catalog/view/theme/default/image/stars-<?php echo $review['rating'] . '.png'; ?>" /></td>
                ]]></add>
            </operation>
        </file>
        <file name="admin/view/template/catalog/review_form.tpl">
            <operation>
                <search position="replace" offset="54" error="log"><![CDATA[
                    <td><span class="required">*</span> <?php echo $entry_text; ?></td>
                ]]></search>
                <add><![CDATA[
                <td><?php echo $entry_rating; ?></td>
                <td>
                 <div class="rating">
                    <div class="radio-div">
                        <?php if ($rating == 1) { ?>
                        <input class="radio-star" type="radio" name="rating" value="1" checked/>
                        <?php } else { ?>
                        <input class="radio-star" type="radio" name="rating" value="1" />
                        <?php } ?>
                        <?php if ($rating == 2) { ?>
                        <input class="radio-star" type="radio" name="rating" value="2" checked/>
                        <?php } else { ?>
                        <input class="radio-star" type="radio" name="rating" value="2" />
                        <?php } ?>
                        <?php if ($rating == 3) { ?>
                        <input class="radio-star" type="radio" name="rating" value="3" checked/>
                        <?php } else { ?>
                        <input class="radio-star" type="radio" name="rating" value="3" />
                        <?php } ?>
                        <?php if ($rating == 4) { ?>
                        <input class="radio-star" type="radio" name="rating" value="4" checked/>
                        <?php } else { ?>
                        <input class="radio-star" type="radio" name="rating" value="4" />
                        <?php } ?>
                        <?php if ($rating == 5) { ?>
                        <input class="radio-star" type="radio" name="rating" value="5" checked/>
                        <?php } else { ?>
                        <input class="radio-star" type="radio" name="rating" value="5" />
                        <?php } ?>
                    </div>
                    <div class="star-div">
                        <?php if ($rating == 1) { ?><span class="icstars-1"></span><?php }elseif ($rating == 2) { ?><span class="icstars-2"></span><?php }elseif ($rating == 3) { ?><span class="icstars-3"></span><?php }elseif ($rating == 4) { ?><span class="icstars-4"></span><?php }elseif ($rating == 5) { ?><span class="icstars-5"></span><?php }elseif ($rating == 0) { ?><span class="icstars-0"></span><?php } ?>
                    </div>
                </div>
                </td>
                </tr>
                <tr><td><?php echo $entry_goods; ?></td><td><textarea name="good" cols="60" rows="8"><?php echo $good; ?></textarea></td></tr>
                <tr><td><?php echo $entry_bads; ?></td><td><textarea name="bads" cols="60" rows="8"><?php echo $bads; ?></textarea></td></tr>
                <tr><td><span class="required">*</span> <?php echo $entry_texts; ?></td><td><textarea name="text" cols="60" rows="8"><?php echo $text; ?></textarea><?php if ($error_text) { ?><span class="error"><?php echo $error_text; ?></span><?php } ?></td></tr>
                <tr><td><?php echo $entry_answer; ?></td><td><textarea name="answer" cols="60" rows="8"><?php echo $answer; ?></textarea></td></tr>
                <tr><td><?php echo $entry_addimage; ?></td><td><input type="text" name="addimage" value="<?php echo $addimage; ?>" style="width:321px;" /> <a href="<?php echo $addimage; ?>"><img src="<?php echo $addimage; ?>" style="max-width:70px;max-height:47px;position: absolute;margin-left: 10px;margin-top: -10px;" /></td></tr>
                <tr>
                    <td><?php echo $entry_purchased; ?></td>
                    <td class="switch">
                    <?php if ($purchased) { ?>
                    <input type="radio" id="radio1198" name="purchased" checked value="1" />
                    <input type="radio" id="radio1199" name="purchased" value="0" />
                    <label for="radio1198" class="cb-enable selected"><span>On</span></label>
                    <label for="radio1199" class="cb-disable"><span>Off</span></label>
                    <?php } else { ?>
                    <input type="radio" id="radio1198" name="purchased" value="1" />
                    <input type="radio" id="radio1199" name="purchased" checked value="0" />
                    <label for="radio1198" class="cb-enable"><span>On</span></label>
                    <label for="radio1199" class="cb-disable selected"><span>Off</span></label>
                    <?php } ?>
                    </td>
                </tr>
                <tr>
                    <td><?php echo $entry_html_status; ?></td>
                    <td class="switch">
                    <?php if ($html_status) { ?>
                    <input type="radio" id="radio1197" name="html_status" checked value="1" />
                    <input type="radio" id="radio1196" name="html_status" value="0" />
                    <label for="radio1197" class="cb-enable selected"><span>On</span></label>
                    <label for="radio1196" class="cb-disable"><span>Off</span></label>
                    <?php } else { ?>
                    <input type="radio" id="radio1197" name="html_status" value="1" />
                    <input type="radio" id="radio1196" name="html_status" checked value="0" />
                    <label for="radio1197" class="cb-enable"><span>On</span></label>
                    <label for="radio1196" class="cb-disable selected"><span>Off</span></label>
                    <?php } ?>
                    </td>
                </tr>
                <tr>
                <td><?php echo $entry_status; ?></td>
                <td class="switch">
                  <?php if ($status) { ?>
                    <input type="radio" id="radio1195" name="status" checked value="1" />
                    <input type="radio" id="radio1194" name="status" value="0" />
                    <label for="radio1195" class="cb-enable selected"><span>On</span></label>
                    <label for="radio1194" class="cb-disable"><span>Off</span></label>
                    <?php } else { ?>
                    <input type="radio" id="radio1195" name="status" value="1" />
                    <input type="radio" id="radio1194" name="status" checked value="0" />
                    <label for="radio1195" class="cb-enable"><span>On</span></label>
                    <label for="radio1194" class="cb-disable selected"><span>Off</span></label>
                    <?php } ?>
                  </select></td>
              </tr>
                <tr><td><?php echo $entry_date_added; ?></td><td><input type="text" name="date_added" value="<?php echo $date_added; ?>" class="datetime" /></td></tr>
    <script src="view/javascript/jquery/ui/jquery-ui-timepicker-addon.js"></script>
    <script>$('.datetime').datetimepicker({showSecond: true,dateFormat: 'yy-mm-dd',timeFormat: 'hh:mm:ss'});</script>
    <script>jQuery('.radio-star').hover(function(){var stars = jQuery(this).val();jQuery('.star-div').html('<span class="icstars-'+ stars +'"></span><i id="settext-'+ stars +'"></i>');},function(){var start = jQuery('input:radio[name=rating]:checked').val();if(typeof  start == 'undefined' ){start = 0;}jQuery('.star-div').html('<span class="icstars-'+ start +'"></span><i id="settext-'+ start +'"></i>');});jQuery('.radio-star').click(function(){jQuery('.radio-star').each(function(){jQuery(this).attr( 'checked', false );});jQuery(this).attr( 'checked', true );jQuery(this).each(function(){if(jQuery(this).attr("checked")=="checked"){var s = jQuery(this).val();jQuery('.star-div').stop().html('<span class="icstars-'+ s +'"></span><i id="settext-'+ s +'"></i>');}});});</script>
    <script>
    $(document).ready( function(){
    $(".cb-enable").click(function(){
            var parent = $(this).parents('.switch');
            $('.cb-disable',parent).removeClass('selected');
            $(this).addClass('selected');
            $('.checkbox',parent).attr('checked', true);
        });
        $(".cb-disable").click(function(){
            var parent = $(this).parents('.switch');
            $('.cb-enable',parent).removeClass('selected');
            $(this).addClass('selected');
            $('.checkbox',parent).attr('checked', false);
        });
    });
    </script>
    <style>
    #settext-1:before{content: "Ужасно";margin-left: 7px;}
    #settext-2:before{content: "Плохо";margin-left: 7px;}
    #settext-3:before{content: "Средне";margin-left: 7px;}
    #settext-4:before{content: "Хорошо";margin-left: 7px;}
    #settext-5:before{content: "Отлично";margin-left: 7px;}
    input[type='text'], textarea{color: #333;border-radius:3px;border:1px solid #CCC;box-shadow: inset 0px 2px 8px rgba(32, 74, 96, 0.2), 0px 0px 3px white;-moz-box-shadow: inset 0px 2px 8px hsla(200, 50%, 25%, 0.2), 0px 0px 3px white;-webkit-box-shadow: inset 0px 2px 8px rgba(32, 74, 96, 0.2), 0px 0px 3px white;-webkit-transition: all 200ms;-moz-transition: all 200ms;-ms-transition: all 200ms;-o-transition: all 200ms;transition: all 200ms;padding:3px !important;margin-top:2px;margin-bottom:2px;}
    input:focus, textarea:focus {box-shadow: inset 0px 2px 8px rgba(255, 255, 255, 0), 0px 0px 5px #209FDF;-moz-box-shadow: inset 0px 2px 8px hsla(0, 100%, 100%, 0), 0px 0px 5px hsl(200, 75%, 50%);-webkit-box-shadow: inset 0px 2px 8px rgba(255, 255, 255, 0), 0px 0px 5px #209FDF;background-color: #FFF;outline: none;border-color: rgba(255, 255, 255, 0);}
    textarea:focus,input:focus{outline:none;}
    .radio-div{width:77px;float:left;margin-left:5px;}
    .radio-div input[type=radio]{position:relative;margin:0 0 0 -4px;padding:0;width:16px;height: 17px;opacity:0;z-index:2;cursor:pointer;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter: alpha(opacity=0);}
    .star-div{height:17px;float:left;margin:1px 0 0 -84px;}
    .star-div span{width:77px;height:17px;display:inline-block;background:url(view/image/stars.png) no-repeat;}
    span.icstars-0{background-position:0 0}
    span.icstars-1{background-position:0 -16px}
    span.icstars-2{background-position:0 -32px}
    span.icstars-3{background-position:0 -48px}
    span.icstars-4{background-position:0 -64px}
    span.icstars-5{background-position:0 -80px}
        .switch input[type='radio']{display: none;}
        .cb-enable, .cb-disable, .cb-enable span, .cb-disable span {background: url(view/image/switch.gif) repeat-x; display: block; float: left; }
        .cb-enable span, .cb-disable span { line-height: 30px; display: block; background-repeat: no-repeat; font-weight: bold; }
        .cb-enable span { background-position: left -90px; padding: 0 10px; }
        .cb-disable span { background-position: right -180px;padding: 0 10px; }
        .cb-disable.selected { background-position: 0 -30px; }
        .cb-disable.selected span { background-position: right -210px; color: #fff; }
        .cb-enable.selected { background-position: 0 -60px; }
        .cb-enable.selected span { background-position: left -150px; color: #fff; }
        .switch label, h2 {cursor:pointer;-moz-user-select:-moz-none;-o-user-select:none;-khtml-user-select:none;-webkit-user-select:none;}
    </style>
                ]]></add>
            </operation>
        </file>
        <file name="catalog/controller/product/product.php">
            <operation>
                <search position="replace" error="log" offset="13"><![CDATA[
                    $json['error'] = $this->language->get('error_name');
                ]]></search>
                <add><![CDATA[
                    $json['error'] = $this->language->get('error_name');
                }
               
                $text_symbol = $this->config->get('config_review_text_symbol');
               
                if (!isset($text_symbol)) {
                    if ((utf8_strlen($this->request->post['text']) < 25) || (utf8_strlen($this->request->post['text']) > 1000)) {
                        $json['error'] = $this->language->get('error_text');
                    }
                } else {
                    if ((utf8_strlen($this->request->post['text']) < $text_symbol) || (utf8_strlen($this->request->post['text']) > 1000)) {
                        $json['error'] = sprintf($this->language->get('error_text_symbol'), $text_symbol);
                    }
                }
               
                if (empty($this->request->post['rating'])) {
                    $json['error'] = $this->language->get('error_rating');
                }
               
                if ($this->config->get('config_review_captcha'))  {
                    if (empty($this->session->data['captcha']) || ($this->session->data['captcha'] != $this->request->post['captcha'])) {
                        $json['error'] = $this->language->get('error_captcha');
                    }
                }
                ]]></add>
            </operation>
            <operation>
                <search position="replace" error="log"><![CDATA[
                $json['success'] = $this->language->get('text_success');
                ]]></search>
                <add><![CDATA[
                if ($this->config->get('config_review_email')) {
                $this->language->load('mail/new_review');
    
                $customer_name = html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8');
                $subject = "[".$this->config->get('config_name')."] ".sprintf($this->language->get('text_subject'), $customer_name);
                $review = html_entity_decode($this->request->post['text'], ENT_QUOTES, 'UTF-8');
                $review1 = html_entity_decode($this->request->post['good'], ENT_QUOTES, 'UTF-8');
                $review2 = html_entity_decode($this->request->post['bads'], ENT_QUOTES, 'UTF-8');
                $review_id = $this->model_catalog_review->getLastReview();
    
                $template = new Template();
    
                $template->data['title']            = $subject;
                $template->data['text_from']         = sprintf($this->language->get('text_from'), html_entity_decode($customer_name, ENT_QUOTES, 'UTF-8'));
                $template->data['text_review']      = $this->language->get('text_review');
                $template->data['review']           = $review;
                $template->data['review1']           = $review1;
                $template->data['review2']           = $review2;
                $template->data['text_approve']      = $this->language->get('text_approve');
                $template->data['text_approve_link']   = $this->language->get('text_approve_link');
    
                $template->data['store_url']         = $this->config->get('config_url');
                $template->data['store_name']         = $this->config->get('config_name');
                $template->data['approve_url']         = HTTP_SERVER. 'admin/index.php?route=catalog/review/update&review_id='.$review_id;
    
                $template->data['image'] = HTTP_SERVER."image/".$this->config->get('config_logo');
    
                if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/new_review.tpl')) {
                    $html = $template->fetch($this->config->get('config_template') . '/template/mail/new_review.tpl');
                } else {
                    $html = $template->fetch('default/template/mail/new_review.tpl');
                }
    
                $mail = new Mail();
                $mail->protocol = $this->config->get('config_mail_protocol');
                $mail->parameter = $this->config->get('config_mail_parameter');
                $mail->hostname = $this->config->get('config_smtp_host');
                $mail->username = $this->config->get('config_smtp_username');
                $mail->password = $this->config->get('config_smtp_password');
                $mail->port = $this->config->get('config_smtp_port');
                $mail->timeout = $this->config->get('config_smtp_timeout');
    
                $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
                $mail->setHtml($html);
    
                $mail->setTo($this->config->get('config_email'));
                $mail->setFrom($this->config->get('config_email'));
                $mail->setSender($this->config->get('config_name'));
                $mail->send();
                }
                if (!$this->config->get('config_review_statusp'))  {
                    $json['success'] = $this->language->get('text_success');
                } else {
                    $json['success'] = $this->language->get('text_success_status');
                }
                ]]></add>
            </operation>
            <operation>
                <search position="after" error="log"><![CDATA[
                $this->model_catalog_product->updateViewed($this->request->get['product_id']);
                ]]></search>
                <add><![CDATA[
            $this->load->model('catalog/review');
           
            $this->data['text_on'] = $this->language->get('text_on');
            $this->data['text_no_reviews'] = $this->language->get('text_no_reviews');
            $this->data['entry_good'] = $this->language->get('entry_good');
            $this->data['entry_bads'] = $this->language->get('entry_bads');
            $this->data['text_bads'] = $this->language->get('text_bads');
            $this->data['text_good'] = $this->language->get('text_good');
            $this->data['text_answer'] = $this->language->get('text_answer');
            $this->data['text_comment'] = $this->language->get('text_comment');
           
            if (isset($this->request->get['page'])) {
                $page = $this->request->get['page'];
            } else {
                $page = 1;
            }
           
            $this->data['reviews_array'] = array();
           
            $review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']);
           
            $results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5);
             
            foreach ($results as $result) {
            if ($result['html_status'] == 1) {
                $this->data['reviews_array'][] = array(
                    'product_id' => $result['product_id'],
                    'review_id'  => $result['review_id'],
                    'author'     => $result['author'],
                    'text'       => html_entity_decode($result['text'], ENT_QUOTES, 'UTF-8'),
                    'good'       => html_entity_decode($result['good'], ENT_QUOTES, 'UTF-8'),
                    'bads'       => html_entity_decode($result['bads'], ENT_QUOTES, 'UTF-8'),
                    'answer'     => html_entity_decode($result['answer'], ENT_QUOTES, 'UTF-8'),
                    'purchased'  => $result['purchased'],
                    'addimage'   => $result['addimage'],
                    'rating'     => (int)$result['rating'],
                    'reviews'    => sprintf($this->language->get('text_reviews'), (int)$review_total),
                    'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
                );
                } else {
                $this->data['reviews_array'][] = array(
                    'product_id' => $result['product_id'],
                    'review_id'  => $result['review_id'],
                    'author'     => $result['author'],
                    'text'       => $result['text'],
                    'good'       => $result['good'],
                    'bads'       => $result['bads'],
                    'answer'     => $result['answer'],
                    'purchased'  => $result['purchased'],
                    'addimage'   => $result['addimage'],
                    'rating'     => (int)$result['rating'],
                    'reviews'    => sprintf($this->language->get('text_reviews'), (int)$review_total),
                    'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
                );
                }
              }
           
            $pagination = new Pagination();
            $pagination->total = $review_total;
            $pagination->page = $page;
            $pagination->limit = 5;
            $pagination->text = $this->language->get('text_pagination');
            $pagination->url = $this->url->link('product/product/review', 'product_id=' . $this->request->get['product_id'] . '&page={page}');
           
            $this->data['pagination'] = $pagination->render();
                ]]></add>
            </operation>
        </file>
        <file name="catalog/language/russian/product/product.php">
            <operation>
                <search position="before"><![CDATA[
                ?>
                ]]></search>
                <add><![CDATA[
                $_['button_continue']       = 'Оставить отзыв';
                $_['entry_good']            = 'Достоинства:';
                $_['entry_bads']            = 'Недостатки:';
                $_['entry_review']          = 'Комментарий:';
                $_['text_answer']           = 'Администратор:';
                $_['text_success_status']   = 'Спасибо за ваш отзыв. Он появится после обновления страницы';
                $_['error_text']            = 'Текст комментария должен быть от 25 до 1000 символов!';
                $_['error_text_symbol']     = 'Текст комментария должен быть от %s до 1000 символов!';
                $_['error_name']            = 'Ваше имя должно быть от 3 до 25 символов!';
                $_['entry_captcha']         = 'Код с картинки:';
                $_['text_on']               = ' от ';
                ]]></add>
            </operation>
        </file>
        <file name="catalog/model/catalog/review.php">
            <operation>
                <search position="replace"><![CDATA[
                    public function addReview($product_id, $data) {
                ]]></search>
                <add><![CDATA[
                    public function getLastReview(){
                        $query = $this->db->query("SELECT review_id FROM ".DB_PREFIX."review WHERE customer_id = '".$this->customer->getId()."' ORDER BY `review_id` DESC LIMIT 1");
                       return $query->row['review_id'];
                    }
                    public function addReview($product_id, $data) {
                    if (!$this->config->get('config_review_statusp'))  {
                        $review_statusp = 0;
                    } else {
                        $review_statusp = 1;
                    }
                ]]></add>
            </operation>
            <operation>
                <search position="replace" error="log"><![CDATA[
                    $this->db->query("INSERT INTO " . DB_PREFIX . "review SET
                ]]></search>
                <add><![CDATA[
                    $this->db->query("INSERT INTO " . DB_PREFIX . "review SET addimage = '" . $this->db->escape($data['addimage']) . "', good = '" . $this->db->escape($data['good']) . "', bads = '" . $this->db->escape($data['bads']) . "', status = '" . $review_statusp . "',
                ]]></add>
            </operation>
            <operation>
                <search position="replace" error="log"><![CDATA[
                    $query = $this->db->query("SELECT r.review_id,
                ]]></search>
                <add><![CDATA[
                    $query = $this->db->query("SELECT r.review_id, r.answer, r.html_status, r.purchased, r.addimage, r.good, r.bads,
                ]]></add>
            </operation>
        </file>
        <file name="catalog/view/theme/*/template/product/product.tpl">
            <operation>
                <search position="replace" offset="24" error="log"><![CDATA[
                <b><?php echo $entry_name; ?></b><br />
                ]]></search>
                <add><![CDATA[
                <div id="review-form">
                <b style="display:block;float:left;width:150px;padding:4px 0 4px 0;"><?php echo $entry_name; ?></b>
                <input type="text" name="name" value="" style="margin-left:40px;"/>
                <br><br>
                <div class="rating">
                    <label class="entry-rating"><?php echo $entry_rating; ?></label>
                    <div class="radio-div" style="margin-left:45px;">
                        <input class="radio-star" type="radio" name="rating" value="1" />
                        <input class="radio-star" type="radio" name="rating" value="2" />
                        <input class="radio-star" type="radio" name="rating" value="3" />
                        <input class="radio-star" type="radio" name="rating" value="4" />
                        <input class="radio-star" type="radio" name="rating" value="5" />
                    </div>
                <div class="star-div"><span class="icstars-0"></span></div>
                </div>
                <br><br>
                <b class="entry-b displayg"><?php echo $entry_good; ?></b>
                <textarea class="displayg" name="good" cols="40" rows="6"></textarea>
                <br class="displayg">
                <b class="entry-b displayb"><?php echo $entry_bads; ?></b>
                <textarea class="displayb" name="bads" cols="40" rows="6"></textarea>
                <br class="displayb">
                <b class="entry-b"><?php echo $entry_review; ?></b>
                <textarea name="text" cols="40" rows="6"></textarea>
                <br>
                <a id="spoilerclick" class="displayf">Добавить фото</a>
                <br>
                <div id="addimgsp" class="displayf">
                    <b style="display:block;float:left;width:150px;padding:4px 0 4px 0;">Ссылка на фото:</b>
                    <input type="text" name="addimage" value="" style="margin-left:40px;width: 306px;"/>
                </div>
                <div class="displayc">
                <b style="display:block;float:left;width:150px;padding:4px 0 4px 0;"><?php echo $entry_captcha; ?></b>
                <input type="text" name="captcha" value="" style="margin-left:40px;vertical-align:top;width:206px;" />
                <img src="index.php?route=product/product/captcha" alt="" id="captcha" /><br>
                </div>
                <br>
    <?php if (!$this->config->get('config_review_good'))  { ?>
    <style>.displayg{display:none!important;}</style>
    <?php } ?>
    <?php if (!$this->config->get('config_review_bad'))  { ?>
    <style>.displayb{display:none!important;}</style>
    <?php } ?>
    <?php if (!$this->config->get('config_review_addimage'))  { ?>
    <style>.displayf{display:none!important;}</style>
    <?php } ?>
    <?php if (!$this->config->get('config_review_captcha'))  { ?>
    <style>.displayc{display:none!important;}</style>
    <?php } ?>
    <script>jQuery('.radio-star').hover(function(){var stars = jQuery(this).val();jQuery('.star-div').html('<span class="icstars-'+ stars +'"></span><i id="settext-'+ stars +'"></i>');},function(){var start = jQuery('input:radio[name=rating]:checked').val();if(typeof  start == 'undefined' ){start = 0;}jQuery('.star-div').html('<span class="icstars-'+ start +'"></span><i id="settext-'+ start +'"></i>');});jQuery('.radio-star').click(function(){jQuery('.radio-star').each(function(){jQuery(this).attr( 'checked', false );});jQuery(this).attr( 'checked', true );jQuery(this).each(function(){if(jQuery(this).attr("checked")=="checked"){var s = jQuery(this).val();jQuery('.star-div').stop().html('<span class="icstars-'+ s +'"></span><i id="settext-'+ s +'"></i>');}});});</script>
    <script>
    $(document).ready(function(){
      $('.review div:first a:last').click(function(){
        var offset1 = $('#review-title').prev().offset();
        offset1 = offset1 ? offset1.top : 10000;
        $('html, body').animate({ scrollTop: offset1 }, 'slow');
        $('#review-title').siblings('#review-form').stop(false, true).slideDown(500);
        $('#review-title').html('Скрыть форму для отзыва');
      });
      $('.review div:first a:first').click(function(){
        var offset = $('.review-list').prev().offset();
        $('html, body').animate({ scrollTop: offset.top }, 'slow');
      });
      $('#addimgsp').hide();
      $('#spoilerclick').toggle(
        function(){
          $(this).siblings('#addimgsp').stop(false, true).slideDown(500);
        },
       function(){
          $(this).siblings('#addimgsp').stop(false, true).slideUp(500);
       }
    );
      $('#review-form').hide();
      $('#review-title').before('<img src="image/review-new.png" height="22px" width="22px" alt="review icon" style="float: left;margin: -2px 3px 0 0;" />');
      $('#review-title').toggle(
        function(){
          $(this).siblings('#review-form').stop(false, true).slideDown(500);
          $(this).html('Скрыть форму для отзыва');
          var offset1 = $('#review-title').prev().offset();
            offset1 = offset1 ? offset1.top : 10000;
            $('html, body').animate({ scrollTop: offset1 }, 'slow');
        },
       function(){
          $(this).siblings('#review-form').stop(false, true).slideUp(500);
          $(this).html('Написать отзыв');
       }
    );
    });
    </script>
    <script>
    $(document).ready(function(){
        $('#captcha').click(function() {$(this).attr('src', 'index.php?route=product/product/captcha&rand='+ Math.round((Math.random() * 10000 )));});
        $('#captcha').after('<img src="image/refresh.png" style="margin:0 0 4px -16px;z-index:-1;position:relative;" />');
    });
    </script>
    <style>
    #settext-1:before{content: "Ужасно";margin-left: 7px;}
    #settext-2:before{content: "Плохо";margin-left: 7px;}
    #settext-3:before{content: "Средне";margin-left: 7px;}
    #settext-4:before{content: "Хорошо";margin-left: 7px;}
    #settext-5:before{content: "Отлично";margin-left: 7px;}
    #review-title{cursor:pointer;}
    .review-list .author{margin:0!important;}
    .review-list .text{margin-bottom: 5px;}
    #tab-review .minus {padding:0 0 8px 22px;background-image:url(image/minus.png);background-repeat: no-repeat;}
    #tab-review .plus {padding:0 0 8px 22px;background-image:url(image/plus.png);background-repeat: no-repeat;}
    #tab-review input[type='text']{height:17px;}
    #tab-review input[type='text'], textarea{color: #333;box-shadow: inset 0px 2px 8px rgba(32, 74, 96, 0.2), 0px 0px 3px white;-moz-box-shadow: inset 0px 2px 8px hsla(200, 50%, 25%, 0.2), 0px 0px 3px white;-webkit-box-shadow: inset 0px 2px 8px rgba(32, 74, 96, 0.2), 0px 0px 3px white;-webkit-transition: all 200ms;-moz-transition: all 200ms;-ms-transition: all 200ms;-o-transition: all 200ms;transition: all 200ms;padding:3px !important;margin-top:2px;margin-bottom:2px;}
    #tab-review input:focus, textarea:focus {box-shadow: inset 0px 2px 8px rgba(255, 255, 255, 0), 0px 0px 5px #209FDF;-moz-box-shadow: inset 0px 2px 8px hsla(0, 100%, 100%, 0), 0px 0px 5px hsl(200, 75%, 50%);-webkit-box-shadow: inset 0px 2px 8px rgba(255, 255, 255, 0), 0px 0px 5px #209FDF;background-color: #FFF;outline: none;border-color: rgba(255, 255, 255, 0);}
    #tab-review .entry-b{display:block;float:left;width:150px;padding:47px 0 53px 0;}
    #tab-review textarea{height:108px;min-height:108px;min-width:306px;max-width:540px;margin-left:40px;}
    #tab-review textarea:focus,input:focus{outline:none;}
    #tab-review #captcha{margin-top:2px;margin-left:-4px;cursor:pointer;padding-right:18px;}
    #tab-review > div .radio-div {width: 77px;float: left;margin-left: 5px;}
    #tab-review > div .radio-div input[type=radio] {position:relative;margin:0 0 0 -4px;padding:0;width:16px;height: 17px;opacity:0;z-index:2;cursor:pointer;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter: alpha(opacity=0);}
    #tab-review .star-div{height:17px;float:left;margin:1px 0 0 -84px;}
    #tab-review .entry-rating{cursor:default;display:block;float:left;width:150px;padding:4px 0 4px 0;font-weight:bold;}
    .star-div span{width:77px;height:17px;display:inline-block;background: url(image/stars.png) no-repeat;}
    span.icstars-0{background-position:0 0}
    span.icstars-1{background-position:0 -16px}
    span.icstars-2{background-position:0 -32px}
    span.icstars-3{background-position:0 -48px}
    span.icstars-4{background-position:0 -64px}
    span.icstars-5{background-position:0 -80px}
    </style>
    <style>.vot_updown2{float:right;font-size: 13px !important;} #yesvot{color: #298705;font-size: 13px;} #novot{color: red;font-size: 13px;}</style>
    <script src="catalog/controller/voting/voting.js" type="text/javascript"></script>
                ]]></add>
            </operation>
            <operation>
                <search position="after" error="log"><![CDATA[
                    id="button-review"
                ]]></search>
                <add><![CDATA[
                </div>
                ]]></add>
            </operation>
            <operation>
                <search position="after" error="log"><![CDATA[
                $('input[name=\'name\']').val('');
                ]]></search>
                <add><![CDATA[               
                $('textarea[name=\'good\']').val('');
                $('textarea[name=\'bads\']').val('');
                $('input[name=\'addimage\']').val('');
                ]]></add>
            </operation>
    
            <operation>
                <search position="replace" offset="10" error="log"><![CDATA[
                $('#review .pagination a').live('click', function() {
               
                ]]></search>
                <add><![CDATA[
                ]]></add>
            </operation>
    
            <operation>
                <search position="replace" error="log"><![CDATA[
                data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()),
                ]]></search>
                <add><![CDATA[
                data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&addimage=' + encodeURIComponent($('input[name=\'addimage\']').val()) + '&good=' + encodeURIComponent($('textarea[name=\'good\']').val()) + '&bads=' + encodeURIComponent($('textarea[name=\'bads\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()),
                ]]></add>
            </operation>
    
            <operation>
                <search position="replace" error="log"><![CDATA[
                <div id="review"></div>
                ]]></search>
                <add><![CDATA[
                <div id="review">
                 <?php if ($reviews_array) { ?>
                    <?php foreach ($reviews_array as $review) { ?>
                    <div class="review-list">
                      <div class="author">
                      <b><?php echo $review['author']; ?></b> <?php echo $text_on; ?> <?php echo $review['date_added']; ?>
                      <?php if ($review['purchased'] == 1) { ?>
                        <img src="image/man-with-cart2.png" alt="<?php echo $review['author']; ?> купил(а) этот товар в нашем магазине" title="<?php echo $review['author']; ?> купил(а) этот товар в нашем магазине" width="14px" height="11px" />
                      <?php } ?>
                      </div>
                      <div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $review['rating'] . '.png'; ?>" alt="<?php echo $review['reviews']; ?>" /></div>
                      <br/>
                <?php if ($review['good']) { ?>
                <br/>
                <div class="plus"><?php echo preg_replace("/\s\s+/", "<br>", $review['good']); ?></div>
                <?php } ?>
                <?php if ($review['bads']) { ?>
                <br/>
                <div class="minus"><?php echo preg_replace("/\s\s+/", "<br>", $review['bads']); ?></div>
                <?php } ?>
                <?php if ($review['text']) { ?>
                <br/>
                <div class="text"><?php echo preg_replace('/\s\s+/', "<br>", $review['text']); ?></div>
                <?php } ?>
                <?php if ($review['addimage']) { ?>
                <div class="addimage"><a href="<?php echo $review['addimage']; ?>" class="colorbox"><img src="<?php echo $review['addimage']; ?>" style="max-width:150px;max-height:100px;" /></a></div>
                <?php } ?>
                <?php if ($review['answer']) { ?>
                <br/><div class="answer" style="margin-left: 25px; padding: 5px; background: #F7F4EA; font-style: italic;"><?php echo '<b>'.$text_answer.'</b> '.preg_replace('/\s\s+/', "<br>", $review['answer']); ?></div>
                <?php } ?>
                <div class="vot_updown2" id="vt_<?php echo $review['review_id']; ?>_<?php echo $review['product_id']; ?>_<?php echo $review['rating']; ?>"></div>
                    </div>
                    <?php } ?>
                    <div class="pagination"><?php echo $pagination; ?></div>
                    <?php } else { ?>
                    <div class="content"><?php echo $text_no_reviews; ?></div>
                    <?php } ?>
                </div>
                ]]></add>
            </operation>
    -->
            <!-- with microdata -->
            <operation>
                <search position="replace" error="log"><![CDATA[
                <div id="review"></div>
                ]]></search>
                <add><![CDATA[
                <div id="review">
                 <?php if ($reviews_array) { ?>
                    <?php foreach ($reviews_array as $review) { ?>
                    <div class="review-list" itemprop = "review" itemscope itemtype = "http://schema.org/Review">
                      <div class="author" itemprop = "author">
                      <time itemprop = "datePublished" datetime = "<?php echo $review['date_added']; ?>" ><?php echo $review['date_added']; ?></time>
                      <b><?php echo $review['author']; ?></b> <?php echo $text_on; ?> <?php echo $review['date_added']; ?>
                      <?php if ($review['purchased'] == 1) { ?>
                        <img src="image/man-with-cart2.png" alt="<?php echo $review['author']; ?> купил(а) этот товар в нашем магазине" title="<?php echo $review['author']; ?> купил(а) этот товар в нашем магазине" width="14px" height="11px" />
                      <?php } ?>
                      </div>
                      <div class="rating" itemprop = "reviewRating" itemscope itemtype = "http://schema.org/Rating">
                        <img src="catalog/view/theme/default/image/stars-<?php echo $review['rating'] . '.png'; ?>" alt="<?php echo $review['reviews']; ?>" />
                        <meta itemprop = "worstRating" content = "1" >
                        <meta itemprop = "ratingValue" content="<?php echo $review['rating']; ?>">
                        <meta itemprop = "bestRating" content="5">                 
                      </div>
                      <br/>
                <?php if ($review['good']) { ?>
                <br/>
                <div class="plus"><?php echo preg_replace("/\s\s+/", "<br>", $review['good']); ?></div>
                <?php } ?>
                <?php if ($review['bads']) { ?>
                <br/>
                <div class="minus"><?php echo preg_replace("/\s\s+/", "<br>", $review['bads']); ?></div>
                <?php } ?>
                <?php if ($review['text']) { ?>
                <br/>
                <div class="text" itemprop = "reviewBody"><?php echo preg_replace('/\s\s+/', "<br>", $review['text']); ?></div>
                <?php } ?>
                <?php if ($review['addimage']) { ?>
                <div class="addimage"><a href="<?php echo $review['addimage']; ?>" class="colorbox"><img src="<?php echo $review['addimage']; ?>" style="max-width:150px;max-height:100px;" /></a></div>
                <?php } ?>
                <?php if ($review['answer']) { ?>
                <br/><div class="answer" style="margin-left: 25px; padding: 5px; background: #F7F4EA; font-style: italic;"><?php echo '<b>'.$text_answer.'</b> '.preg_replace('/\s\s+/', "<br>", $review['answer']); ?></div>
                <?php } ?>
                <div class="vot_updown2" id="vt_<?php echo $review['review_id']; ?>_<?php echo $review['product_id']; ?>_<?php echo $review['rating']; ?>"></div>
                    </div>
                    <?php } ?>
                    <div class="pagination"><?php echo $pagination; ?></div>
                    <?php } else { ?>
                    <div class="content"><?php echo $text_no_reviews; ?></div>
                    <?php } ?>
                </div>
                ]]></add>
            </operation>
        </file>
        <file name="system/library/captcha.php">
        <operation>
        <search position="replace" offset="1" error="log"><![CDATA[
        protected $width = 35;
        ]]></search>
        <add><![CDATA[
        protected $width = 25;
        protected $height = 100;
        ]]></add>
        </operation>
        <operation>
        <search position="replace" offset="3" error="log"><![CDATA[
        imagefilledrectangle($image, 0, 0, $width, 0, $black);
        ]]></search>
        <add><![CDATA[
        $grey = imagecolorallocate($image, 204, 204, 204);
        imagefilledrectangle($image, 0, 0, $width, 0, $grey);
        imagefilledrectangle($image, $width - 1, 0, $width - 1, $height - 1, $grey);
        imagefilledrectangle($image, 0, 0, 0, $height - 1, $grey);
        imagefilledrectangle($image, 0, $height - 1, $width, $height - 1, $grey);
        ]]></add>
        </operation>
        </file>
        <file name="admin/view/template/setting/setting.tpl">
            <operation>
             <search position="after"><![CDATA[
             <div id="tab-option">
             ]]></search>
             <add><![CDATA[
             <h2>Отзывы</h2>
              <table class="form">
                <tr>
                  <td>Поле недостатков</td>
                  <td><?php if ($config_review_bad) { ?>
                    <input type="radio" name="config_review_bad" value="1" checked="checked" />Да
                    <input type="radio" name="config_review_bad" value="0" />Нет
                    <?php } else { ?>
                    <input type="radio" name="config_review_bad" value="1" />Да
                    <input type="radio" name="config_review_bad" value="0" checked="checked" />Нет
                    <?php } ?></td>
                </tr>
                <tr>
                  <td>Поле достоинств</td>
                  <td><?php if ($config_review_good) { ?>
                    <input type="radio" name="config_review_good" value="1" checked="checked" />Да
                    <input type="radio" name="config_review_good" value="0" />Нет
                    <?php } else { ?>
                    <input type="radio" name="config_review_good" value="1" />Да
                    <input type="radio" name="config_review_good" value="0" checked="checked" />Нет
                    <?php } ?></td>
                </tr>
                <tr>
                  <td>Поле фото</td>
                  <td><?php if ($config_review_addimage) { ?>
                    <input type="radio" name="config_review_addimage" value="1" checked="checked" />Да
                    <input type="radio" name="config_review_addimage" value="0" />Нет
                    <?php } else { ?>
                    <input type="radio" name="config_review_addimage" value="1" />Да
                    <input type="radio" name="config_review_addimage" value="0" checked="checked" />Нет
                    <?php } ?></td>
                </tr>
                <tr>
                  <td>Поле капчи</td>
                  <td><?php if ($config_review_captcha) { ?>
                    <input type="radio" name="config_review_captcha" value="1" checked="checked" />Да
                    <input type="radio" name="config_review_captcha" value="0" />Нет
                    <?php } else { ?>
                    <input type="radio" name="config_review_captcha" value="1" />Да
                    <input type="radio" name="config_review_captcha" value="0" checked="checked" />Нет
                    <?php } ?></td>
                </tr>
                <tr>
                  <td>Автопубликация отзывов</td>
                  <td><?php if ($config_review_statusp) { ?>
                    <input type="radio" name="config_review_statusp" value="1" checked="checked" />Да
                    <input type="radio" name="config_review_statusp" value="0" />Нет
                    <?php } else { ?>
                    <input type="radio" name="config_review_statusp" value="1" />Да
                    <input type="radio" name="config_review_statusp" value="0" checked="checked" />Нет
                    <?php } ?></td>
                </tr>
                <tr>
                  <td>Оповещение о новом отзыве по e-mail</td>
                  <td><?php if ($config_review_email) { ?>
                    <input type="radio" name="config_review_email" value="1" checked="checked" />Да
                    <input type="radio" name="config_review_email" value="0" />Нет
                    <?php } else { ?>
                    <input type="radio" name="config_review_email" value="1" />Да
                    <input type="radio" name="config_review_email" value="0" checked="checked" />Нет
                    <?php } ?></td>
                </tr>
                <tr>
                  <td>Мин длина комментария</td>
                  <td>
                    <?php if (empty($config_review_text_symbol)) { ?>
                    <input type="text" name="config_review_text_symbol" value="25" size="3" />
                    <?php } else { ?>
                    <input type="text" name="config_review_text_symbol" value="<?php echo $config_review_text_symbol; ?>" size="3" />
                    <?php } ?>
                  </td>
                </tr>
              </table>
             ]]></add>
            </operation>
        </file>
        <file name="admin/controller/setting/setting.php">
            <operation>
            <search position="before"><![CDATA[
             if (isset($this->request->post['config_catalog_limit'])) {
             ]]></search>
             <add><![CDATA[
             if (isset($this->request->post['config_review_good'])) {
                $this->data['config_review_good'] = $this->request->post['config_review_good'];
             } else {
                $this->data['config_review_good'] = $this->config->get('config_review_good');
             }
             if (isset($this->request->post['config_review_bad'])) {
                $this->data['config_review_bad'] = $this->request->post['config_review_bad'];
             } else {
                $this->data['config_review_bad'] = $this->config->get('config_review_bad');
             }
             if (isset($this->request->post['config_review_addimage'])) {
                $this->data['config_review_addimage'] = $this->request->post['config_review_addimage'];
             } else {
                $this->data['config_review_addimage'] = $this->config->get('config_review_addimage');
             }
             if (isset($this->request->post['config_review_captcha'])) {
                $this->data['config_review_captcha'] = $this->request->post['config_review_captcha'];
             } else {
                $this->data['config_review_captcha'] = $this->config->get('config_review_captcha');
             }
             if (isset($this->request->post['config_review_statusp'])) {
                $this->data['config_review_statusp'] = $this->request->post['config_review_statusp'];
             } else {
                $this->data['config_review_statusp'] = $this->config->get('config_review_statusp');
             }
             if (isset($this->request->post['config_review_email'])) {
                $this->data['config_review_email'] = $this->request->post['config_review_email'];
             } else {
                $this->data['config_review_email'] = $this->config->get('config_review_email');
             }
             if (isset($this->request->post['config_review_text_symbol'])) {
                $this->data['config_review_text_symbol'] = $this->request->post['config_review_text_symbol'];
             } else {
                $this->data['config_review_text_symbol'] = $this->config->get('config_review_text_symbol');
             }
             ]]></add>
            </operation>
        </file>
    </modification>
    
    Помогите решить проблему. Спасибо!
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Вместо аякс запроса отправляется обычный. Дайте ссылку на сайт.
     
    Dimakusch нравится это.
  3. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Никаких ошибок нет, у вас просто не хватает js обработчика клика по пагинации в комментариях.
    Вот этот vQmod код убирает стандартный:
    Код:
    <operation>
                <search position="replace" offset="10" error="log"><![CDATA[
                $('#review .pagination a').live('click', function() {
              
                ]]></search>
                <add><![CDATA[
                ]]></add>
            </operation>
    А свой модуль не добавляет.

    Для начала, попробуйте вернуть стандартный:

    Код:
    $('#review .pagination a').live('click', function() {
        $('#review').fadeOut('slow');
          
        $('#review').load(this.href);
      
        $('#review').fadeIn('slow');
      
        return false;
    });
    
    Просто вставить этот код в шаблон не получится, vQmod его удалит, так что нужно просто убрать из vQmod его удаление.
     
  5. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Попробовал вставить код таким образом:
    Код:
    <operation>
                <search position="replace" offset="10" error="log"><![CDATA[
           
    $('#review .pagination a').live('click', function() {
        $('#review').fadeOut('slow');
       
        $('#review').load(this.href);
    
        $('#review').fadeIn('slow');
    
        return false;
    });
                ]]></search>
                <add><![CDATA[
                ]]></add>
            </operation>
    Появились стандартные отзывы.

    Попробовал закомментировать код который удаляет стандартный, появились обычные отзывы, но форма для ввода осталась из модуля Современные отзывы.

    Может я что-то не так делаю? Уже второй день мучаюсь с этим.
    --- Добавлено, 5 фев 2016 ---
    Единственное что я нашел за эти два дня, вот этот код:
    PHP:
    <operation>
                <search position="replace" offset="10" ><![CDATA[$('#review .pagination a').live('click', function() {]]></search>
                <add><![CDATA[
                $('#review .pagination a').live('click', function() {
      var link_href = this.href;
       $('#review').slideUp('slow', function() {
        $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id?>&page='+parseInt(link_href.match(/page=(\d+)/)[1]), function() {
          $('#review').slideDown('slow');
        });
      });
      return false;
    });
                ]]></add>
            </operation>
    Если им заменить код модуля, то появляется ужасная анимация, но переключаются страницы, правда когда перехожу на страницу 2 то там вид обычных отзывов.
     
    Последнее редактирование: 5 фев 2016
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Просто уберите кусок vQmod, который удаляет стандартный обработчик и оставьте, чтоб я мог посмотреть, что получилось.

    А есть где-то демо этого модуля, чтоб было понятно, как оно должно в итоге выглядеть? Потому что на глаз, сейчас, вроде, всё идеально.
     
  7. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Вот страница с демо http://viv.tw1.ru/index.php?route=product/product&path=20&product_id=44 , но по умолчанию в модуле стоит 50 отзывов на страницу, я изменил на 5 и появилась ошибка.

    Сейчас я убрал код:
    Код:
    <!--
            <operation>
                <search position="replace" offset="10" error="log"><![CDATA[
                $('#review .pagination a').live('click', function() {
              
                ]]></search>
                <add><![CDATA[
                ]]></add>
            </operation>
    -->

    Сейчас работают страницы и форма отправки отзыва, но не работают функции отзывов (ответ администратора и полезный отзыв) тут если одно заработало, так другое перестает)
     
  8. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Ну, пагинация тут не при чём. Когда при смене страницы открывались отзывы отдельно, открывались такие же стандартные отзывы. И форма добавления отзыва тоже сейчас стандартная.

    Смотрите логи vQmod, он явно не всё смог прописать.

    А вообще, советую установить модуль вручную, то есть убрать vQmod и вручную прописать все правки из инструкции по ходу корректируя их под вашу систему. Я только так vQmod модули всегда и устанавливаю.
     
  9. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Cпасибо большое, буду пробовать переносить модуль, но придется с этим попотеть немного ) Надеюсь все получится)
    В логах нашел только ошибки, когда изменял модуль.
     
  10. opalko

    opalko

    Регистрация:
    23 дек 2014
    Сообщения:
    204
    Симпатии:
    14
    получилось решить проблему, и если да, то как, у меня такая же ситуация...