[Помогите] Вкладки

Тема в разделе "OpenCart", создана пользователем Savok32, 17 сен 2013.

  1. Savok32

    Savok32

    Регистрация:
    18 дек 2012
    Сообщения:
    333
    Симпатии:
    51
    Есть две категории товаров,
    1. Машины
    2. Запчасти
    И в этих категориях, в карточке товара есть вкладка, похожий товар.

    Как сделать так, чтобы в карточке товара (категории машины) вкладка называлась "Автозапчасти"
    а в карточке товара (категории запчасти) вкладка называлась "Подходит к моделям"
    тобиш одна и таже вкладка, только в разных категориях разные название вкладки.
     
  2. oPPPs

    oPPPs

    Регистрация:
    8 сен 2012
    Сообщения:
    266
    Симпатии:
    245
    Прикрути дополнительные вкладки.
    Модули для этого имеются - пошерсти темы с модами
     
  3. mmaaxx9

    mmaaxx9

    Регистрация:
    11 сен 2013
    Сообщения:
    24
    Симпатии:
    4
    Для начала нужно в языковые файлы добавить значения: Автозапчасти, Подходит к моделям. Затем в файле product.php или product.tpl проверять в какой категории находится данный товар (можно через if else или switch) и выводить значения Ваши значения
     
    LDSP нравится это.
  4. Savok32

    Savok32

    Регистрация:
    18 дек 2012
    Сообщения:
    333
    Симпатии:
    51
    попробывал так но что то не выходит.....

    что не так?

    < ?php if ($categorie['category_id']=='20')
    echo "<a href="#tab-related"><?php echo $tab_related1; ?> (<?php echo count($products); ?>)</a>";
    else {
    echo"<a href="#tab-related"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</a>";
    }
    ?>
     
    Последнее редактирование: 19 сен 2013
  5. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Откуда вы берёте массив $categorie? По умолчанию, такого на странице товара нет.
     
  6. Savok32

    Savok32

    Регистрация:
    18 дек 2012
    Сообщения:
    333
    Симпатии:
    51
    так как тогда прописать переменную которая отвечает за id категории
     
  7. mmaaxx9

    mmaaxx9

    Регистрация:
    11 сен 2013
    Сообщения:
    24
    Симпатии:
    4
    в файле catalog\controller\product\product.php найдите строку
    PHP:
    $category_info $this->model_catalog_category->getCategory($path_id);
    под нее вставьте
    PHP:
    if ($category_info['category_id']=='20'){
                        
    $this->data['mycategoryname'] = 'переменная1 из языкового файла';
                    }
                    else {
                        
    $this->data['mycategoryname'] = 'переменная2 из языкового файла';
                    }
    а в файле product.tpl в нужном вам месте вставьте
    PHP:
    <?php echo $mycategoryname?>
     
    Savok32 нравится это.
  8. Savok32

    Savok32

    Регистрация:
    18 дек 2012
    Сообщения:
    333
    Симпатии:
    51
    ввел в контролер



    а в тпл

    ошибку пишет Notice: Undefined variable: mycategoryname in
    Z:\home\test1.ru\www\catalog\view\theme\default\template\product\product.tpl on line 238
     
  9. mmaaxx9

    mmaaxx9

    Регистрация:
    11 сен 2013
    Сообщения:
    24
    Симпатии:
    4
    Savok32, у Вас ссылки на продукт такого route=product/product&path=59&product_id=69 вида? если у вас ЧПУ то данный метод работать не будет
     
    Savok32 нравится это.
  10. Savok32

    Savok32

    Регистрация:
    18 дек 2012
    Сообщения:
    333
    Симпатии:
    51
    такова вида, http://test1.ru/index.php?route=product/product&product_id=43 но надо чтобы с чпу работало
    --- Добавлено, 19 сен 2013 ---
    так причем ссылки на продукты, если мне нужно знать только id категории и все

    и уже по id категории выводить ту или иную вкладку
     
  11. mmaaxx9

    mmaaxx9

    Регистрация:
    11 сен 2013
    Сообщения:
    24
    Симпатии:
    4
    Пока удалите мои изменения
    --- Добавлено, 19 сен 2013 ---
    в файле catalog\controller\product\product.php найдите строку
    PHP:
    $this->load->model('catalog/product');
    под нее вставьте
    PHP:
    $product_categories $this->model_catalog_product->getCategories($product_id);

            if (
    $product_categories[0]['category_id']=='20'){
                        
    $this->data['mycategoryname'] = 'переменная1 из языкового файла';
                    }
                    else {
                        
    $this->data['mycategoryname'] = 'переменная2 из языкового файла';
                    }
    а в файле product.tpl в нужном вам месте вставьте
    PHP:
    <?php echo $mycategoryname?>
    --- Добавлено, 19 сен 2013 ---
    В зависимости от того какой url на продукт по разному можно получить id категории
     
    Последнее редактирование: 19 сен 2013
    Savok32 нравится это.
  12. Savok32

    Savok32

    Регистрация:
    18 дек 2012
    Сообщения:
    333
    Симпатии:
    51
    и так что вышло...

    в контролер прописали
    Код:
      if ($product_categories[0]['category_id']=='20'){
                        $this->data['mycategoryname'] = '$tab_related';
                    }
                    else {
                        $this->data['mycategoryname'] = '$tab_related1';
                    }
    в тпл
    Код:
    <a href="#tab-related"> <?php echo $mycategoryname; ?> (<?php echo count($products); ?>)</a>  

    все норм только название остается $tab_related1 или $tab_related


    Код:
      if ($product_categories[0]['category_id']=='20'){
                        $this->data['mycategoryname'] = 'Вкладка 1';
                    }
                    else {
                        $this->data['mycategoryname'] = 'Вкладка 2';
                    }
    то работает.... а чет не пойму вставляю переменные языковых файлов не работает
     
    Последнее редактирование: 19 сен 2013
  13. mmaaxx9

    mmaaxx9

    Регистрация:
    11 сен 2013
    Сообщения:
    24
    Симпатии:
    4
    вызов из языкового файла происходит так
    PHP:
    $this->language->get('mycategoryname');
    измените код в контроллере на
    PHP:
    if ($product_categories[0]['category_id']=='20'){
                        
    $this->data['mycategoryname'] = $this->language->get('tab_related');
                    }
                    else {
                        
    $this->data['mycategoryname'] = $this->language->get('tab_related1');
                    }
    в языковом файле добавьте след.
    PHP:
    $_['tab_related'] = 'бла бла';
    $_['tab_related1'] = 'бла1 бла1 ';
    --- Добавлено, 19 сен 2013 ---
    P.S. проверьте все на работоспособность на нескольких страницах товаров т.к. это самый натуральный КОСТЫЛЬ!
     
    Последнее редактирование: 19 сен 2013
  14. Savok32

    Savok32

    Регистрация:
    18 дек 2012
    Сообщения:
    333
    Симпатии:
    51
    да вроде работает, только вот пустые вкладки он тоже отображает!!!
    в тпл так прописываю
    Код:
        <a href="#tab-related"> <?php echo $mycategoryname; ?> (<?php echo count($products); ?>)</a>