Замечания и предложения по работе форума

Подтверждаю.

Уже пару дней такое точно

Может пора дать отдохнуть @Ardrunya, пока он не лопнул от обильного кормления? А заодно почистить

от его троллинга ))

2 лайка

Заморозил на пару недель

4 лайка

Очень правильно. Но мы сами его раскормили.

1 лайк

Скоро новый вылупится

Он же пароли меняет как перчатки, память то девичья))).

Кто-нибудь с правами выше «обычных», почистите тему пожалуйста!

опять все сломалось!

1 лайк

Есть предложение в списке “Все категории” добавить пункт “Личные сообщения” для быстрого доступа к своей личке. А то сейчас найти нужную тему - это еще пойди вывернись ))

А заодно и новые сообщения в личке выводить в общем списке. Конвертик на аватарке - не слишком информативно

Не нашел кнопки
“Пометить все темы прочитанными”

Есть такая?

Кнопки “Непрочитанные” и “Отложить” похоже работают

Я про эту кнопу спрашивал сразу, как на новый движок переехали. Нету такой.

1 лайк

спасибо, печалька.

Шибко борзое создание зашло ))

https://forum.arduino.ru/t/matrichnaya-klaviatura-trehznachnye-kejsy/

Мужики, вот есть идейка … ну, если вам понравится и у @Alexander вдруг окажется час-другой состояния “чем бы таким заняться?”.

Хотелось бы добавить на сайт напоминалку о праздниках. Не каких-то шибко официальных, а о праздниках, имеющих к нам отношение. А то я, например, регулярно забываю про “День Святого Нуба”. Опять же, есть очень актуальный для форума праздник “День гадания на кофейной гуще”.

Сделать бы прямо на сайте напоминалку, что мол, сегодня такой-то праздник. А лучше ещё и с линкой - где про этот праздник почитать.

Не подумайте, что я халявщик, я вполне себе “партнёр”. Вот написал нужный для этого скриптик (клиентский). Может как-нибудь вставим на сайт?

Привожу три файла:

  1. duck.htm - пример простенькой странички, показывающий как что вставить;
  2. HolidaysList.js - список праздников с названиями, линками на описания и т.п., а также функция, которая показывает праздник (если сегодня нет праздника - ничего не делает). Функция показа завязана на HTML в файле duck.htm;
  3. HolidaysClass.js - собственно класс для праздника.

Праздник можно задавать тремя способами: “точную дату”, “номер дня в году” (для дня программиста) и “первая/третья/последняя/и т.п. пятница/понедельник/и т.п. месяца”.

Если эти три файлика сложить в папку и загрузить duck.htm в браузер, всё работает. Только кодировка должна быть UTF-8, чтобы русские буквы не поломались. Я там в списке праздников самый первый левым сделал, чтобы можно было поставить сегодняшнюю дату и посмотреть. Потом его убрать надо будет.

Файл: duck.htm
<html lang="ru">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Тестовая страница</title>
	<script language="JavaScript" src="HolidaysClass.js"></script>
	<script language="JavaScript" src="HolidaysList.js"></script>
	
<script	language="JavaScript">
</script>

</head>
<body onload="showHoliday()">
<table width="100%">
	<tr>
		<td><H1>Заголовок страницы</h1></td>
		<td align="right">
			<div id="holidayPlaceHolder" style="display:none">
				Сегодня <a id="holidayLink" href="">День Святого Нуба</a>!!!
			</div>
		</td>
	</tr>
</table>

<p>
	контент контент контент контент контент контент контент контент контент 
	контент контент контент контент контент контент контент контент контент 
	контент контент контент контент контент контент контент контент контент 
	контент контент контент контент контент контент контент контент контент 
	контент контент контент контент контент контент контент контент контент 
</p>
<p>
	контент контент контент контент контент контент контент контент контент 
	контент контент контент контент контент контент контент контент контент 
	контент контент контент контент контент контент контент контент контент 
	контент контент контент контент контент контент контент контент контент 
	контент контент контент контент контент контент контент контент контент 
