Сниппеты:
Подраздел:
Языки:

Vampireos
  • Репутация: 3
  • Сниппеты: 1
  • Ревизии: 0
<!DOCTYPE html>
<html lang="ru">
<head>

  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <meta http-equiv="x-ua-compatible" content="ie=edge">

  <!-- МЕТА -->
  <title>Заголовок</title>
  <meta name="description" content="описание не длинее 155 символов" />

  <!-- open graph Facebook-->
  <meta property="og:title" content="Заголовок" />
  <meta property="og:type" content="website" />
  <meta property="og:url" content="http://localhost.my" />
  <meta property="og:image" content="http://localhost.my/img/og_cover.jpg" />
  <meta property="og:description" content="описание не длинее 155 символов" />
  <meta property="fb:admins" content="Facebook ID" />

  <!-- Twitter -->
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:site" content="@ник_компании_в_твиттере">
  <meta name="twitter:title" content="Заголовок">
  <meta name="twitter:description" content="описание не длинее 155 символов">
  <meta name="twitter:creator" content="@ник_в_твиттере">
  <meta name="twitter:image:src" content="http://localhost.my/img/tw_cover.jpg">

  <!-- G+ / Pinterest -->
  <meta itemprop="name" content="Заголовок">
  <meta itemprop="description" content="описание не длинее 155 символов">
  <meta itemprop="image" content="http://localhost.my/img/g_cover.jpg">

  <!-- Google authorship -->
  <link rel="author" href="https://plus.google.com/[Google+_Profile]/posts"/>
  <link rel="publisher" href="https://plus.google.com/[Google+_Page_Profile]"/>

  <!-- фавиконы и иконки сайта -->
  <link rel="apple-touch-icon" href="apple-touch-icon.png">

</head>
<body>

</body>
</html>
Gravatar image
c3037
  • Репутация: 32
  • Сниппеты: 8
  • Ревизии: 0

Необходимо указать количество секунд, которые выполняются скрипты, и паттерн запросов для поиска

SET @runTime = 10;
SET @selectPattern = "SELECT SLEEP%";

-- Процедура для создания и выполнения kill-запросов
DELIMITER $$
DROP PROCEDURE IF EXISTS totalKILL $$
CREATE PROCEDURE totalKILL(runTime INT, selectPattern VARCHAR(255))
  BEGIN
    
    -- Стартовые директивы
    DECLARE finished INTEGER DEFAULT 0;
    DECLARE oneKillQuery VARCHAR(255) DEFAULT '';
    DECLARE curs CURSOR FOR SELECT kill_query FROM mysql_kill_list;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
    
    -- Ищем необходимые PID's, формируем KILL-запросы
    DROP TABLE IF EXISTS mysql_kill_list;
    SET @stmt = CONCAT("CREATE TEMPORARY TABLE mysql_kill_list AS
                        SELECT CONCAT('KILL ', id, ';') 'kill_query'
                        FROM information_schema.processlist 
                        WHERE `info` LIKE ('", selectPattern, "') 
                        AND `time` >= ", runTime);
    PREPARE Q FROM @stmt;
    EXECUTE Q;
    DEALLOCATE PREPARE Q;
    
    -- Выполняем каждый kill-запрос по отдельности
    OPEN curs;
    killQueries: LOOP
      FETCH curs
      INTO oneKillQuery;
      IF finished = 1
      THEN
        LEAVE killQueries;
      END IF;
      SET @killQuery = oneKillQuery;
      PREPARE Q FROM @killQuery;
      EXECUTE Q;
      DEALLOCATE PREPARE Q;
    END LOOP killQueries;
    CLOSE curs;

    -- удаляем временную таблицу
    DROP TABLE mysql_kill_list;

  END $$
DELIMITER ;

-- запускаем процедуру с необходимыми параметрами
CALL totalKILL(@runTime, @selectPattern);

-- удаляем процедуру
DROP PROCEDURE totalKILL;
Gravatar image
zular
  • Репутация: 26
  • Сниппеты: 6
  • Ревизии: 0

Демо 216bf798e5c8.gif

Как использовать

Добавить код в свой файл стилей, на нужном блоке добавлять класс preloader. На данный момент требуется код пропустить через Autoprefixer

Код

.preloader{
  position: relative;
  min-height: 64px;
  &:before{
    content: '';
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.9);
    height: 100%;
    width: 100%;
    display: block !important;
  }
  &:after{
    content: '';
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    margin-left: -16px;
    margin-top: -16px;
    width: 32px;
    height: 32px;
    border: 4px rgba(0, 0, 0, 0.25) solid;
    border-top: 4px #1071B6 solid;
    border-radius: 50%;
    animation: preloader .6s infinite linear;
  }
}

@keyframes preloader {
  from { transform: rotate(0deg); }
  to { transform: rotate(359deg); }
}
Gravatar image
daniilgri
  • Репутация: 1
  • Сниппеты: 1
  • Ревизии: 0

Парсинг статуса(Online, Offline, Deleted, Absence) юзера Вконтакте

Включена поддержка EN, RU.

Входные данные

На вход дается идентификатор юзера. Входные данные могут быть типа int, str. Примеры входных данных: '30733999', 30733999, 'fpxsox', 0231.

Результат

