Перейти к содержанию

Рекомендуемые сообщения

Здравствуйте уважаемые форумчане!

Прошу вашей помощи.

Делаю себе интернет магазин на opencart 2.3.0.2. Возникла необходимость переместить описание категорий под товары, чтобы пользователь сначала видел товары. На просторах интернета нашел советы как это сделать, нужно поковыряться в коде файла category.tpl. В общем что-то неполучалось, переносил блоки и правил код, все бестолку. И тут увидел на одном из форумов по опенкарту, что нужно подчистить логи и модификаторы, тогда изменения вступят в силу. Что я успешно сделал. И у меня обвалился сайт, выдает 500 ошибку.

Залез в логи ошибок хостинга, увидел, что есть синтаксические ошибки в header.tpl и category.tpl. Разобрался с header.tpl сайт заработал, но меню и категории не работают. Ошибка 500.

Залез в лог ошибка:

PHP Parse error:  syntax error, unexpected end of file in remgidromaster.com.ua/public_html/catalog/view/theme/fastor/template/product/category.tpl on line 262\n', referer: http://remgidromaster.com.ua/

Уже второй день мучаю файл category.tpl не могу понять, что за ошибка. В PHP не разбираюсь. Помогите разобраться что не так.

Пробывал в различных валидаторах, вставлять по блокам, ошибка появляется, когда начиная с конца кода доходишь до этого блока.

    <!-- Product -->
      <div>
          <div class="row">
              <div class="image col-sm-3">
                  <?php if($product['special'] && $theme_options->get( 'display_text_sale' ) != '0') { ?>
                      <?php $text_sale = 'Sale';
                      if($theme_options->get( 'sale_text', $config->get( 'config_language_id' ) ) != '') {
                          $text_sale = $theme_options->get( 'sale_text', $config->get( 'config_language_id' ) );
                      } ?>
                      <?php if($theme_options->get( 'type_sale' ) == '1') { ?>
                      <?php $product_detail = $theme_options->getDataProduct( $product['product_id'] );
                      $roznica_ceny = $product_detail['price']-$product_detail['special'];
                      $procent = ($roznica_ceny*100)/$product_detail['price']; ?>
                      <div class="sale">-<?php echo round($procent); ?>%</div>
                      <?php } else { ?>
                      <div class="sale"><?php echo $text_sale; ?></div>
                      <?php } ?>
                  <?php if($theme_options->get( 'display_text_new' ) != '0' && $theme_options->isLatestProduct( $product['product_id'] )) { ?>                     

 

category.tpl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

За описание отвечает <?php echo description; ?>
В вашем случаем
    <?php if ($description) { ?>
    <?php echo $description; ?>
    <?php } ?>
Опускайте за   <?php if ($products) { ?><?php } ?>

Ошибка 500 из-за не закрытой } где-то удалили <?php } ?>

Изменено пользователем buslikdrev

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще раз спасибо. Все исправил. Все заработало. Только вот описание категорий не переместилось под товары.

 

Сделал как говорили:

 

 <?php if ($products) { ?>
                      <?php } ?>
                            <?php if ($description) { ?>
    <?php echo $description; ?>
    <?php } ?>

 

Что не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам нужен файл

catalog/view/theme/fastor/template/product/category.tpl

Возможно, вы по невнимательности правите в папке default

И еще. Обновите модификаторы

 

Изменено пользователем jaffagold

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меняю как раз там. Но мне теперь боязно обновлять модификаторы, Вчера обновил и слетел сайт. Сбились коды php в header.tpl и category.tpl.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрите, логика такая.

Есть исходные файлы.

Есть командные файлы-модификаторы, которые вносят изменения в копии исходных файлов и сохраняют их в специальной папке.

Система загружает для работы файлы именно из этой специальной папки.

Пока вы не обновите модификаторы, о ваших изменениях система ничего не знает.

P.S.

делайте резервные копии файлов, которые меняете.

Обновляйте модификаторы.

Обновляйте страницу сайт (Ctrl+F5)

