Задать вопрос
  • Как в битрикс D7 правильно выбрать элемент со свойствами?

    Евгений, да, потерял отрицание. Насчёт false - так в старом API было, и оно учитывает не только пустую строку, но и NULL. Сами битриксоиды где-то ссылались на то, что в D7 фильтры аналогичны старому ядру, но это не всегда так, каждый раз надо проверять
    Написано
  • Как правильно реализовать взаимодействие с бд на сайте?

    непонятно, как у вас всё устроено. распишите по шагам. Потому что из того, что вижу я, следует вот это:
    1) пользователь заходит на сайт. Он не залогинен. В этот момент Вам не нужен js, POST запрос и прочее - вы отслеживаете GET запрос страницы;
    2) пользователь в форме авторизации вводит логин и пароль, отправляет на сервер. Здесь вы защищаетесь от CSRF и проверяете данные: если всё валидно - отмечаете в базе, что хотите. Если не валидно - отдаёте ошибку. Велосипед с js и POST запросом опять же не нужен.
    Написано
  • Почему не кэшируются страницы на клиенте?

    Но при последовательной отправке запросов получаю такие ответы

    blecked88, что Вы имеете в виду под этой фразой?
    Если Вы принудительно отправляете запрос - разумеется, он уйдет.
    Плюс, Вы же смотрите через Web Developer Tools ? Проверьте, что Вы там не запретили кэширование.

    Ну и вот ссылочка на RFC:
    https://httpwg.org/specs/rfc8246.html#security-con...
    проверьте, что у Вас все условия соблюдаются. В RFC стоит SHOULD, но авторы RFC - Mozilla; вероятно, они именно так и реализовали
    Написано
  • Как вылечить файл сайта на 1С-Битрикс от трояна?

    Adamos, вообще-то они давно начали. В модуле main самые существенные файлы (например, система обновлений) были с обфускацией уже несколько лет. Поищите по подстроке "$GLOBALS['____" , например, в bitrix/modules/main/include.php есть вставки. Борьба с нулификаторами, как мне кажется.
    Обычно жить не мешает, но пару раз сильно отравляло жизнь, если приходилось браться за отладчик.
    Написано
  • Как вылечить файл сайта на 1С-Битрикс от трояна?

    У меня такого на сайте 2007:2023 - нет

    Adamos, посмотрел у себя:
    главный модуль, версия 24.0.500 - нет обфускации, версия 25.100.200 - есть обфускация
    Написано
  • Как определить свой уровень программирования?

    pomidorkin334, если самостоятельно не получается найти ответ "почему не работает" - это всё ещё Junior.
    Практика, среди прочего, позволит отвечать "да, это не работает, но я знаю и другой способ реализовать задуманное". И это уже Middle
    Написано
  • Не загружается сайт вордпресс в мобилке айфона, как решить?

    maksam07, то есть даже хост не резолвится? Похоже на какой-то буйный фильтр
    Написано
  • Может ли RabbitMQ запускать процессы для обработки очередей?

    а если процессы упадут из-за ошибки, то очередь остановится

    Да. Вот за жизнью процессов и следит оркестратор.
    Как сделать чтобы N не превышало число писем в очереди? Чтобы процессы зря не висели.

    Какая разница? Пусть висят. В режиме ожидания они потребляют память, а не процессор. И несложно догадаться, что N не имеет смысла делать больше, чем доступно процессорных ядер, так что и суммарное потребление памяти тоже будет незначительным.
    Написано
  • Почему array_count_values возвращает пустой массив?

    И что значит "я уверен что код работал не так

    Это видно из сочетания функций и содержимого переменных. И сомнительно, что в $object_types раньше была какая-то другая структура; то, что сейчас вполне соответсвует названию переменной.
    Может имеет смысл показать полностью цикл, внутри которого эта функция?

    Elena_11, да, покажите.
    Написано
  • Почему array_count_values возвращает пустой массив?

    это скрин с фронта

    Elena_11, зачем нам тут скриншот, если мы работаем с кодом или текстом сообщений? Когда текст - нарисованный, это очень неудобно
    Написано
  • Почему array_count_values возвращает пустой массив?

    Elena_11, надо было попросить Вас использовать var_export(), но и так сойдет.
    Я уверен, что раньше код работал не так. В переменной $object_types сейчас вот это:
    $object_types = [
        "newbuildings" => "Новостройки",
        "flat" => "Квартиры, апартаменты",
        "house" => "Дома, виллы, коттеджи",
        "condominiums" => "Кондоминиумы",
        "arenda" => "Квартиры под аренду",
        "land" => "Земельные участки",
        "islands" => "Острова",
        "chalet" => "Шале",
        "castle" => "Замки",
        "townhouse" => "Таунхаусы",
    ];

    array_column($object_types, $value) вернёт пустой массив, потому что первый аргумент должен быть массивом массивов. Я догадываюсь, что тут должно быть такое:
    $objects = [
        ['type' => 'townhouse'],
        ['type' => 'castle'],
        ['type' => 'townhouse'],
        // и ещё куча объектов
    ];
    $count = array_count_values(array_column($objects, 'type'));

    или более дурацкий вариант:
    $objects = [
        ['townhouse' => true],
        ['castle' => true],
        ['townhouse' => true],
        // и ещё куча объектов
    ];
    $count = array_count_values(array_column($objects, $value));
    Написано
  • Какие у битрикса требования к серверу?

    Уже больше похоже просто на хейт, чем на конструктив.

    Нисколько не хейт, а трезвая оценка ситуации. Я достаточно много вложил усилий в изучение Битрикса, и рациональным является ожидание, что эти усилия окупятся более быстрой разработкой. Но по факту я вижу, что чем дальше, тем меньше в моём коде доля Битрикса ( коробочные компоненты, коробочные функции) и больше доля моего кода. Набранный после субъективного "среднего уровня" опыт только помогает мне не долбиться часами в стену там, где у Битрикса "никак"; быстрее отсекать заведомо нерабочие или тормозные варианты.
    модно то твиг, то блейд

    Дело не в моде. Хороший шаблонизатор должен экономить усилия разработчика. Голый PHP их по определению не экономит. Smarty не экономит, потому что это "PHP на PHP". Блейд мне кое-где экономит - то есть он определённо лучше, чем голый PHP.
    Не давать ставить обновления без лицензии тоже нормальное решение, тк модуль может использовать что-то новое из ядра, что приведет к проблемам. Да и не обновлять битрикс не вижу смысла, кроме крохоборства.

    Вы тут смешиваете две вещи: зависимости модулей и возможность установки. Заказчику сложновато объяснить, что вот есть бесплатный модуль в Маркетплейсе, который решает его задачу, но поставить его нельзя, потому что лицензия истекла неделю назад, и надо отстегнуть ещё 20 тысяч за её продление.
    И бывают заказчики, которые год не обновляли ядро, зато модули из Маркетплейса обновляют регулярно. Например, модуль интеграции с Яндекс.Маркетом. Это я к тому, что зависимость от определённой версии модулей ядра - не такая уж распространённая штука ( у самого Битрикса взаимные зависмости сильные, при установке обновлений это хорошо видно ).
    Никто адекватный не будет об этом писать, тк это раскрытие этой уязвимости в паблике и тут же побегут её использовать.

    Это вы так скопом Microsoft, Google и подобных неадекватами назвали? Как раз все адекватные об устранённых уязвимостях пишут, это побуждает пользователей ставить обновления.
    Написать о наличии уязвимости и дать эксплойт это не одно и то же.
    Аспро вот, когда у них в начале года уязвимость нашли, не постеснялась об этом написать. Даже дали инструмент ( плохонький, правда) для тех, у кого лицензия (аспрошная) кончилась.
    Написано
  • Как в Битрикс сформировать динамические мета инфоблока в разделе SEO, используя код в настройках инфоблока?

    если бы это свойство было заполнено у всех элементов каталога, то задачу можно было бы решить без кода:
    https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    Условного оператора там, к сожалению, нет. Можете соорудить своё: https://estrin.pw/bitrix-d7-snippets/s/iblock-inhe...
    Написано
  • Как разбить строку оператором explode?

    geometria, тогда тут регулярка нужна:
    <?php
    $niceLinks = '<a href="http://example.com/file9, http://example.com/file10, http://example.com/file11, http://example.com/file12, ">jpeg, jpeg, jpeg, jpeg, </a>';
    $links = [];
    $matches = [];
    if ( preg_match('#<a href="([^"]+)">([^<]+)</a>#', $niceLinks, $matches) ) {
        $urls = explode(', ', $matches[1]);
        $extensions = explode(', ', $matches[2]);
        foreach ($urls as $k => $url) {
            if ( empty($url) ) {
                continue;
            }
            $links[] = "<a href=\"$url\">{$extensions[$k]}</a>";
        }
    }
    echo '<pre>', var_export($links, true), '</pre>';
    Написано
  • Какие у битрикса требования к серверу?

    У вас была бы такая же борьба с другими CMS

    Сергей, значит, они не хуже. То есть в этой части мой тезис "у Битрикса нет преимуществ" подтверждается.
    В битриксе самая удобная система шаблонов и шаблонов компонентов

    в Битриксе шаблонизатор - голый PHP. Это не минус, но и не плюс. Лично мне шаблоны blade нравятся больше.
    удобная админка

    Вы вообще писали когда-нибудь страницы админки? До гридов там вообще был ад и израиль. И с гридами не всё шоколадно - попробуйте, например, сделать общий (то есть по любой колонке) поиск, когда часть столбцов содержит не сами данные, а ID связей с другими таблицами. Вы там всё проклянёте.
    огромное количество встроенных компонентов

    Вот только их этого огромного количества реально в проектах используется небольшая часть, для самых типовых задач:
    1. меню,
    2. регистрация,
    3. авторизация,
    4. список разделов,
    5. список элементов,
    6. элемент детально,
    7. товар детально,
    8. фильтр каталога,
    9. корзина,
    10. оформление заказа.

    Обычно в этом месте возражают что-то типа такого "если вы берёте фреймворк, то там такое надо писать самому, а тут готовое из коробки". Не спорю, нужно - но любая адекватная студия разработки делает это один раз, а потом переиспользует. Так что это так себе аргумент. Если вы только ворвались в веб-разработку, у вас своего ничего нет, готовые компоненты будут плюсом, да.
    Хорошая связь с 1С.

    Коробочный импорт настолько отстойный, что на проектах более-менее ощутимого размера его приходится заменять на свою реализацию.
    И на других CMS обмен с 1C тоже есть, я где-то встречал.
    следить за обновлениями этих модулей, общаться с тп каждого модуля отдельно

    В Битриксе надо делать то же самое, представляете? Если покупать модули из Макетплейса. И, кстати, Вы не можете ставить обновления из Маркетплейса, если лицензия на Битрикс истекла - даже если обновления самого Битрикса вроде бы не нужны.
    А ещё в Битриксе не пишут в описании обновлений, что они закрыли какую-то уязвимость.
    Написано
  • Как сгенерировать ssl для www?

    Надеюсь, сертификат у вас бесплатный, от Let's Encrypt ? Проверьте содержимое файлов ~/dehydrated/domains.txt , ~/dehydrated/domains/*.txt . Там должна быть строчка:
    site.ru www.site.ru

    Если не так - исправьте и запустите перевыпуск сертификата.

    Либо потыкайтесь в menu.sh , который автоматом запускается при входе под рутом.
    Написано
  • Какие у битрикса требования к серверу?

    Сергей, я с Битркисом работаю уже много лет ( застал переход на Компоненты 2.0, если Вам это что-то говорит). И именно в последние годы заметил, что код, который я пишу:
    1) если он специфичен для Битрикса - это борьба с каким-то проблемами самого Битрикса,
    2) остальное имеет аналоги в других CMS/CMF - в том смысле, что там на получение того же результата я потратил бы столько же времени. То есть Битрикс не помогает мне создавать сайт быстрее.

    Я не говорю, что Битрикс плохой. Я говорю, что у него нет преимуществ, при этом он платный и не очень быстрый.
    Написано
  • Как вывести данные из связанной таблицы?

    Khetag_d, Вам в первую очередь надо понять, что если до вот этих строчек:
    header('Content-Type: application/json');
    echo json_encode($books, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

    произойдёт ошибка, то Content-Type будет вовсе не application/json, а дефолтный text/html , да и содержимое будет обычным текстом.
    А ошибиться можно массой способов
    Написано
  • Как упростить и убыстрить процесс переноса правок с docker на прод?

    Вадим Яндутов, если уж Вы /uploads переносите через rsync , то почему дамп базы не переносите так же? И то, и и то не должно попадать в гит по одинаковой причине.
    Смотрите, как это вижу я:
    1) есть тема Wordpress. Она в гите, тут вопросов нет
    2) есть частные интеграции этой темы в виде сайтов заказчиков. Интеграция состоит из:
    а) темы,
    б) (на старте) чистой инсталляции Wordpress,
    в) плагинов, добавленных заказчиком,
    г) файлов, добавленных заказчиком,
    д) данных в БД, добавленных заказчиком,
    е) конфигурации ( в частности, какие-то изменения в .htaccess) .

    При этом в гите, по-хорошему, должен отслеживаться только пункт 2.а - то есть частные доработки темы специально под этого заказчика. А остальное - чем-то автоматизировано (и это "что-то" под капотом может использовать rsync как транспорт ).

    Это всё к тому, что на вопрос из заголовка ответ даже с ручными манипуляциями сводится к:
    git pull && wp dbi migrate
    ( для миграций можно и другой плагин поискать, я посмотрел первый попавшийся )
    но только при правильном разделении, что есть что.
    Написано