Nov 13, 2010 14:53
Для соцсети Битрикса нужно было сделать простенький аяксовский индикатор, который должен показывать число непрочитанных сообщений у пользователя в личной переписке. Для этого можно было поизвращаться с компонентом socialnetwork.events_dyn, но там слишком велик функционал - он нам не нужен.
Нам нужны два файла:
1. "/user/chm.php"
global $APPLICATION, $USER;
$user = $USER->GetID();
if(CModule::IncludeModule("socialnetwork")){
$arMesFilter = array("TO_USER_ID" => $user);
$rsMessages = CSocNetMessages::GetList(array("ID" => "DESC"), $arMesFilter, $arMesSelect);
$unreadmess = 0;
while ($arMessages = $rsMessages -> GetNext()){
if ( $arMessages["DATE_VIEW"] == '' && $arMessages["TO_DELETED"] != 'Y' && $arMessages["MESSAGE_TYPE"] == "P"){
$unreadmess++;
}
}
}
echo '{"count":'.$unreadmess.'}';
?>
2. "/user/check_messages.php"
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
global $APPLICATION;
echo "";
?>
и строчка вставки в то место, где должен отображаться индикатор:
$APPLICATION->IncludeFile("/user/check_messages.php", Array());
соцсеть,
ajax,
индикатор сообщений