• Почему MATCH может выдавать неверный результат?

    @Geleoss
    ПОИСКПОЗ(запрос; диапазон; метод_поиска)
    1 (значение по умолчанию) указывает функции ПОИСКПОЗ, что диапазон отсортирован в порядке возрастания. Функция возвращает наибольшее значение среди всех значений, которые меньше или равны запросу.
    0 указывает функции, что требуется вернуть точное совпадение. Применяется в случаях, когда диапазон не отсортирован.


    Вам же нужно в своей функции указать 0, =MATCH(B2;B:B;0).
    Ещё лучше, не "растягивать" формулу по ячейкам, а воспользоваться формулой массива:
    =ArrayFormula(IFNA(MATCH(B2:B;B:B;0)))
    Ответ написан
    2 комментария
  • Как отправить POST-запрос через Google Apps Script?

    @danilx556 Автор вопроса
    Нашлось решение, большое спасибо Григорий Боев!

    Нужно было ключ поместить в payload и убрать "JSON.stringify"

    Рабочий код:

    function senler(){
    var data = {
      'access_token': 'ee---------------------------------------6',
      'vk_group_id': 1----------5,
      'v': 2,
      'vk_user_id': 1------------7,
    //  'subscription_id': 0,
      'bot_id': 356810,
    };
    var options = {
      'method': 'post',
      'payload': data
    };
    var response = UrlFetchApp.fetch('https://senler.ru/api/bots/addSubscriber', options);
    Logger.log(response.getResponseCode());
    }
    Ответ написан
    3 комментария
  • Как отнять дни от даты php?

    @bkosun
    $d = date('Y.m.d');
    
    // Объектно-ориентированный стиль
    $date = DateTime::createFromFormat('Y.m.d', $d);
    $date->sub(new DateInterval('P5D'));
    echo $date->format('Y-m-d'); // 2019-05-25
    
    // Процедурный стиль
    $date = date_create_from_format('Y.m.d', $d);
    date_sub($date, date_interval_create_from_date_string('5 days'));
    echo date_format($date, 'Y-m-d'); // 2019-05-25


    https://www.php.net/manual/ru/class.datetime.php
    Ответ написан
    2 комментария
  • Есть ли способ разрешить раскрывать/сворачивать строки (по клику на +), если они попадают в защищенный от редактирования диапазон?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Есть, но решение вам не понравится.

    Это, кстати, не "проблема", а ожидаемое поведение.

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

    @Mahev Автор вопроса
    Спустя почти 8 часов поиска я разобрался и сделал решение сам.
    Если коротко - нужно создать внешнее google web app приложение, в которое с помощью метода fetch передавать адрес ячейки и полученную в промпте от юзера инфу, а уже во внешнем приложении удаленно изменять значение указанной ячейки от имени владельца таблицы (то есть меня).
    Ответ написан
    4 комментария
  • Как отловить 404 ошибку при парсинге?

    $handle = curl_init($url);
    curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);
    $response = curl_exec($handle);
    $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    curl_close($handle);
    if($httpCode == 200) {
      $data=str_get_html($response);
    }
    Ответ написан
    4 комментария
  • Как добавить комментарий в таймлайн лида?

    @black_xe Автор вопроса
    Вот так!

    $queryUrl = 'сайт/вебхук/crm.livefeedmessage.add.json';
    $queryData = http_build_query(array(
        'fields' => array(
            'POST_TITLE' => 'Заявка на консультацию: ',
            'MESSAGE' => "Битрикс24 создан на базе платформы Bitrix Framework.",
            'ENTITYTYPEID' => 1,
            'ENTITYID' => intval($result['result']),
        )
    ));
    
    
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_POST => 1,
        CURLOPT_HEADER => 0,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => $queryUrl,
        CURLOPT_POSTFIELDS => $queryData,
    ));
    $result = curl_exec($curl);
    curl_close($curl);
    $result = json_decode($result, 1);
    Ответ написан
    2 комментария
  • Как сохранить docx файл в PDF через PHPWord?

    @BATPYIIIKOB
    PHP, JS
    dompdf

    require_once("includes/PHPWord/vendor/autoload.php");
    
    $inputfile = "files/temp/мой_файл.docx";
    
    $path = realpath(realpath(__DIR__) . '/includes/dompdf');
    
    echo "realpath: " . $path;
    
    \PhpOffice\PhpWord\Settings::setPdfRendererPath($path);
    \PhpOffice\PhpWord\Settings::setPdfRendererName(\PhpOffice\PhpWord\Settings::PDF_RENDERER_DOMPDF);
    
    //Load temp file
    $phpWord = \PhpOffice\PhpWord\IOFactory::load($inputfile); 
    
    //Save it
    $xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord , 'PDF');
    $xmlWriter->save('result.pdf');


    Также вот: tcpdf
    Ответ написан
    5 комментариев
  • Как найти слово в строке без учета регистра?

    @Fox_zp
    Электроника, програмирование
    use toLowerCase()
    "Привет, мир".toLowerCase().indexOf("привет")
    Ответ написан
    1 комментарий
  • Как получить список пользователей канала Telegram используя Telethon?

    gnifajio
    @gnifajio
    Совершенствуюсь каждый день
    Вот пример кода, который позволит вам получить полный список пользователей канала Telegram с помощью python и библиотеки Telethon:
    # Импортируйте необходимые модули:
    from telethon import TelegramClient
    from telethon.tl.functions.channels import GetParticipantsRequest
    
    # Получите ключи API и секретный ключ для работы с API Telegram. 
    # Для этого нужно зарегистрировать свое приложение на сайте https://my.telegram.org/auth.
    api_id = 123456
    api_hash = 'your_api_hash'
    
    # Создайте экземпляр клиента Telethon:
    client = TelegramClient('session_name', api_id, api_hash)
    
    # Подключитесь к API:
    client.start()
    
    # 6. Получите информацию о канале, в котором вы хотите получить список пользователей. 
    # Для этого можно использовать метод `get_entity`:
    channel = client.get_entity('channel_name')
    
    # Определите функцию для получения списка пользователей:
    def get_channel_users(channel):
        offset = 0
        limit = 100
        all_users = []
    
        while True:
            result = client(GetParticipantsRequest(
                channel=channel,
                filter=ChannelParticipantsSearch(''),
                offset=offset,
                limit=limit,
                hash=0
            ))
            users = result.users
            all_users.extend(users)
            if len(users) < limit:
                break
            offset += limit
        return all_users
    
    # Получите список пользователей канала:
    users = get_channel_users(channel)
    
    # Выведите их на экран:
    for user in users:
        print(user.first_name, user.last_name, user.username)
    Ответ написан
    Комментировать
  • Как создать много пригласительных ссылку с помощью бота?

    gnifajio
    @gnifajio
    Совершенствуюсь каждый день
    Для создания пригласительных ссылок в Telegram канале с помощью Python и библиотеки Telethon вам нужно выполнить следующие шаги:

    • Установите Telethon:

    pip install telethon

    • Получите ключи API и секретный ключ для работы с API Telegram. Для этого нужно зарегистрировать свое приложение на сайте https://my.telegram.org/auth.


    • Импортируйте необходимые модули:

    from telethon import TelegramClient
    from telethon.tl.functions.channels import InviteToChannelRequest


    • Создайте экземпляр клиента Telethon:


    client = TelegramClient('session_name', api_id, api_hash)


    • Подключитесь к API:

    client.start()
    • Получите информацию о канале, в который вы хотите добавить пригласительную ссылку:

    channel = client.get_entity('channel_name')
    • Создайте пригласительную ссылку:


    result = client(InviteToChannelRequest(channel=channel))

    • Получите ссылку из ответа:


    invite_link = result.link
    print(invite_link)
    Ответ написан
    Комментировать
  • Почему на сайте ломается owl слайдер на iPhone и iPad?

    dyuriev
    @dyuriev
    A posteriori
    у вас в адресе ресурсов местами точка в адресе домена лишняя запряталась, ff и хром ее автоматом выпиливают, сафари нет

    <link rel='stylesheet' id='frend-style-css'  href='https://buhbrest.by./wp-content/themes/child-optimazer/css/style-t.css?ver=5.4.2' type='text/css' media='all' />
    <link rel='stylesheet' id='basic-style-owl-css'  href='https://buhbrest.by./wp-content/themes/child-optimazer/css/owl.carousel.min.css?ver=1' type='text/css' media='all' />
    <link rel='stylesheet' id='basic-style-owlth-css'  href='https://buhbrest.by./wp-content/themes/child-optimazer/css/owl.theme.default.min.css?ver=1' type='text/css' media='all' />

    <script type='text/javascript' src='https://buhbrest.by./wp-content/themes/child-optimazer/js/owl.carousel.min.js?ver=1'></script>
    <script type='text/javascript' src='https://buhbrest.by./wp-content/themes/child-optimazer/js/functions.js?ver=1'></script>


    5ff210ddabe69613233227.png
    Ответ написан
    2 комментария
  • Как получить массив всех товаров в woocommerce?

    Punkie
    @Punkie
    <?php
    // WP_Query arguments
    $args = array(
    	'post_type'              => array( 'product' ),
    	'post_status'            => array( 'publish' ),
    	'nopaging'               => true,
    );
    
    // The Query
    $query = new WP_Query( $args );
    
    print_r($query);
    Ответ написан
    1 комментарий
  • Как записать массив в Excel?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    $array = [ '123-345', '999-257', '399-455', '846-313', '555-000', '766-765', '564-564' ];
    
    // создаем excel объект
    $objPHPExcel = new PHPExcel();
    
    // устанавливаем свойства excel документа
    $objPHPExcel->getProperties()->setCreator("Levandovskaya Marina")
    	->setLastModifiedBy("Levandovskaya Marina")
    	->setTitle("Doc Title")
    	->setSubject("Doc Subject")
    	->setDescription("Doc Description")
    	->setKeywords("Doc Keywords")
    	->setCategory("Doc Category");
    $objPHPExcel->setActiveSheetIndex(0);
    
    // добавляем данные из массива в документ
    foreach ( $array as $key => $value ) {
    	$objPHPExcel->setActiveSheetIndex(0)->setCellValue( 'A' . $key, $value );
    }
    
    // сохраняем файл
    $objWriter = PHPExcel_IOFactory::createWriter( $objPHPExcel, 'Excel2007' );
    $objWriter->save( str_replace( '.php', '.xlsx', __FILE__ ) );


    Если нужно будет писать в строку A1, B1, C1 и т.д. используйте массив буквенных ключей

    $letters = array();
    for ( $x = 'A'; $x <= 'ZZ'; $x++ ) {
    	$letters[] =  $x;
    }
    Ответ написан
    1 комментарий
  • Как реализовать скачивание файла через AJAX?

    Через AJAX файл не скачать. Недавно разбирался с этим.
    1. На сервере, при получении AJAX-запроса можно подготовить файл и сформировать уникальную ссылку на него, которую отдать в ответе на полученный AJAX-запрос.
    2. В браузере, получив ссылку на файл, открыть новое окно
    Ответ написан
    Комментировать
  • Почему функция JS так странно себя ведет?

    Какая функция? Попробуйте ответить на этот вопрос, не читая дальше и вы все поймете.

    Если не понятно - читайте дальше:

    Очевидно вы про функцию user_list_product_count, которая у вас ничего не возвращает - вот вы и получаете undefined. Где return-то в функции?

    Если же вы про return item.quantity;, то он из анонимной фукнции внутри forEach вполне себе возвращает число. Только ведь вы его никуда не читаете...
    Ответ написан
    1 комментарий
  • Как организовать работу с кошельком пользователя на сайте?

    @rPman
    Логирование (в таблицах, машиночитаемо) абсолютно всех действий, включая к примеру действия платежки, отбирающей деньги после отработавшей оплаты (например пользователь пошел в банк и отменил перевод), система должна давать возможность оператору что то в этом случае делать (например тут же отменить отправку товара, т.е. тебе нужно связывать деньги с заказами и договорами транспортной компании, хотя это и так придется делать если нужно будет отслеживание плюс переводить заказ в статус отказ или как то так), т.е. в системе не просто нужно хранить но и запилить все возможные бизнес процессы с деньгами и товарами

    'деньги на сбер' это не про техническую часть, вместо платежки ты будешь ручками забивать (ну или там sms сбербанка анализировать), юридически ты не имеешь права так делать (кстати у сбера есть такая фича, оплата по qr коду, хз как дорого, у них там для юриков все дорого)
    Ответ написан
    Комментировать