• Как получить id всех элементов с привязкой к элементам в свойствах?

    @Firsov36
    full-stack web developer
    Если старым способом то так:

    $propertyBrandValue = 'НАЗВАНИЕ';
    $iBlockId_1 = 9;
    
    $res = CIBlockElement::GetList(array(),
        array(
            'IBLOCK_ID' => $iBlockId_1,
            '=PROPERTY_C_BRANDS.NAME' => $propertyBrandValue
        ),
        false,
        array('nTopCount' => 10),
        array('ID', 'IBLOCK_ID', 'NAME')
    );
    
    while($el = $res->GetNext()) {
        \Bitrix\Main\Diag\Debug::dump($el);
    }


    =PROPERTY_C_BRANDS.NAME - тут NAME меняете на поле или свойство. Описание метода и фильтрации тут: документация Битрикс

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

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

    Ну и я не уверен, что у Вас там вообще никаких значений первого ИБ нету.

    В общем представленный код рабочий и проверен, дальше думайте сами.
    Ответ написан
  • Как сделать выравнивание последних активных слайдов по правому боку?

    @Firsov36
    full-stack web developer
    Мне показывает там не пустоту, а часть следующего товара. Считаю это наоборот правильно, тогда посетитель подсознательно поймет, что там есть что-то еще и можно пролистнуть. Мелкие стрелки можно и не заметить

    5e562a95971c8344372400.png

    А так, можно в стилях расставить кучу точек под разные размеры и "расширять" или "сужать" блок товаров до вписываемых в ширину браузера 2-3-4-5 товаров...
    Ответ написан
  • Возможно ли такое вертикальное позиционирование средствами css only?

    @Firsov36
    full-stack web developer
    Можно было бы использовать .menu-item:after {content: ''} , но ссылку в content не передашь. Почему нельзя доработать блок? Как вариант, можно добавлять ссылку через JavaScript, на чистом CSS тут не выйдет, если нельзя никаких изменений в блоке .cat-container делать...
    Ответ написан
    Комментировать
  • Как скрывать или показывать div в зависимости от select?

    @Firsov36
    full-stack web developer
    Ошибка в JS как минимум в том, что Вы обращаясь к блокам по классу, не указали точку перед классом.
    Ну и код можно написать так:

    $(document).ready(function(){
        $('#mem').change(function(){
            if ( $(this).val() === '64GB' ) {
                $('.total-price-1').addClass('active');
                $('.total-price-2').removeClass('active');
            } else if ( $(this).val() === 'GB128' ) {
                $('.total-price-1').removeClass('active');
                $('.total-price-2').addClass('active');
            }
        });
    Ответ написан
  • Почему блок автоматически растягивается на всю ширину?

    @Firsov36
    full-stack web developer
    - по-умолчанию занимает 100% родителя. display: flex распространяется на элемент и первых предков.

    <div class="dblock">
      <div class="left">&nbsp;</div>
      <div class="right">
        <div><p>1</p></div>
        <div><p>1</p></div>
        <div><p>1</p></div>
        <div><p>1</p></div>
        <div><p>1</p></div>
      </div>
    </div>


    .dblock {
      display:flex;
    }
    
    .left,.right {
      flex: 1;
      border: 1px solid red;
      padding: .1em;
    }
    
    .right {
      display:flex;
      flex-direction: column;
      align-items: flex-start;
    }
    .right>div {
      border:1px solid #ececec;
    }
    Ответ написан
    Комментировать
  • В одну переменную данные с нескольких textarea?

    @Firsov36
    full-stack web developer
    в переменную приходило значение из той textarea в которой ввели значение


    <textarea class="s" name="s[]" cols=30 rows=1>11</textarea>
    <textarea class="s" name="s[]" cols=30 rows=1>22</textarea>
    <textarea class="s" name="s[]" cols=30 rows=1>33</textarea>
    <button class="go">start</button>


    console.log(arValues);
    });
    
    $('.go').on('click', function() {
      let arValues = [];
      $('.s').each(function() {
        arValues.push($(this).val());
      });
      
      console.log(arValues);
    });
    
    let someData = '';
    $('.s').on('input', function() {
      someData = $(this).val();
      console.log(someData);
    });


    если нажать кнопку то выведет:
    ["11", "22", "33"]
    
    если просто поменять значение в одном из textarea,
    то в переменную someValue будет передано то, что в textarea
    Ответ написан
    Комментировать
  • Как правильно обратиться к элементу по дом-дереву?

    @Firsov36
    full-stack web developer
    $(“.js-recieved-comment”).on(“click”, function() {
       If($(this).attr(“data-action”) == “save”) {
           $(“.b-notepad__feedback-letter_title_icon”).removeClass('fa-exclamation').addClass('fa-plus');
        } else if ($(this).attr(“data-action”) == “remove”) {
            $(“.b-notepad__feedback-letter_title_icon”).removeClass('fa-plus').addClass('fa-exclamation');
        }
    });


    Писал с айпада, не проверял, но должно работать, если где опечатки нет
    Ответ написан
    3 комментария
  • XDebug вывод на страницу?

    @Firsov36
    full-stack web developer
    Чтобы заработало расширение XDebug надо подключить его в настройках Php, это делается в php.ini файле, о чем Вам по ссылке и пишут. В php.ini файле добавьте строку zend_extension=полный\путь\к\php_xdebug.dll (это для Windows систем) или zend_extension=xdebug.so в Linux системах.

    Если у Вас нету доступа непосредственно к файлу php.ini, например хостинг. То многие хостеры предоставляют различный функционал для правки некоторых параметров. Также можно обратиться в тех. поддержку хостинга и попросить включить для Вас это расширение, если возможно.

    Но учтите, на боевом сервере это расширение лучше не включать, оно значительно нагружает сервер и используется для откладки кода.
    Ответ написан
  • Аналоги NotePad на MacOs?

    @Firsov36
    full-stack web developer
    Sublime Text 3 (есть и для Windows и для Mac)
    Ответ написан
  • Где сделать красивый скрин сайта?

    @Firsov36
    full-stack web developer
    Вам обязательно надо сделать вид сайта в старом браузере, как на картинке? Думаете потенциальный заказчик будет знать и искать исполнителя именно того, кто сделал работу в старом браузере? Не заморачивайтесь над этим.

    Для создания скриншота браузера и видимой части сайта вам достаточно бесплатной утилиты от Яндекс.Диска. Одной комбинацией клавиш Вы выбираете нужное окно и файл у вас на рабочем столе. Яндекс.Диск можно установить как на Windows, так и на Mac, но на Маках есть встроенная утилита. Комбинацией команд-альт-5 можете сделать скрин экрана, окна, области или снять видео с экрана. Удобненько.

    Если нужна картинка страницы сайта целиком, то Вам уже посоветовали несколько сайтов. Вообще подобных сайтов полно, и платных и бесплатных.

    Если Вы UI-designer, то по идеи у Вас должны быть уже программы, с помощью которых презентуете свой дизайн. Если де Вы верстальщик или frontend-developer, full-stack developer, то Вам достаточно и части сайта, где опять же лучшим вариантом для скрина программы и других возможностей подойдет Яндекс.Диск или встроенная утилита от Мак Ос Х.

    Еще, если есть Adobe Acrobat, то он встраивается в браузеры и может делать скриншоты страницы в пдф. Правда я этой функцией давно не пользовался, надо будет проверить, даже интересно как оно сейчас.
    Ответ написан
    Комментировать
  • Программа для скиншотов для мас с функцией сделать скриншот области с заданным размером?

    @Firsov36
    full-stack web developer
    По ссылке описание встроенных комбинаций для скриншотов и видео с экрана. С помощью shift - command - 4 можно выбрать мышкой нужный участок экрана. А с помощью shift - command - 5 можно настроить область или отдельное окно программы.
    Ответ написан
    Комментировать
  • Есть ли приложения для организации рабочих столов на MacOS?

    @Firsov36
    full-stack web developer
    Приложений такого рода не знаю, но Вашу задачу сможет решить Automator.
    Ответ написан
    Комментировать
  • Почему json_decode вызывает Fatal error?

    @Firsov36
    full-stack web developer
    Ошибка указывает на нехватку памяти для обработки запроса. Скорее всего у вас для сайта используются одни настройки php, а для консоли другие. Возможно даже версии пхп разные. Проверьте сначала этот момент.
    Ответ написан
    Комментировать
  • Объясните как сделать новостную ленту с возможностью визуального редактирования по типу админки на самописном сайте?

    @Firsov36
    full-stack web developer
    Вставьте в нужное место страницы сайта блок "div", например и подгружаете с помощью Javascript данные из txt файла. Обычный человек будет писать новости в текстовый файл.
    Ответ написан
    Комментировать
  • Какую БД выбрать для маленького файлового сервиса?

    @Firsov36
    full-stack web developer
    Свою БД на основе файлов. Не нужно устанавливать лишнего софта с функционалом, который вам не нужен, а описанные задачи в файлах можно организовать.
    Ответ написан
    2 комментария
  • Объясните эту часть кода $manager->outputAddresses((string)$settings->resolvedomains);?

    @Firsov36
    full-stack web developer
    $manager = new AddressManager();
    $manager->outputAddresses((string)$settings->resolvedomains);


    Первая строка создает переменную, которая обращается к классу.
    Вторая строка вызывает метод класса с параметром. Значение параметра берется из XML данных. Так как забирая данные из simplexml являются не строкой, то указывается (string), чтобы данные из поля resolvedomains конвертировались в строку.
    Ответ написан
    2 комментария
  • Как вывести данные JSON, который получил через curl, в php на своем сайте?

    @Firsov36
    full-stack web developer
    Принятые данные декодирйте с помощью функции php json_decode(), а дальше эти данные как обычную строку или массив обрабатывайте.
    Ответ написан
    7 комментариев
  • Как сделать обработчик формы?

    @Firsov36
    full-stack web developer
    После
    if (isset($_POST['body'])) {$body = $_POST['body']; if ($body == '') {unset($body);}}


    добавь
    $tovar = isset($_POST['list-tovar']) && !empty($_POST['list-tovar']) ? $_POST['list-tovar'] : '';


    и вместо

    $mes = "Имя: $name \nE-mail: $email \nТема: $sub \nТекст: $body";


    напиши

    $mes = "Имя: $name \nE-mail: $email \nТема: $sub \nТекст: $body \nВыбрали: $tovar";
    Ответ написан
    Комментировать
  • Как при открытии div закрыть другие?

    @Firsov36
    full-stack web developer
    Код верстки взят из комментария к первому ответу, частично переделан.
    Вот написал под Вашу задачу. Надеюсь у Вас jQuery подключен, без него не будет работать.

    <script>
      function showDescription(id) {
        $(".description").each(function () {
          $(this).hide();
        });
    
        $("#" + id).show();
      }
    </script>
    
    <ul>
      <li>
        1. <a href="#1" onclick="showDescription('one'); return false;">Один <span>раз</span></a>
      </li>
      <li>
        2. <a href="#1" onclick="showDescription('two'); return false;">Два <span>два</span></a>
      </li>
      <li>
        3. <a href="#1" onclick="showDescription('three'); return false;">Три <span>три</span></a>
      </li>
    </ul>
    
    <div class="descriptionContainer">
        <div id="one" class="description">
          <h1>Заголовок 1</h1>
          Lorem Ipsum is simply dummy text
        </div>
    
        <div id="two" class="description">
          <h1>Заголовок 2</h1>
          Lorem Ipsum is simply dummy text
        </div>
    
        <div id="three" class="description">
          <h1>Заголовок 3</h1>
          Lorem Ipsum is simply dummy text
        </div>
    </div>
    Ответ написан
    4 комментария
  • В меню битрикса добавляю новый раздел, который должен вести на другой сайт?

    @Firsov36
    full-stack web developer
    Если у Вас есть соответствующие права, то в панели Битрикса, в развернутом его состоянии есть возможность выбрать какое меню редактировать.

    5e466ee36ce81867113428.png

    Выбрав нужно меню, для каждого пункта указывается путь (колонка "ссылка")

    5e466f10f0af0536055298.png

    Если Вам нужно создать именно раздел на сайте, при попадании в которой пользователя перенаправляют на другой сайт, то в файловой системе нужно создать папку, в ней файл index.php с таким содержимым:

    <?php
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
    LocalRedirect('https://mysite.ru');
    Ответ написан
    9 комментариев