Skip to content

Instantly share code, notes, and snippets.

Avatar
⚒️
No time for commit, just push!

Pavel Belousov pafnuty

⚒️
No time for commit, just push!
View GitHub Profile
@pafnuty
pafnuty / ko.utils.3.5.0.signatures.js
Created Jul 18, 2019 — forked from hyle/ko.utils.3.5.0.signatures.js
KnockoutJS 3.5.0 utils (ko.utils) signatures
View ko.utils.3.5.0.signatures.js
// knockout 3.5.0
ko.utils.addOrRemoveItem = function (array, value, included) { /* .. */ }
ko.utils.anyDomNodeIsAttachedToDocument = function (nodes) { /* .. */ }
ko.utils.arrayFilter = function (array, predicate) { /* .. */ }
ko.utils.arrayFirst = function (array, predicate, predicateOwner) { /* .. */ }
@pafnuty
pafnuty / group-objects-by-property.md
Created May 16, 2019 — forked from JamieMason/group-objects-by-property.md
Group Array of JavaScript Objects by Key or Property Value
View group-objects-by-property.md

Group Array of JavaScript Objects by Key or Property Value

Implementation

const groupBy = key => array =>
  array.reduce((objectsByKeyValue, obj) => {
    const value = obj[key];
    objectsByKeyValue[value] = (objectsByKeyValue[value] || []).concat(obj);
    return objectsByKeyValue;
@pafnuty
pafnuty / .md
Created Dec 3, 2015 — forked from iAdramelk/.md
Длинная телега про Бутстрап
View .md

Вводная часть

У CSS есть несколько базовых проблем, которые позволяют очень быстро отстрелить себе ногу при неправильном использовании:

  1. Глобальный неймспейс – в серверном программировании все что написано в файле, в файле и остается. Все же что написано в css и js засирает глобальное пространство имен со всеми вытекающими. В JS эту проблему сейчас побороли всякими модульными системами, а вот с css сложнее. В идеальном мире это должен починить Shadow DOM и настоящие Web Components, но пока их нет единственный способ с этим бороться – следовать какой-то системе именований селекторов, которая по возможности уменьшает и исключает возможные конфликты.

  2. Каскадность – если на один элемент может сработать несколько правил, то они все и сработают последовательно. Если есть элемент h1.title, на него сработают все правила для тегов h1 и все правила для класса .title. Так как весь html состоит из тегов, то правил которые применяются на теги без классов будут работать на все вообще.

Соответственно наз

@pafnuty
pafnuty / D7_module_cheatsheet.md
Last active Mar 20, 2020 — forked from may-cat/Памятка по сборке модуля на D7
Памятка по сборке модуля на D7
View D7_module_cheatsheet.md

Памятка по сборке модуля на D7

  1. Склонировать d7dull в папку /local/modules

  2. Заменить названия во всех файлах с учётом регистра maycat — ваш ник, разрешены ТОЛЬКО латинские буквы d7dull — название модуля Для этого нужно пройтись контекстным поиском по всей папке и внести изменения + переименовать файл в папке admin в соответствии с названияем модуля

  3. Продумать структуру классов и завести их в папке lib/ (подробнее о приёмах организации структуры - смотри видео) С помощью include.php подключить автолоад созданным классам

View keep-focus.js
var tabbableElements = 'a[href], area[href], input:not([disabled]),' +
'select:not([disabled]), textarea:not([disabled]),' +
'button:not([disabled]), iframe, object, embed, *[tabindex],' +
'*[contenteditable]';
var keepFocus = function (context) {
var allTabbableElements = context.querySelectorAll(tabbableElements);
var firstTabbableElement = allTabbableElements[0];
var lastTabbableElement = allTabbableElements[allTabbableElements.length - 1];
View ajax.block.pro.php
<?php
/*
=============================================================================
BlockPro 3 - Модуль для вывода блоков с новостями на страницах сайта DLE (тестировался на 9.7 и 9.8)
=============================================================================
Автор модуля: ПафНутиЙ
URL: http://blockpro.ru/
ICQ: 817233
email: pafnuty10@gmail.com
=============================================================================
View index.haml
%h1.elegantshadow Elegant Shadow
%h1.deepshadow Deep Shadow
%h1.insetshadow Inset Shadow
%h1.retroshadow Retro Shadow
View Более адекватная функция для показа модульных окон на Bootstrap.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bootstrap, from Twitter</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
You can’t perform that action at this time.