Вывод опций в раздел категорий

Тема в разделе "Общие вопросы", создана пользователем Alexander_Gr, 24 дек 2015.

  1. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    Добрый день, требуется вынести options в раздел категории. Opencart 2.1.0.1

    сейчас вот такая вот ситуация:
    в /catalog/view/theme/default/template/product/category.tpl
    Код:
    <?php if ($options) { ?>
              <?php foreach ($options as $option) { ?>
            
                 <?php echo $option['name']; ?>
                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                    <?php echo $option_value['name']; ?>
                                  <?php } ?>
                  <?php } ?>
                <?php } ?>
    
    ошибка на сайте следующая :
    Код:
    Notice: Undefined variable: options in /...../catalog/view/theme/default/template/product/category.tpl on line 155
    
    Подскажите как правильно в контроллере прописать эту переменную. Заранее Очень благодарен!
     
  2. Ален

    Ален Эксперт

    Сообщения:
    2.055
    Симпатии:
    634
  3. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    мне не нужно вариант покупки .. просто чтобы выводились варианты... текстом
     
  4. Vlad

    Vlad Эксперт

    Сообщения:
    3.899
    Симпатии:
    939
    С каких пор, опции это у нас атрибуты ))))
     
  5. Slait

    Slait Эксперт

    Сообщения:
    503
    Симпатии:
    452
    Ой :)))) тупанул. Разницы особой все равно нет.
    Выводим просто код опций и в контроллер добавляем опции вместо атрибутов, код аналогичный будет.
     
  6. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    ААААААААА)))) я же говорю что вывел атрибуты, вывел скидки, вывел модель.. а вот опции не получается... ну не разбираюсь я в PHP ))) видимо с азов придётся)))... Если кто спасёт ... )) прям 300р. от себя в это кризисное время донат )
     
  7. Vlad

    Vlad Эксперт

    Сообщения:
    3.899
    Симпатии:
    939
    в файле catalog\controller\product\category.php

    перед
    PHP:
                    $data['products'][] = array(
    вставим
    PHP:
                    $options= array();

                    foreach (
    $this->model_catalog_product->getProductOptions($result['product_id']) as $option) {
                        
    $product_option_value_data = array();

                        foreach (
    $option['product_option_value'] as $option_value) {
                            if (!
    $option_value['subtract'] || ($option_value['quantity'] > 0)) {
                                if (((
    $this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) {
                                    
    $oprice $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' false));
                                } else {
                                    
    $oprice false;
                                }

                                
    $product_option_value_data[] = array(
                                    
    'product_option_value_id' => $option_value['product_option_value_id'],
                                    
    'option_value_id'         => $option_value['option_value_id'],
                                    
    'name'                    => $option_value['name'],
                                    
    'image'                   => $this->model_tool_image->resize($option_value['image'], 5050),
                                    
    'price'                   => $oprice,
                                    
    'price_prefix'            => $option_value['price_prefix']
                                );
                            }
                        }

                        
    $options[] = array(
                            
    'product_option_id'    => $option['product_option_id'],
                            
    'product_option_value' => $product_option_value_data,
                            
    'option_id'            => $option['option_id'],
                            
    'name'                 => $option['name'],
                            
    'type'                 => $option['type'],
                            
    'value'                => $option['value'],
                            
    'required'             => $option['required']
                        );
                    }

    далее ниже, т.е после найденного

    вставим
    PHP:
    'options'      => $options,

    Далее........
     
    Последнее редактирование: 25 дек 2015
    Smooch нравится это.
  8. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    Чёт не выходит, может шаблон неправильно вставил, вот выдаёт что в строке вывода :
    Код:
    Notice: Undefined variable: options /..../catalog/view/theme/default/template/product/category.tpl on line 155
    и сверху видимо controller уже :
    Код:
    Notice: Undefined variable: product_info in /..../catalog/controller/product/category.php on line 243Notice: Undefined variable: product_info in/..../catalog/controller/product/category.php on line 243Notice: Undefined variable: product_info in /..../catalog/controller/product/category.php on line 243
     
  9. Vlad

    Vlad Эксперт

    Сообщения:
    3.899
    Симпатии:
    939
    Далее ... (предыдущий пост исправил..)

    Далее в шаблоне ... \catalog\view\theme\default\template\product\category.tpl

    например перед
    Код:
    <div class="button-group">
                    <button type="button" onclick="cart.add
    вставить
    Код:
    <?php if ($product['options']) { ?>
                <hr>
                <?php foreach ($product['options'] as $option) { ?>
                <?php if ($option['type'] == 'select') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
                  <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control">
                    <option value=""><?php echo $text_select; ?></option>
                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                    <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                    <?php if ($option_value['price']) { ?>
                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                    <?php } ?>
                    </option>
                    <?php } ?>
                  </select>
                </div>
                <?php } ?>
                <?php if ($option['type'] == 'radio') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label"><?php echo $option['name']; ?></label>
                  <div id="input-option<?php echo $option['product_option_id']; ?>">
                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                    <div class="radio">
                      <label>
                        <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" />
                        <?php echo $option_value['name']; ?>
                        <?php if ($option_value['price']) { ?>
                        (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                        <?php } ?>
                      </label>
                    </div>
                    <?php } ?>
                  </div>
                </div>
                <?php } ?>
                <?php if ($option['type'] == 'checkbox') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label"><?php echo $option['name']; ?></label>
                  <div id="input-option<?php echo $option['product_option_id']; ?>">
                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                    <div class="checkbox">
                      <label>
                        <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" />
                        <?php echo $option_value['name']; ?>
                        <?php if ($option_value['price']) { ?>
                        (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                        <?php } ?>
                      </label>
                    </div>
                    <?php } ?>
                  </div>
                </div>
                <?php } ?>
                <?php if ($option['type'] == 'image') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label"><?php echo $option['name']; ?></label>
                  <div id="input-option<?php echo $option['product_option_id']; ?>">
                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                    <div class="radio">
                      <label>
                        <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" />
                        <img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> <?php echo $option_value['name']; ?>
                        <?php if ($option_value['price']) { ?>
                        (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                        <?php } ?>
                      </label>
                    </div>
                    <?php } ?>
                  </div>
                </div>
                <?php } ?>
                <?php if ($option['type'] == 'text') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
                  <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" placeholder="<?php echo $option['name']; ?>" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                </div>
                <?php } ?>
                <?php if ($option['type'] == 'textarea') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
                  <textarea name="option[<?php echo $option['product_option_id']; ?>]" rows="5" placeholder="<?php echo $option['name']; ?>" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"><?php echo $option['value']; ?></textarea>
                </div>
                <?php } ?>
                <?php if ($option['type'] == 'file') { ?>
                <form enctype="multipart/form-data" id="form-upload"><input type="file" name="file" /></form>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label"><?php echo $option['name']; ?></label>
                  <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-default btn-block"><i class="fa fa-upload"></i> <?php echo $button_upload; ?></button>
                  <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" id="input-option<?php echo $option['product_option_id']; ?>" />
                </div>
                <?php } ?>
                <?php if ($option['type'] == 'date') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
                  <div class="input-group date">
                    <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="YYYY-MM-DD" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                    <span class="input-group-btn">
                    <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button>
                    </span></div>
                </div>
                <?php } ?>
                <?php if ($option['type'] == 'datetime') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
                  <div class="input-group datetime">
                    <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="YYYY-MM-DD HH:mm" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                    <span class="input-group-btn">
                    <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button>
                    </span></div>
                </div>
                <?php } ?>
                <?php if ($option['type'] == 'time') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
                  <div class="input-group time">
                    <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="HH:mm" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                    <span class="input-group-btn">
                    <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button>
                    </span></div>
                </div>
                <?php } ?>
                <?php } ?>
                <?php } ?>              
    Буду ошибки с языковыми переменными, добавить нужное в catalog\language\russian\product\category.php
    Донатить можете на счет форума ))
     
  10. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1

    Код:
     Notice: Undefined variable: product_info in /home/wellzweb/russianprint.ru/docs/catalog/controller/product/category.php on line 243Notice: Undefined variable: product_info in/home/wellzweb/russianprint.ru/docs/catalog/controller/product/category.php on line 243Notice: Undefined variable: product_info in /home/wellzweb/russianprint.ru/docs/catalog/controller/product/category.php on line 243
    Слушай, вижу выводится вот скрин Screenshot_2.jpg
    Теперь проблема с кодировкой..., но думаю это изза ошибок что я написал выше.. они в самом верху экрана появляются
     
  11. Vlad

    Vlad Эксперт

    Сообщения:
    3.899
    Симпатии:
    939
    я же написал что исправил сообщение ). В контроллере нужно обновить код, чтобы не было ошибки с product_info
     
  12. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    Потряяяясно )))
     
  13. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    можно счёт пожалуйста ..
     
  14. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    Слушай... смотри какая история получается, даже стесняюсь спросить, сейчас вышло так, что в категориях в товарах появились опции также как в карточке товара, т.е. есть вариант выбрать опцию и товар в корзинку залетает с теми опциями что выбрал, но второй товар с другими опциями залетает без опций!! в подтверждение своих слов смотрите http://russianprint.ru/ ... Если учесть что требовалось вывести просто инфу с опциями ... т.е. сейчас конечно всё здорово, но не вырезать же просто опционность из .TPL ... жалко, функционал то полезный !
     
  15. Vlad

    Vlad Эксперт

    Сообщения:
    3.899
    Симпатии:
    939
    вырезать. Для большего будет модификатор платный. Всем иногда хочется кушать ))

    Все пожертвования по ссылке
    https://secure.onpay.ru/pay/shop_opencartrussia_ru?f=7
     
  16. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    Пожертвования отправить пока не успел, зато успел наблюдать вирус на сайте, это Вы так боретесь с неуспевшими?
     
  17. Vlad

    Vlad Эксперт

    Сообщения:
    3.899
    Симпатии:
    939
    где вирус?
     
  18. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    Извините,.. ) это я умудрился каким то образом на браузер прицепить за ночь... причём он только к одному сайту привязался и в админке и на главной ... это было очень забавно перелопатить весь сайт в поисках вредоносного кода )))
     
  19. Vlad

    Vlad Эксперт

    Сообщения:
    3.899
    Симпатии:
    939
    чаще качайте модули и темы с вареза (если таким промышляете) и не такое будет ))
     
  20. Alexander_Gr

    Alexander_Gr Новичок

    Сообщения:
    11
    Симпатии:
    1
    не промышляю ! и даже не помышляю... само откуда то както скачалось ... теперь окружился контрацептивами...) а то страшно !
     
    Vlad нравится это.