adaptive — WordPress Gear https://wpgear.xyz Do better! Tue, 03 Mar 2026 12:59:24 +0000 ru-RU hourly 1 https://wordpress.org/?v=5.2.23_CS_Edition https://wpgear.xyz/wp-content/uploads/2016/06/cropped-gear-green-512-1-32x32.png adaptive — WordPress Gear https://wpgear.xyz 32 32 Adaptive Login Action https://wpgear.xyz/adaptive-login-action/ Sat, 29 May 2021 10:20:15 +0000 https://wpgear.xyz/?p=1231 Читать далее «Adaptive Login Action»]]>

Адаптивная Форма Входа

Попытка найти компромисс между собственным Комфортом и собственной Паранойей.

Концепция:

1. «Режим Нулевого Доверия»

Рекомендуется для небольших групп постоянных пользователей со Статическим IP Адресом.
Для Динамических IP Адресов и Мобильных Пользователей — нецелесообразно.

Если мой текущий IP адрес не скомпрометирован, с последнего моего успешного входа, то нет необходимости подвергать меня процессу жесткого недоверия и заставлять проходить Квесты на разгадывание разного вида Капч.
В таком случае, вполне достаточно стандартного Поля «Пароль» и одной Попытки.

А вот если Попытка неудачна, то IP адрес считается скомпрометирован, и тогда можно и нужно подвергнуть меня (или того, кто пытается быть мной) более тщательной процедуре входа.
Тут могут быть разноуровневые варианты. Не важно (это будет постепенно добавляться в функционал). Сейчас мы говорим об Общем Принципе.

2. «Режим Динамических IP»

Рекомендуется для мобильных пользователей с Динамическим IP Адресом.
Для Статических IP Адресов — нецелесообразно.

Если предыдущий Вход Пользователя был Успешный, то его следующая Аутентификация производится по упрощенному методу.
Достаточно только ввести правильный Пароль. Но дается лишь одна попытка.
И если Пароль был введен неверно, то в Форму для Входа добавляется элемент дополнительной безопасности: Поле «Secret Key».

= Futured =

* На каждый IP адрес формируется отдельная статистика и определяется соотношение «Удачное количество входов» / «Общее количество входов». В зависимости от того, насколько этот параметр близок к 100%, можно говорить о необходимости Жесткости процесса Недоверия.

* Данный механизм запускается на этапе до того, как Пользователь ввел свой Логин.

* Важным моментом является то, что независимо от того, какая именно произошла Ошибка Аутентификации, будь то:
— Неверное Имя Пользователя;
— Неверный Пароль Пользователя;
— Неверно указаны элементы дополнительной безопасности: «Secret Key» / Капча / пр.
В сообщении об Ошибке это указано не будет. Всегда будет лишь одно сообщение: «Ошибка Аутентификации».
Таким образом, мы не указываем потенциальному Злодею / Боту, явным образом причину отказа в доступе. И чем больше таких невыясненных Причин, тем сложнее становится процедура Входа для атакуемого.

И наоборот, процедура Входа может максимально упрощаться, если нет на то явных причин.

* В случае нескольких неудачных подряд попыток Входа, может быть активирован Ограничительный Таймаут для данного Пользователя.

* Интегрирован с плагином «New Users Monitor«.

Текущая версия: 2.10.1 (2026.03.01) можно загрузить с этого сайта.

Скачать “adaptive-login-action.zip” adaptive-login-action_v3.11.zip – Загружено 793 раза – 19 KB

Или из Официального Репозитория WordPress

== Инсталляция ==

Обычная автоматическая установка.

== Часто Задаваемые Вопросы ==
* После инсталляции, с настройками по умолчанию, при первой попытке входа, что мне нужно вводить в Поле: «Secret Key»?

— Ничего! Просто, оставьте его пустым. Но после успешного входа, пропишите свое значение для «Secret Key».

== Скриншоты ==

  1. screenshot-1.png Форма Входа с установленным плагином «Adaptive Login Action» — Режим: Нормальный.
  2. screenshot-2.png Форма Входа с установленным плагином «Adaptive Login Action» — Режим: Повышенной Безопасности.
  3. screenshot-3.png Форма Входа с установленным плагином «Adaptive Login Action» — Режим: Повышенной Безопасности. Осталась 1 Попытка до Блокировки.
  4. screenshot-4.png Форма Входа с установленным плагином «Adaptive Login Action» — Режим: Повышенной Безопасности. Доступ временно заблокирован
  5. screenshot-5.png Страница настроек плагина «Adaptive Login Action».

