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

Раздел:
Подраздел:
Языки:


samdark
  • Репутация: 349
  • Сниппеты: 57
  • Ревизии: 5

В JavaScript нет isset как в том же PHP, поэтому приходится городить довольно страшные конструкции когда дело касается доступа к вложенным структурам:

var level3 = (((test || {}).level1 || {}).level2 || {}).level3;

Решение не моё, взято с StackOverflow.

function isset(obj /*, level1, level2, ... levelN*/ ) {
    for (var i = 1; i < arguments.length; i++) {
        if (!obj.hasOwnProperty(arguments[i])) {
			return false;
		}
		obj = obj[arguments[i]];
    }
	return true;
}
Иван Бармашов
  • Репутация: 71
  • Сниппеты: 7
  • Ревизии: 0

Если у вас много битых картинок, вы можете их либо скрыть, либо заменить в них урл:

// Прячем битую картинку
$("img").error(function(){
        $(this).hide();
});

// Заменяем урл у битой картинки
$('img').error(function(){
        $(this).attr('src', 'img-broken.png');
});
Bran
  • Репутация: 29
  • Сниппеты: 7
  • Ревизии: 0

Простой способ показать на временной шкале времени необходимые вам данные. Например, сайт портфолио, вам нужно отобразить на временной шкале сколько времени вы проработали с определёнными языками: c1VkxGh.png Для этого нам понадобится Timesheet.js

Подключаем скрипты и стили:

<link href="timesheet.min.css" media="all" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="timesheet.min.js"></script>

Теперь добавим свои стили, например, чтобы при большом кол-ве данных отображался скролл:

body, .timesheet .data, .timesheet .scale section {
    font-family: Arial, sans-serif;
}
.timesheet {
    width: 100%;
}
.timesheet .data {
    overflow: scroll;
}
.timesheet .data li .bubble{
    opacity: 1;
}
/* Цвета */
.timesheet .bubble-js {
    background: #F0DB4F;
}
.timesheet .bubble-php {
    background: #5F82BA;
}
.timesheet .bubble-sql {
    background: #00618A;
}

Добавим элемент, в который будет выведена шкала времени

<div id="timesheet"></div>

Вызов библиотеки:

$('document').ready(function(){
    new Timesheet('timesheet', 2010, 2015, [
        ['2012', '2015', 'JS', 'js'],
        ['2012', '2015', 'PHP', 'php'],
        ['09/2010', '09/2015', 'SQL', 'sql']
    ]);
});
Gravatar image
Nepster
  • Репутация: 151
  • Сниппеты: 19
  • Ревизии: 0

К примеру необходимо найти все файлы с расширением .png в одной папке и скопировать их в другую.

find /home/user/images/ -name '*.png' -exec cp {} /home/user/png  \;
Gravatar image
rowario
  • Репутация: 12
  • Сниппеты: 1
  • Ревизии: 0

Нужно загрузить файл на сервер, без перезагрузки страницы? Видел много костылей на эту тему, вот вам простой вариант, который мспользую сам)

var form = new FormData(document.getElementById('идентификатор формы'));
$.ajax({
    url: "/upload.php",
    type: "POST",
    data: form,
    enctype: 'multipart/form-data',
    processData: false,
    contentType: false,
    success: function (data) {
        // здесь обработка ответа от сервер
    }
});
Gravatar image
maxyc
  • Репутация: 29
  • Сниппеты: 4
  • Ревизии: 0

1) Сложность пароля Качество и сложность пароля - мнение часто субъективно. Но данный сниппет хорошее начало )

^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$

2) Проверка на HEX цвет.

\#([a-fA-F]|[0-9]){3, 6}

3) Проверка email. Данный пункт хорошее начало холивара!

/[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]{2,4}/igm

Продолжение »

Gravatar image
ElisDN
  • Репутация: 22
  • Сниппеты: 2
  • Ревизии: 0

ActiveQuery удобен для построения кастомных условий для поиска моделей. Нечаянно придумалась недокументированная возможность:

$query = Comment::find()->notActive()->forPost($postId);

// Mark all as published:
Comment::updateAll(['status' => Comment::STATUS_ACTIVE], $query->where, $query->params);

// Remove all:
Comment::deleteAll($query->where, $query->params);
samdark
  • Репутация: 349
  • Сниппеты: 57
  • Ревизии: 5

Для подсчёта количества слов в строке есть функция str_word_count. Всё бы хорошо, но с юникодам она не дружит. В комметариях к документации PHP можно найти разные варианты решений этой проблемы, но они довольно-таки не универсальны и громоздки.

Решение, на самом деле, простое. Разбиваем строку по разным видам пробелов (\s тут весьма кстати) и не забываем /u для того, чтобы метасимволы нормально работали с юникодом.

public static function countWords($string)
{
    return count(preg_split('/\s+/u', $string, null, PREG_SPLIT_NO_EMPTY));
}
Just a cat
  • Репутация: 62
  • Сниппеты: 15
  • Ревизии: 0

Запуск разворачивания sql дампа без прерывания в случае закрытия консоли:

nohup mysql -u [username] -p[password] -f [database] < [path/to/sqlfile.sql] &

Проверка статуса:

ps -p [PID]

На случай, если зависло:

kill -9 [PID]
dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Если вам нужно пользователю отобразить изменения в тексте, то лучший вариант использовать diff. Для этого используем плагин PrettyTextDiff.

Затем нужно сделать следующую разметку:

<table class="diff-wrapper table">
    <thead>
        <tr>
            <th>Оригинал</th>
            <th>Изменено</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <div class="original">
                    Раньше люди считали планету Земля — плоской
                </div>
            </td>
            <td>
                <div class="changed">
                    Сейчас люди считают планету Земля — круглой
                </div>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <div class="result"></div>
            </td>
        </tr>
    </tbody>
</table>

Важно! По-умолчанию плагин PrettyTextDiff, в указанном селекторе, будет искать классы original и changed. Если вы хотите указать другие классы, задайте в свойствах originalContainer, changedContainer названия нужных классов.

Чтобы результат сравнения был красиво раскрашен, добавим стили:

ins {
    background-color: #c6ffc6;
    text-decoration: none;
}

del {
    background-color: #ffc6c6;
}

Конечный результат: 1k0Ayhw.png

Плагин вызываем так:

$('.diff-wrapper').prettyTextDiff({
    diffContainer: '.result'
});