Здравствуйте! После установки модуля современные отзывы появились проблемы с пагинацией. При переключении страницы в отзывах попадаю на страницу без шаблона, только в верхнем углу отзывы как на скрине: Вот код модуля: Код: <?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> Помогите решить проблему. Спасибо!
Никаких ошибок нет, у вас просто не хватает 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 его удаление.
Попробовал вставить код таким образом: Код: <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 то там вид обычных отзывов.
Просто уберите кусок vQmod, который удаляет стандартный обработчик и оставьте, чтоб я мог посмотреть, что получилось. А есть где-то демо этого модуля, чтоб было понятно, как оно должно в итоге выглядеть? Потому что на глаз, сейчас, вроде, всё идеально.
Вот страница с демо 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> --> Сейчас работают страницы и форма отправки отзыва, но не работают функции отзывов (ответ администратора и полезный отзыв) тут если одно заработало, так другое перестает)
Ну, пагинация тут не при чём. Когда при смене страницы открывались отзывы отдельно, открывались такие же стандартные отзывы. И форма добавления отзыва тоже сейчас стандартная. Смотрите логи vQmod, он явно не всё смог прописать. А вообще, советую установить модуль вручную, то есть убрать vQmod и вручную прописать все правки из инструкции по ходу корректируя их под вашу систему. Я только так vQmod модули всегда и устанавливаю.
Cпасибо большое, буду пробовать переносить модуль, но придется с этим попотеть немного ) Надеюсь все получится) В логах нашел только ошибки, когда изменял модуль.