0 Пользователей и 1 Гость просматривают эту тему.
  • 18 Ответов
  • 359 Просмотров
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
Имеем вывод размеров атрибутом в карточке товара. При выборе размера с количеством 0 появляется уведомление о недоступности товара. Цель - выделить размеры с количеством 0 другим цветомю чтоб сразу, еще до выбора размера было понятно - есть такой товар в наличии или нет.

Спойлер
[свернуть]

На данный момент не понятно откуда вообще этот select берется, и можно ли обойтись бе дополнительного запроса в базу данных. Надо пнуть в нужном направлении.
« Последнее редактирование: 17.12.2016, 19:50:48 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

dmitry_stas

  • Профи
  • 10039
  • 953
select формируется в \components\com_jshopping\tables\product.php function getBuildSelectAttributes. надо посмотреть, что туда приходит. может как то обыграть по принципу когда в настройках установлено Скрывать товар не в наличии, и атрибут вообще не показывается.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
Ядро трогать не хочу. Только своим запросом?
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

dmitry_stas

  • Профи
  • 10039
  • 953
ну там есть событие onBuildSelectAttribute для плагина... но надо сначала определить, что туда приходит, в метод getBuildSelectAttributes, какие данные. можно ли по ним сделать вывод, есть атрибут в наличии или нет. я не помню, а посмотреть негде сейчас.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
Не  знаю как посмотреть там переменные, но на затравку там вот так

Код: php
$jshopConfig = JSFactory::getConfig();
        if (!$jshopConfig->admin_show_attributes) return array();
        $dispatcher = JDispatcher::getInstance();
        $attrib = JSFactory::getAllAttributes();
$userShop = JSFactory::getUserShop();
        $selects = array();
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
В общем, надо выводить селект самой.

Замысел: если у атрибута есть какое-то количество, отличное от нуля, присваиваем ему при формировании селекта класс зеленый, если количество ноль - красный. Дабы сразу было видно какой товар есть в наличии - еще при выпадении опций.

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

Код
Array
(
    [0] => stdClass Object
        (
            [val_id] => 490
            [value_name] => 33.5EUR=2.5US=32.5RU
            [image] =>
            [addprice] => 0
        )

    [1] => stdClass Object
        (
            [val_id] => 491
            [value_name] => 34.0EUR=3.0US=33.0RU
            [image] =>
            [addprice] => 0
        )

    [2] => stdClass Object
        (
            [val_id] => 489
            [value_name] => 35.0EUR=3.5US=34.0RU
            [image] =>
            [addprice] => 0
        )

    [3] => stdClass Object
        (
            [val_id] => 488
            [value_name] => 36.5EUR=4.5US=35.5RU
            [image] =>
            [addprice] => 0
        )

)

Это атрибуты для данного товара. Из них в принципе можно сорганизовать селект, но нужно еще к каждому атрибуту получить его количество в админке.

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

В админке у нас один атрибут, в который собраны все опции для всех товаров. (Не спрашивайте, почему, и я не буду ругаться матом)

Спойлер
[свернуть]

Таблицы в phpMyAdmin

Спойлер
[свернуть]

