Помощь Помогите вставить опцию "размер"

ioh

Участник
Регистрация
24 Сен 2013
Сообщения
189
Реакции
4
Здравствуйте.
Помогите реализовать вывод наличия размеров в категориях, а не только в карточке товара. Желательно, чтобы при наведении мышки всплывали доступные размеры. (вывод размеров в карточке реализован модулем)
И еще вопрос: замучалась с убиранием "в закладки" там же в категориях. Убираю в шаблоне, в языковом и в контроллере - короче везде, где можно, ничего не получается.
Пациент здесь:
Скрытое содержимое доступно для зарегистрированных пользователей!

Скрытое содержимое доступно для зарегистрированных пользователей!
 
Размеры нужно со страницы товаров - /template/.../product/product.tpl вывести в /template/.../product/category.tpl, для этого нужно найти атрибуты опции в /controller/product/product.php и перенести в /controller/product/category.php
Дальше из файла /template/.../product/category.tpl удалить "wishlist" и "compare"
 
Последнее редактирование:
  • Нравится
Реакции: ioh
Размеры нужно со страницы товаров - /template/.../product/product.tpl вывести в /template/.../product/category.tpl, для этого нужно найти атрибуты в /controller/product/product.php и перенести в /controller/product/category.php
Дальше из файла /template/.../product/category.tpl удалить "wishlist" и "compare"
так вот не получается у меня удалить wishlist таким образом. На дефолтном шаблоне получалось. на этом нет
 
так вот не получается у меня удалить wishlist таким образом. На дефолтном шаблоне получалось. на этом нет
Может через vqmod подгружаются? Смотрели там? Должны же быть по пути /view/theme/.../template/product/category.tpl

Если там нету, то поиском по всем файлам: <div class="wishlist"> и <div class="compare">*

*
- Посмотрите в исходном коде, какие классы отвечают за вывод этих кнопок в Вашем шаблоне сайта, это и ищите.
 
  • Нравится
Реакции: ioh
все отлично, проблема решилась необычно, через скрипты, которые находятся в куске шаблона.
А вот вопрос с выводом наличия размеров в категории пока остается открытым.
Может кто подскажет какой мод для этого дела?
 
открываем файл

Код:
catalog/controller/product/category.php

вместо (~215 строчка)

PHP:
$this->data['products'][] = array(
'product_id'  => $result['product_id'],
'thumb'       => $image,
'name'        => $result['name'],
'model'       => $result['model'],
'description' => $descr_plaintext,
'price'       => $price,
'special'     => $special,
'tax'         => $tax,
'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
);

вставляем

PHP:
$product_options = array();
foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) {
if ($option['type'] == 'select' || $option['type'] == 'radio' || $option['type'] == 'checkbox') {
$option_value_data = array();

foreach ($option['option_value'] as $option_value) {
if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) {
$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'],
'price'                   => (float)$option_value['price'] ? $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : false,
'price_prefix'            => $option_value['price_prefix']
);
}
}

$product_options[] = array(
'product_option_id' => $option['product_option_id'],
'option_id'         => $option['option_id'],
'name'              => $option['name'],
'type'              => $option['type'],
'option_value'      => $option_value_data,
'required'          => $option['required']
);
} elseif ($option['type'] == 'text' || $option['type'] == 'textarea' || $option['type'] == 'file' || $option['type'] == 'date' || $option['type'] == 'datetime' || $option['type'] == 'time') {
$product_options[] = array(
'product_option_id' => $option['product_option_id'],
'option_id'         => $option['option_id'],
'name'              => $option['name'],
'type'              => $option['type'],
'option_value'      => $option['option_value'],
'required'          => $option['required']
);
}
}

$this->data['products'][] = array(
'product_id'  => $result['product_id'],
'thumb'       => $image,
'name'        => $result['name'],
'model'       => $result['model'],
'options'   => $product_options,
'description' => $descr_plaintext,
'price'       => $price,
'special'     => $special,
'tax'         => $tax,
'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
);
затем открываем
Код:
\catalog\view\theme\ТЕМА\template\product\category.tpl
и между циклом

PHP:
<?php foreach ($products as $product) { ?>
в нужном месте вставляем
PHP:
<?php if ($product['options']) { ?>
    <div class="options">
        <h2><?php echo $text_option; ?></h2>
        <br />
        <?php foreach ($product['options'] as $option) { ?>
        <?php if ($option['type'] == 'select') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <select name="option[<?php echo $option['product_option_id']; ?>]">
            <option value=""><?php echo $text_select; ?></option>
            <?php foreach ($option['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>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'radio') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?php foreach ($option['option_value'] as $option_value) { ?>
          <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
          <label for="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 } ?>
          </label>
          <br />
          <?php } ?>
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'checkbox') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?php foreach ($option['option_value'] as $option_value) { ?>
          <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
          <label for="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 } ?>
          </label>
          <br />
          <?php } ?>
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'image') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
            <table class="option-image">
              <?php foreach ($option['option_value'] as $option_value) { ?>
              <tr>
                <td style="width: 1px;"><input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></td>
                <td><label for="option-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'] : ''); ?>" /></label></td>
                <td><label for="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 } ?>
                  </label></td>
              </tr>
              <?php } ?>
            </table>
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'text') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'textarea') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea>
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'file') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <a id="button-option-<?php echo $option['product_option_id']; ?>" class="button"><span><?php echo $button_upload; ?></span></a>
          <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'date') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'datetime') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'time') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" />
        </div>
        <br />
        <?php } ?>
        <?php } ?>
    </div>
<?php } ?>

Это может отличаться от вашей версии опенкарта, но смысл похож.
Обсуждение и решение взято от сюда: Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
И в дополнение, в конце темы есть ссылка на модуль.
Скрытое содержимое доступно для зарегистрированных пользователей!

Думаю этот модуль есть здеся, на форуме, но не искал.

Увы, из-за ограничения на постинг в 11 тыс символов заставляют нарушать правила и делать кросспостинг
 
решение, указанное выше, в моем случае не сработало. Хотелось бы сделать вот по такому примеру:
Скрытое содержимое доступно для зарегистрированных пользователей!
. При наведении мышки можно выбрать размер. При этом не обязательно, чтобы сразу переключалось в корзину. Мне это скорее нужно для ознакомления покупателя с наличием размеров
 
А че не так? Надо также реализовать?
 
Да, хотелось бы также реализовать.
 
Назад
Сверху