[3.2] Пользователькие настройки видимости headerbar

У вас есть идея для расширения функциональности phpBB? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x | FAQ-3 (phpbb3) | Как задавать вопросы |Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Leo Angel
phpBB 1.4.3
Сообщения: 81
Зарегистрирован: 20.01.2018 18:58
Благодарил (а): 23 раза
Поблагодарили: 3 раза

[3.2] Пользователькие настройки видимости headerbar

Сообщение Leo Angel » 08.03.2019 17:49

Нужно сделать расширение или просто некий функционал для "украшательства".
Чтобы каждый пользователь по своему выбору мог "убирать" со страниц форума headerbar.
То есть примерно как в расширении liveSearch - живой поиск (как в Гугле).
То есть, существует некая иконка-кнопка, которая "прячет" или показывает всё, что есть в headerbar.
При этом выбор пользователя запоминается в данном браузере на данном устройстве.
Наверное, использовать нужно display: none; в стилях headerbar.
Проблема для меня - как сделать кнопку (не саму кнопку, а событие по работе кнопки) и как запоминать выбор пользователя.
Может, кто поможет... Расскажет... Или сделает...

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 8986
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 158 раз
Поблагодарили: 2522 раза
Контактная информация:

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Татьяна5 » 09.03.2019 8:55

Раз не требуется убирать код вообще, то можно это организовать через js, запоминать выбор в localStorage

Leo Angel
phpBB 1.4.3
Сообщения: 81
Зарегистрирован: 20.01.2018 18:58
Благодарил (а): 23 раза
Поблагодарили: 3 раза

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Leo Angel » 09.03.2019 11:54

Спасибо!
Попробую. Если что не пойдёт буду обращаться... :lol:

Leo Angel
phpBB 1.4.3
Сообщения: 81
Зарегистрирован: 20.01.2018 18:58
Благодарил (а): 23 раза
Поблагодарили: 3 раза

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Leo Angel » 10.03.2019 15:54

А можно взять за основу экст Collapsible Forum Categories, переписать его, изменив действия с Categories на действия с headerbar?
Логика и действия те же..

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 8986
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 158 раз
Поблагодарили: 2522 раза
Контактная информация:

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Татьяна5 » 10.03.2019 17:48

Leo Angel, если хотите, то можно всё, но по мне это выйдет неоправданно сложно ("с нуля" проще)

Leo Angel
phpBB 1.4.3
Сообщения: 81
Зарегистрирован: 20.01.2018 18:58
Благодарил (а): 23 раза
Поблагодарили: 3 раза

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Leo Angel » 10.03.2019 17:50

Ещё бы знать как "с нуля"... :cry:
Никогда не писал экстов. :roll:

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 8986
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 158 раз
Поблагодарили: 2522 раза
Контактная информация:

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Татьяна5 » 10.03.2019 17:54

Leo Angel, в форуме "для авторов" информации куча (а на вашу задачу, насколько помню, вообще хватит минимума, конфигурационного файлика и шаблонов, php можно не задействовать)

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 10861
Зарегистрирован: 18.02.2007 19:01
Откуда: Рига, Латвия (страна-недоразумение)
Благодарил (а): 42 раза
Поблагодарили: 2367 раз
Контактная информация:

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Sheer » 10.03.2019 18:02

Татьяна5 писал(а):
10.03.2019 17:54
вообще хватит минимума
css+js
Настройки хранить в куки. Куку создавать в js-скрипте. На этой конференции так реализовано сворачивание/разворачивание правил форума. Вот тут наверху, на розовой плашке галочка справа: можно увидеть как это работает.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 10861
Зарегистрирован: 18.02.2007 19:01
Откуда: Рига, Латвия (страна-недоразумение)
Благодарил (а): 42 раза
Поблагодарили: 2367 раз
Контактная информация:

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Sheer » 10.03.2019 18:59

Ну как-то так
ext.rar
(3.06 КБ) 7 скачиваний
Отправлено спустя 4 минуты 41 секунду:
Блин... попутал. Сделал для navbar, а не для headerbar но принцип тот же.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Leo Angel
phpBB 1.4.3
Сообщения: 81
Зарегистрирован: 20.01.2018 18:58
Благодарил (а): 23 раза
Поблагодарили: 3 раза

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Leo Angel » 10.03.2019 20:44

Всем спасибо!
Сейчас посмотрим!!!

Leo Angel
phpBB 1.4.3
Сообщения: 81
Зарегистрирован: 20.01.2018 18:58
Благодарил (а): 23 раза
Поблагодарили: 3 раза

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Leo Angel » 11.03.2019 1:38

Переделал, поставил где хочется. Работает...
Одна проблема. )))
Вместе с сокрытием headerbar скрывается и стрелка открытия.
Видать, уже поздно и голова не варит...
Не могу "вытащить" стрелку из headerbar, чтобы не пропадала...
Вот файл css:

Код: Выделить всё

.headerbar > strong:first-child a.collapse {
    position: fixed;
    top: -6px;
    font-size: 18px;
    z-index: 7000;
    right: 15px;	
}
.headerbar > strong:first-child a.collapse:after {
	content: '\f077';
	font-family: FontAwesome;
	font-size: 15px;
	line-height: 10px;
	font-weight: normal;
	font-style: normal;
	text-indent: 0;
}
div.headerbar.collapsed > strong:first-child a.collapse:after {
	content: '\f078';
}
.headerbar > hidden {
	display: none;
}
А вот скрипт:

