[Помогите] Индексация отзывов

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

  1. MGT1

    MGT1

    Регистрация:
    5 янв 2013
    Сообщения:
    617
    Симпатии:
    182
    Пациент


    Сделал как тут


    В код отзыв выводиться но перестают работать "звезды" не подгружается изображение (пока вернул в обратное положение).

    Не работает в плане перестает находить само изображение.
     
  2. MGT1

    MGT1

    Регистрация:
    5 янв 2013
    Сообщения:
    617
    Симпатии:
    182
    Кароче сделал как предлагал фрилансер.
    Теперь пошли изменения и в структуру:

    Оригинал:


    Внесены изменения:


    Как видим вроде все работает, только где-то я не учел рейтинг, и его затянуло в общее.
    --- Добавлено, 3 окт 2016 ---
    Сделано так (там где "-" заменяем на то что "+")

    PHP:
    Index: catalog/view/theme/default/template/product/product.tpl
    ===================================================================
    --- catalog/view/theme/default/template/product/product.tpl    (revision 7:c5814954b27a)
    +++ catalog/view/theme/default/template/product/product.tpl    (revision 7+:c5814954b27a+)
    @@ -258,7 +258,21 @@
       <?php ?>
       <?php if ($review_status) { ?>
       <div id="tab-review" class="tab-content">
    -    <div id="review"></div>
    +    <div id="review">
    +          <?php if ($reviews_array) { ?>
    +          <?php foreach ($reviews_array as $review) { ?>
    +              <div class="content"><span><?php echo $review['author']; ?>
    +                  | <?php echo $review['date_added']; ?></span>
    +                  <img src="catalog/view/theme/<?php echo $this->config->get('config_template'); ?>/image/stars-<?php echo $review['rating'] . '.png'?>"
    +                       alt="<?php echo $review['reviews']; ?>"/>
    +                  <br/>
    +                  <?php echo $review['text']; ?></div>
    +              <?php ?>
    +          <div class="pagination"><?php echo $review_pagination?></div>
    +          <?php } else { ?>
    +          <div class="content"><?php echo $text_no_reviews?></div>
    +          <?php ?>
    +      </div>
         <h2 id="review-title"><?php echo $text_write?></h2>
         <b><?php echo $entry_name?></b><br />
         <input type="text" name="name" value="" />
    @@ -396,18 +410,7 @@
     <?php ?>
     <?php ?>
     <script type="text/javascript"><!--
    -$('#review .pagination a').live('click', function() {
    -    $('#review').slideUp('slow');
    -       
    +
    -    $('#review').load(this.href);
    -   
    -    $('#review').slideDown('slow');
    -   
    -    return false;
    -});           
    -
    -$('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id?>');
    -
     $('#button-review').bind('click', function() {
         $.ajax({
             type: 'POST',
    Index: catalog/controller/product/product.php
    ===================================================================
    --- catalog/controller/product/product.php    (revision 7:c5814954b27a)
    +++ catalog/controller/product/product.php    (revision 7+:c5814954b27a+)
    @@ -355,7 +355,41 @@
                 }
                
                 $this->model_catalog_product->updateViewed($this->request->get['product_id']);
    -           
    +
    +            $this->load->model('catalog/review');
    +
    +            $this->data['text_no_reviews'] = $this->language->get('text_no_reviews');
    +
    +            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($product_id);
    +
    +            $results = $this->model_catalog_review->getReviewsByProductId($product_id, ($page - 1) * 5, 5);
    +
    +            foreach ($results as $result) {
    +                $this->data['reviews_array'][] = array(
    +                    'author' => $result['author'],
    +                    'text' => strip_tags($result['text']),
    +                    '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', $url . '&product_id=' . $product_id . '&page={page}');
    +            $this->data['review_pagination'] = $pagination->render();
    +
                 if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) {
                     $this->template = $this->config->get('config_template') . '/template/product/product.tpl';
                 } else {
     
  3. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    Где-то незакрытый тег или наоборот лишний. Надо все правки делать в нормальном редакторе, который подсвечивает парные теги, например, SublimeText.

    Ничего мы не видим - там режим обслуживания.
     
  4. MGT1

    MGT1

    Регистрация:
    5 янв 2013
    Сообщения:
    617
    Симпатии:
    182
    Режим обслуживания исправил.

    Не подтягивает выноску.
     
    Последнее редактирование: 3 окт 2016
  5. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    Какую выноску? Я не вижу проблем с выводом отзывов.

    Кстати, в консоле есть ошибка из скрипта флекси-слайдера.
     
  6. MGT1

    MGT1

    Регистрация:
    5 янв 2013
    Сообщения:
    617
    Симпатии:
    182
    После переделывания:


    В норме:

     
  7. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    А, ну тут просто надо вернуть оригинальную вёрстку от шаблона.
     
  8. MGT1

    MGT1

    Регистрация:
    5 янв 2013
    Сообщения:
    617
    Симпатии:
    182
    Так я ее вроде нигде и не затрагивал. Отписал в личку.
     
  9. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.053
    Симпатии:
    779
    Ты от неё просто избавился. Посмотри внимательно на код, который ты добавил.
    Например, вот этот кусок:
    PHP:
    <div class="content"><span><?php echo $review['author']; ?>
    +                  | <?php echo $review['date_added']; ?></span>
    Видишь вертикальную черту - это тот разделитель, который теперь выводится между именем и датой вместо тире, которое было раньше.

    Посмотри, как выглядит вёрстка в шаблоне отзывов и приведи её в этом добавленном куске к тому же виду.
     
    MGT1 нравится это.