• Как получить отфильтрованный по условию и с пагинацией массив с базы данных?

    i229194964
    @i229194964
    Веб разработчик
    import { Repository, EntityRepository } from 'typeorm';
    import { PaginationDto } from './pagination.dto';
    
    @EntityRepository(YourEntity)
    export class YourEntityRepository {
      constructor() {
        super(YourEntity);
      }
    
      async getAllTutors(identification_post: string, dto: PaginationDto) {
        const query = this.createQueryBuilder('yourEntityAlias'); // Замените 'yourEntityAlias' на алиас вашей сущности
    
        query.where('post_text ILIKE :keyword', { keyword: `%${identification_post}%` });
    
        const [results, total] = await query
          .take(dto.limit)
          .skip((dto.page - 1) * dto.limit)
          .getManyAndCount();
    
        return { results, total };
      }
    }
    Ответ написан
    Комментировать
  • Почему не удается записать токен аутентификации в cookie?

    i229194964
    @i229194964
    Веб разработчик
    Браузер по умолчанию запрещает Javascript записывать куки для доменов используйте прокси
    Ответ написан
  • Как искать по внешнему коду?

    i229194964
    @i229194964
    Веб разработчик
    public static function OnAfterIndexAddExtended($searchContentId, &$fields)
    {
        if (
            $fields['MODULE_ID'] !== 'iblock' ||
            !$fields['ITEM_ID'] ||
            !in_array($fields['PARAM2'], self::$Iblock)
        ) {
            return;
        }
    
        // Удалите поле 'TITLE' из массива $fields
        unset($fields['TITLE']);
    
        // Получите внешний код раздела из какого-то другого источника, например, из базы данных
        $externalCode = getExternalCodeForElement($fields['ITEM_ID']);
    
        // Добавьте внешний код к полю 'b_search_content_title'
        $fields['b_search_content_title'] .= ' ' . $externalCode;
    
        // Обновите индекс для измененной записи
        \CSearchFullText::getInstance()->replace($searchContentId, $fields);
    }
    Ответ написан
  • Как объединить 2 потока в Asyncio?

    i229194964
    @i229194964
    Веб разработчик
    import asyncio
    import logging
    import time
    
    from watchdog.observers import Observer
    from watchdog.events import PatternMatchingEventHandler
    
    from aiogram import Bot, Dispatcher, MemoryStorage
    
    from config import config
    import Handlers
    from sqlFile import db, sql, create_sql
    
    class MyHandler(PatternMatchingEventHandler):
        patterns = ["*.txt", "*.jpg"]
    
        def process(self, event):
            out = str(event.src_path)
            with open(out, "r") as t1:
                text = t1.read()
            print(out)
            print(text)
    
        def on_modified(self, event):
            self.process(event)
    
        def on_created(self, event):
            self.process(event)
    
    async def observer_run():
        args = 'C:\\ForTest'
        observer = Observer()
        observer.schedule(MyHandler(), path=args if args else '.')
        observer.start()
        try:
            while True:
                time.sleep(1)
        except KeyboardInterrupt:
            observer.stop()
        observer.join()
    
    async def main():
        bot = Bot(token=config['token'], parse_mode="HTML")
        storage = MemoryStorage()
        dp = Dispatcher(storage=storage)
        logging.basicConfig(level=logging.INFO)
        create_sql()
    
        dp.include_router(Handlers.user_router)
        await bot.delete_webhook(drop_pending_updates=True)
        await dp.start_polling(bot)
    
    if __name__ == "__main__":
        asyncio.run(asyncio.gather(main(), observer_run()))
    Ответ написан
    1 комментарий
  • Discord бот, кто покинул сервер, уведомление?

    i229194964
    @i229194964
    Веб разработчик
    Это связано с тем, что Discord API не всегда предоставляет ботам полную информацию о пользователях, особенно в случаях, когда пользователь был кикнут или находился в режиме "невидимости". В таких ситуациях, боты могут иметь ограниченный доступ к данным о покинувших сервер пользователей.
    Ответ написан
  • В каком месте начинается создание элементов в цепочке от createRoot?

    i229194964
    @i229194964
    Веб разработчик
    const root = ReactDOM.createRoot(document.getElementById('root'));
    const container = ReactDOM.createContainer(document.getElementById('root'), false, false);
    ReactDOM.updateContainer(element, container, null, () => {
      // Callback, который вызывается после завершения обновления
    });
    const fiberRoot = ReactDOM.createFiberRoot(container, false);
    Ответ написан
    Комментировать
  • Как рендерить страницу через post запрос в Express js?

    i229194964
    @i229194964
    Веб разработчик
    // На сервере Express.js
    app.post('/some-route', (req, res) => {
      // Обработка данных и отправка их клиенту
      const dataToSend = { message: 'Данные успешно получены' };
      res.json(dataToSend);
    });
    
    // На клиенте (JavaScript)
    fetch('/some-route', {
      method: 'POST',
      body: JSON.stringify({ /* данные для отправки */ }),
      headers: {
        'Content-Type': 'application/json'
      }
    })
    .then(response => response.json())
    .then(data => {
      // Рендеринг данных на стороне клиента
      const messageElement = document.getElementById('message');
      messageElement.innerText = data.message;
    })
    .catch(error => console.error(error));
    Ответ написан
    Комментировать
  • Как сделать оформление заказа WooCommerce и wp через Contact Form 7?

    i229194964
    @i229194964
    Веб разработчик
    установите плагины
    WooCommerce , Contact Form 7, Contact Form 7 Dynamic Text Extension
    в WooCommerce измените код
    add_action('wpcf7_before_send_mail', 'custom_wpcf7_add_to_cart');
    
    function custom_wpcf7_add_to_cart($form) {
        // Получите данные из формы
        $product_id = intval($_POST['your-product-id']); // Замените на имя поля для ID товара
        $quantity = intval($_POST['your-product-quantity']); // Замените на имя поля для количества товара
    
        // Проверьте, что товар существует в WooCommerce
        if (wc_get_product($product_id)) {
            // Добавьте товар в корзину
            WC()->cart->add_to_cart($product_id, $quantity);
        }
    }
    Ответ написан
    2 комментария
  • Как изменить лимит символов в мета тегах на Wordpress?

    i229194964
    @i229194964
    Веб разработчик
    измените function.php
    function custom_ai1seo_meta_length($length) {
        return 250; // Замените это значение на желаемый лимит символов.
    }
    
    add_filter('aioseop_title_length', 'custom_ai1seo_meta_length');
    add_filter('aioseop_description_length', 'custom_ai1seo_meta_length');
    Ответ написан
  • Как перебирать массив из 16 элементов 16 раз в c++ с подключением видеокарты?

    i229194964
    @i229194964
    Веб разработчик
    #include <iostream>
    #include <cuda_runtime.h>
    
    __global__ void generateHexString(char* result, int* array)
    {
        int idx = blockIdx.x * blockDim.x + threadIdx.x;
        result[idx] = array[idx];
    }
    
    int main()
    {
        const int arraySize = 16;
        char array[arraySize] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
        char result[arraySize];
    
        char* d_result;
        int* d_array;
    
        cudaMalloc((void**)&d_result, arraySize * sizeof(char));
        cudaMalloc((void**)&d_array, arraySize * sizeof(int));
    
        cudaMemcpy(d_array, array, arraySize * sizeof(int), cudaMemcpyHostToDevice);
    
        int threadsPerBlock = 16;
        int blocksPerGrid = 1;
    
        generateHexString<<<blocksPerGrid, threadsPerBlock>>>(d_result, d_array);
    
        cudaMemcpy(result, d_result, arraySize * sizeof(char), cudaMemcpyDeviceToHost);
    
        cudaFree(d_result);
        cudaFree(d_array);
    
        std::cout << "Generated hex string: " << result << std::endl;
    
        return 0;
    }
    Ответ написан
    Комментировать
  • Не видит драйвера на сетевую карту?

    i229194964
    @i229194964 Автор вопроса
    Веб разработчик
    В итоге поставил драйвера на 11 винду сработало
    Ответ написан
    Комментировать
  • Как делать fetch запросы JS через прокси?

    i229194964
    @i229194964
    Веб разработчик
    import fetch from 'node-fetch'; // Подключите библиотеку fetch, если еще не подключили
    import { HttpsProxyAgent } from 'https-proxy-agent';
    
    export async function getLinkApi() {
      try {
        const proxyAgent = new HttpsProxyAgent('http://176.31.129.223:8080');
        const response = await fetch('https://livefootball.su/wp-json/wp/v2/pages', {
          agent: proxyAgent,
          headers: {
            // Если требуется, добавьте дополнительные заголовки
            // 'Authorization': 'Bearer YourAccessToken',
            // 'User-Agent': 'YourUserAgent',
          },
        });
    
        const data = await response.json();
        const link = ""; // Обработка данных
    
        return link;
      } catch (error) {
        console.error('Error fetching data:', error);
        throw error;
      }
    }
    Ответ написан
    2 комментария
  • Как получить количество колонок галереи?

    i229194964
    @i229194964
    Веб разработчик
    вот пример
    function custom_gallery_function($output, $attr) {
        // Получаем количество колонок из аргументов галереи
        $columns = isset($attr['columns']) ? intval($attr['columns']) : 3;
    
        // Ваш код для вывода галереи с заданным количеством колонок
        // ...
    
        return $output;
    }
    add_filter('post_gallery', 'custom_gallery_function', 10, 2);
    Ответ написан
    Комментировать
  • Как отсортировать массив элементов?

    i229194964
    @i229194964
    Веб разработчик
    надо в вашем блоке computed уберите возвраты arrX изнутри каждой условной конструкции
    computed: {
      sort() {
        if (this.selected === "По популярности") {
          for (let i = 0; i < this.bread.length; i++) {
            arrX[i].sort(this.changePopular);
          }
        } else if (this.selected === "По возрастанию цены") {
          for (let i = 0; i < this.bread.length; i++) {
            arrX[i].sort(this.changePlus);
          }
        } else if (this.selected === "По уменьшению цены") {
          for (let i = 0; i < this.bread.length; i++) {
            arrX[i].sort(this.changeMinus);
          }
        } else if (this.selected === "Сначала обсуждаемые") {
          for (let i = 0; i < this.bread.length; i++) {
            arrX[i].sort(this.changeDiscussed);
          }
        } else if (this.selected === "Сначала с лучшей оценкой") {
          for (let i = 0; i < this.bread.length; i++) {
            arrX[i].sort(this.changeBest);
          }
        }
        return arrX; // Возврат массива после всех итераций
      },
    },
    Ответ написан
  • Как в отношениях получить значение одной колонки без массива?

    i229194964
    @i229194964
    Веб разработчик
    $result = MyModel::with('users:email')->get()->map(function ($item) {
        $item['users'] = $item['users'][0]['email'];
        return $item;
    });

    array:1 [▼
      0 => array:5 [▼
        "id" => 1
        "user_id" => "222"
        "mymodel" => "success"
        "created_at" => "2023-07-26T15:48:44.000000Z"
        "updated_at" => "2023-07-26T15:48:44.000000Z"
        "users" => "e@test.com"
      ]
    ]
    Ответ написан
    Комментировать
  • Как решить проблемы интерполяции строк и доработать код чтобы работала пагинация при парсинге данных в php?

    i229194964
    @i229194964
    Веб разработчик
    тобы решить проблему с пустым значением 0 в поле price, вы можете изменить способ преобразования строки $price в число. Вместо float($price), я предлагаю использовать функцию str_replace() для удаления всех нечисловых символов из строки, а затем преобразовать результат в число.
    $price = $priceElem->plaintext;
    $priceCleaned = str_replace(',', '.', preg_replace('/[^0-9,.]/', '', $price));
    $priceN = floatval($priceCleaned);

    Таким образом, $priceN будет содержать корректное числовое значение price, которое можно использовать для вставки в базу данных.

    После этого, вы можете использовать $priceN в вашем запросе вместо $priceCH
    $db->query("INSERT IGNORE INTO posts (`title`, `img`, `link`, `price`) 
    VALUES('{$post['title']}', '{$post['img']}', '{$post['link']}', {$priceN})");

    Это должно решить проблему с пустым значением 0 и корректно передавать числовое значение price в базу данных.
    Ответ написан
    Комментировать
  • Как скачать blob в selenium?

    i229194964
    @i229194964
    Веб разработчик
    from selenium import webdriver
    
    # Создаем экземпляр драйвера Selenium (здесь используется Chrome, но может быть и другой)
    driver = webdriver.Chrome()
    
    # Открываем веб-страницу, на которой находится объект Blob (например, ссылка на скачивание файла)
    driver.get("https://example.com/download_blob")
    
    # Выполняем JavaScript для получения URL объекта Blob в виде Data URL
    # Это позволяет получить содержимое Blob в виде base64-кодированной строки
    data_url = driver.execute_script("return URL.createObjectURL(new Blob(['Hello, World!'], {type: 'text/plain'}));")
    
    # Создаем скрытый элемент <a> для скачивания файла
    driver.execute_script(f"""
        var a = document.createElement('a');
        a.href = '{data_url}';
        a.download = 'file.txt';
        a.style.display = 'none';
        document.body.appendChild(a);
        a.click();
        URL.revokeObjectURL('{data_url}');
    """)
    
    # Закрываем драйвер
    driver.quit()
    Ответ написан
    Комментировать
  • Как сделать один запрос вне зависимости от количества переходов?

    i229194964
    @i229194964
    Веб разработчик
    if ($user_damage > $battle['health']) {
        // Установка блокировки на таблицу `_basement_battle`
        mysql_query('LOCK TABLES `_basement_battle` WRITE');
    
        try {
            mysql_query('SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE');
            mysql_query('START TRANSACTION');
    
            // Выполнение обновлений
            mysql_query('UPDATE `basement_clans` SET `json_key` = JSON_SET(`json_key`, \'$."' . 'key_'.($battle['boss_id'] + 1) . '"\', JSON_EXTRACT(`json_key`, \'$."' . 'key_'.($battle['boss_id'] + 1) . '"\') + 1), `json_limit` = JSON_SET(`json_limit`, \'$."' . 'boss_'.$battle['boss_id'] . '"\', JSON_EXTRACT(`json_limit`, \'$."' . 'boss_'.$battle['boss_id'] . '"\') + 1), `json_medals` = JSON_SET(`json_medals`, \'$."' . 'boss_'.$battle['boss_id'] . '"\', JSON_EXTRACT(`json_medals`, \'$."' . 'boss_'.$battle['boss_id'] . '"\') + 1) WHERE `clan` = '.$clan['id'].' AND `jail` = '.$user['reset']);
    
            mysql_query('DELETE FROM `_basement_battle` WHERE `id` = '.$battle['id']);
    
            mysql_query('COMMIT');
        } catch (Exception $e) {
            mysql_query('ROLLBACK');
        } finally {
            // Снятие блокировки после выполнения транзакции
            mysql_query('UNLOCK TABLES');
        }
    }
    Ответ написан
  • Как ускорить поиск нескольких подстрок в строке в го?

    i229194964
    @i229194964
    Веб разработчик
    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	text := "Это пример текста, в котором нужно проверить наличие нескольких подстрок."
    	substrings := []string{"пример", "нужно", "подстрок"}
    
    	// Собираем все подстроки в регулярную строку, разделенную символами "|"
    	regexStr := strings.Join(substrings, "|")
    
    	// Создаем регулярное выражение из строки
    	regex := regexp.MustCompile(regexStr)
    
    	// Ищем все совпадения регулярного выражения в тексте
    	matches := regex.FindAllString(text, -1)
    
    	// Выводим результаты
    	for _, match := range matches {
    		fmt.Println("Найдено:", match)
    	}
    }
    Ответ написан
  • Какое техническое решение выбрать под проект?

    i229194964
    @i229194964
    Веб разработчик
    PHP - это хороший вариант, особенно если у вас есть опыт работы с ним. Но для такого проекта я бы рекомендовал рассмотреть современные PHP-фреймворки, такие как Laravel или Symfony. Они предоставляют широкий набор инструментов для работы с API, базами данных и разработки админ-панелей. Кроме того, у них активное сообщество, множество готовых решений и расширений.

    Если вы интересуетесь современными технологиями, можете рассмотреть использование JavaScript-фреймворков, таких как React или Vue.js. Они позволяют создавать мощные и отзывчивые пользовательские интерфейсы, а для серверной части можно использовать Node.js с Express.js или другим фреймворком.

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