Модуль «Блок "Дни рождения"»

Добрый день.
Мой хороший друг и товарищ anaximen сделал модуль «Блок «Дни рождения»».
Суть его простая — в отдельном блоке выводит список прошедших, текущих и будущих дней рождений зарегистрированных пользователей, а во второй вкладке — друзей. (вот и пригодились «друзья» в ЖУ ;)
Мы разместили это блок на странице «Люди», справа от списка пользователей, статистику подвинув вниз.
Модуль простой, доработать не так сложно на свое усмотрение.
Описание установки внутри.
Модуль бесплатный.

35 комментариев

avatar
однозначно полезно! Спасибо
avatar
кстати, на основе него же можно сделать и день рождения Блога? ;)
avatar
Если храните дату создания блога — то почему бы и нет =)
avatar
У меня не пашет (((

Warning: uasort() [function.uasort]: The argument should be an array in ***\classes\blocks\BlockBirthdays.class.php on line 56

Warning: uasort() [function.uasort]: The argument should be an array in ***\classes\blocks\BlockBirthdays.class.php on line 57
avatar
лечится!

uasort($aAllBirthdays, array("BlockBirthdays", "cmp"));

uasort($aBirthdays, array("BlockBirthdays", "cmp"));


надо заменить на

if (count($aAllBirthdays)>0) uasort($aAllBirthdays, array("BlockBirthdays","cmp"));

if (count($aBirthdays)>0) uasort($aBirthdays, array("BlockBirthdays", "cmp"));



сегодня обновим в репозитории
avatar
P.S. это надо делать в файле BlockBirthdays.class.php
avatar
Ура! Работает, Спасибо!
avatar
обновил
avatar
а где модуль то???
avatar
на премодерации после исправления ошибок, очевидно же
avatar
Супер!
avatar
Установил, что то у меня ничего не происходит. В ActionIndex.class.php прописал
$this->Viewer_AddBlocks('right',array('birthdays','stream','tags','blogs'));

В templates/skin/new/actions/ActionPeople/sidebar.tpl прописал в конец
{insert name="block" block='birthdays'}
Блок не появляется вообще. Что не так делаю?
avatar
Дело в том, что среди Ваших пользователей нет таких у кого день рождения находится в пределах ± 5 дней от сегодняшнего. Смысла выводить пустой блок нет. Попробуйте поставить себе день рождения например вчера и увидите себя в данном блоке. Верхнюю и нижнюю границу интервала вывода менять в конфиге.
avatar
Точно, спасибо огромное, отлично работает!
avatar
ТРУ! ~~~ Еще-бы рядом с датой, в скобочках писать возраст — было бы вообще супер!
avatar
Fatal error: Smarty error: [in block.birthdays.tpl line 41]: syntax error: unidentified token '"' (Smarty_Compiler.class.php, line 1405) in /home/creative/public_html/24notero/classes/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
avatar
как убрать год при выводе дня рождения?
  • bruh
  • 0
avatar
/config/blocks/birthdays/config.php

строка
define('BIRTHDAYS_DATE_FORMAT',"j rus_mon Y"); 


сделать так
define('BIRTHDAYS_DATE_FORMAT',"j rus_mon"); 

avatar
Что то странное с модулем, после нового года у всех пользователей у кого в профиле не указаны данные о дне рождения, модуль показывает текущий день рождения, я так предполагаю, что это из-за смены года произошло, есть у кого подобные проблемы, и как их лечить?
avatar
+1
че делать то?
avatar
Есть такое, и даже у тех, у кого дата ДР указана
avatar
а нет, прошу прощения, только у тех, у кого не указан
avatar
в общем, программисты в запое)
ждем
avatar
Присоединяюсь к проблеме
avatar
как временное решение добавил проверку на существование
for ($i=0;$i<count($aUsers);$i++){
if (($aUsers[$i]->getProfileBirthday())){
	$userdate=strtotime($aUsers[$i]->getProfileBirthday());
	$usr=mktime(0, 0, 0, date("m",$userdate)  , date("d",$userdate), 0);
	if (($usr<$max)&&($usr>=$min)) $aAllBirthdays[]=$aUsers[$i];
}
}
но все равно жду решения )
avatar
это куда вставлять?
у самого такая фигня, поставил а он мне всех 4м января гонить у кого не ДР
avatar
в \classes\blocks\BlockBirthdays.class.php замени функцию на
public function Exec() {
		
		
		$min= mktime(0, 0, 0, date("m")  , date("d")-BIRTHDAYS_DATE_DOWN, 0);
		$max= mktime(0, 0, 0, date("m")  , date("d")+BIRTHDAYS_DATE_UP, 0);
		
		if ($this->oEngine->User_IsAuthorization()){
                $aUser = $this->oEngine->User_GetUserCurrent();
                $aUsersFriend=$this->oEngine->User_GetUsersFrend($aUser->GetId());
                for ($i=0;$i<count($aUsersFriend);$i++){
				if (($aUsersFriend[$i]->getProfileBirthday())){
		$userdate=strtotime($aUsersFriend[$i]->getProfileBirthday());
		$usr=mktime(0, 0, 0, date("m",$userdate)  , date("d",$userdate), 0);
		if (($usr<$max)&&($usr>=$min)) $aBirthdays[]=$aUsersFriend[$i];
		}
		}
		}
		$aResult=$this->oEngine->User_GetUsersRating("good",0,1,9999999);	
		$aUsers=$aResult['collection'];	
		
		for ($i=0;$i<count($aUsers);$i++){
		if (($aUsers[$i]->getProfileBirthday())){
			$userdate=strtotime($aUsers[$i]->getProfileBirthday());
			$usr=mktime(0, 0, 0, date("m",$userdate)  , date("d",$userdate), 0);
			if (($usr<$max)&&($usr>=$min)) $aAllBirthdays[]=$aUsers[$i];
		}
		}
		
		if (count($aAllBirthdays)>0) uasort($aAllBirthdays, array("BlockBirthdays", "cmp"));
		if (count($aBirthdays)>0)uasort($aBirthdays, array("BlockBirthdays", "cmp"));
		
		$this->Viewer_Assign("aFriendBirthDays",$aBirthdays);
		$this->Viewer_Assign("aAllBirthDays",$aAllBirthdays);
		$this->Viewer_Assign("BIRTHDAYS_DATE_FORMAT",BIRTHDAYS_DATE_FORMAT);
	}
	
}
avatar
спасибо! помогло
avatar
Спасибо, решено.
avatar
спасибо
хоть
ваше здоровье!
avatar
ну так афтар проснулся ужо?)
avatar
афтар празднует, а вот это livestreet.ru/blog/addons/1453.html#comment38731 работает
avatar
LS 0.4.2
SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1, 1' at line 9 at /hsphere/local/home/sajt.ru/classes/modules/user/mapper/User.mapper.class.php line 276
Array ( [code] => 1064 [message] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1, 1' at line 9 [query] => SELECT SQL_CALC_FOUND_ROWS user_id FROM ls_user WHERE user_rating >=0 and user_activate = 1 ORDER BY user_rating DESC, user_skill desc LIMIT -1, 1 [context] => /hsphere/local/home/sajt.ru/classes/modules/user/mapper/User.mapper.class.php line 276 )
avatar
А чего Вы хотите, это модуль для версии 0.3.1 он на 0.4.2 не будет работать. Ждите… может кто плагин напишет :)
avatar
на 0.42 Работает без конфликтов???
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.