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

Taatshi

  • Глобальный модератор
  • 5259
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Имеем вывод размеров атрибутом в карточке товара. При выборе размера с количеством 0 появляется уведомление о недоступности товара. Цель - выделить размеры с количеством 0 другим цветом, чтоб сразу, еще до выбора размера было понятно - есть такой товар в наличии или нет.


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

dmitry_stas

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

Taatshi

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

dmitry_stas

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

Taatshi

  • Глобальный модератор
  • 5259
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Не  знаю как посмотреть там переменные, но на затравку там вот так

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

Taatshi

  • Глобальный модератор
  • 5259
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
В общем, надо выводить селект самой.

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

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

Код
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, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

nevigen

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

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

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

Taatshi

  • Глобальный модератор
  • 5259
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Какая разница какой атрибут - радио или селект? Я могу сформировать что угодно, но мне инфы не хватает.

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
вообще, задача решается как раз только если 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

  • Глобальный модератор
  • 5259
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Да, я себе уже почти так же составила. Вот только

Код: 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, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

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

Taatshi

  • Глобальный модератор
  • 5259
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Вот я затууупок..... надо же было так облажаться  ;D

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

dmitry_stas

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

Taatshi

  • Глобальный модератор
  • 5259
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
А то) С таким вниманием к моей скромной персоне))))  :-*

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

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

dmitry_stas

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

Taatshi

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

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

ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

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

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

Taatshi

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

Taatshi

  • Глобальный модератор
  • 5259
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
UPD

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

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