Задать вопрос
  • Как подключиться к postgreSQL на опенсервере из node.js?

    AlexaShemetova
    @AlexaShemetova Автор вопроса
    While I'm breathing - I love and believe
    Интересная особенность опенсервера - в названии базы database нужно указывать не таблицу с которой работаешь, а postgres, а в запросах уже указывать название таблицы
    const Pool = require('pg').Pool
    
    const pool = new Pool({
        user: 'postgres',
        password: 'postgres',
        host: 'localhost',
        port: 5432,
        database: 'postgres' // тут
    });
    
    module.exports = pool;
    Ответ написан
    Комментировать
  • Как убрать вывод ошибки при редактировании записи WP?

    AlexaShemetova
    @AlexaShemetova Автор вопроса
    While I'm breathing - I love and believe
    Проблему выдавал плагин Google XML Sitemap Generator, отключила и ошибка исчезла
    Ответ написан
    Комментировать
  • Как сделать переход по ссылкам каталога php?

    AlexaShemetova
    @AlexaShemetova Автор вопроса
    While I'm breathing - I love and believe
    Реализовала через подгрузку директорий аякс запросом, код решения в другой моей теме Как реализовать файловый менеджер на wordpress?
    Ответ написан
    Комментировать
  • Как реализовать файловый менеджер на wordpress?

    AlexaShemetova
    @AlexaShemetova Автор вопроса
    While I'm breathing - I love and believe
    Решила задачу следующим образом - поставила плагин файловый менеджер (File Manager), далее на фронтенде выгружаю родительскую папку с вложенными файлами, для каталогов в атрибуте data-folder указываю путь к этой папке. По клику получаю этот путь и отправляю в аякс обработчик, оттуда подгружается директория по которой произошел клик, ниже привожу весь код, может кому пригодится

    Первичный вывод главной папки в нужном месте темы:

    $dir = 'userarea';
    
    $home_path = '/';
    
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            while (($file = readdir($dh)) !== false) {
                if($file !='.' && $file !='..'){
                    if(is_dir($dir.'/'.$file)){
    
                        ?>
                            <div class="item item-folder">
                                <a href="#">
                                    <i class="fa fa-folder"></i>
                                    <span data-folder="<?= $dir.'/'.$file ?>"><?= $file ?></span>
                                </a>
                            </div>
                        <?php
                    }else{
                
                        ?>
                            <div class="item item-file">
                                <a target="_blank" href="<?= $home_path . $dir . '/' . $file ?>" target="_blank">
                                    <i class="fa fa-file-pdf-o"></i> <?= $file ?> 
                                </a>
                            </div>
                        <?php
                    }
                }
            }
            closedir($dh);
        }
    }


    Обработка клика:

    $('#folder_list').on('click', 'span', function (e) {
    
        e.preventDefault();
        var $this = $(e.target);
    
        $.ajax({
            url: roboApp.ajax,
            type: 'POST',
            data: { action: 'getfolder', foldername: $this.attr('data-folder') }, // можно 
            success: function (data) {
                $('#folder_list').html(data);
            }
        });
    });


    Обработка аякс запроса в functions.php

    if (wp_doing_ajax()) {
        add_action('wp_ajax_getfolder', 'get_folder');
        add_action('wp_ajax_nopriv_getfolder', 'get_folder');
    }
    function get_folder() {
    	if (isset($_POST)) {
    
    		$path = $_POST['foldername'] ? sanitize_text_field($_POST['foldername']) : false;
    
            $dir = get_home_path() . $path;
    
            if (is_dir($dir)) {
                if ($dh = opendir($dir)) {
                    while (($file = readdir($dh)) !== false) {
                        if($file !='.' && $file !='..'){
                            if(is_dir($dir.'/'.$file)){
                                ?>
                                    <div class="item item-folder">
                                        <a href="#">
                                            <i class="fa fa-folder"></i>
                                            <span data-folder="<?= $path.'/'.$file ?>"><?= $file ?></span>
                                        </a>
                                    </div>
                                <?php
                            }else{
                                ?>
                                    <div class="item item-file">
                                        <a target="_blank" href="<?= '/' . $path . '/' . $file ?>" target="_blank">
                                            <i class="fa fa-file-pdf-o"></i> <?= $file ?> <span class="pull-right">1.2MB</span>
                                        </a>
                                    </div>
                                <?php
                            }
                        }
                    }
                    closedir($dh);
                }
            }
    
    		wp_die();
    	} else {
     	   echo json_encode(['error' => true, 'message' => '1']);
    		// exit;
    		wp_die();
    	}
    }
    Ответ написан
    Комментировать
  • Как подружить fotorama4 и fancybox3?

    AlexaShemetova
    @AlexaShemetova Автор вопроса
    While I'm breathing - I love and believe
    Не много поковыряла апи и того, и другого, решила проблему таким образом, может кому пригодится
    $(function() {
            var $fotoramaDiv = $('.fotorama').fotorama();
            var fotorama = $fotoramaDiv.data('fotorama');
            var imagArr = fotorama.data;
            var srcArr = [];
    
            for(var i = 0; i < imagArr.length; i++){
                var src = {};
                src.src = imagArr[i].img;
                srcArr.push(src);
            }
            
            $('.fotorama__img').click(function(){
                $.fancybox.open(srcArr, {
                    loop: false
                });
            });
        });
    Ответ написан
    Комментировать
  • Как получить массив из GET параметров?

    AlexaShemetova
    @AlexaShemetova Автор вопроса
    While I'm breathing - I love and believe
    В общем нашаманила как то так, вроде работает
    if (isset($_GET['lot_id'])) {
            $lot_id = $_GET['lot_id'];
            if (!isset($_COOKIE['viewed_lots'])) {
                setcookie('viewed_lots', $lot_id, time() + 100500, '/');
            }else{
                $cook_arr = explode(',' , $_COOKIE['viewed_lots']);
                if(!in_array($lot_id, $cook_arr)){
                    // echo "нет значения";
                    $cook_arr[] = $lot_id;
                    $string = implode(',' , $cook_arr);
                    setcookie('viewed_lots', $string, time() + 100500, '/');
                }
            }
            // setcookie("viewed_lots", "", time() - 3600);
            // echo Debug::d($cook_arr,'files',2);
            echo Debug::d($_COOKIE,'files',2);
        }
    Ответ написан
    Комментировать
  • Как получить дату от текущей прибавив произвольное кол-во дней js?

    AlexaShemetova
    @AlexaShemetova Автор вопроса
    While I'm breathing - I love and believe
    Как то так сделала, решение нубика, но вроде работает :)

    var daysObj = {
      Mon: 'Понедельник',
      Tue: 'Вторник',
      Wed: 'Среда',
      Thu: 'Четверг',
      Fri: 'Пятница',
      Sat: 'Суббота',
      Sun: 'Воскресенье'
    }
    
    var monthObj = {
      Jan: 'Января',
      Feb: 'Февраля',
      Mar: 'Марта',
      Apr: 'Апреля',
      May: 'Мая',
      Jun: 'Июня',
      Jul: 'Июля',
      Aug: 'Августа',
      Sep: 'Сентября',
      Oct: 'Октября',
      Nov: 'Ноября',
      Dec: 'Декабря'
    }
    
    var curent = Date.now()
    var days = 61; //  нужное количество дней
    var future = new Date(curent + days * 24 * 60 * 60 * 1000);
    
    $('.test').html(future);
    var str = $('.test').html();
    var arr = str.split(' ');
    arr.splice(4, 6);
    console.log(arr);
    
    var dayArr = arr[0],
        monthArr = arr[1],
        numArr = arr[2],
        yearArr = arr[3]; 
    
    if( numArr.charAt( 0 ) === '0' )
        numArr = numArr.slice( 1 );
    
    var stringInner = `<li>${daysObj[dayArr]}</li>
    <li>${numArr} ${monthObj[monthArr]}, ${yearArr}</li>
    `
    console.log(stringInner);
    
    $('.result').html(stringInner);
    Ответ написан
    Комментировать