Выдается статус(Online, Offline, Deleted, Absence) юзера. Данные вывода имеют тип str. Примеры данных вывода: 'Online', 'Был в сети 1 час назад', 'The user is absent', 'Account has been deleted or does not exist', 'Not enough permission to access', 'Invalid identifier'.

Возможные ошибки

Пользователь может запретить просматривать свою страницу из всемирной веб-паутины. При вводе идентификатора стандартного вида(id(any number)) 'id' не пишется. Правильное написание: 'any number'

GitHub: https://github.com/daniilgri/check-presenceinvk

Пример запуска:

python3 vk.py [id]
python3 vk.py 307339910
python3 vk.py forex
Gravatar image
Makcim
  • Репутация: 3
  • Сниппеты: 2
  • Ревизии: 0
<div class="boxes">
  <input type="checkbox" id="box-1">
  <label for="box-1">Sustainable typewriter cronut</label>

  <input type="checkbox" id="box-2" checked>
  <label for="box-2">Gentrify pickled kale chips </label>

  <input type="checkbox" id="box-3">
  <label for="box-3">Gastropub butcher</label>
</div>
стилизация элементов checkbox
.boxes {
  margin: auto;
  padding: 50px;
  background: #484848;
}

/*Checkboxes styles*/
input[type="checkbox"] { display: none; }

input[type="checkbox"] + label {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 20px;
  font: 14px/20px 'Open Sans', Arial, sans-serif;
  color: #ddd;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

input[type="checkbox"] + label:last-child { margin-bottom: 0; }

input[type="checkbox"] + label:before {
  content: '';
  display: block;
  width: 20px;
  height: 20px;
  border: 1px solid #6cc0e5;
  position: absolute;
  left: 0;
  top: 0;
  opacity: .6;
  -webkit-transition: all .12s, border-color .08s;
  transition: all .12s, border-color .08s;
}

input[type="checkbox"]:checked + label:before {
  width: 10px;
  top: -5px;
  left: 5px;
  border-radius: 0;
  opacity: 1;
  border-top-color: transparent;
  border-left-color: transparent;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
Gravatar image
Михаил Быков
  • Репутация: 5
  • Сниппеты: 1
  • Ревизии: 0

После добавления readme.txt в .gitignore (до этого readme.txt был в ранних коммитах): git rm --cached readme.txt

Gravatar image
c3037
  • Репутация: 32
  • Сниппеты: 8
  • Ревизии: 0
git log --diff-filter=D --summary [--author=""] [--before=""] [--after=""] > deleted_files.txt
Gravatar image
marcuzy
  • Репутация: 6
  • Сниппеты: 1
  • Ревизии: 0
class NullStub{
    public function __get($name)
    {
        return null;
    }

    public function __call($name, $args)
    {
        return null;
    }
}

function nil($obj, $default=null) {
    if ($obj===null) {
        return $default===null?(new NullStub()):$default;
    } else {
        return $obj;
    }   
}

Пример использования:

$str = null;
echo nil($a, 'default text'); //выведет default text


$object = null;
nil($object)->someMethod(); //не вызовет ошибку, просто вернет null

Еще пример:

class OrderedProduct extends ActiveRecord 
{
	public function getProvider()
    {
    	return $this->hasOne(/*...*/);
    }
    
    public function getProviderName()
    {
    	//в случае, если к товару из заказа еще не назначен поставщик, метод вернет null, иначе имя поставщика
    	return nil($this->provider)->name;
    }
}
Gravatar image
serieznyi
  • Репутация: 2
  • Сниппеты: 1
  • Ревизии: 0
Selectize.define("remove_button", function(options){
    var self = this;

    self.setup = (function() {
        var original = self.setup;
        return function() {
            original.apply(this, arguments);

            var $span = $(
                '<span/>',
                {
                    class: 'remove_button glyphicon glyphicon-remove',
                    title: 'Clear',
                    css: {
                        position: "absolute",
                        top: "0px",
                        right: "0px",
                        cursor: "pointer",
                        padding: "3px 4px",
                        border: "0 solid rgba(0, 0, 0, 0)",
                        webkitBorderRadius: "3px",
                        mozBorderRadius: "3px",
                        borderRadius: "3px",
                        color: "black",
                        margin: "0.5em"
                    }
                }
            ).appendTo(this.$control);

            $span.on('click', function(event){
                event.preventDefault();

                if (self.items.length) {
                    self.removeItem(self.items[0]);
                    self.trigger('clear');
                }
            });
        };
    })();
});
Gravatar image
kotchuprik
  • Репутация: 6
  • Сниппеты: 3
  • Ревизии: 0

На случай, когда необходимо получить "сырой" SQL запрос вызова Query модели, но debug bar или подробные логи не используются при разработке.

function dumpQuery(\yii\db\ActiveQuery $query)
{
    echo '<pre>';
    var_export($query->prepare(\Yii::$app->db->queryBuilder)->createCommand(\Yii::$app->db)->rawSql);
    echo '</pre>';
    
    Yii::$app->end();
}

Использование:

dumpQuery(Model::find()->where(['foo' => 'bar'])->orderBy(['awesome' => SORT_ASC]));

Как правило, для удобства, я подключаю файл с этим хелпером (и его соседями) в автолоадер composer.