Для получения полного доступа
зарегистрируйтесь.

Valentin Sayik    37   17 917


Just another backend developer.

  • Ukraine, Lviv
  • php - yii2, laravel5 | DB - MySQL PostgreSQL | VCS - Git, svn
  • UA Web-Challenge
  • Зарегистрирован 4 года назад

API которое описанное в этом сниппете будет следовать следующим правилам:

  • Возвращает только JSON
  • Для любого запроса клиент должен пройти аутентификацию
  • Аутентификация производится через OAuth2, Grant Type = password.
  • Разные версии 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;
}