558 просмотров всего, 0 просмотров сегодня

]]>
Меню — Липучка для темы: GeneratePress https://wpgear.xyz/sticky-menu-for-generatepress/ https://wpgear.xyz/sticky-menu-for-generatepress/#comments Fri, 14 Dec 2018 16:29:30 +0000 https://wpgear.xyz/?p=700 Читать далее «Меню — Липучка для темы: GeneratePress»]]>

Приятная во всех отношениях Тема «GeneratePress». Но возникла необходимость немного улучшить интерфейс. При вертикальном скролинге страницы, горизонтальное Меню должно оставаться в верхней части окна.

Решено было обойтись без Плагинов.

  1. В Дочернюю Тему, копируем файл: header.php из оригинальной Темы.
  2. Вносим изменения:
... стр.11

if( wp_is_mobile() ){
	// Если это мобильное устройство
	$Mobile = 1;
} else {
	$Mobile = 0;
}

if ( is_user_logged_in() ) {
 // Коррекция Липкого Меню, если Пользователь залогинен. (Ну не Пользователь, а Админ или типа того.)
 $MenuBar_Correction = 1;
} else {
 $MenuBar_Correction = 0;
}

... стр.28
<head>
 ...
</head>

<script>
 // Делаем липкое Меню.
 jQuery(document).ready(function(){
 var Mobile = <?php echo $Mobile;?>;
 var MenuBar_Correction = <?php echo $MenuBar_Correction;?>;
 var stickyHeaderTop = jQuery('#site-navigation').offset().top;
 var window_scrollTop;
 var AdminBar_H = 0;
 var AdminBar_Position;
 var MaxWidth_Content = jQuery('#site-navigation').css('max-width'); 
 MaxWidth_Content = parseInt(MaxWidth_Content, 10); 
 
 if (Mobile == 1) {
 // Не используем Липучку для мобильных устройств, т.к. раскрытое меню может выйти за нижнюю границу экрана.
 return;
 } 
 
 // Реагируем на Скрол
 jQuery(window).scroll(function(){
 RepositionMenu ();
 });
 
 // Реагируем на Изменения размера экрана
 jQuery(window).resize(function(){
 RepositionMenu ();
 });
 
 function RepositionMenu () {
 // Делаем Меню-Липучку, если есть на то условия.
 window_scrollTop = jQuery(window).scrollTop();
 
 if (MenuBar_Correction == 1) {
 AdminBar_Position = jQuery('#wpadminbar').css('position');
 
 if (AdminBar_Position == 'fixed') {
 // Коррекция позиции Липкокого Меню, если Пользователь залогинен и AdminBar фиксирован (зависит от ширины).
 AdminBar_H = jQuery('#wpadminbar').height();
 }
 }
 var Top_Sticky = AdminBar_H + 'px'; 
 
 if( window_scrollTop > stickyHeaderTop ) {
 // Липучка ON
 var Width_Menu = jQuery('#site-navigation').width();
 
 if (Width_Menu < MaxWidth_Content) {
 jQuery('#site-navigation').css({
 position: 'fixed', 
 width: '100%', 
 top: Top_Sticky,
 left: '0px'
 }); 
 } else {
 jQuery('#site-navigation').css({
 position: 'fixed', 
 width: '100%', 
 top: Top_Sticky,
 left: 'calc((100% - ' + MaxWidth_Content + 'px)/2)'
 }); 
 }
 } else {
 // Липучка OFF
 jQuery('#site-navigation').css({
 position: 'relative',
 left: '0px',
 top: '0px'
 });
 } 
 }
 }); 
</script>

Собственно говоря, на этом все.
В результате, у нас получается следующее: Как только начинаем прокручивать страницу вниз, и горизонтальное Меню доходит до верхней части окна, то оно — это Меню прилипает и остается на своем месте при дальнейшей прокрутке.
Прокручивая страницу вверх, как только мы достигаем позиции изначального расположения горизонтального Меню, то оно снова отлипает и двигается вместе с контентом страницы.

Предложенный вариант отлично справляется с ситуацией, когда ширина контента ограничена и окно может быть и шире и уже заданных ограничений.

Для мобильных устройств (не путать с просто узким экраном, вручную сдвинутым), поведение иное. Скрипт просто отключается и Меню ведет себя как обычно.
Это сделано для того, чтобы избежать ситуаций, когда количество пунктов и под-пунктов в Меню при его раскрытии превышает размер экрана (как правило в горизонтальном расположении) и пользоваться таким интерфейсом становится неудобно.

775 просмотров всего, 0 просмотров сегодня

]]>
https://wpgear.xyz/sticky-menu-for-generatepress/feed/ 1