• Как изменить количество товаров на странице woocommerce?

    @Antonpaul
    Можно вообще в код не лезть. Настройки -> Чтение -> На страницах блога отображать не более - ... поставить нужное количество. Может кому и Америку открыл))
    Ответ написан
    2 комментария
  • Почему не получается подключить SMTP в 1С-Битрикс?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    Для такой авторизации (если я правильно помню) пароль нужен не обычный, а пароль приложений:

    https://yandex.ru/support/id/authorization/app-pas...
    Ответ написан
    1 комментарий
  • Почему некоторые сайты парсятся без указания www., а не которые нет?

    SagePtr
    @SagePtr
    Еда - это святое
    C www это отдельный поддомен, который отличается от домена. Некоторые его настраивают как алиас и в обоих случаях отдают один и тот же контент. Некоторые - вообще не добавляют, и сайт с www не открывается. А некоторые - ставят редирект, причем по-разному бывает - иногда с поддомена редиректят на домен, а иногда и наоборот.
    Ответ написан
    Комментировать
  • Какие алгоритмы и структуры данных чаще всего спрашивают на собеседовании джуна?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Как по мне собеседнику плевать на ваши алгоритмы. спрашивают про реальные проекты.
    Описывайте что делали на чем, чего добились, что показалось сложным или интересным.
    Ответ написан
    Комментировать
  • Как сделать, чтобы news.detail понимал, что это за элемент?

    meowto16
    @meowto16
    Делаю штуки
    Привет, в CONDITION у тебя стоит регулярка, я так понимаю это ELEMENT_CODE, тогда дописываешь RULE для своего правила в urlrewrite
    <?php
    $arUrlRewrite=array (
      3 => 
      array (
        'CONDITION' => '#^/about/([0-9a-zA-Z_-]+)/.*#',
        'RULE' => 'ELEMENT_CODE=$1',
        'ID' => 'site:news',
        'PATH' => '/about/detail.php',
        'SORT' => 100,
      ),


    В вызове компонента пишешь так:
    <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
    $APPLICATION->SetTitle("Title");?>
    <?$APPLICATION->IncludeComponent(
      "site:news.detail",
      "decision",
      Array(
        "ACTIVE_DATE_FORMAT" => "d.m.Y",
        "ADD_ELEMENT_CHAIN" => "N",
        "ADD_SECTIONS_CHAIN" => "Y",
        "AJAX_MODE" => "N",
        "AJAX_OPTION_ADDITIONAL" => "",
        "AJAX_OPTION_HISTORY" => "N",
        "AJAX_OPTION_JUMP" => "N",
        "AJAX_OPTION_STYLE" => "Y",
        "BROWSER_TITLE" => "-",
        "CACHE_GROUPS" => "Y",
        "CACHE_TIME" => "36000000",
        "CACHE_TYPE" => "A",
        "CHECK_DATES" => "Y",
        "DETAIL_URL" => "",
        "DISPLAY_BOTTOM_PAGER" => "Y",
        "DISPLAY_DATE" => "Y",
        "DISPLAY_NAME" => "Y",
        "DISPLAY_PICTURE" => "Y",
        "DISPLAY_PREVIEW_TEXT" => "Y",
        "DISPLAY_TOP_PAGER" => "N",
        "ELEMENT_CODE" => $_REQUEST["ELEMENT_CODE"], // данный параметр тебе передаст urlrewrite
        "ELEMENT_ID" => "",
        "FIELD_CODE" => array("",""),
        "IBLOCK_ID" => "13",
        "IBLOCK_TYPE" => "content",
        "IBLOCK_URL" => "",
        "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
        "MESSAGE_404" => "",
        "META_DESCRIPTION" => "-",
        "META_KEYWORDS" => "-",
        "PAGER_BASE_LINK_ENABLE" => "N",
        "PAGER_SHOW_ALL" => "N",
        "PAGER_TEMPLATE" => ".default",
        "PAGER_TITLE" => "Страница",
        "PROPERTY_CODE" => array("",""),
        "SET_BROWSER_TITLE" => "Y",
        "SET_CANONICAL_URL" => "N",
        "SET_LAST_MODIFIED" => "N",
        "SET_META_DESCRIPTION" => "Y",
        "SET_META_KEYWORDS" => "Y",
        "SET_STATUS_404" => "N",
        "SET_TITLE" => "Y",
        "SHOW_404" => "N",
        "STRICT_SECTION_CHECK" => "N",
        "USE_PERMISSIONS" => "N",
        "USE_SHARE" => "N"
      )
    );?><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
    Ответ написан
    8 комментариев
  • Как получить return из ajax запроса?

    @zkrvndm
    Софт для автоматизации
    Используйте async / await - это наиболее просто и удобный способ.

    Пример:
    $('.post-like').click(async function(){
    	
    	var response = await $.ajax({
    		url: '/ajax/post_like.php',
    		type: 'POST',
    		dataType: 'json',
    		data: {
    			action: 'check',
    			post_id: $(this).parents('.item').attr('id')
    		}
    	});
    	
    	if (response.already_vote == 1) {
    		alert('Еденица!');
    	} else {
    		alert('Не еденица!');
    	}
    	
    });
    Ответ написан
    Комментировать
  • Как получить return из ajax запроса?

    @StiflerProger
    Всё верно тебе написали. Либо передавай callback в функцию already_vote, либо выполняй через промис.

    Вариант с колбеком:
    function already_vote(post_id, callback){
        $.ajax({ <options> })
        .done(function(response){
            if(response.already_vote == 1){
                return callback(true);
            }
            return callback(false);
        })
        .fail(function(xhr){
            console.log(xhr);
        });
    }
    
    $('.post-like').click(function(){
      const item_id = $(this).parents('.item').attr('id');
    
      already_vote(item_id, function(isVoted) {
        if(isVoted){
            //...
        }
        else {
            //...
        }
    });
        
    });


    Вариант с промисом:
    function already_vote(post_id, callback){
      return new Promise(res => {
        $.ajax({ <options> })
        .done(function(response){
            if(response.already_vote == 1){
                return res(true);
            }
            return res(false);
        })
      });
    }
    
    $('.post-like').click(async function(){
      const item_id = $(this).parents('.item').attr('id');
    
      const isVoted = await already_vote(item_id);
      
      if(isVoted){
            //...
      }
      else {
            //...
      }
        
    });
    Ответ написан
    1 комментарий
  • Почему в каждом разделе bitrix находится файл .htaccess?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Это точно не дело рук битрикса. Прогоните тест на изменения ядра, на всякий случай.
    Ответ написан
    Комментировать
  • Почему в каждом разделе bitrix находится файл .htaccess?

    gedev
    @gedev
    сисадмин-энтузиаст
    А ещё у вас в корне сайта файл .htaccess с чуть более длинным почти аналогичым содержимым и вставка в начале index.php с зашифрованным кодом и чем-то отсылающим к Wordpress.

    Если да, то вас поломали. До боли знакомый вредонос. Восстанавливайтесь из бэкапов и закрывайте все дыры которые можете. Скорее всего где-то рядом лежит ещё пара другая шеллов. Например, я часто видел fot.php.

    Как лечить не подскажу, но настоятельно рекомендую заняться безопасностью.
    Ответ написан
    2 комментария
  • Где найти такие сайты?

    SanistRay
    @SanistRay
    Скачай любой сайт, и удали оттуда JS.

    Все, можешь оживлять
    Ответ написан
    Комментировать
  • Не работает breakpoint в slick-slider, как быть?

    @toproot24
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
    Именно user-scalable=0 лечит chrome. Такой тег прописан на оф. сайте слайдера.
    Ответ написан
    4 комментария
  • Как получить свойства торговых предложений товара?

    LisaKatrin
    @LisaKatrin
    Web-программист
    В последнем массиве propertyFilter надо прописать массив с ключем "CODE", то есть получиться:
    $arSKU = CCatalogSKU::getOffersList($arResult[ID], 0, array('ACTIVE' => 'Y'), array('NAME'), array("CODE"=>array('HEIGHT', 'WIDTH')));
    Ответ написан
    4 комментария
  • Как удалить динамически созданный элемент jquery?

    @IoannGrozny
    Front-end разработчик
    Во-первых, если вы создаёте множество динамических элементов, не используйте в них id и не ссылайтесь на них по id. Селектор по id выбирает только первый элемент из списка, потому что такой элемент должен быть один.
    Во-вторых, метод .click() не работает с динамически добавленными элементами. Поэтому событие вешается только на тот элемент, который уже был на странице. Навешивайте обработчик события методом .on() на элемент html. Это проделегирует обработчик на все элементы, указанные в качестве контекста, включая те, что были созданы динамически.
    Суммируем:
    <span class="addField add">
        <i class="icon"></i>Добавить
    </span>
    <div class="inputs">
        <div>
            <input type="file" name="dynamic[]" class="field" > 
            <span class="remove">Удалить</span>
        </div>
    </div>

    $(document).ready(function () {
        $('html').on('click','.add',function () {
            $('<div><input type="file" class="field" name="dynamic[]" /><span class="remove">Удалить</span></div> ').fadeIn('slow').appendTo('.inputs');                                
        });
        $('html').on('click','.remove', function () {                               
            $(this).parent().remove();    
        });
    });
    Ответ написан
    Комментировать