Valentin Sayik 37 21 765
Just another backend developer.
- Ukraine, Lviv
- php - yii2, laravel5 | DB - MySQL PostgreSQL | VCS - Git, svn
- UA Web-Challenge
- Зарегистрирован 5 лет назад
Just another backend developer.
API которое описанное в этом сниппете будет следовать следующим правилам:
v1.api.example.com
)Для написания API было использовано php + Symfony 3 + следующие бандлы:
Мы хотим поделиться с вами вдохновляющими адаптивными прайс-таблицами сделанными на флексбоксе. Прайс-таблицы являются основной частью лендингов и сайтов на которых предлагают цифровые или другие платные услуги.
Иногда, что бы сделать сайт максимально быстрым для пользователя (или хотя бы сделать такое впечатление), можно прибегать к таким средствам как в этом сниппете. Суть этих строк в том, что страница на которую ведёт ссылка -- начинает загружаться еще до того как пользователь на нее нажмёт (в тот период как только клавиша миши начала опускаться, а курсор указывает на ссылку), это ускорит загрузку страниц на 50ms.
document.onmousedown = function(e) {
e.target.click();
}
С помощью этой функции можно рекурсивно очистить папку. Удаляет так же подпапки. Обновлено 01.12.2015
// $dir - Путь к папке
function rrmdir($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir . "/" . $object) == "dir") {
rrmdir($dir . "/" . $object);
} else {
unlink($dir . "/" . $object);
}
}
}
reset($objects);
rmdir($dir);
}
}
Этим скриптом можно получить изображение из буфера обмена при нажатии ctrl+v на js. Работает только в хроме и мозиле. Может кто обращал внимание, в вк, в переписке есть возможность прикрепления картинки в диалог прямо из буфера, с этим скриптом вы можете реализовать то же самое.
// проверяем, поддерживает ли браузер объект Clipboard
// если нет создаем элемент с атрибутом contenteditable
if (!window.Clipboard) {
var pasteCatcher = document.createElement("div");
// Firefox вставляет все изображения в элементы с contenteditable
pasteCatcher.setAttribute("contenteditable", "");
pasteCatcher.style.display = "none";
document.body.appendChild(pasteCatcher);
// элемент должен быть в фокусе
pasteCatcher.focus();
document.addEventListener("click", function() { pasteCatcher.focus(); });
}
// добавляем обработчик событию
window.addEventListener("paste", pasteHandler);
function pasteHandler(e) {
// если поддерживается event.clipboardData (Chrome)
if (e.clipboardData) {
// получаем все содержимое буфера
var items = e.clipboardData.items;
if (items) {
// находим изображение
for (var i = 0; i < items.length; i++) {
if (items[i].type.indexOf("image") !== -1) {
// представляем изображение в виде файла
var blob = items[i].getAsFile();
// создаем временный урл объекта
var URLObj = window.URL || window.webkitURL;
var source = URLObj.createObjectURL(blob);
// добавляем картинку в DOM
createImage(source);
}
}
}
// для Firefox проверяем элемент с атрибутом contenteditable
} else {
setTimeout(checkInput, 1);
}
}
function checkInput() {
var child = pasteCatcher.childNodes[0];
pasteCatcher.innerHTML = "";
if (child) {
// если пользователь вставил изображение – создаем изображение
if (child.tagName === "IMG") {
createImage(child.src);
}
}
}
function createImage(source) {
var pastedImage = new Image();
pastedImage.onload = function() {
// теперь у нас есть изображение из буфера
}
pastedImage.src = source;
}