</p>
</body>
</html>
Файл: HolidaysList.js
//	Варианты вызова конструктора
//		new Holiday(name, link, dayOfYear); // день года
//		new Holiday(name, link, month, date); // точная дата
//		new Holiday(name, link, month, weekDay, wdNumber); // "wdNumber"'ый день недели месяца. Если последний, то wdNumber = THE_LAST_WD
//			Например:
//				new Holiday("праздник", "https://site.ru/", FEB, MON, 2); // второй понедельник февраля
//				new Holiday("праздник", "https://site.ru/", JUN, FRI, THE_LAST_WD); // последняя пятница июня

//
// Первый праздник - левый для проверки и отладки, его потом надо убрать
Date.allHolidays = [
	new Holiday("День отладки", "https://forum.arduino.ru/", MAY, WED, 4),
//
	new Holiday("День святого Нуба", "https://www.urbandictionary.com/define.php?term=St.%20Noob%27s%20Day", JAN, 4),
	new Holiday("День святого Нуба", "https://www.urbandictionary.com/define.php?term=St.%20Noob%27s%20Day", MAR, 23),
	new Holiday("День святого Нуба", "https://www.urbandictionary.com/define.php?term=St.%20Noob%27s%20Day", AUG, 1),
	new Holiday("День святого Нуба", "https://www.urbandictionary.com/define.php?term=St.%20Noob%27s%20Day", SEP, 13),
	new Holiday("День радио", "https://www.calend.ru/holidays/0/0/39/", MAY, 7),
	new Holiday("День программиста", "https://www.calend.ru/holidays/0/0/916/", 256),
	new Holiday("Всемирный день радиолюбителя", "https://www.calend.ru/holidays/0/0/2689/", APR, 18),
	new Holiday("Всемирный день инженерии", "https://www.calend.ru/holidays/0/0/3783/", MAR, 4),
	new Holiday("День гадания на кофейной гуще", "https://www.calend.ru/holidays/0/0/3751/", NOV, 1),
	new Holiday("День изобретателя и рационализатора", "https://www.calend.ru/holidays/0/0/144/", JUN, SAT, THE_LAST_WD),
	new Holiday("Международный день наставничества", "https://www.calend.ru/holidays/0/0/3858/", JAN, 17),
	new Holiday("День неудачника", "https://www.calend.ru/holidays/0/0/3764/", DEC, FRI, 3),
	new Holiday("День батарейки", "https://www.calend.ru/holidays/0/0/3671/", FEB, 18),
	new Holiday("Международный день «Девушки в ИКТ»", "https://www.calend.ru/holidays/0/0/3720/", APR, THU, 4),
	new Holiday("День рождения Рунета", "https://www.calend.ru/holidays/0/0/2403/", APR, 7)
];


function showHoliday() {
	var i = 0, len = Date.allHolidays.length;
	for (; i < len && ! Date.allHolidays[i].isHolidayToday; i++);
	if (i == len) return;
//	console.log("Go on!");
	var div = document.getElementById("holidayPlaceHolder");
	var link = document.getElementById("holidayLink");
	link.innerText = Date.allHolidays[i].name;
	link.href = Date.allHolidays[i].link;
	div.style.display="block";
}
Файл: HolidaysClass.js
//
//	Месяцы для использования при вызове конструктора
//
var JAN = 0;
var FEB = 1;
var MAR = 2;
var APR = 3;
var MAY = 4;
var JUN = 5;
var JUL = 6;
var AUG = 7;
var SEP = 8;
var OCT = 9;
var NOV = 10;
var DEC = 11;
	
//
//	Дни недели для использования при вызове конструктора
//
var SUN = 0;
var MON = 1;
var TUE = 2;
var WED = 3;
var THU = 4;
var FRI = 5;
var SAT = 6;

//
//	Используется вместо номера дня недели в месяце и означает "последний"
//	Например:
//		new Holiday("праздник", "https://site.ru/", FEB, MON, 2); // второй понедельник февраля
//		new Holiday("праздник", "https://site.ru/", JUN, FRI, THE_LAST_WD); // последняя пятница июня
//
var THE_LAST_WD = 10; // для обозначения последнего "дна недели" в месяце


