День рождения в темах форума - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

День рождения в темах форума

#1 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 922
  • Регистрация: 14-Июнь 09
  • Репутация: 21
  • IPB version:3.1.x
 

Отправлено 05 Февраль 2017 - 02:17

Как можно реализовать отображения дня рождения пользователя в его сообщениях в темах а также в его профиле?
0

#2 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 787
  • Регистрация: 27-Март 16
  • Репутация: 48
  • IPB version:3.4.x
 

Отправлено 05 Февраль 2017 - 16:43

В начало шаблона userInfoPane добавить:

<php>
$birthday = IPSMember::load( $author['member_id'], 'members' );
</php>

Там, где нужно вывести дату Рождения (в этом шаблоне) добавить:

<li>
<span style='font-weight: bold;'>День Рождения:</span>
<br />
<if test="$birthday['bday_day']">{$birthday['bday_day']}.<else />
<span style='font-style: italic;'>Неизвестен</span></if><if test="$birthday['bday_month']">{$birthday['bday_month']}</if><if test="$birthday['bday_year']">.{$birthday['bday_year']}</if>
</li>

Сообщение изменено: Strategius (05 Февраль 2017 - 17:27)

1

#3 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 922
  • Регистрация: 14-Июнь 09
  • Репутация: 21
  • IPB version:3.1.x
 

Отправлено 05 Февраль 2017 - 18:30

Просмотреть сообщениеStrategius сказал(а):

В начало шаблона userInfoPane добавить:

Неплохо.

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

Да и ещё этот код даёт по одному лишнему запросу от каждого пользователя в теме.
0

#4 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 787
  • Регистрация: 27-Март 16
  • Репутация: 48
  • IPB version:3.4.x
 

Отправлено 05 Февраль 2017 - 18:33

Цитата

Да и ещё этот код даёт по одному лишнему запросу от каждого пользователя в теме.

Так а без этого никак, насколько я знаю, дата рождения не кешируется.
0

#5 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 922
  • Регистрация: 14-Июнь 09
  • Репутация: 21
  • IPB version:3.1.x
 

Отправлено 05 Февраль 2017 - 18:45

Просмотреть сообщениеStrategius сказал(а):

Так а без этого никак, насколько я знаю, дата рождения не кешируется.

Запрос не ощутимый вообще то.

А вот как бы сделать как в четвёрке - выделяеться у тех у кого день рождения сегодня.
0

#6 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 787
  • Регистрация: 27-Март 16
  • Репутация: 48
  • IPB version:3.4.x
 

Отправлено 05 Февраль 2017 - 21:58

Цитата

А вот как бы сделать как в четвёрке - выделяеться у тех у кого день рождения сегодня.

Вот этого к сожалению не знаю. Теоретически, можно составить условие проверки совпадения даты рождения с текущей датой, и в случае возвращения положительного результата реализовать смену визуального оформления.
0

#7 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 922
  • Регистрация: 14-Июнь 09
  • Репутация: 21
  • IPB version:3.1.x
 

Отправлено 05 Февраль 2017 - 22:32

Просмотреть сообщениеStrategius сказал(а):

Вот этого к сожалению не знаю. Теоретически, можно составить условие проверки совпадения даты рождения с текущей датой, и в случае возвращения положительного результата реализовать смену визуального оформления.

Вот такое мне и нужно.

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

Вложений


0

#8 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 787
  • Регистрация: 27-Март 16
  • Репутация: 48
  • IPB version:3.4.x
 

Отправлено 05 Февраль 2017 - 22:56

{parse template="hooksos_birthdaymsg" group="topic" params="$member"}

Такой вариант не работает?

Сообщение изменено: Strategius (05 Февраль 2017 - 23:16)

0

#9 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 648
  • Регистрация: 15-Октябрь 11
  • Репутация: 188
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 06 Февраль 2017 - 01:18

Цитата

А вот как бы сделать как в четвёрке - выделяеться у тех у кого день рождения сегодня

Дни рождений кешируются. Если установлен IP.Calendar, то сделать можно так:
<php>
$bDayIds = array();
foreach( $this->cache->getCache('birthdays') as $_bday )
{
	$bDayIds[] = $_bday['member_id'];
}
</php>
<if test="in_array( $author['member_id'], $bDayIds )"><!--any html code--></if>

Лучше бы вынести логику в файл, конечно, но нет времени копаться сейчас.
2

#10 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 787
  • Регистрация: 27-Март 16
  • Репутация: 48
  • IPB version:3.4.x
 

Отправлено 06 Февраль 2017 - 01:23

Цитата

Если установлен IP.Calendar

А если нет? Точнее установлен, но отключен из-за ненадобности.

Сообщение изменено: Strategius (06 Февраль 2017 - 01:24)

0

#11 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 648
  • Регистрация: 15-Октябрь 11
  • Репутация: 188
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 06 Февраль 2017 - 01:59

Хотите, что бы код работал, приложение нужно включить, иначе не будет работать задача в планировщике и обновляться кеш дней рождений, соответственно. Хуки для сайдбара можно отключить отдельно, и скрыть приложение в главном меню.
0

#12 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 922
  • Регистрация: 14-Июнь 09
  • Репутация: 21
  • IPB version:3.1.x
 

Отправлено 06 Февраль 2017 - 02:50

Просмотреть сообщениеDmitriy427 сказал(а):

Дни рождений кешируются. Если установлен IP.Calendar, то сделать можно так:

Круть, работает. Спасибо.

И создаёт всего один лишний запрос, несущественный.
0

#13 Пользователь не на сайте   Liana ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 2
  • Регистрация: 12-Январь 17
  • Репутация: 2
  • IPB version:3.4.x
 

Отправлено 06 Февраль 2017 - 12:10

А поподробнее можно?
0

#14 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 787
  • Регистрация: 27-Март 16
  • Репутация: 48
  • IPB version:3.4.x
 

Отправлено 06 Февраль 2017 - 19:36

Цитата

А поподробнее можно?

Что именно Вам нужно подробнее описать? Если про установку правки от Dmitriy427 из поста #9, то

Это

<php>
$bDayIds = array();
foreach( $this->cache->getCache('birthdays') as $_bday )
{
    $bDayIds[] = $_bday['member_id'];
}
</php>

Вставляете в начало шаблона userInfoPane, а это:

<if test="in_array( $author['member_id'], $bDayIds )"><!--any html code--></if>

В то место, куда нужно вывести поздравление.

Вместо <!--any html code--> вставляете свой код.
0

#15 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 003
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 252
  • IPB version:I have no IPB
 

Отправлено 07 Февраль 2017 - 10:56

Кто-нибудь в курсе, что в календарном кеше хранятся вчерашние/сегодняшние/завтрашние именинники? А в 3.4 вообще по 6 штук.
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна