• Как использовать jquery (append) и jsx (react)?

    sergej_saveljev
    @sergej_saveljev
    js, nodejs, react
    const element = (
        <div>
          <h1>Hello, world!</h1>
          <h2>It is {new Date().toLocaleTimeString()}.</h2>
        </div>
      );
      ReactDOM.render(element, document.getElementById('root'));


    Пример взят отсюда
    Ответ написан
    Комментировать
  • Распечатать компонент React?

    sergej_saveljev
    @sergej_saveljev
    js, nodejs, react
    <div
    	onClick={() => {
    		if (!this.componentRef) {
    			return;
    		}
    
    		const mywindow = window.open('', 'PRINT');
    
    		if (!mywindow) {
    			return;
    		}
    
    		mywindow.document.write(
    			'<html><head><title>' + document.title + '</title>',
    		);
    		mywindow.document.write('</head><body >');
    
    		mywindow.document.write(this.componentRef.innerHTML);
    		mywindow.document.write('</body></html>');
    
    		mywindow.document.close(); // necessary for IE >= 10
    		mywindow.focus(); // necessary for IE >= 10*/
    
    		mywindow.print();
    		mywindow.close();
    
    		return true;
    	}}
    >
    	Test
    </div>
    Ответ написан
    Комментировать
  • Ubuntu 14.04 LTS и TP-Link TL-WN823N резаная скорость Wi-Fi. Как быть?

    sergej_saveljev
    @sergej_saveljev
    js, nodejs, react
    Для начала убедитесь что все проприетарные драйверы для устройств установлены в приложении "Программы и обновления".

    Начало установки
    git clone https://github.com/Mange/rtl8192eu-linux-driver.git
    cd rtl8192eu-linux-driver
    sudo su
    apt-get install git linux-headers-generic build-essential dkms
    dkms add .
    dkms install rtl8192eu/1.0

    Если ничего не вышло, можно попробовать:
    cd /usr/src/rtl8192eu-1.0
    nano Makefile

    Привести строки к виду:
    ...
    CONFIG_PLATFORM_I386_PC = n
    ...
    CONFIG_PLATFORM_ARM_RPI = y

    И:
    make clean
    make
    make install
    modprobe -a 8192eu

    Инструкция взята от сюда, по направлению с этой страницы.

    Если ничего не получилось, для отчаяния ещё нет повода. Возможно установка данного драйвера вам поможет. Я проходил эту процедуру на двух компьютерах, с Ubuntu 16.04 и 17.10, и в обоих случаях мне пришлось повторять её в разных последовательностях. В итоге, на последнем компе я выяснил, что тестировал скорость интернета с воткнутой wi-fi флешкой в usb1.0 :-)
    Ответ написан
    Комментировать
  • Как установить image upload на редактор контента Froala?

    sergej_saveljev
    @sergej_saveljev
    js, nodejs, react
    Мне понадобились все доступные параметры, с удовольствием поделюсь.
    imageUploadURL: 'image_upload.php',
    imageUploadParams: {
    	path: '/images/'
    },
    imageManagerLoadURL: 'image_load.php',
    imageManagerLoadParams: {
    	path: '/images/'
    },
    imageManagerLoadMethod: 'POST',
    imageManagerDeleteURL: 'image_delete.php',


    image_upload.php:
    // Allowed extentions.
    $allowedExts = array("gif", "jpeg", "jpg", "png", "blob");
    
    // Get filename.
    $temp = explode(".", $_FILES["file"]["name"]);
    
    // Get extension.
    $extension = strtolower(end($temp));
    
    // An image check is being done in the editor but it is best to
    // check that again on the server side.
    // Do not use $_FILES["file"]["type"] as it can be easily forged.
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mime = finfo_file($finfo, $_FILES["file"]["tmp_name"]);
    
    if ((($mime == "image/gif")
    || ($mime == "image/jpeg")
    || ($mime == "image/pjpeg")
    || ($mime == "image/x-png")
    || ($mime == "image/png"))
    && in_array($extension, $allowedExts)) {
    
        $path = base_path() . '/public/images/' . $_POST['path'];
        if ( !is_dir($path) ) \File::makeDirectory($path, 0775, true);
    
        // image
        $img = $_FILES["file"];
        $name = strtolower($img['name']);
        $src = $path . $name;
    
        $imgM = Image::make($img['tmp_name']);
        if ( isset($_POST['save']) ){
            $imgM = $imgM->fit(200, 200);
            $user->photo = $_POST['path'].$name;
            $user->save();
        }
        $imgM->save($src);
    
        // Generate response.
        $response = new \StdClass;
        $response->link = $_POST['path'] . $name;
        echo stripslashes(json_encode($response));
        
    }


    Данный файл выполняет функцию вывода изображений в список окна выбора ранее загруженных.

    image_load.php:
    // Array of image objects to return.
    $response = array();
    
    // Image types.
    $image_types = array(
            "image/gif",
            "image/jpeg",
            "image/pjpeg",
            "image/jpeg",
            "image/pjpeg",
            "image/png",
            "image/x-png"
        );
    
    // Filenames in the uploads folder.
    $path = $_POST['path'];
    
    $fnames = scandir($path);
    
    // Check if folder exists.
    if ($fnames) {
        // Go through all the filenames in the folder.
        foreach ($fnames as $name) {
            // Filename must not be a folder.
            if (!is_dir($name)) {
                // Check if file is an image.
                if (in_array(mime_content_type(getcwd() . '/' . $path . $name), $image_types)) {
                    // Build the image.
                    $img = new \StdClass;
                    $img->url = $_POST['path'] . $name;
                    $img->thumb = $_POST['path'] . $name;
                    $img->name = $name;
    
                    // Add to the array of image.
                    array_push($response, $img);
                }
            }
        }
    }
    
    // Folder does not exist, respond with a JSON to throw error.
    else {
        $response = new \StdClass;
        $response->error = "Images folder does not exist!";
    }
    
    $response = json_encode($response);
    
    // Send response.
    echo stripslashes($response);


    image_delete.php:
    // Get src.
    $src = getcwd() . $_POST["src"];
    
    // delete image
    unlink($src);


    В коде файлов участвуют классы из laravel, но, я думаю, не составит труда найти подобные в интернете и немного изменить соответствующие участки.
    Ответ написан
    Комментировать
  • CSS: Можно ли убрать тень с одной стороны блока?

    sergej_saveljev
    @sergej_saveljev
    js, nodejs, react
    Можно! Но идеально сделать не получится, так как произойдёт наслоение теней с двух сторон. Кстати, может я перепутаю с ответом именно на ваш вопрос, но не суть.

    Убрать тень сверху:
    box-shadow: -2px 1px 2px rgba(0,0,0,0.15), 
        2px 1px 2px rgba(0,0,0,0.15);

    Убрать тень снизу:
    box-shadow: -2px -1px 2px rgba(0,0,0,0.15), 
        2px -1px 2px rgba(0,0,0,0.15);

    Убрать тень слева:
    box-shadow: 1px -2px 2px rgba(0,0,0,0.15), 
        1px 2px 2px rgba(0,0,0,0.15);

    Убрать тень справа:
    box-shadow: -1px -2px 2px rgba(0,0,0,0.15), 
        -1px 2px 2px rgba(0,0,0,0.15);
    Ответ написан
    Комментировать