Код: Выделить всё

/**
* Parse document block
*/
function parse($container) {
	'use strict';

	var test = document.createElement('div'),
		oldBrowser = (typeof test.style.borderRadius === 'undefined'),
		$body = $('body');
}

function getCookie(name, value, config)
{
	var expr, cookie;

	config = $.extend({
		prefix: '',
		path: '/'
	}, typeof config === 'object' ? config : {});

	expr = new RegExp('(^| )' + config.prefix + name + '=([^;]+)(;|$)');
	cookie = expr.exec(document.cookie);

	if (cookie)
	{
		return decodeURIComponent(cookie[2]);
	}
	else
	{
		return null;
	}
}

function setCookie (name, value, config)
{
	config = $.extend({
		prefix: '',
		path: '/'
	}, typeof config === 'object' ? config : {});

	document.cookie = config.prefix + name + '=' + encodeURIComponent(value)
		+ (config.expires === undefined ? '' : ';expires=' + config.expires.toUTCString())
		+ (config.path  ? ';path=' + config.path : '')
		+ (config.domain ? ';domain=' + config.domain : '');
	return value;
}

function deleteCookie (name, value, config)
{
	config = $.extend({
		prefix: '',
		path: '/'
	}, typeof config === 'object' ? config : {});

	document.cookie = config.prefix + name + '='
		+ (config.path  ? '; path=' + config.path : '')
		+ (config.domain ? '; domain=' + config.domain : '')
		+ '; expires=Thu, 01-Jan-70 00:00:01 GMT';
	return null;
}

jQuery(function($) {
	'use strict';

	var result;
	var config = {
		prefix: '',
		name: 'headerbar_rules',
		value: 'false',
		path: '/',
		expires: new Date()
	};
	config.expires.setFullYear(config.expires.getFullYear() + 1);
	result = getCookie(config.name, config.value, config);

	if (result == 'false')
	{
		$('div.headerbar').addClass('hidden');
		$('div.headerbar').addClass('collapsed');
	}

	$('.headerbar').prepend('<strong><a class="collapse" href="#" title="Свернуть/Развернуть панель заголовка"/></strong>');
	$('.headerbar').find('a.collapse').click(function(e) {
		e.preventDefault();
		$('div.headerbar').slideToggle('slow', function() {});
		if (result == 'false') {
			deleteCookie(config.name, config);
			$('div.headerbar').removeClass('collapsed');
		}
		else {
			setCookie(config.name, 'false', config);
			$('div.headerbar').addClass('collapsed');
		}
	});
	parse($('body'));
});
Может, кто подскажет...

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 8986
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 158 раз
Поблагодарили: 2522 раза
Контактная информация:

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Татьяна5 » 11.03.2019 6:42

В html её вытаскивайте

Leo Angel
phpBB 1.4.3
Сообщения: 81
Зарегистрирован: 20.01.2018 18:58
Благодарил (а): 23 раза
Поблагодарили: 3 раза

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Leo Angel » 11.03.2019 13:36

Чёт не вылазит...
Ступор какой-то...
Аж стыдно... :facepalm:

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 10861
Зарегистрирован: 18.02.2007 19:01
Откуда: Рига, Латвия (страна-недоразумение)
Благодарил (а): 42 раза
Поблагодарили: 2367 раз
Контактная информация:

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Sheer » 11.03.2019 18:07

Потому что

Код: Выделить всё

.headerbar > hidden {
	display: none;
}
Это полностью скрывает блок headerbar вместе с кнопкой. Должно быть

Код: Выделить всё

.headerbar .inner > hidden {
	display: none;
}
что будет скрывать блок inner который находится внутри headerbar. Сама кнопка вставляется сразу после

Код: Выделить всё

<div class="headerbar" role="banner"><strong><a class="collapse" href="#"></a></strong>
					<div class="inner">
Получается так
Screenshot_2019-03-11 ваш_домен ru - Главная страница.png
Screenshot_2019-03-11 ваш_домен ru - Главная страница.png (11.17 КБ) 36 просмотров
Screenshot_2019-03-11 ваш_домен ru - Главная страница(1).png
Screenshot_2019-03-11 ваш_домен ru - Главная страница(1).png (4.65 КБ) 36 просмотров
Если нужно скрыть headerbar полностью, нужно выносить кнопку <a class="collapse" href="#"></a> куда-то в другое место.

Отправлено спустя 2 минуты 41 секунду:
... или присваивать headerbar класс, в который сделает его прозрачным - background: none;
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Leo Angel
phpBB 1.4.3
Сообщения: 81
Зарегистрирован: 20.01.2018 18:58
Благодарил (а): 23 раза
Поблагодарили: 3 раза

Re: [3.2] Пользователькие настройки видимости headerbar

Сообщение Leo Angel » 12.03.2019 1:08

Всё сделано!!!
Всем спасибо за помощь!!!

Ответить

Вернуться в «Запросы расширений для phpBB»