Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Показ "Дни рождения" на главной только при наличии юбиляров

Здесь авторы могут постить бета-версии своих расширений для phpBB. Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 11 лет 11 месяцев
Благодарил (а): 101 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение xisp »

Собственно сабж. Сваял за пять минут в STK :D
Работу на модифицированных стилях не гарантирую. Сабсилвер как всегда не у дел.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
phpBBex
Erlang
phpBB 2.0.15
Сообщения: 1033
Стаж: 19 лет 9 месяцев
Откуда: Москва
Благодарил (а): 209 раз
Поблагодарили: 4 раза

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение Erlang »

Вроде работает.
Дополнительных настроек нет?
С уважением,
Сергей
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 11 лет 11 месяцев
Благодарил (а): 101 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение xisp »

Нет. Да и к чему там они. Зато за 5 минут :)
phpBBex
carik
phpBB 1.4.4
Сообщения: 124
Стаж: 10 лет 5 месяцев
Благодарил (а): 25 раз

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение carik »

прям лучше не придумаешь! спасибо!
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5284
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение Siava »

А как сделать, если пользователей очень много и каждый день отображаются десятки дней рождений. Но многие из этих пользователей давно не заходили на форум и отображать дни рождения только тех, кто заходил последний год?
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение Alecto »

а вдруг он гостем ходит, без авторизации? а тут свою днюху увидит, проникнется благодарностью, что помните, залогинится и вернется как активный пользователь?
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5284
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение Siava »

Alecto, а гостям разве этот список виден?
В код движка лезть править не хочется, а как расширением сделать пока мозгов не хватает, ввиду отсутствия опыта.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16369
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение rxu »

Siava писал(а): отображать дни рождения только тех, кто заходил последний год
Тут только хакнуть SQL запрос в index.php, вот этот

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

	$sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday
		FROM ' . USERS_TABLE . ' u
		LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)
		WHERE (b.ban_id IS NULL
			OR b.ban_exclude = 1)
			AND (u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' $leap_year_birthdays)
			AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
добавив туда что-то типа

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

AND u.user_lastvisit >= ' . (time() - 3600*24*365);
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5284
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение Siava »

rxu писал(а): Тут только хакнуть SQL запрос в index.php, вот этот
Потихоньку избавляюсь от правок ядра и удалось впихнуть в виде расширения :)
в listener.php своего расширения такую функцию состряпал:

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

	public function index_modify_birthdays_sql_siava($event) // Дни рождения только тех, кто заходил за год
	{
		// кусок оригинального кода из index.php для работы $leap_year_birthdays
		$time = $this->user->create_datetime();
		$now = phpbb_gmgetdate($time->getTimestamp() + $time->getOffset());

		// Display birthdays of 29th february on 28th february in non-leap-years
		$leap_year_birthdays = '';
		if ($now['mday'] == 28 && $now['mon'] == 2 && !$time->format('L'))
		{
			$leap_year_birthdays = " OR u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', 29, 2)) . "%'";
		}
		// end кусок оригинального кода

		$sql_ary = $event['sql_ary'];
		
		$sql_ary['WHERE'] = "(b.ban_id IS NULL OR b.ban_exclude = 1)
			AND (u.user_birthday LIKE '" . $this->db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' $leap_year_birthdays)
			AND u.user_lastvisit >= '" . (time() - 3600*24*365) . "'
			AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';

		$event['sql_ary'] = $sql_ary;
	}
Пришлось кусок оригинального кода туда добавить, чтобы переменная $leap_year_birthdays подцепилась. Может как-то иначе можно?
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Erlang
phpBB 2.0.15
Сообщения: 1033
Стаж: 19 лет 9 месяцев
Откуда: Москва
Благодарил (а): 209 раз
Поблагодарили: 4 раза

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение Erlang »

Siava писал(а): Но многие из этих пользователей давно не заходили на форум и отображать дни рождения только тех, кто заходил последний год?
Зато кто-то из форум чан увидит что у него днюха, поздравит в личке, именинник увидит, ему станет приятно,
и вернётся на форум :)

P.S.
Наверное есть и расширение "Поздравить юбиляра в личку"
Может есть ссылка...
С уважением,
Сергей
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5284
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение Siava »

Erlang, у меня форум сам юбиляров поздравляет, так что такое внимание точно ни к чему. :) А когда зареганных пользователей несколько десятков тысяч, то именинников ооочень много. Поэтому фильтрую только более менее живых.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Erlang
phpBB 2.0.15
Сообщения: 1033
Стаж: 19 лет 9 месяцев
Откуда: Москва
Благодарил (а): 209 раз
Поблагодарили: 4 раза

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение Erlang »

Siava писал(а): у меня форум сам юбиляров поздравляет, так что такое внимание точно ни к чему
Был мод "Поздравление с ДР в личку автоматом".
Там просто можно свой текст было добавить.
На 3.1.х наверное такой уже есть.

Вот было-бы интересно ещё на мейл поздравление отправлять.
С уважением,
Сергей
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5284
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Показ "Дни рождения" на главной только при наличии юбиляров

Сообщение Siava »

Erlang, вы не поверите, есть! :)
Re: Email on birthday - Рассылка поздравлений
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)

Вернуться в «Бета-версии расширений для phpBB»