• Почему не добавляются изображения на страницу confluence?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Замените эту строку:

    await uploadImages(parentPageId, imageDirectory);

    на эту

    await uploadImages(pageId, imageDirectory);

    Добавьте следующую строку в начало , чтобы определить переменную confluenceInstance:

    const confluenceInstance = 'https://ваш-URL-Confluence';


    ну и добавляем что то по типу такого

    const bearerToken = 'ВАШ_ТОКЕН_ДОСТУПА_К_CONFLUENCE';
    Ответ написан
    Комментировать
  • Куда вставить enclosure в wordpress RSS ленте?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    <?php
    /**
     * RSS 0.92 Feed Template for displaying RSS 0.92 Posts feed.
     *
     * @package WordPress
     */
    
    header( 'Content-Type: ' . feed_content_type( 'rss' ) . '; charset=' . get_option( 'blog_charset' ), true );
    $more = 1;
    
    echo '<?xml version="1.0" encoding="' . get_option( 'blog_charset' ) . '"?' . '>'; ?>
    <rss version="0.92">
    <channel>
      <title><?php wp_title_rss(); ?></title>
      <link><?php bloginfo_rss( 'url' ); ?></link>
      <description><?php bloginfo_rss( 'description' ); ?></description>
      <lastBuildDate><?php echo date( 'D, d M Y H:i:s +0300', strtotime('+3 hours')); ?></lastBuildDate>
      <docs>http://backend.userland.com/rss092</docs>
      <language><?php bloginfo_rss( 'language' ); ?></language>
      <?php
      /**
       * Fires at the end of the RSS Feed Header.
       *
       * @since 2.0.0
       */
      do_action( 'rss_head' );
      ?>
    
    <?php
    while ( have_posts() ) :
      the_post();
      ?>
      <item>
        <title><?php the_title_rss(); ?></title>
        <description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
        <link><?php the_permalink_rss(); ?></link>
        <?php
        /**
         * Fires at the end of each RSS feed item.
         *
         * @since 2.0.0
         */
        do_action( 'rss_item' );
        ?>
        <!-- Add the enclosure tag for the image here -->
        <enclosure url="<?php echo esc_url( get_the_post_thumbnail_url( null, 'full' ) ); ?>" type="image/jpeg" />
      </item>
    <?php endwhile; ?>
    </channel>
    </rss>
    Ответ написан
    Комментировать
  • Yii2 переопределить exception для изменения формата ответа?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Создайте свой класс исключения, например, MyHttpException.php:
    <?php
    
    namespace app\components;
    
    use yii\web\HttpException;
    
    class MyHttpException extends HttpException
    {
        public function renderJson()
        {
            $response = \Yii::$app->getResponse();
            $response->data = [
                'message' => $this->getMessage(),
            ];
            $response->send();
        }
    }

    В вашем коде, где вы хотите выбросить исключение с новым форматом ответа, используйте ваш новый класс MyHttpException:

    <?php
    use app\components\MyHttpException;
    
    try {
        // Код, который может вызвать исключение
        throw new MyHttpException('Ваше сообщение об ошибке', 500);
    } catch (MyHttpException $e) {
        $e->renderJson(); // Отправляем ответ в формате {"message": "..."}
    }
    Ответ написан
    Комментировать
  • Как мне возвращать время пользователя?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    from tkinter import *
    from tkinter import ttk
    
    time_list = []
    
    def time_set(x):
        #main presets
        root=Tk()
        root.title('timer')
        root.geometry('400x200+1515+850')
        root.resizable(False, False)
    
        #icon
        icon=PhotoImage(file = "timer.png")
        root.iconphoto(True, icon)
    
        #fields for user time
        entry_hour=ttk.Entry()
        entry_minute=ttk.Entry()
        entry_second=ttk.Entry()
        entry_hour.pack()
        entry_minute.pack()
        entry_second.pack()
    
        def close_window():
            root.destroy()
    
        def set():
            global time_list
            time_list = [entry_hour.get(), entry_minute.get(), entry_second.get()]
    
        #button for preset
        button_set = ttk.Button(text='Set', command=set)
        button_set.pack(anchor=W)
        #button for start
        button_start=ttk.Button(text='Start',command=close_window)
        button_start.pack(anchor=E)
    
        root.mainloop()
    
    time_set(True)
    print(time_list)
    Ответ написан
    Комментировать
  • Почему не передается значение из переменной?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Вы должны использовать одну переменную для хранения значения и передавать ее между файлами, чтобы убедиться, что она актуальна на всех этапах выполнения кода.

    Чтобы исправить ситуацию, следует убедиться, что переменная $opt['page_id'] передается из файла review обратно в index.php, а затем используется в файле header.

    index.php
    <?php
    // Установка начального значения $PAGE_ID
    $PAGE_ID = 0;
    
    // Включение файла header и передача значения $PAGE_ID
    include 'header.php';
    ?>


    review
    <?php
    // Получение идентификатора статьи
    $art_id = 123; // 
    $opt['page_id'] = $art_id;
    ?>


    header.php
    <?php
    // Получение значения $PAGE_ID из корневого файла
    echo 'Страница ' . $PAGE_ID . '; ';
    
    // Использование значения $PAGE_ID в условии
    if ($PAGE_ID == 19) {
      echo 'Ид страницы == 19';
    } else {
      echo 'Ид страницы != 19';
    }
    ?>
    Ответ написан
  • Как сделать счетчик checkbox, vue3?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    <template>
      <div class="divRadio">
        <div class="divus" style="margin-top: 0px;">
          <input type="checkbox" id="name1" class="checkus" @change="schetRadio" />
          <label for="name1" class="labelus">Василенко Пётр Владимирович</label>
        </div>
        <div class="divus">
          <input type="checkbox" id="name2" class="checkus" @change="schetRadio" />
          <label for="name2" class="labelus">Ерёменко Владислав Игоревич</label>
        </div>
        <div class="divus">
          <input type="checkbox" id="name3" class="checkus" @change="schetRadio" />
          <label for="name3" class="labelus">Антонова Елена Сергеевна</label>
        </div>
      </div>
    </template>


    export default {
      data() {
        return {
          schetchik: 0,
        };
      },
      methods: {
        schetRadio() {
          this.schetchik = Array.from(document.querySelectorAll('.checkus'))
            .filter((checkbox) => checkbox.checked)
            .length;
          this.$emit('schetchik', this.schetchik);
        },
      },
    };
    Ответ написан
    Комментировать
  • Как вывести видео в галерею вместе с изображениями - php?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    <?php 
    $project_gallery = get_field( "slajder" );
    ?>
    
    <div class="row">
      <?php if( $project_gallery ): ?>
        <div class="col-xl-8 col-lg-7 col-12">
          <div class="project-slider">
            <div class="project-slider__content" id="project-slider">
              <?php foreach( $project_gallery as $media ): ?>
                <div class="project-slider__slide">
                  <?php if( $media['mime_type'] === 'image/jpeg' || $media['mime_type'] === 'image/png' ): ?>
                    <img src="<?php echo $media['url']; ?>" alt="<?php echo $media['alt']; ?>" class="project-slider__image">
                  <?php elseif( $media['mime_type'] === 'video/mp4' ): ?>
                    <video controls="" autoplay="" name="media" src="<?php echo $media['url']; ?>" type="video/mp4" class="project-slider__image"></video>
                  <?php endif; ?>
                </div>
              <?php endforeach; ?>
            </div>
          </div>
        </div>
      <?php endif; ?>
    </div>
    Ответ написан
    1 комментарий
  • Реализация всплывающего окна при наведении на элемент и закрытие окна при уводе курсора с элемента, а также с раскрывшегося окна?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    const countryModalBtn = document.querySelector(".country-js");
    const countryModal = document.getElementById("countryModal");
    let timeoutId;
    
    function openDropdown() {
        clearTimeout(timeoutId);
        countryModal.classList.add("country-modal--active");
    }
    
    function closeDropdown() {
        timeoutId = setTimeout(function() {
            countryModal.classList.remove("country-modal--active");
        }, 200); 
    }
    
    countryModalBtn.addEventListener("mouseover", openDropdown);
    countryModalBtn.addEventListener("mouseout", closeDropdown);
    countryModal.addEventListener("mouseout", closeDropdown);
    Ответ написан
    Комментировать
  • Как получить значение переменной по имени, если её имя находится в другой переменной?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    @echo off
    setlocal enabledelayedexpansion
    
    set "name1=John"
    set "name2=Jane"
    
    for %%J in (name1 name2) do (
        set vn=!%%J!
        echo !vn!
    )
    endlocal
    Ответ написан
    Комментировать
  • Как перенести строку в самом теге p не применяя других тегов если \n и т.п не работает?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    .break-line {
            white-space: pre-line;
        }
    
    <p class="break-line">
        Ваш текст с переносом строки
        внутри тега p.
    </p>


    $string = trim($string);
    Ответ написан
    Комментировать
  • Как в обработать If-Modified-Since в Joomla?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    В Joomla есть встроенный функционал для обработки If-Modified-Since заголовка
    // Получаем объект текущего ответа
    $response = JFactory::getApplication()->getDocument()->getRenderer('component')->getResponse();
    
    // Проверяем наличие заголовка If-Modified-Since
    if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
        $lastModified = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
    
        // Получаем время последнего изменения страницы/контента
        $modifiedTime = strtotime($yourContentModifiedTime);
    
        // Если контент был изменен после указанной даты If-Modified-Since, отправляем полный ответ
        if ($modifiedTime > $lastModified) {
            // Ваш код для генерации и отправки полного ответа
        } else {
            // Отправляем код 304 Not Modified
            $response->setHeader('HTTP/1.1', '304 Not Modified', true);
            JFactory::getApplication()->close();
        }
    } else {
        // Ваш код для генерации и отправки полного ответа, так как If-Modified-Since заголовок отсутствует
    }
    Ответ написан
  • Как быстро отправить 1 миллион запросов на внешний API?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Go с использованием горутин (goroutines) и каналов (channels):
    package main
    
    import (
    	"encoding/csv"
    	"fmt"
    	"net/http"
    	"os"
    	"sync"
    )
    
    const (
    	apiURL      = "https://api.example.com/compare" // Замените на реальный URL API
    	concurrency = 100                                // Количество одновременных запросов
    )
    
    func main() {
    	// Чтение значений из CSV-файла
    	values, err := readCSV("data.csv") // Замените "data.csv" на путь к вашему CSV-файлу
    	if err != nil {
    		fmt.Println("Ошибка чтения CSV:", err)
    		return
    	}
    
    	var wg sync.WaitGroup
    	semaphore := make(chan struct{}, concurrency)
    
    	for _, value := range values {
    		wg.Add(1)
    		go func(v string) {
    			semaphore <- struct{}{} // Блокировка до доступности слота в семафоре
    			defer func() {
    				<-semaphore // Освобождение слота в семафоре
    				wg.Done()
    			}()
    
    			err := makeAPIRequest(v)
    			if err != nil {
    				fmt.Printf("Ошибка запроса для значения %s: %s\n", v, err)
    			}
    		}(value)
    	}
    
    	wg.Wait()
    	fmt.Println("Все запросы выполнены.")
    }
    
    func readCSV(filename string) ([]string, error) {
    	file, err := os.Open(filename)
    	if err != nil {
    		return nil, err
    	}
    	defer file.Close()
    
    	reader := csv.NewReader(file)
    	records, err := reader.ReadAll()
    	if err != nil {
    		return nil, err
    	}
    
    	var values []string
    	for _, record := range records {
    		values = append(values, record[0]) // Предполагается, что значения находятся в первом столбце CSV
    	}
    
    	return values, nil
    }
    
    func makeAPIRequest(value string) error {
    	// Создание HTTP-запроса к внешнему API
    	req, err := http.NewRequest(http.MethodGet, apiURL, nil)
    	if err != nil {
    		return err
    	}
    
    	// Добавление параметров запроса
    	q := req.URL.Query()
    	q.Add("value", value) // Замените на реальные параметры запроса
    	req.URL.RawQuery = q.Encode()
    
    	// Отправка запроса
    	client := http.Client{}
    	_, err = client.Do(req)
    	if err != nil {
    		return err
    	}
    
    	return nil
    }
    Ответ написан
  • Как экспортировать/конвертировать docx в pdf без API?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Использование библиотеки Python , под названием "python-docx2pdf". Она позволяет конвертировать файлы DOCX в PDF, используя только Python.
    Ответ написан
    Комментировать
  • Как поменять цвет svg в этом случае?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Для того чтобы применить переменную props.color к svg, вам нужно использовать атрибут style вместо fill.
    import svgImg from "../../assets/react.svg";
    
    export default function AnimalItem({ color, name, speed }: Animal) {
      const props = { color, name, speed };
    
      return (
        <div>
          <div>
            <svg
              xmlns="http://www.w3.org/2000/svg"
              xmlnsXlink="http://www.w3.org/1999/xlink"
              aria-hidden="true"
              role="img"
              className="iconify iconify--logos"
              width="35.93"
              height="32"
              preserveAspectRatio="xMidYMid meet"
              viewBox="0 0 256 228"
              style={{ fill: props.color }} // Применение цвета к свойству fill
    Ответ написан
    Комментировать
  • Как задать плавное исчезновение блока в этом js коде?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    $('.header__bottom-img').on('click', function() {
        $(this).closest('.header__bottom').fadeOut(1000); // Исчезновение за 1 секунду
    });
    Ответ написан
    Комментировать
  • Как написать запрос mysqli php?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    <?php
    // Подключение к базе данных
    $mysqli = new mysqli("хост", "пользователь", "пароль", "имя_базы_данных");
    
    // Проверка соединения на ошибки
    if ($mysqli->connect_errno) {
        echo "Не удалось подключиться к MySQL: " . $mysqli->connect_error;
        exit;
    }
    
    // Получение всех записей из таблицы a1
    $query = "SELECT id, relid FROM a1";
    $result = $mysqli->query($query);
    
    if ($result) {
        // Проходимся по каждой записи в a1
        while ($row = $result->fetch_assoc()) {
            $id = $row['id'];
            $relid = $row['relid'];
    
            // Разбиваем строку relid на массив значений
            $relidArray = explode(",", $relid);
    
            // Создаем пустой массив для новых значений relid
            $newRelidArray = array();
    
            // Проходимся по каждому значению relid
            foreach ($relidArray as $value) {
                // Ищем соответствующую запись в таблице a2 по relidnumber
                $query = "SELECT relidnumber FROM a2 WHERE relidnumber = '$value'";
                $a2Result = $mysqli->query($query);
    
                // Если найдена соответствующая запись, добавляем значение в новый массив
                if ($a2Result && $a2Result->num_rows > 0) {
                    $newRelidArray[] = $value;
                }
            }
    
            // Собираем новое значение relid, объединяя элементы массива через запятую
            $newRelid = implode(",", $newRelidArray);
    
            // Обновляем запись в таблице a1 с новым значением relid
            $query = "UPDATE a1 SET relid = '$newRelid' WHERE id = $id";
            $mysqli->query($query);
        }
    
        // Освобождаем результирующий набор
        $result->free();
    } else {
        echo "Ошибка выполнения запроса: " . $mysqli->error;
    }
    
    // Закрываем соединение с базой данных
    $mysqli->close();
    ?>
    Ответ написан
  • Как сравнить значение с диапазоном значений?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    const scrollThreshold = 1; // Твоя погрешность
    
    if (popupScroll.scrollHeight - popupScroll.scrollTop <= popupScroll.clientHeight + scrollThreshold) {
      // Проскролили блок до конца
    }
    Ответ написан
    Комментировать
  • Как подключить библиотеку moment.js в проект на Laravel?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    В вашем случае, чтобы использовать библиотеку Moment.js, вы должны правильно импортировать и использовать ее в коде.

    Вместо import '../../node_modules/moment' в файле resources/js/app.js, вам следует использовать следующий импорт:

    import moment from 'moment';

    После внесения этих изменений перекомпилируйте ваш проект с помощью npm run devи проверьте, не появилась ли ошибка "moment is not defined" при использовании
    Ответ написан
    2 комментария
  • Как сделать так чтобы на почту приходил не текст, а изображение как вложенное?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    Важно enctype="multipart/form-data"
    <form action="your_script.php" method="post" enctype="multipart/form-data">
      <input type="text" name="name" placeholder="Ваше Фамилия Имя Отчество" required>
      <input type="email" name="email" placeholder="Ваш e-mail" required>
      <input type="tel" name="phone" placeholder="Ваш телефон" required>
      <input type="number" name="age" placeholder="Ваш возраст" required>
      <select name="procedure" required>
        <option value="">Выберите процедуру</option>
        <option value="Procedure 1">Procedure 1</option>
        <option value="Procedure 2">Procedure 2</option>
        <option value="Procedure 3">Procedure 3</option>
      </select>
      <input type="file" name="file" id="file" required>
      <button type="submit">Отправить</button>
    </form>


    <?php
    if (isset($_POST['name']) && $_POST['name'] != "") {
      $name = $_POST['name'];
    } else {
      die("Не заполнено поле \"Ваше Фамилия Имя Отчество\"");
    }
    
    if (isset($_POST['email']) && $_POST['email'] != "") {
      $email = $_POST['email'];
    } else {
      die("Не заполнено поле \"Ваш e-mail\"");
    }
    
    // Проверяем, был ли файл загружен
    if (isset($_FILES['file']['tmp_name']) && $_FILES['file']['tmp_name'] != "") {
      // Получаем информацию о загруженном файле
      $file_name = $_FILES['file']['name'];
      $file_tmp = $_FILES['file']['tmp_name'];
      $file_type = $_FILES['file']['type'];
      $file_size = $_FILES['file']['size'];
    
      // Открываем файл и считываем его содержимое
      $file_content = file_get_contents($file_tmp);
    
      // Создаем границу для разделения различных частей письма
      $boundary = "--" . md5(uniqid(time()));
    
      // Создаем заголовок письма с указанием типа контента и границы
      $headers = "MIME-Version: 1.0\r\n";
      $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
      $headers .= "From: $email\r\n";
    
      // Формируем тело письма
      $message = "--$boundary\r\n";
      $message .= "Content-Type: text/plain; charset=UTF-8\r\n";
      $message .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
      $message .= "Фамилия Имя Отчество: $name\r\n";
      $message .= "E-mail: $email\r\n";
      // Остальные поля формы
      $message .= "--$boundary\r\n";
      $message .= "Content-Type: $file_type\r\n";
      $message .= "Content-Transfer-Encoding: base64\r\n";
      $message .= "Content-Disposition: attachment; filename=\"$file_name\"\r\n\r\n";
      $message .= chunk_split(base64_encode($file_content));
      $message .= "--$boundary--";
    
      $subject = 'Анкета модели';
      $address = "ivashnev.nikita@mail.ru";
      $send = mail($address, $subject, $message, $headers);
    
      if ($send) {
        echo "Сообщение отправлено успешно!";
      } else {
        echo "Ошибка, сообщение не отправлено! Возможно, проблемы на сервере";
      }
    } else {
      die("Не заполнено поле \"Ваша фотография проблемной зоны\"");
    }
    ?>
    Ответ написан
    Комментировать
  • Как вывести объект который был создан через BX.create, в нужное место на странице?

    gogowq
    @gogowq
    Ozh domosh acha ozh
    let value = 'Тут твой текст';
    let first = BX.create('SPAN', {
      text: value
    });
    
    // Получаем родительский элемент, к которому нужно добавить объект
    let parentElement = document.getElementById('parentElementId');
    
    // Добавляем объект на страницу
    BX.append(first, parentElement);
    Ответ написан
    Комментировать