не пошло?-Возвращайте файлы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Сейчас бэкап файлов сделаю и попробую.

Еще вопрос. В категории внизу высвечивает вот это: Notice: Undefined variable: category in /home/remgidobk0/domains/remgidromaster.com.ua/public_html/catalog/view/theme/fastor/template/product/category.tpl on line 60 .

 

На строке 60 у меня ничего нет. Я так понимаю что он найти что-то не может. Только вот что?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще вот эту ошибку выдает.

http://remgidromaster.com.ua/gidronasosy-gidromotory-aksialno-porshnevye

Notice: Undefined variable: category in /home/remgidobk0/domains/remgidromaster.com.ua/public_html/system/storage/modification/catalog/view/theme/fastor/template/product/category.tpl on line 46

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал как писали выше. сайт не слетел. Но изменений тоже нет. описание как было вверху так и осталось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот содержание моего category.tpl Также сам файл прикрепил к сообщению.

<?php echo $header;
if(isset($mfilter_json)) {
    if(!empty($mfilter_json)) {
        echo '<div id="mfilter-json" style="display:none">' . base64_encode( $mfilter_json ) . '</div>';
    }
}

$theme_options = $registry->get('theme_options');
$config = $registry->get('config');
$background_status = false;
include('catalog/view/theme/'.$config->get($config->get('config_theme') . '_directory').'/template/new_elements/wrapper_top.tpl'); ?>
<div id="mfilter-content-container">
 
  <?php if ($thumb || $description) { ?>
<div class="category-info clearfix">
    <?php if ($thumb) { ?>
    <div class="image"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" /></div>
    <?php } ?>
    <?php if ($description) { ?>
    <?php echo $description; ?>
    <?php } ?>

  <?php if ($categories && $theme_options->get('refine_search_style') != '2') { ?>
  <div class="refine_search_overflow text-center"><h2 class="refine_search"><?php echo $text_refine; ?></h2></div>
  <div class="category-list<?php if ($theme_options->get('refine_search_style') == '1') { echo ' category-list-text-only'; } ?>">
      <div class="row">
        <?php
        $class = 3;
        $row = 4;
        
        if($theme_options->get( 'refine_search_number' ) == 2) { $class = 62; }
        if($theme_options->get( 'refine_search_number' ) == 5) { $class = 25; }
        if($theme_options->get( 'refine_search_number' ) == 3) { $class = 4; }
        if($theme_options->get( 'refine_search_number' ) == 6) { $class = 2; }
        
        if($theme_options->get( 'refine_search_number' ) > 1) { $row = $theme_options->get( 'refine_search_number' ); }
        ?>
      <?php $row_fluid = 0; foreach ($theme_options->refineSearch() as $category) { $row_fluid++; ?>
          <?php
          if ($theme_options->get('refine_search_style') != '1') {
              $width = 250;
              $height = 250;
              if($theme_options->get( 'refine_image_width' ) > 20) $width = $theme_options->get( 'refine_image_width' );
              if($theme_options->get( 'refine_image_height' ) > 20) $height = $theme_options->get( 'refine_image_height' );
              $model_tool_image = $registry->get('model_tool_image');
              if($category['thumb'] != '') {
                  $image = $model_tool_image->resize($category['thumb'], $width, $height);
              } else {
                  $image = $model_tool_image->resize('no_image.jpg', $width, $height);
              }
          }
          ?>
          <?php $r=$row_fluid-floor($row_fluid/$row)*$row; if($row_fluid>$row && $r == 1) { echo '</div><div class="row">'; } ?>
          <div class="col-sm-<?php echo $class; ?> col-xs-6">
              <?php if ($theme_options->get('refine_search_style') != '1') { ?>
              <a href="<?php echo $category['href']; ?>"><img src="<?php echo $image; ?>" alt="<?php echo $category['name']; ?>" /></a>
              <?php } ?>
              <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
          </div>

    </div>
  </div>

  <?php if ($products) { ?>
  <!-- Filter -->
  <div class="product-filter clearfix">
      <div class="options">
          
          
          <div class="button-group display" data-toggle="buttons-radio">
              <button id="grid" <?php if($theme_options->get('default_list_grid') == '1') { echo 'class="active"'; } ?> rel="tooltip" title="Grid" onclick="display('grid');"><i class="fa fa-th-large"></i></button>
              <button id="list" <?php if($theme_options->get('default_list_grid') != '1') { echo 'class="active"'; } ?> rel="tooltip" title="List" onclick="display('list');"><i class="fa fa-th-list"></i></button>
          </div>
      </div>
      
      <div class="list-options">
          <div class="sort">
              <select onchange="location = this.value;">
                <?php foreach ($sorts as $sorts) { ?>
                <?php if ($sorts['value'] == $sort . '-' . $order) { ?>
                <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option>
                <?php } else { ?>
                <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option>
                <?php } ?>
                <?php } ?>
              </select>
          </div>
          
          <div class="limit">
              <select onchange="location = this.value;">
                <?php foreach ($limits as $limits) { ?>
                <?php if ($limits['value'] == $limit) { ?>
                <option value="<?php echo $limits['href']; ?>" selected="selected"><?php echo $limits['text']; ?></option>
                <?php } else { ?>
                <option value="<?php echo $limits['href']; ?>"><?php echo $limits['text']; ?></option>
                <?php } ?>
                <?php } ?>
              </select>
          </div>
      </div>
  </div>
 
  <!-- Products list -->
  <div class="product-list"<?php if(!($theme_options->get('default_list_grid') == '1')) { echo ' class="active"'; } ?>>
      <?php foreach ($products as $product) { ?>
      <!-- Product -->
      <div>
          <div class="row">
              <div class="image col-sm-3">
                  <?php if($product['special'] && $theme_options->get( 'display_text_sale' ) != '0') { ?>
                <?php } ?>
                      <?php $text_sale = 'Sale';
                      if($theme_options->get( 'sale_text', $config->get( 'config_language_id' ) ) != '') {
                          $text_sale = $theme_options->get( 'sale_text', $config->get( 'config_language_id' ) );
                      } ?>
                      <?php if($theme_options->get( 'type_sale' ) == '1') { ?>
                      <?php $product_detail = $theme_options->getDataProduct( $product['product_id'] );
                      $roznica_ceny = $product_detail['price']-$product_detail['special'];
                      $procent = ($roznica_ceny*100)/$product_detail['price']; ?>
                      <div class="sale">-<?php echo round($procent); ?>%</div>
                      <?php } else { ?>
                      <div class="sale"><?php echo $text_sale; ?></div>
                      <?php } ?>
                  <?php if($theme_options->get( 'display_text_new' ) != '0' && $theme_options->isLatestProduct( $product['product_id'] )) { ?>
                       <div class="new"><?php if($theme_options->get( 'new_text', $config->get( 'config_language_id' ) ) != '') { echo $theme_options->get( 'new_text', $config->get( 'config_language_id' ) ); } else { echo 'New'; } ?></div>
                  <?php } ?>
                  
                  <?php if($product['thumb']) { ?>
                      <?php if($theme_options->get( 'lazy_loading_images' ) != '0') { ?>
                      <a href="<?php echo $product['href']; ?>"><img src="image/catalog/blank.gif" data-echo="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a>
                      <?php } else { ?>
                      <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a>
                      <?php } ?>
                  <?php } else { ?>
                  <a href="<?php echo $product['href']; ?>"><img src="image/no_image.jpg" alt="<?php echo $product['name']; ?>" /></a>
                  <?php } ?>
                  
                  <?php if($theme_options->get( 'display_specials_countdown' ) == '1' && $product['special']) { $countdown = rand(0, 5000)*rand(0, 5000);
                            $product_detail = $theme_options->getDataProduct( $product['product_id'] );
                            $date_end = $product_detail['date_end'];
                            if($date_end != '0000-00-00' && $date_end) { ?>
                               <script>
                               $(function () {
                                   var austDay = new Date();
                                   austDay = new Date(<?php echo date("Y", strtotime($date_end)); ?>, <?php echo date("m", strtotime($date_end)); ?> - 1, <?php echo date("d", strtotime($date_end)); ?>);
                                   $('#countdown<?php echo $countdown; ?>').countdown({until: austDay});
                               });
                               </script>
                               <div id="countdown<?php echo $countdown; ?>" class="clearfix"></div>
                           <?php } ?>
                  <?php } ?>
              </div>
              
              <div class="name-actions col-sm-4">
                   <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
                   <?php if($theme_options->get( 'product_list_type' ) == '4') { ?>
                   <?php $product_detail = $theme_options->getDataProduct( $product['product_id'] ); ?>
                   <div class="brand"><?php echo $product_detail['manufacturer']; ?></div>
                   <?php } ?>
                   
                   <?php if($product['price']) { ?>
                  <div class="price">
                      <?php if (!$product['special']) { ?>
                      <?php echo $product['price']; ?>
                      <?php } else { ?>
                      <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
                      <?php } ?>
                  </div>
                  <?php } ?>
                  
                  <ul>
                       <?php if($theme_options->get( 'display_add_to_cart' ) != '0') { ?>
                            <?php $enquiry = false; if($config->get( 'product_blocks_module' ) != '') { $enquiry = $theme_options->productIsEnquiry($product['product_id']); }
                            if(is_array($enquiry)) { ?>
                            <li><a href="javascript:openPopup('<?php echo $enquiry['popup_module']; ?>', '<?php echo $product['product_id']; ?>')" data-toggle="tooltip" data-original-title="<?php echo $enquiry['block_name']; ?>"><i class="fa fa-question"></i></a></li>
                            <?php } else { ?>
                            <li><a onclick="cart.add('<?php echo $product['product_id']; ?>');" data-toggle="tooltip" data-original-title="<?php echo $button_cart; ?>"><i class="fa fa-shopping-cart"></i></a></li>
                            <?php } ?>
                       <?php } ?>
                       
                       <?php if($theme_options->get( 'quick_view' ) == 1) { ?>
                       <li class="quickview"><a href="index.php?route=product/quickview&amp;product_id=<?php echo $product['product_id']; ?>" data-toggle="tooltip" data-original-title="<?php if($theme_options->get( 'quickview_text', $config->get( 'config_language_id' ) ) != '') { echo html_entity_decode($theme_options->get( 'quickview_text', $config->get( 'config_language_id' ) )); } else { echo 'Quickview'; } ?>"><i class="fa fa-search"></i></a></li>
                       <?php } ?>
                  
                      
                  </ul>
              </div>
              
              <div class="desc col-sm-5">
                  <div class="description"><?php echo $product['description']; ?></div>
              </div>
          </div>
      </div>
    
  </div>
 
  <!-- Products grid -->
  <?php
  $class = 3;
  $row = 4;
 
  if($theme_options->get( 'product_per_pow2' ) == 6) { $class = 2; }
  if($theme_options->get( 'product_per_pow2' ) == 5) { $class = 25; }
  if($theme_options->get( 'product_per_pow2' ) == 3) { $class = 4; }
 
  if($theme_options->get( 'product_per_pow2' ) > 1) { $row = $theme_options->get( 'product_per_pow2' ); }
  ?>
  <div class="product-grid"<?php if($theme_options->get('default_list_grid') == '1') { echo ' class="active"'; } ?>>
      <div class="row">
          <?php $row_fluid = 0; foreach ($products as $product) { $row_fluid++; ?>
              <?php $r=$row_fluid-floor($row_fluid/$row)*$row; if($row_fluid>$row && $r == 1) { echo '</div><div class="row">'; } ?>
              <div class="col-sm-<?php echo $class; ?> col-xs-6">
                  <?php include('catalog/view/theme/'.$config->get($config->get('config_theme') . '_directory').'/template/new_elements/product.tpl'); ?>
              </div>
        <?php } ?>
    </div>
  </div>
 
  <div class="row pagination-results">
    <div class="col-sm-6 text-left"><?php echo $pagination; ?></div>
    <div class="col-sm-6 text-right"><?php echo $results; ?></div>
  </div>

  <?php if (!$categories && !$products) { ?>
  <p style="padding-top: 30px"><?php echo $text_empty; ?></p>
  <div class="buttons">
    <div class="pull-right"><a href="<?php echo $continue; ?>" class="btn btn-primary"><?php echo $button_continue; ?></a></div>
  </div>
  <?php } ?>

 
<script type="text/javascript"><!--
function display(view) {

    if (view == 'list') {
        $('.product-grid').removeClass("active");
        $('.product-list').addClass("active");

        $('.display').html('<button id="grid" rel="tooltip" title="Grid" onclick="display(\'grid\');"><i class="fa fa-th-large"></i></button> <button class="active" id="list" rel="tooltip" title="List" onclick="display(\'list\');"><i class="fa fa-th-list"></i></button>');
        
        localStorage.setItem('display', 'list');
    } else {
    
        $('.product-grid').addClass("active");
        $('.product-list').removeClass("active");
                    
        $('.display').html('<button class="active" id="grid" rel="tooltip" title="Grid" onclick="display(\'grid\');"><i class="fa fa-th-large"></i></button> <button id="list" rel="tooltip" title="List" onclick="display(\'list\');"><i class="fa fa-th-list"></i></button>');
        
        localStorage.setItem('display', 'grid');
    }
}

if (localStorage.getItem('display') == 'list') {
    display('list');
} else if (localStorage.getItem('display') == 'grid') {
    display('grid');
} else {
    display('<?php if($theme_options->get('default_list_grid') == '1') { echo 'grid'; } else { echo 'list'; } ?>');
}
//--></script>
</div>
<?php include('catalog/view/theme/'.$config->get($config->get('config_theme') . '_directory').'/template/new_elements/wrapper_bottom.tpl'); ?>
<?php echo $footer; ?>

category.tpl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Focster
      Добрый день.
      Установил с нуля Ocstore (на opencart то же самое) 2.3.0.2, установил на него шаблон Butik.
      После чего в при просмотре карточки любого товара выпрыгивает ошибка..
       
      Warning: imagecreatetruecolor(): Invalid image dimensions in /home/admin/web/имя сайта/public_html/system/library/image.php on line 105Warning: imagecolorallocate() expects parameter 1 to be resource, boolean given in /home/admin/web/имя сайта/public_html/system/library/image.php on line 113Warning: imagefilledrectangle() expects parameter 1 to be resource, boolean given in /home/admin/web/имя сайта/public_html/system/library/image.php on line 116Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in /home/admin/web/имя сайта/public_html/system/library/image.php on line 118  
      С чем это может быть связано и как это можно исправить?
    • От rideaer
      Подскажите пожалуйста модуль для установки цены опции в процентах (Например +2% к стоимости товара)
    • От DjVreditel
      На странице: /index.php?route=account/voucher
       
      После ввода всех данных и нажатия кнопки продолжить появляется просто пустая страница. При этом дальше сайт не работает, при переходе на любую другую страницу она оказывается белой. Если удалить с печенок : "PHPSESSID" , то всё работает. Но при повторном заказе сертификата такая же проблема. 
       
      Вот ссылка: https://add-power.com.ua/index.php?route=account/voucher
       
      Подключайтесь господа, ибо я уже : "Ну в этой ситуации мы просто наше э... это самое мы уже... Здесь наши полномочия всё... Окончены"
       
      Заранее спасибо за ваши ответы.
       
    • От joramajora161
      Всем привет.
       
      Есть модуль эквайринга Авангард банка для 1.5 версии движка, нужны доработки/переработки для тго, чтобы он корректно работал на 2.3.0.2
      Модуль для 1.5 в аттаче. (пароль 1234)
      Цены и сроки в лс, пожалуйста.
      Avangard opencart 2.1.rar
    • От rideaer
      Подскажите пожалуйста модуль менеджера изображений для opencart 2.3.0.2 который запоминает папку в которой до этого бралось изображение.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.