Как? В каком порядке запросы слать?  >:(
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

nevigen

  • Moderator
  • 8918
  • 755
  • http://n*****n.com
сделай атрибут радио.
и визуализируй его в виде CSS как селект.

хотя я не пойму а как ты сделаешь это для зависимых?
ведь у первого может быть да, а у второго нет.

П.С. кстати я не наю может поможет.. но есть опция скрывать недоступные, может там подсмотреть ?
« Последнее редактирование: 20.12.2016, 14:34:08 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
Какая разница какой атрибут - радио или селект? Я могу сформировать что угодно, но мне инфы не хватает.

У меня один атрибут уже есть, и добавлять новые никак нельзя((
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

dmitry_stas

  • Профи
  • 10039
  • 953
вообще, задача решается как раз только если 1 атрибут. если 2 и более - то уже не получится. запрос на самом деле там тоже очень простой.
Код
SELECT attr_1, count FROM #__jshopping_products_attr WHERE product_id =  . $this->product->product_id
в attr_1 единичка - это ID атрибута. судя по скринам - 1. значение в attr_1 - это то, что val_id в массиве. count - соответственно количество.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
Да, я себе уже почти так же составила. Вот только

Код: php
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('attr_1', 'count')));
$query->from($db->quoteName('#__jshopping_products_attr'));
$query->where($db->quoteName('product_id')." = ".$product->product_id);
$query->order('attr_1 ASC');

$db->setQuery($query);
$result = $db->loadResult();

выдает какую-то фигню(
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

dmitry_stas

  • Профи
  • 10039
  • 953
Цитировать
$result = $db->loadObjectList();
спасет мать русской демократии? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
Вот я затууупок..... надо же было так облажаться  ;D

Копирнула чтоб не набирать вручную, и даже не посмотрела, что... :dry:
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

dmitry_stas

  • Профи
  • 10039
  • 953
бывает :) получилось то итого что нужно было?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
А то) С таким вниманием к моей скромной персоне))))  :-*

Спойлер
[свернуть]

Кстати, я не понимаю, почему ты решил, что это возможно только для одного атрибута. Для нескольких просто добавляется сортировка по Id атрибута. Не?
« Последнее редактирование: 21.12.2016, 16:45:56 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

dmitry_stas

  • Профи
  • 10039
  • 953
несколько атрибутов = несколько селектов зависимых друг от друга. например, Цвет и Размер. Зеленой футболки 38 размера может не быть, а красная 38 - есть. как показать наличие в селекте Размер 38 ? это можно сделать, но это надо добавлять тогда отбработку аяксом при изменении любого селекта
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
Эмм, нашла проблемку. С текстом о недоступности товара. Если у нас по умолчанию первая опция отсутствует - он и пишет "Недоступно". А надо, чтоб по умолчанию всегда было "Доступно". Ибо у меня selected всегда на первом доступном атрибуте.

Внимание, вопрос: как переопределить $this->available ?  ;D

ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

dmitry_stas

  • Профи
  • 10039
  • 953
это в шаблоне все? и всегда первая опция будет доступна? так тогда просто всегда делай
Код
$this->available  = '';
:) или не выводи блок этот с недоступностью, что в принципе тоже самое.

P.S. только не весь div не выводи, а именно сам $this->available. просто убрать
Код
<?php echo $this->available ?>
и все. div нужен для смены текста доступности после изменения атрибута.
« Последнее редактирование: 21.12.2016, 17:32:07 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
Пашет, пасибки   *DRINK*
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
*

Taatshi

  • Support Team
  • 4805
  • 453
  • Верстаем и немножко кодим. Обращайтесь ;)
UPD

Там еще трабла с выводом начальных цен получается, так что в запрос добавляем old_price и buy_price и подставляем в нужные места свои значения из активного элемента.

Спойлер
[свернуть]
« Последнее редактирование: 21.12.2016, 20:20:49 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Title и Alt изображения товара на странице категории и на странице товара

Автор tigra-uki

Ответов: 10
Просмотров: 82
Последний ответ 09.09.2017, 19:28:27
от Виталик
Модуль mod_jshopping_filters + наличее товара

Автор wel89

Ответов: 0
Просмотров: 129
Последний ответ 21.07.2017, 22:32:12
от wel89
Слэш в весе товара

Автор tsweb

Ответов: 5
Просмотров: 177
Последний ответ 06.07.2017, 09:39:17
от dmitry_stas
Добавление товара с атрибутами в корзину из списка товаров

Автор threemonkeys

Ответов: 3
Просмотров: 185
Последний ответ 16.06.2017, 14:32:44
от threemonkeys
Мультивыбор даты как атрибут товара

Автор nickolo

Ответов: 1
Просмотров: 89
Последний ответ 15.06.2017, 16:26:46
от dmitry_stas