Задать вопрос
  • Почему не получается спарсить названия учебных заведений?

    Vindicar
    @Vindicar
    RTFM!
    Ты хотя бы в браузере пробовал открыть исходный код страницы (обычно Ctrl-U)?
    Это динамический сайт, там по умолчанию в body два с половиной скрипта, которые уже подтягивают остальной контент. Конечно, ты его не получишь одним запросом.
    Выясняй, какой запрос скрипты делают для получения контента, и имитируй уже его. Консоль разработчика в помощь.
    Ответ написан
    Комментировать
  • Как получить избражение корзины в битрикс 1с?

    @itauditmedia
    CSaleBasket::GetList - не отдает изображение
    вам надо самостоятельно "добрать" его по PRODUCT_ID
    примерно так

    while($elem = $basket->getNext()){
    $el = CIBlockElement::GetList( [], ["ID"=>$elem['PRODUCT_ID']], false, false, ["ID","DETAIL_PICTURE"])->fetch(); 
    if($el['DETAIL_PICTURE']>0) $file = CFile::ResizeImageGet($el['DETAIL_PICTURE'], array('width'=>150, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, true); 
    }

    в $file['src'] - будет путь к файлу
    Ответ написан
    1 комментарий
  • Как хранить списки в бд?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если использовать реляционные базы данных то делить на таблицы и описывать связи, предварительно избавившись от списков, на уровне пандаса, переформатировав (распрямив) датафрейм, метод explode например поможет избавится от списков. В целом одна и та же информация, может быть представлена в разном виде и в реляционных бд предпочтительнее (но не обязательно) иметь простые типы данных.

    Использовать не реляционные базы данных, они больше подходят если данные имеют вложенную структуру и простым переформатированием не обойтись.

    Если тебя все устраивает и тебе удобно работать с фреймом, но хочется иметь такое представление информации только не в памяти, а на диске. Можешь использовать например сериализацию, метод для фреймаto_pickle, и соответственно read_pickle для чтения.

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

    @Akina
    Сетевой и системный админ, SQL-программист.
    Вложенные списки организуют классическую связь 1:N (одному блоку данных соответствует несколько записей из списка).
    Если эти строки списка как-то обрабатываются (поиск, фильтрация и пр.), то наиболее разумна схема с 2 таблицами и внешним ключом.
    Если же списки только сохраняются и извлекаются, без вообще какой-либо обработки, то можно использовать предложенную mxelgin схему с хранением всего списка в одном поле TEXT либо JSON в сериализованном виде.
    Ответ написан
    Комментировать
  • Как экстренно удалить профиль текущего пользователя Windows 10?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Логофф текущего пользователя, можно и с помощью команды (logoff), главное полноценный выход, а не смена пользователя, тыкаем мышкой на вход другим пользователем, у которого при входе стоит автоматический запуск скрипта, который удаляет нужного пользователя + делает все остальные нужные действия.
    Ответ написан
    Комментировать
  • Как назвать классы заказа для паттерна "Состояние"?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Попробуйте вместо попыток натянуть сову на глобус, а задачу на паттерн, действовать от простого. Пусть заказ бывает бесплатным. У заказа есть флаг "является ли он бесплатным". Мы даже можем воспользоваться возможностями языка и прикрутить какой-то геттер для надежности, чтобы флаг менялся в зависимости от устанавливаемой цены (в примерах условно JS):
    class Order {
        get isFree() { return this.price === 0; }
    }

    Мы можем прям сюда присобачить и оплату, но допустим мы не хотим, чтобы заказ что-то знал об урлах для оплаты. Ему это не надо. Заказ - это список товаров, какой-то статус завершенности, адрес доставки и.т.д. Он про данные, не про процессы. Путь будет обработчик, который может провести заказ как кассир в пятерочке:
    class Order { /* --- */ }
    
    class Сashier {
        proceed(order) {
            const url = order.isFree ? "free url" : "paid url";
            // ...редиректим, проводим оплату, предлагаем пакетик и кофе по акции
        }
    }

    Допустим у нас есть много платежных систем, там все сложно. Инфраструктура - не кассира дело. Ок, дадим ему доступ к адаптеру, который скрывает все за собой и проводит непосредственно оплату.
    class Order { /* --- */ }
    
    class PaymentHandler {
        charge(price) {
            // ...редиректим куда надо, в зависимости от цены и привязанной карты
        }
    }
    
    class Cashier {
        proceed(order) {
            const isSuccess = PaymentHandler.charge(order.price);
            
            if (isSuccess) {
                // заказ прошел
            } else {
                throw new Error('ГААААААЛЯЯЯ ОТМЕЕЕЕНА!!!!');
            }
        }
    }

    Получается четкое разделение ролей. Заказ - про данные, кассир - про процесс, обработчик оплаты - про муть с платежными системами. Возможно, что даже флаг isFree не особо нужен у заказа. И, возможно, что к паттерну "состояние" мы не придем, потому что он в первую очередь решает проблему бесконечного количества комбинаций флагов, но если нет флагов, то нет и проблемы. И.т.д. Развивайте конструкции по мере их естественного появления. Тогда проблем с именованием будет на порядок меньше. Потому что каждое слово в коде отражает какую-то заранее сформированную сущность в алгоритмах в голове.
    Ответ написан
    2 комментария
  • Как на я.картах формируют процентный показатель на основе отзывов?

    Tkreks
    @Tkreks
    Системный инженер
    Честно говоря не писал отзывы на картах, но порой видел оценки. Яндекс сейчас продвигает свою ИИ, особенно ее видно на маркете, хотя как по мне даже жптпро, тупее чем chatgtp 4o. Думаю мое предположение не далеко от истины будет - скорее всего они прогоняют отзывы через свою ИИ, получают контекст каждого отзыва и на основании него выдают такие результаты. Т.е. если в отзыве есть упоминание о персонале, это пойдет в общий зачет и даст контекст, который потом так или иначе оценивается и выводится в статистику. Т.к. суммарная оценка 5 баллов, это значит что >95% пользователей поставили 5 баллов. А в контексте персонал - 92%, ремонт 92% и тд, следовательно они как то вычленяют через ИИ контекст отзывов, и выставляют по нему свою оценку. Более детально, могут рассказать сотрудники яндекса, но они это не сделают ибо nda
    Ответ написан
    1 комментарий
  • Как это сделать в smart.filter?

    Ge1i0N
    @Ge1i0N
    Нужно програмировать.
    Идёте в шаблон фильтра, вносите правки в код - вешаете readonly на остальные инпуты, если один выбран.
    Ответ написан
    1 комментарий
  • Интернет-магазин на Битрикс, как изменить номер телефона в шапке и в подвале?

    Ge1i0N
    @Ge1i0N
    Судя по коду - вы запрашиваете свойства из элемента с id 1 инфоблока с id 1.
    $db_contacts = CIBlockElement::GetProperty(1, 1, array("SORT" => "ASC"), Array());


    Получается телефон правится где-то в админке в инфоблоках.
    Следовательно, url страницы будет примерно такой:
    ВАШ_САЙТ/bitrix/admin/iblock_element_edit.php?IBLOCK_ID=1&ID=1&type=?

    Однако остаётся вопрос, что же должно быть в type?
    Для этого мы идём в
    ВАШ_САЙТ/bitrix/admin/iblock_type_admin.php?lang=ru
    и смотрим что там бывает в столбце id, после чего по очереди пробуем подставить это значение в строку выше вместо вопросительного знака в после равно в строке type=? например
    ВАШ_САЙТ/bitrix/admin/iblock_element_edit.php?IBLOCK_ID=1&ID=1&type=settings
    Ответ написан
    1 комментарий
  • Как установить обновление Jetbrains?

    @pisarevvlad Автор вопроса
    Решился вопрос следующим путем:
    - включил VPN (Польша)
    - зарегистрировал аккаунт
    - привязал его к IDE
    - выбрал регион - Турция
    - плагины стали устанавливаться и все работает
    Ответ написан
    1 комментарий
  • Как правильно составить регулярное выражение для проверки доменного имени?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    $arr = [
        'site.ru',
        'site.com',
        'my-site.com',
        'my-cool-site.com',
        'my_site.com',
        'site123.com',
        'site.travel',
        'si$te.com',
        'site.r',
    ];
    foreach ($arr as $str) {
        $result = filter_var($str, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME);
        echo $str . ' - ' . ($result === false ? 'INVALID' : $result) . '<br>';
    }
    
    // site.ru - site.ru
    // site.com - site.com
    // my-site.com - my-site.com
    // my-cool-site.com - my-cool-site.com
    // my_site.com - INVALID
    // site123.com - site123.com
    // site.travel - site.travel
    // si$te.com - INVALID
    // site.r - site.r
    Ответ написан
    Комментировать
  • Где находится стандартный шаблон интернет-магазина Битрикс?

    Ge1i0N
    @Ge1i0N
    Файлы стандартных шаблонов сайта лежат в /bitrix/templates/ВАШ_ШАБЛОН_САЙТА
    Файлы стандартных шаблонов шаблона компонента лежат в
    /bitrix/components/bitrix/ВАШ_КОМПОНЕНТ/templates/ВАШ_ШАБЛОН_КОМПОНЕНТА

    Но править их в этой локации не нужно, лучше почитайте документацию по шаблонам - начать можно отсюда: https://dev.1c-bitrix.ru/learning/course/index.php...
    Ответ написан
    Комментировать
  • Как залить большой файл sql в базу?

    @Everything_is_bad
    запусти screen и в нем включи загрузку
    Ответ написан
    4 комментария
  • Почему ответ post запроса в консоли браузера содержит больше информации?

    Aetae
    @Aetae
    Тлен
    Ответ очевиден. То что ты видишь через вкладку сеть и через пуфон - это то, что на самом деле отдаёт сервер.
    То что ты видишь в консоли - это обогащённые скриптом данные. Либо неявно - в самой функции, которая отвечает за запрос данных, либо где-то потом в коде самого приложения. Объекты которые ты логируешь в консоле хранятся как и во всём js - по ссылке, т.е. разворачивая объект ты видишь данные в нём а момент разворота, а не на момент логирования.
    Ответ написан
    Комментировать
  • Почему мой жесткий диск то умирает, то подает признаки жизни при странных обстоятельствах?

    15432
    @15432
    Системный программист ^_^
    Если вам действительно важны данные на нем - обратитесь в контору по восстановлению дисков. Каждый запуск, каждая подача питания, каждая ваша попытка что-то сделать уменьшает шансы на восстановление.
    Ответ написан
    Комментировать
  • Как запустить mysql если есть проблема с файлом ibdata1?

    2ord
    @2ord
    Т.е. вероятно файл поврежден. Удаление файла не привело к его пересозданию, появилась другие ошибки.

    Подскажите в какую сторону копать?

    Копать в сторону восстановления с резервной копии с дампа.
    Если таковой нет, то устанавливать с чистого листа.
    Ответ написан
    Комментировать
  • Почему при передаче значения переменной в $_GET ссылке выходит ошибка 404?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Основных потенциальных причин я вижу две:
    1. Вы указываете относительный путь и файл object-page.php ищется в том разделе, в котором вы находитесь, а его там нет. Не нужно никогда использовать относительные пути в адресах, всегда указывайте полный путь от корня сервера.
    2. Ваш скрипт object-page.php отрабатывает, пытается найти сущность с таким id и не находит. Может, потому что в get-параметре что-то не то или вообще пусто, а, может, по какой-то внутренней бизнес-логике. В этом случае ничем не можем помочь, не видя код скрипта и дамп переменных.
    Ответ написан
    Комментировать
  • Надо ли выгружать файл базы данных на гитхаб?

    @kkidd
    Выгружать БД не надо, в .gitignore добавить исключение для локальной бд.
    На БД "файлы" остались 66ce5c6b697ad065143392.png
    Если кто-то выгрузит репозиторий, то он их увидит.
    Если сделаешь дополнения и обновишь их на гите, старая версия останется
    https://github.com/dem171/RepProject/commits
    Ответ написан
    Комментировать