//
//	Расширим чуток встроенный класс Date
//
Date.__day2ms__ = 1000 * 60 * 60 * 24;
Date.nowYear = (new Date()).getFullYear();
Date.nowMonth = (new Date()).getMonth();
Date.nowDate = (new Date()).getDate();
Date.nowDay = (new Date()).getDay();
Date.prototype.addDays = function (d) {return new Date(this.getTime() + d * Date.__day2ms__); }

//
//	Конструктор
//
function Holiday() {
	if (arguments.length < 3 || arguments.length > 5) return null;
	this.getDateByYearDay = _getDateByYearDay;
	this.getDateByWeekday = _getDateByWeekday;
	this.name = arguments[0];	// название праздника
	this.link = arguments[1];	// ссылка на описание праздника
	//
	var holidayDate; // здесь будет актуальная дата праздника после вычислений
	if (arguments.length == 3) holidayDate = this.getDateByYearDay(arguments[2]);
	else holidayDate = arguments.length == 5 ? 
			this.getDateByWeekday(arguments[2], arguments[3], arguments[4]) 
			: new Date(Date.nowYear, arguments[2], arguments[3]);

//	console.log("holidayDate="+holidayDate);
	// Проверка нужно на случай, если день "убежал", например, в этом месяце просто нет пятой пятницы.
	this.isHolidayToday = (arguments[2] == holidayDate.getMonth()) ? 
		holidayDate.getMonth() == Date.nowMonth && holidayDate.getDate() == Date.nowDate : false;
}

function _getDateByYearDay(dayOfYear) {
	var JanFirst = new Date(Date.nowYear, JAN, 1);
	return JanFirst.addDays(dayOfYear - 1); 
}

function _getDateByWeekday(month, day, dayNum) {
	var hDay;
	if (dayNum == THE_LAST_WD) { 
		// последний "день недели" месяца
		var lastDayOfMonth = (new Date(Date.nowYear, month + 1, 1)).addDays(-1);
		var lastDayWeekday = lastDayOfMonth.getDay();
		var daysBack = lastDayWeekday >= day ? lastDayWeekday - day : lastDayWeekday + 7 - day;
		hDay = lastDayOfMonth.addDays(- daysBack);
	} else {
		// dayNum'ый день недели месяца
		var firstDayOfMonth = new Date(Date.nowYear, month, 1);
		var firstDayWeekday = firstDayOfMonth.getDay();
		var daysForward = (day >= firstDayWeekday ? day - firstDayWeekday : day + 7 - firstDayWeekday) + 7 * (dayNum - 1);
		hDay = firstDayOfMonth.addDays(daysForward);
	}
	return hDay;
}

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

Евгений Петрович, при всем уважении к Вам, кнопку «Отметить все форумы прочитанными», думаю, оценят больше Ваших начинаний. Хотя и их можно, но потом.))
Можно голосовалку устроить, чтобы наверняка.

От себя хочу вот что сказать: Давайте сделаем раздел добрых дел (не знаю, назовите как хотите). Бывают у нас новички, особенно когда не хамят, у которых и вопросы простые. Суть раздела - простые вопросы и их решения складывать отдельно. На сколько простые? Не думаю, что должно с вики пересекаться, например, сегодняшняя тема с клавиатурой и добавлением трёхзначного числа. Понятно, что ТС там себе крест поставил своим поведением, но вопрос то простой.

Да ну нафиг эти разделы плодить!
Во-первых, раздел “Примеры. Алгоритмы. Wiki” именно для таких вещей и создан. Почему оно не должно с ним пересекаться?
Во-вторых, к сожалению, те, кому такие разделы предназначены, их не читают. Опять мартышкин труд будет.
В-третьих, во всех темах у нас форумчане (не только новички, но и старожилы) вечно разводят такой срач, что будет недостаточно просто переложить тему в предлагаемый раздел - в ней же всё равно ничего не найдёшь и не поймёшь! Сначала нужно её основательно вычистить, привести в читабельный вид - проще с нуля пример для раздела wiki написать, если есть желание.

3 лайка

:smiley:

Услышал…