Опубликовано: 4 февраля 20178 г Как можно реализовать отображения дня рождения пользователя в его сообщениях в темах а также в его профиле?
Опубликовано: 5 февраля 20178 г В начало шаблона 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> Изменено 5 февраля 20178 г пользователем Strategius
Опубликовано: 5 февраля 20178 г Автор В начало шаблона userInfoPane добавить:Неплохо. Вот только бы хотелось что бы у тех кто празднует сегодня день рождения, такая информация отображалась по другому, выделялась. Да и ещё этот код даёт по одному лишнему запросу от каждого пользователя в теме.
Опубликовано: 5 февраля 20178 г Да и ещё этот код даёт по одному лишнему запросу от каждого пользователя в теме.Так а без этого никак, насколько я знаю, дата рождения не кешируется.
Опубликовано: 5 февраля 20178 г Автор Так а без этого никак, насколько я знаю, дата рождения не кешируется.Запрос не ощутимый вообще то. А вот как бы сделать как в четвёрке - выделяеться у тех у кого день рождения сегодня.
Опубликовано: 5 февраля 20178 г А вот как бы сделать как в четвёрке - выделяеться у тех у кого день рождения сегодня.Вот этого к сожалению не знаю. Теоретически, можно составить условие проверки совпадения даты рождения с текущей датой, и в случае возвращения положительного результата реализовать смену визуального оформления.
Опубликовано: 5 февраля 20178 г Автор Вот этого к сожалению не знаю. Теоретически, можно составить условие проверки совпадения даты рождения с текущей датой, и в случае возвращения положительного результата реализовать смену визуального оформления.Вот такое мне и нужно. Кстати у меня на форуме стоит хук Поздравление с днём рождения, выводит на главной таблицу с поздравление индивидуально пользователю у которого день рождение.Вот точно такое же, но только что бы было всем видно и в темах форума.Поздравление с днём рождения.xml
Опубликовано: 5 февраля 20178 г {parse template="hooksos_birthdaymsg" group="topic" params="$member"}Такой вариант не работает? Изменено 5 февраля 20178 г пользователем Strategius
Опубликовано: 5 февраля 20178 г А вот как бы сделать как в четвёрке - выделяеться у тех у кого день рождения сегодняДни рождений кешируются. Если установлен 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> Лучше бы вынести логику в файл, конечно, но нет времени копаться сейчас.
Опубликовано: 5 февраля 20178 г Если установлен IP.CalendarА если нет? Точнее установлен, но отключен из-за ненадобности. Изменено 5 февраля 20178 г пользователем Strategius
Опубликовано: 5 февраля 20178 г Хотите, что бы код работал, приложение нужно включить, иначе не будет работать задача в планировщике и обновляться кеш дней рождений, соответственно. Хуки для сайдбара можно отключить отдельно, и скрыть приложение в главном меню.
Опубликовано: 5 февраля 20178 г Автор Дни рождений кешируются. Если установлен IP.Calendar, то сделать можно так:Круть, работает. Спасибо. И создаёт всего один лишний запрос, несущественный.
Опубликовано: 6 февраля 20178 г А поподробнее можно?Что именно Вам нужно подробнее описать? Если про установку правки от @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--> вставляете свой код.
Опубликовано: 7 февраля 20178 г Кто-нибудь в курсе, что в календарном кеше хранятся вчерашние/сегодняшние/завтрашние именинники? А в 3.4 вообще по 6 штук.
Опубликовано: 8 февраля 20178 г Автор Кто-нибудь в курсе, что в календарном кеше хранятся вчерашние/сегодняшние/завтрашние именинники? А в 3.4 вообще по 6 штук.Да и оказывается есть баг - этот скрипт отображает не только сегодняшних именинников, но и вчерашних и завтрашних. Как это пофиксить?
Как можно реализовать отображения дня рождения пользователя в его сообщениях в темах а также в его профиле?