php Поствживуюлентуbitrix24。 #CBlog ::添加#CBlogPost ::添加#CBlogPost :: Notify
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Поствживуюлентуbitrix24。 #CBlog ::添加#CBlogPost ::添加#CBlogPost :: Notify相关的知识,希望对你有一定的参考价值。
<?
public static $arAdminUserGroups = array(26);
/**
* Метод для создания блога
*
* @param int $userId - id полльзователя, для которого создается блог
* @param int $blogGroupId - группа блогов, в которую включать создаваемый блог
* @param string $siteId - сайт
* @return array
*/
public function createBlog($userId, $blogGroupId, $siteId)
{
$arRes = array();
if(Loader::includeModule("blog") && Loader::includeModule("socialnetwork"))
{
global $DB;
$arFields = array(
"=DATE_UPDATE" => $DB->CurrentTimeFunction(),
"GROUP_ID" => $blogGroupId,
"ACTIVE" => "Y",
"ENABLE_COMMENTS" => "Y",
"ENABLE_IMG_VERIF" => "Y",
"EMAIL_NOTIFY" => "Y",
"ENABLE_RSS" => "Y",
"ALLOW_HTML" => "N",
"ENABLE_TRACKBACK" => "N",
"SEARCH_INDEX" => "Y",
"USE_SOCNET" => "Y",
"=DATE_CREATE" => $DB->CurrentTimeFunction(),
"PERMS_POST" => Array(
1 => "I",
2 => "I" ),
"PERMS_COMMENT" => Array(
1 => "P",
2 => "P" ),
);
$bRights = false;
$rsUser = \CUser::GetByID($userId);
$arUser = $rsUser->Fetch();
if(strlen($arUser["NAME"]."".$arUser["LAST_NAME"]) <= 0)
{
$arFields["NAME"] = Loc::getMessage("TRS_SNBPA_BLOG_NAME")." ".$arUser["LOGIN"];
}
else
{
$arFields["NAME"] = Loc::getMessage("TRS_SNBPA_BLOG_NAME")." ".$arUser["NAME"]." ".$arUser["LAST_NAME"];
}
$arFields["URL"] = str_replace(" ", "_", $arUser["LOGIN"])."-blog-".$siteId;
$arFields["OWNER_ID"] = $userId;
$urlCheck = preg_replace("/[^a-zA-Z0-9_-]/is", "", $arFields["URL"]);
if ($urlCheck != $arFields["URL"])
{
$arFields["URL"] = "u".$userId."-blog-".$siteId;
}
if(\CBlog::GetByUrl($arFields["URL"]))
{
$uind = 0;
do
{
$uind++;
$arFields["URL"] = $arFields["URL"].$uind;
}
while (\CBlog::GetByUrl($arFields["URL"]));
}
$featureOperationPerms = \CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_USER, $arFields["OWNER_ID"], "blog", "view_post");
if ($featureOperationPerms == SONET_RELATIONS_TYPE_ALL)
{
$bRights = true;
}
$blogID = \CBlog::Add($arFields);
BXClearCache(true, "/blog/form/blog/");
if ($bRights)
{
\CBlog::AddSocnetRead($blogID);
}
$arRes = \CBlog::GetByID($blogID, $blogGroupId);
}
return $arRes;
}
public function getUsersIDInGroup($iGroupID=0)
{
if(!$iGroupID)
{
return false;
}
$cUser = new CUser;
$sort_by = "ID";
$sort_ord = "ASC";
$arFilter = array(
"GROUPS_ID" => $iGroupID,
);
$dbUsers = $cUser->GetList($sort_by, $sort_ord, $arFilter);
while ($arUser = $dbUsers->Fetch())
{
$result[] = $arUser['ID'];
}
return $result;
}
/**
* Отправляем соообщение $sMessage в живую ленту пользователям с id из массива $arUserIDs(если он пуст, сообщение отправляется только пользователю кем инициировано создание сообщения)
*/
public function sendNotify( $sMessage, $arUserIDs=array() )
{
global $USER;
CModule::IncludeModule("blog");
$sSiteID = 's1';
$iUserID = $USER->GetID();
if(!$arUserIDs)
{
$arUserIDs = array($iUserID);
}
foreach(array(self::$arAdminUserGroups) as $iGroup)
{
//$arMasterRights[] = 'G'.$iGroup;
}
foreach($arUserIDs as $iID)
{
if(!in_array('U'.$iID, $arMasterRights))
{
$arMasterRights[] = 'U'.$iID;
}
}
$arBlog = CBlog::GetByOwnerID($iUserID);
if (!$arBlog)
{
$arBlog = self::createBlog($iUserID, 1, $sSiteID);
}
$arFields = array(
"TITLE" => "Смена сценария доступа",
"DETAIL_TEXT" => $sMessage,
"DATE_PUBLISH" => date('d.m.Y H:i:s'),
"PUBLISH_STATUS" => "P",
"CATEGORY_ID" => "",
//"PATH" => " / company / personal / user / ".$USER->GetID()." / blog /#post_id#/",
"URL" => $arBlog['URL'],
"PERMS_POST" => Array(),
"PERMS_COMMENT" => Array(),
"ENABLE_TRACKBACK"=>"Y",
"MICRO"=>"Y",
"HAS_PROPS"=>"Y",
"UF_BLOG_POST_IMPRTNT"=>"1",
"SOCNET_RIGHTS" =>$arMasterRights,
"=DATE_CREATE" => "now()",
"AUTHOR_ID" => $iUserID,
"BLOG_ID" => $arBlog['ID'],
'UF_IMPRTANT_DATE_END' => date('d.m.Y', strtotime("+1 day")).' 00:00:00' // делаем это сообщение важным на один день
);
// создаем пост в блоге
$newID = CBlogPost::Add($arFields);
$arFields["ID"] = $newID;
$arParamsNotify = Array(
"bSoNet" => true,
"UserID" =>$iUserID,
"SITE_ID" => $sSiteID
//"user_id" => $iUserID,
);
// отправляем созданный пост в живую ленту
$logId = CBlogPost::Notify($arFields, $arBlog, $arParamsNotify);
BXClearCache(true, \Bitrix\Socialnetwork\ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'posts_last',
'SITE_ID' => $sSiteID
)));
}
/**
* Общая функция смены сценария
*/
public function changeScenario($iID)
{
global $USER;
$arRes = self::activateScenarion($iID);
if($arRes['AFTER'])
{
$sMessage = 'Пользователем «'.$USER->GetFullName().'» был изменен сценарий доступности портала с «'.$arRes['BEFORE'].'» на «'.$arRes['AFTER'].'»';
// отправить сообщение в живую ленту
$arNotifyUsers = self::getUsersIDInGroup(self::$arAdminUserGroups);
self::sendNotify($sMessage, $arNotifyUsers);
}
}
?>
以上是关于php Поствживуюлентуbitrix24。 #CBlog ::添加#CBlogPost ::添加#CBlogPost :: Notify的主要内容,如果未能解决你的问题,请参考以下文章
php обрезаемпоследнююбукву - делаемизмножественногочислаединственное
php ОтключениескриптовистилейCF7тамгденужно
php Выводитвадмин-сайдбарпунктыменюдлякаждойнепустойрубрики
php Еслинамнужно,чтобыбылоневозможноредактироватьполе“Название”,мывносимследующеевычисление...