Характеристики товара в табе (вкладке)

  • В этой теме 17 ответов, 4 участника, последнее обновление 29.02.2016 в 18:32 сделано DaNDaN.
Просмотр 15 сообщений - с 1 по 15 (из 18 всего)
  • Автор
    Сообщения
  • #82036

    denism300
    Участник
    • Сообщений: 191

    Не очень давно всеми (надеюсь) уважаемый Админ опубликовал статью о том, как сделать табы или, по-другому, вкладки в карточке товара.

    Все было хорошо, за исключением одного: Габариты/Вес товара не выводились во вкладку. Точнее, они совсем не выводились, за исключением “Количества товара в упаковке”, но обо всем по порядку.

    Я в комментариях статьи задал этот вопрос Админу, на что он мне ответил:

    По габаритам планирую статью, но пока не могу подсказать
    Если найдете решение, то, пожалуйста, поделитесь

    Сегодня я решил исправить данный недостаток. В общем, выкладываю свое решение данной проблемы.

    Итак, приступим:

    Небольшая ремарка номер 2:

    Quote:
    Все это выполнялось и работает на Joomla! 3.4.1 и VirtueMart 3.0.6.4

    Теперь непосредственно к делу:
    Как я уже говорил, изначально из вкладки Габариты/Вес выводилось только “Количества товара в упаковке”.

    1278c9360d65.png

    В VM-2 была такая же проблема, поэтому, для вывода всех полей из раздела “Габариты/Вес” у меня припасен кусок кода, который был найден на просторах интернета и доработан мной под мои нужды.

    Далее был не очень долгий процесс понимания отличия VM-3 от VM-2 и принципов его работы. Не буду утомлять посетителей форума всеми подробностями и выложу сразу готовое решение.
    1. В файле ваш_сайт\templates\ваш_шаблон\html\com_virtuemart\productdetails\default.php необходимо удалить следующий кусок кода:

    2. Далее, переходим в папку ваш_сайт\templates\ваш_шаблон\html\com_virtuemart\sublayouts и создаем там файл с названием productparams.php

    3. Копируем представленный ниже код в этот файл

    4. Теперь открываем файл ваш_сайт\language\ru-RU\ru-RU.com_virtuemart.ini и добавляем строчку
    COM_VIRTUEMART_PRODUCT_PARAM_TITLE="Характеристики товара"

    5. Далее, необходимо поправить код, который привел Админ в своей статье, чтобы поля “Габариты/Вес” выводились в нужном месте.

    В код

    Quote:
    Код контента вкладки

    Необходимо перед строкой:
    <?php echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'newtab')); ?>

    Вставить строку:
    <?php echo shopFunctionsF::renderVmSubLayout('productparams',array('product'=>$this->product,'position'=>'newtab')); ?>

    В итого мы получим вот такой результат:
    379d5bb60c5b.png

    Из приятного бонуса: числа в полях “Габариты/вес” округляются до двух цифр после запятой (если они не целочисленные).

    Вот так значения выглядят в админке, а как выглядят на сайте – видно на предыдущей картинке
    6a2c3151bd96.png

    Чтобы изменить количество цифр после запятой, необходимо в файле ваш_сайт\templates\ваш_шаблон\html\com_virtuemart\sublayouts\productparams.php найти все строки, содержащие
    round($product->название_переменной, 2)
    и заменить цифру два на любую другую.

    В принципе, теперь вывести раздел “Габариты/вес” можно в любом месте карточки товара, для этого достаточно вставить в нужное место файла ваш_сайт\templates\ваш_шаблон\html\com_virtuemart\productdetails\default.php следующий кусок кода:
    <?php echo shopFunctionsF::renderVmSubLayout('productparams',array('product'=>$this->product,'position'=>'newtab')); ?>

    На этом все, спасибо за внимание 🙂

    #86765

    denism300
    Участник
    • Сообщений: 191

    Осталось русифицировать единицы измерений значений раздела “Габариты/вес”, не вторгаясь в код самого VM, дабы не терять изменения при каждом обновлении. Поэтому, если кто подскажет решение – буду признателен.

    #86779
    admin
    admin
    Хранитель
    • Сообщений: 13828

    denism300, Спасибо за очень подробное объяснение!

    #86785

    denism300
    Участник
    • Сообщений: 191

    запилил функцию перевода единиц измерения на русский язык. получилось корявенько, но ничего умнее не придумал.

    необходимо заменить содержимое файла ваш_сайт\templates\ваш_шаблон\html\com_virtuemart\sublayouts\productparams.php на код, который представлен ниже:

    на выходе получим следующее:
    7a2a92aa1695.png

    Кстати, тому, кто предложит оптимизацию функции, скажу гран мерси 🙂

    #86845

    denism300
    Участник
    • Сообщений: 191

    Небольшое дополнение:
    Данная вещь отображается только если у товара есть настраиваемые поля, т.к. в коде вывода таба Характеристики есть условие на проверку наличия содержания настраиваемых полей.
    Чтобы выводить характеристики при отсутствии настраиваемых полей, необходимо в условия проверки таба дописывать проверку на наличие заполненных габаритов, либо полностью убрать цикл if. В этом случае, таб Характеристики будет выводится всегда независимо от того, заполнены поля габаритов или нет.

    #88014

    PaZiTiV
    Участник
    • Сообщений: 7

    Здравствуйте! Сделал все, как написано в инструкции, но почему-то во вкладку “Характеристики” не выводится информация о габаритах. Joomla 3.4.3 + Virtuemart 3.0.9

    #88018

    denism300
    Участник
    • Сообщений: 191

    а информация об упаковке выводится?

    #88021

    PaZiTiV
    Участник
    • Сообщений: 7

    Нет, вообще никакой информации не выводится.
    Ссылка на сайт http://ekbteplo.ru/shop/otopitelnoe-oborudovanie/kotly/kotel-gazoviy-brava-one-30bf-1218-detail
    Код default.php

    #88022

    PaZiTiV
    Участник
    • Сообщений: 7

    Сейчас установил Jcomments 3.0.5 – страница совсем перестала загружаться

    #88023

    denism300
    Участник
    • Сообщений: 191

    нужно включить в админке показ ошибок и посмотреть, что выведет.

    #88024

    PaZiTiV
    Участник
    • Сообщений: 7

    Я в php не очень шарю. Но если правильно понимаю, это к нашему вопросу никакого отношения не имеет, так?

    #88026

    denism300
    Участник
    • Сообщений: 191

    это не то, надо не в VM включать отладку, а в самой Joomla.
    Система -> Общие настройки. Далее перейти на вкладку “Сервер” и в пункте “Сообщения об ошибках” поставить “Максимум”. После этого сохранить изменения.
    aff2a061a5ee.jpg

    #88027

    PaZiTiV
    Участник
    • Сообщений: 7

    218 строчка – это
    <li><a href="#reviews" aria-controls="reviews" role="tab" data-toggle="tab">Отзывы (<?php echo $count; ?>)</a></li>
    Это относится к Jcomments, если я правильно понимаю. Но, как я уже писал ранее, как только я его ставлю, страница вообще перестает загружаться. А в заголовке стоит 1054 ошибка

    #88028

    denism300
    Участник
    • Сообщений: 191

    вот тут написано, как правильно поставить jComments на VM3.
    залейте на какой-нибудь файлообменник файл default.php и киньте ссылку.

    #88029

    PaZiTiV
    Участник
    • Сообщений: 7

    Спасибо! С комментами разобрался.
    Ссылка на default.php
    https://drive.google.com/file/d/0B-tPXGGAhHRKeF9MRUlDTUk2Ykk/view?usp=sharing

Просмотр 15 сообщений - с 1 по 15 (из 18 всего)

Для ответа в этой теме необходимо авторизоваться.

С 15-18 июня admin в отпуске.

Ответы на все вопросы и ссылки на товары будут присланы 19 июня.

Спасибо за понимание и хороших выходных.

×