Skip to content

Instantly share code, notes, and snippets.

@winsoor
winsoor / Браузерное кеширование
Created January 10, 2018 17:19 — forked from artikus11/.htaccess
Заготовка для подключения браузерного кеширования
Включение кеша браузера
Вариант 1
<ifModule mod_headers.c>
<FilesMatch "\.(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
@winsoor
winsoor / truncate string
Created October 24, 2017 23:31
Wordpress
function truncate_string($input_text, $limit = 4, $end_str = '...')
{
$input_text = strip_tags($input_text);
$words = explode(' ', $input_text); // создаём из строки массив слов
if ($limit < 1 || sizeof($words) <= $limit) { // если лимит указан не верно или количество слов меньше лимита, то возвращаем исходную строку
return $input_text;
}
$words = array_slice($words, 0, $limit); // укорачиваем массив до нужной длины
$out = implode(' ', $words);
@winsoor
winsoor / Topmenu
Created August 3, 2017 16:51
Vinzer
<ul class="topmenu-ul">
<li><a class="topmenu-item" href="#">About us</a></li>
<li><a class="topmenu-item" href="#">Technologies</a></li>
<li><a class="topmenu-item" href="products.html">Products</a></li>
<li><a class="topmenu-item" href="#">Online catalog</a></li>
<li><a class="topmenu-item" href="#">Our shop</a></li>
<li><a id="contact-us">Contact us</a></li>
</ul>
<VirtualHost *:80>
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/"
ServerName localhost
<Directory "/Applications/XAMPP/xamppfiles/htdocs/">
Options Indexes FollowSymLinks Includes execCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
@winsoor
winsoor / find-in-json.js
Created June 11, 2017 13:01 — forked from iwek/find-in-json.js
Searching through JSON
//return an array of objects according to key, value, or key and value matching
function getObjects(obj, key, val) {
var objects = [];
for (var i in obj) {
if (!obj.hasOwnProperty(i)) continue;
if (typeof obj[i] == 'object') {
objects = objects.concat(getObjects(obj[i], key, val));
} else
//if key matches and value matches or if key matches and value is not passed (eliminating the case where key matches but passed value does not)
if (i == key && obj[i] == val || i == key && val == '') { //
@winsoor
winsoor / Обработчик событий
Created June 4, 2017 15:24
Функции на JavaScript заменяющие jquery
/* источник: http://javascript.ru/unsorted/top-10-functions */
function addEvent(elem, evType, fn) {
if (elem.addEventListener) {
elem.addEventListener(evType, fn, false);
}
else if (elem.attachEvent) {
elem.attachEvent('on' + evType, fn)
}
else {
elem['on' + evType] = fn
@winsoor
winsoor / evaluate-model.lisp
Last active March 26, 2017 12:22 — forked from maksimr/evaluate-model.lisp
Аппликативный и нормальный порядки вычисления
; Аппликативный и нормальный порядки вычисления
;
; «полная подстановка, затем редукция» известен под на-
; званием нормальный порядок вычислений (normal-order evaluation)
;
; Пример работы нормального порядка вычисления
; Последовательность подстановок
; (sum-of-squares (+ 5 1) (* 5 2))
; (+ (square (+ 5 1)) (square (* 5 2)))
; (+ (* (+ 5 1) (+ 5 1)) (* (* 5 2) (* 5 2)))