• Почему не получается подключить SMTP в 1С-Битрикс?

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

    https://yandex.ru/support/id/authorization/app-pas...
    Ответ написан
    1 комментарий
  • Может ли VPN ускорять интернет?

    @dronmaxman
    VoIP Administrator
    Теоритически VPN должен работать медленнее чем основной интернет, т.к. он добавляет накладные расходы на канал.

    Но на практике есть ситуации когда работает наоборот.
    Представим ситуацию, твой провайдер тебе дает 100mbit/s национального трафика и 20Mbit/s мирового трафика. Соответственно зарубежные сайты будут открываться медленнее. Если у тебя есть сервер в ДатаЦентре у которого провайдер с условиями 100 национальный и 100 мир, то поднимая VPN на этот сервер твой мировой трафик будет бегать быстрее.
    Ответ написан
    Комментировать
  • Почему некоторые сайты парсятся без указания www., а не которые нет?

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

    firedragon
    @firedragon
    Senior .NET developer
    Как по мне собеседнику плевать на ваши алгоритмы. спрашивают про реальные проекты.
    Описывайте что делали на чем, чего добились, что показалось сложным или интересным.
    Ответ написан
    Комментировать
  • Как сделать, чтобы 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();    
        });
    });
    Ответ написан
    Комментировать