Jump to content

Николя223

Expert
  • Posts

    1,771
  • Joined

  • Last visited

  • Days Won

    53

Posts posted by Николя223

  1. У вас сама архитектура вроде бы не правильная. 

    по первой части как бы так не пришлось воротить

    SELECT products.product_id FROM 
        `test` products 
    LEFT JOIN  `test` filter_1 ON products.product_id = filter_1.product_id
    LEFT JOIN  `test` filter_2 ON products.product_id = filter_2.product_id
    LEFT JOIN  `test` filter_3 ON products.product_id = filter_3.product_id
    WHERE 
        filter_1.`filter_id` = 1 AND
        filter_2.`filter_id` = 3 AND
        filter_3.`filter_id` = 4 
    GROUP BY products.`product_id`

    UPD: Ещё можно как то так, но всё равно мне не нравится

    SELECT DISTINCT product_id FROM 
        `test`   
    WHERE 
        `filter_id` IN (1,3,4)
    GROUP BY `product_id`
    HAVING COUNT(`filter_id`) = 3

    по второй хватит просто

    SELECT product_id FROM 
        `test`   
    WHERE 
        `filter_id` IN (3, 4)  
    GROUP BY `product_id`

     

    • Thanks 1
  2. сори - я временно в больнице лежу)) поэтому  баги сами отлавливайте если будут.  самое главное уловите как эта хрень работать должна

    Скрытый текст
    
    var csrf_token = "";
    
    function getToken(foo) {
        $.ajax({
                url:'/admin/csrf-token/',
                type:'GET',
                dataType:'json',
                data: '',
                cache: false,
                success: function (data) {
                    csrf_token = data['csrf-token'];
    
                    //проверяем передана ли функция. если да - выполняем её. ну и естественно сунем в неё полученные данные
                    if (typeof foo == 'function') {
                        foo(data)
                    }
    
                },
                error: function(error) {
                    console.log('Ошибка получения токена: ' + error.responseText);
                }
            });
    }
    // клик по кнопке, а не при открытии
    $("#myModal-btn").on("click", function(event) {
    
            $callback  = function(dataToken) {
                var form = $("#myForm").serialize(),
                modal  = $("#myModal");
                $.ajax({
                        url:'/admin/secretform',
                        type:'POST',
                        dataType:'json',
                        data: form,
                        cache: false,
                        beforeSend: function(request) {
                            return request.setRequestHeader('X-CSRF-TOKEN', csrf_token);
                        },
                        success: function (data) {
                            // здесь уже условия проверяйте и вызывайте окно когда надо
                            // modal.modal('show')
                            $("#myModalLabel").text(data['title']);
                            $("#name").val(data['name']);
                            $("#email").val(data['email']);
                        },
                        error: function(error) {
                            $(".modal-body").html('Ошибка обработки данных: ' + error.responseText);
                        }
                    });
            }
    
    
            getToken($callback);
    
        });

     

  3. да для текста localStorage хватит за глаза. 

    Цитата

     

    Chrome 38, FireFox 33 и Opera 25 — размер хранилища 5000 Кб.

    IE8-11 — размер хранилища 4750 Кб.

    iOS 5-8.1 Safari, OS X Safari — размер хранилища 2500 Кб.

    Android 4.x-5 — размер хранилища 5000 Кб.

    Windows Phone 7.8 — размер хранилища 4750 Кб.

     

     

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

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

  5. я похоже хрень написал)  

    давайте ещё раз -  у каждого товара есть  возможность выбрать товары, которые будут под ним показываться. так? 

    если так то вам нужно как раз таки получить то свойство.  там будет массив.  и в фильтр сунуть

    $arrFilter['ID'] = $arrID;

    если указан массив,  то будет выборка тех id  которые указаны.   при привязке элементов, насколько помню именно id и возвращается

    • Like 1
  6. Скрытый текст

     

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

    если оно итак видимо то не надо. 

     

    то что под спойлером ненадо)

    смотрите в шаблоне, какая переменная фильтра используется.  

    и в неё дописываете что то вроде 

    global $arrFilter;
    $arrFilter["PROPERTY_ЗДЕСЬКОДСВОЙСТВА_VALUE"] = array($arResult['ID']);

    т.е.  ищет товары у которых в данном св-ве указан текущий товар

    я просто не вкурсе про какой модуль вы пишите.  это как примерный вариант решения

    • Like 1
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy