- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/componenthelper.php
- Класс: BitrixSocialnetworkComponentHelper
- Вызов: ComponentHelper::createUserBlog
static function createUserBlog($params)
{
$result = false;
if (!Loader::includeModule('blog'))
{
throw new MainSystemException("Could not load 'blog' module.");
}
if (
!isset($params["BLOG_GROUP_ID"], $params["USER_ID"], $params["SITE_ID"])
|| (int)$params["BLOG_GROUP_ID"] <= 0
|| (int)$params["USER_ID"] <= 0
|| (string)$params["SITE_ID"] === ''
)
{
return false;
}
if (
!isset($params["PATH_TO_BLOG"])
|| $params["PATH_TO_BLOG"] == ''
)
{
$params["PATH_TO_BLOG"] = "";
}
$connection = Application::getConnection();
$helper = $connection->getSqlHelper();
$fields = array(
"=DATE_UPDATE" => $helper->getCurrentDateTimeFunction(),
"=DATE_CREATE" => $helper->getCurrentDateTimeFunction(),
"GROUP_ID" => (int)$params["BLOG_GROUP_ID"],
"ACTIVE" => "Y",
"OWNER_ID" => (int)$params["USER_ID"],
"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",
"PERMS_POST" => Array(
1 => "I",
2 => "I"
),
"PERMS_COMMENT" => Array(
1 => "P",
2 => "P"
)
);
$res = BitrixMainUserTable::getList(array(
'order' => array(),
'filter' => array(
"ID" => $params["USER_ID"]
),
'select' => array("NAME", "LAST_NAME", "LOGIN")
));
if ($user = $res->fetch())
{
$fields["NAME"] = Loc::getMessage("BLG_NAME")." ".(
$user["NAME"]."".$user["LAST_NAME"] === ''
? $user["LOGIN"]
: $user["NAME"]." ".$user["LAST_NAME"]
);
$fields["URL"] = str_replace(" ", "_", $user["LOGIN"])."-blog-".$params["SITE_ID"];
$urlCheck = preg_replace("/[^a-zA-Z0-9_-]/i", "", $fields["URL"]);
if ($urlCheck !== $fields["URL"])
{
$fields["URL"] = "u".$params["USER_ID"]."-blog-".$params["SITE_ID"];
}
if(CBlog::getByUrl($fields["URL"]))
{
$uind = 0;
do
{
$uind++;
$fields["URL"] .= $uind;
}
while (CBlog::getByUrl($fields["URL"]));
}
$fields["PATH"] = CComponentEngine::makePathFromTemplate(
$params["PATH_TO_BLOG"],
array(
"blog" => $fields["URL"],
"user_id" => $fields["OWNER_ID"]
)
);
if ($blogID = CBlog::add($fields))
{
BXClearCache(true, "/blog/form/blog/");
$rightsFound = false;
$featureOperationPerms = CSocNetFeaturesPerms::getOperationPerm(
SONET_ENTITY_USER,
$fields["OWNER_ID"],
"blog",
"view_post"
);
if ($featureOperationPerms === SONET_RELATIONS_TYPE_ALL)
{
$rightsFound = true;
}
if ($rightsFound)
{
CBlog::addSocnetRead($blogID);
}
$result = CBlog::getByID($blogID);
}
}
return $result;
}