function Delete($ID) { global $DB; $ID = IntVal($ID); $dbResult = CBlog::GetList(array(), array("GROUP_ID" => $ID), false, false, array("ID")); if ($dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $ID, GetMessage("BLG_GG_ERROR_NOT_EMPTY")), "ERROR_NOT_EMPTY"); return False; } unset($GLOBALS["BLOG_GROUP"]["BLOG_GROUP_CACHE_" . $ID]); return $DB->Query("DELETE FROM b_blog_group WHERE ID = " . $ID . "", true); }
function CheckFields($ACTION, &$arFields, $ID = 0) { global $DB; if ((is_set($arFields, "NAME") || $ACTION == "ADD") && strlen($arFields["NAME"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_EMPTY_NAME"), "EMPTY_NAME"); return false; } /* elseif (is_set($arFields, "NAME")) { $dbResult = CBlog::GetList(array(), array("NAME" => $arFields["NAME"], "!ID" => $ID), false, false, array("ID")); if ($dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_DUBLICATE_NAME"), "DUBLICATE_NAME"); return false; } } */ if ((is_set($arFields, "URL") || $ACTION == "ADD") && strlen($arFields["URL"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_EMPTY_URL"), "EMPTY_URL"); return false; } elseif (is_set($arFields, "URL")) { $urlCheck = preg_replace("/[^a-zA-Z0-9_-]/is", "", $arFields["URL"]); if ($urlCheck != $arFields["URL"]) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_BAD_URL"), "BAD_URL"); return false; } $dbResult = CBlog::GetList(array(), array("URL" => $arFields["URL"], "!ID" => $ID), false, false, array("ID")); if ($dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_DUBLICATE_URL"), "DUBLICATE_URL"); return false; } if (in_array(strtolower($arFields["URL"]), $GLOBALS["AR_BLOG_RESERVED_NAMES"])) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#NAME#", $arFields["URL"], GetMessage("BLG_GB_RESERVED_NAME")), "RESERVED_NAME"); return false; } } if (is_set($arFields, "DATE_CREATE") && !$DB->IsDate($arFields["DATE_CREATE"], false, LANG, "FULL")) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_EMPTY_DATE_CREATE"), "EMPTY_DATE_CREATE"); return false; } if (is_set($arFields, "DATE_UPDATE") && !$DB->IsDate($arFields["DATE_UPDATE"], false, LANG, "FULL")) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_EMPTY_DATE_UPDATE"), "EMPTY_DATE_UPDATE"); return false; } if (is_set($arFields, "LAST_POST_DATE") && (!$DB->IsDate($arFields["LAST_POST_DATE"], false, LANG, "FULL") && strlen($arFields["LAST_POST_DATE"]) > 0)) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_EMPTY_LAST_POST_DATE"), "EMPTY_LAST_POST_DATE"); return false; } if ($ACTION == "ADD" && (IntVal($arFields["OWNER_ID"]) <= 0 && IntVal($arFields["SOCNET_GROUP_ID"]) <= 0)) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_EMPTY_OWNER_ID"), "EMPTY_OWNER_ID"); return false; } if (IntVal($arFields["OWNER_ID"]) > 0) { $dbResult = CUser::GetByID($arFields["OWNER_ID"]); if (!$dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_ERROR_NO_OWNER_ID"), "ERROR_NO_OWNER_ID"); return false; } } if (is_set($arFields, "OWNER_ID") && is_set($arFields, "SOCNET_GROUP_ID") && IntVal($arFields["OWNER_ID"]) <= 0 && IntVal($arFields["SOCNET_GROUP_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_EMPTY_OWNER_ID"), "EMPTY_OWNER_ID"); return false; } if ((is_set($arFields, "GROUP_ID") || $ACTION == "ADD") && IntVal($arFields["GROUP_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_EMPTY_GROUP_ID"), "EMPTY_GROUP_ID"); return false; } elseif (is_set($arFields, "GROUP_ID")) { $dbResult = CBlogGroup::GetByID($arFields["GROUP_ID"]); if (!$dbResult) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_ERROR_NO_GROUP_ID"), "ERROR_NO_GROUP_ID"); return false; } } if ((is_set($arFields, "ACTIVE") || $ACTION == "ADD") && $arFields["ACTIVE"] != "Y" && $arFields["ACTIVE"] != "N") { $arFields["ACTIVE"] = "Y"; } if ((is_set($arFields, "ENABLE_COMMENTS") || $ACTION == "ADD") && $arFields["ENABLE_COMMENTS"] != "Y" && $arFields["ENABLE_COMMENTS"] != "N") { $arFields["ENABLE_COMMENTS"] = "Y"; } if ((is_set($arFields, "ENABLE_IMG_VERIF") || $ACTION == "ADD") && $arFields["ENABLE_IMG_VERIF"] != "Y" && $arFields["ENABLE_IMG_VERIF"] != "N") { $arFields["ENABLE_IMG_VERIF"] = "N"; } if ((is_set($arFields, "ENABLE_RSS") || $ACTION == "ADD") && $arFields["ENABLE_RSS"] != "Y" && $arFields["ENABLE_RSS"] != "N") { $arFields["ENABLE_RSS"] = "N"; } if ((is_set($arFields, "ALLOW_HTML") || $ACTION == "ADD") && $arFields["ALLOW_HTML"] != "Y" && $arFields["ALLOW_HTML"] != "N") { $arFields["ALLOW_HTML"] = "N"; } if ((is_set($arFields, "USE_SOCNET") || $ACTION == "ADD") && $arFields["USE_SOCNET"] != "Y" && $arFields["USE_SOCNET"] != "N") { $arFields["USE_SOCNET"] = "N"; } return True; }
$SORT = array($arParams["SORT_BY1"] => $arParams["SORT_ORDER1"], $arParams["SORT_BY2"] => $arParams["SORT_ORDER2"]); $arFilter = array("SITE_ID" => SITE_ID); if (!empty($arParams["GROUP_ID"])) { $arFilter["ID"] = $arParams["GROUP_ID"]; } $arSelectFields = false; // if($arParams["GROUPS_COUNT"]>0) // $COUNT = Array("nTopCount" => $arParams["GROUPS_COUNT"]*2); // else $COUNT = false; $arResult["GROUPS"] = array(); $arResult["GROUPS_TABLE"] = array(); $dbGroups = CBlogGroup::GetList($SORT, $arFilter, false, $COUNT, $arSelectFields); $itemCnt = 0; while ($arGroups = $dbGroups->Fetch()) { $dbBlog = CBlog::GetList(array(), array("GROUP_ID" => $arGroups["ID"]), false, false, array("ID", "GROUP_ID")); if ($arBlog = $dbBlog->Fetch()) { $url = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arGroups["ID"])); $arResult["GROUPS"][] = array("ID" => $arGroups["ID"], "NAME" => htmlspecialcharsex($arGroups["NAME"]), "URL" => $url); $itemCnt++; if ($itemCnt >= $arParams["GROUPS_COUNT"] && $arParams["GROUPS_COUNT"] > 0) { break; } } } $cnt = count($arResult["GROUPS"]); $row1 = ceil($cnt / $arParams["COLS_COUNT"]); $all = $cnt - $row1; for ($i = 1; $i < $arParams["COLS_COUNT"]; $i++) { if ($arParams["COLS_COUNT"] - $i > 1) { ${"row" . ($i + 1)} = ceil($all / ($arParams["COLS_COUNT"] - $i));
} $user_id = IntVal($USER->GetID()); $arResult["USER_ID"] = $user_id; $arResult["TZ_OFFSET"] = CTimeZone::GetOffset(); if (!$arResult["bFromList"]) { $arParams["USE_CUT"] = "N"; $arFilterblg = array("ACTIVE" => "Y", "USE_SOCNET" => "Y", "GROUP_ID" => $arParams["GROUP_ID"], "GROUP_SITE_ID" => SITE_ID, "OWNER_ID" => $arParams["USER_ID"]); $cacheTtl = 3153600; $cacheId = 'blog_post_blog_' . md5(serialize($arFilterblg)); $cacheDir = '/blog/form/blog/'; $obCache = new CPHPCache(); if ($obCache->InitCache($cacheTtl, $cacheId, $cacheDir)) { $arBlog = $obCache->GetVars(); } else { $obCache->StartDataCache(); $dbBl = CBlog::GetList(array(), $arFilterblg); $arBlog = $dbBl->Fetch(); if (!$arBlog && IsModuleInstalled("intranet")) { $arIdeaBlogGroupID = array(); if (IsModuleInstalled("idea")) { $rsSite = CSite::GetList($by = "sort", $order = "desc", array("ACTIVE" => "Y")); while ($arSite = $rsSite->Fetch()) { $arIdeaBlogGroupID[] = COption::GetOptionInt("idea", "blog_group_id", false, $arSite["LID"]); } } if (empty($arIdeaBlogGroupID)) { $arBlog = CBlog::GetByOwnerID($arParams["USER_ID"]); } else { $arBlogGroupID = array(); $rsBlogGroup = CBlogGroup::GetList(array(), array(), false, false, array("ID")); while ($arBlogGroup = $rsBlogGroup->Fetch()) {
} break; } } } $arHeaders = array(array("id" => "ID", "content" => "ID", "sort" => "ID", "default" => true), array("id" => "NAME", "content" => GetMessage("BLB_NAME"), "sort" => "NAME", "default" => true), array("id" => "DATE_CREATE", "content" => GetMessage('BLB_DATE_CREATE'), "sort" => "DATE_CREATE", "default" => true), array("id" => "DATE_UPDATE", "content" => GetMessage('BLB_DATE_UPDATE'), "sort" => "DATE_UPDATE", "default" => true), array("id" => "ACTIVE", "content" => GetMessage('BLB_ACTIVE'), "sort" => "ACTIVE", "default" => true), array("id" => "OWNER_INFO", "content" => GetMessage('BLB_OWNER_ID'), "sort" => "", "default" => true), array("id" => "SOCNET_GROUP_ID", "content" => GetMessage('BLB_SOCNET_GROUP_ID'), "sort" => "SOCNET_GROUP_ID"), array("id" => "URL", "content" => GetMessage('BLB_URL'), "sort" => "URL", "default" => true), array("id" => "GROUP_ID", "content" => GetMessage('BLB_GROUP_ID'), "sort" => "GROUP_ID", "default" => true), array("id" => "USE_SOCNET", "content" => GetMessage('BLB_USE_SOCNET'), "sort" => "USE_SOCNET", "default" => false)); $USER_FIELD_MANAGER->AdminListAddHeaders("BLOG_BLOG", $arHeaders); $lAdmin->AddHeaders($arHeaders); $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns(); $arSelectedFields = array("ID", "NAME", "DATE_CREATE", "DATE_UPDATE", "ACTIVE", "OWNER_ID", "URL", "REAL_URL", "GROUP_ID", "OWNER_LOGIN", "OWNER_NAME", "OWNER_LAST_NAME", "OWNER_EMAIL", "GROUP_NAME", "GROUP_SITE_ID", "SOCNET_GROUP_ID", "USE_SOCNET"); foreach ($arVisibleColumns as $val) { if (!in_array($val, $arSelectedFields)) { $arSelectedFields[] = $val; } } $dbResultList = CBlog::GetList(array($by => $order), $arFilter, false, array("nPageSize" => CAdminResult::GetNavSize($sTableID)), $arSelectedFields); $dbResultList = new CAdminResult($dbResultList, $sTableID); $dbResultList->NavStart(); $lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("BLB_GROUP_NAV"))); while ($arBlog = $dbResultList->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arBlog, "/bitrix/admin/blog_blog_edit.php?ID=" . $f_ID . "&lang=" . LANGUAGE_ID, GetMessage("BLB_UPDATE_ALT")); $row->AddField("ID", '<a href="/bitrix/admin/blog_blog_edit.php?ID=' . $f_ID . '&lang=' . LANGUAGE_ID . '" title="' . GetMessage("BLB_UPDATE_ALT") . '">' . $f_ID . '</a>'); $row->AddField("NAME", "<a href=\"" . CBlog::PreparePath($f_URL, $f_GROUP_SITE_ID, false, $f_OWNER_ID, $f_SOCNET_GROUP_ID) . "\">" . $f_NAME . "</a>"); $row->AddField("DATE_CREATE", $f_DATE_CREATE); $row->AddField("DATE_UPDATE", $f_DATE_UPDATE); $row->AddField("ACTIVE", $f_ACTIVE == "Y" ? GetMessage("BLB_YES") : GetMessage("BLB_NO")); if (IntVal($f_OWNER_ID) > 0) { $row->AddField("OWNER_INFO", "<a href=\"/bitrix/admin/user_edit.php?ID=" . $f_OWNER_ID . "&lang=" . LANG . "\">[" . $f_OWNER_ID . "] " . $f_OWNER_NAME . " " . $f_OWNER_LAST_NAME . " (" . $f_OWNER_LOGIN . ")</a>"); } if (IntVal($f_SOCNET_GROUP_ID) > 0) { $row->AddField("SOCNET_GROUP_ID", $f_SOCNET_GROUP_ID);
if (CModule::IncludeModule("blog")) { $USER_ID = intval($USER->GetID()); $ID = intval($ID); if (!$ID) { $ID = intval($_POST['ID']); } $BLOG_ID = intval($BLOG_ID); if (!$BLOG_ID) { $BLOG_ID = intval($_POST['BLOG_ID']); } $arr = CBlogSitePath::GetBySiteID(SITE_ID); $sBlogPath = $arr['PATH']; if ($BLOG_ID) { $arBlog = CBlog::GetByID($BLOG_ID); } else { $res = CBlog::GetList(array(), array("URL" => $OWNER)); $arBlog = $res->Fetch(); $BLOG_ID = intval($arBlog['ID']); } if ($arBlog) { if (IntVal($ID) > 0 && ($arPost = CBlogPost::GetByID($ID))) { $APPLICATION->SetTitle(str_replace("#BLOG#", htmlspecialchars($arBlog["NAME"]), "" . GetMessage("BLOG_POST_EDIT") . "")); $perms = CBlogPost::GetBlogUserPostPerms($ID, $USER_ID); } else { $ID = 0; $APPLICATION->SetTitle(str_replace("#BLOG#", htmlspecialchars($arBlog["NAME"]), "" . GetMessage("BLOG_NEW_MESSAGE") . "")); $perms = CBlog::GetBlogUserPostPerms($BLOG_ID, $USER_ID); } if ($perms >= BLOG_PERMS_WRITE && (intval($arPost['ID']) == 0 || $arPost['BLOG_ID'] == $BLOG_ID)) { ###### Form #### $image_form = '
function SetSoNetFeaturePermIndexSearch($ID, $arFields) { $featurePerm = CSocNetFeaturesPerms::GetByID($ID); if ($featurePerm["OPERATION_ID"] == "view_post") { if (CModule::IncludeModule("socialnetwork")) { $feature = CSocNetFeatures::GetByID($featurePerm["FEATURE_ID"]); if ($feature["FEATURE"] == "blog" && IntVal($feature["ENTITY_ID"]) > 0) { if ($feature["ACTIVE"] == "Y" && ($feature["ENTITY_TYPE"] == "U" && $arFields["ROLE"] == "A" || $feature["ENTITY_TYPE"] == "G" && $arFields["ROLE"] == "N")) { $arFilter = array("USE_SOCNET" => "Y"); if ($feature["ENTITY_TYPE"] == "U") { $arFilter["OWNER_ID"] = $feature["ENTITY_ID"]; } else { $arFilter["SOCNET_GROUP_ID"] = $feature["ENTITY_ID"]; } $dbBlog = CBlog::GetList(array(), $arFilter, false, array("nTopCount" => 1), array("ID", "SOCNET_GROUP_ID")); if ($arBlog = $dbBlog->Fetch()) { CBlog::AddSocnetRead($arBlog["ID"]); } } else { $arFilter = array("USE_SOCNET" => "Y"); if ($feature["ENTITY_TYPE"] == "U") { $arFilter["OWNER_ID"] = $feature["ENTITY_ID"]; } else { $arFilter["SOCNET_GROUP_ID"] = $feature["ENTITY_ID"]; } $dbBlog = CBlog::GetList(array(), $arFilter, false, array("nTopCount" => 1), array("ID", "SOCNET_GROUP_ID")); if ($arBlog = $dbBlog->Fetch()) { CBlog::DeleteSocnetRead($arBlog["ID"]); } } if ($arBlog && intval($arBlog["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork") && method_exists("CSocNetGroup", "GetSite")) { $arSites = array(); $rsGroupSite = CSocNetGroup::GetSite($arBlog["SOCNET_GROUP_ID"]); while ($arGroupSite = $rsGroupSite->Fetch()) { $arSites[] = $arGroupSite["LID"]; } } else { $arSites = array(SITE_ID); } foreach ($arSites as $site_id_tmp) { BXClearCache(True, "/" . $site_id_tmp . "/blog/sonet/"); } } } } }
$cache_pathSoNet = "/" . SITE_ID . "/blog/sonet/"; if ($arParams["CACHE_TIME"] > 0 && $cacheSoNet->InitCache($arParams["CACHE_TIME"], $cache_idSoNet, $cache_pathSoNet)) { $Vars = $cacheSoNet->GetVars(); $arAvBlog = $Vars["arAvBlog"]; CBitrixComponentTemplate::ApplyCachedData($Vars["templateCachedData"]); $cacheSoNet->Output(); } else { if ($arParams["CACHE_TIME"] > 0) { $cacheSoNet->StartDataCache($arParams["CACHE_TIME"], $cache_idSoNet, $cache_pathSoNet); } $arAvBlog = array(); $arFilterTmp = array("ACTIVE" => "Y", "GROUP_SITE_ID" => SITE_ID); if (IntVal($arParams["GROUP_ID"]) > 0) { $arFilterTmp["GROUP_ID"] = $arParams["GROUP_ID"]; } $dbBlog = CBlog::GetList(array(), $arFilterTmp); while ($arBlog = $dbBlog->Fetch()) { if (IntVal($arBlog["SOCNET_GROUP_ID"]) > 0) { $featureOperationPerms = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_GROUP, $arBlog["SOCNET_GROUP_ID"], "blog", "view_post"); if ($featureOperationPerms == SONET_ROLES_ALL) { $arAvBlog[] = $arBlog["ID"]; } } else { $featureOperationPerms = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_USER, $arBlog["OWNER_ID"], "blog", "view_post"); if ($featureOperationPerms == SONET_RELATIONS_TYPE_ALL) { $arAvBlog[] = $arBlog["ID"]; } } } if ($arParams["CACHE_TIME"] > 0) { $cacheSoNet->EndDataCache(array("templateCachedData" => $this->GetTemplateCachedData(), "arAvBlog" => $arAvBlog));
$arSelectedFields[] = "SOCNET_BLOG_READ"; $arFilter["BLOG_USE_SOCNET"] = "Y"; } elseif ((IntVal($arParams["SOCNET_GROUP_ID"]) > 0 || IntVal($arParams["USER_ID"]) > 0) && $arParams["USE_SOCNET"] == "Y") { $user_id = $USER->GetID(); $arFilterTmp = array("ACTIVE" => "Y", "GROUP_SITE_ID" => SITE_ID, "USE_SOCNET" => "Y"); if (IntVal($arParams["SOCNET_GROUP_ID"]) > 0) { $arFilterTmp["SOCNET_GROUP_ID"] = $arParams["SOCNET_GROUP_ID"]; } if (IntVal($arParams["USER_ID"]) > 0) { $arFilterTmp["OWNER_ID"] = $arParams["USER_ID"]; } if (!empty($arParams["GROUP_ID"])) { $arFilterTmp["GROUP_ID"] = $arParams["GROUP_ID"]; } $perms = BLOG_PERMS_DENY; $dbBlog = CBlog::GetList(array(), $arFilterTmp, false, array("nTopCount" => 1), array("ID")); if ($arBlog = $dbBlog->Fetch()) { if (IntVal($arParams["SOCNET_GROUP_ID"]) > 0) { $perms = BLOG_PERMS_DENY; if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "full_post", CSocNetUser::IsCurrentUserModuleAdmin()) || $APPLICATION->GetGroupRight("blog") >= "W") { $perms = BLOG_PERMS_FULL; } elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "write_post")) { $perms = BLOG_PERMS_WRITE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "view_post")) { $perms = BLOG_PERMS_READ; } } else { $perms = BLOG_PERMS_DENY; if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_USER, $arParams["USER_ID"], "blog", "full_post", CSocNetUser::IsCurrentUserModuleAdmin()) || $APPLICATION->GetGroupRight("blog") >= "W" || $arParams["USER_ID"] == $user_id) { $perms = BLOG_PERMS_FULL; } elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_USER, $arParams["USER_ID"], "blog", "write_post")) {
if ($USER->IsAdmin() || $blogModulePermissions >= "W") { $arFlt = array("ACTIVE" => "Y", "GROUP_SITE_ID" => SITE_ID, "!ID" => $arBlog["ID"]); $dbBlog = CBlog::GetList(array("NAME" => "ASC"), $arFlt, false, false, array("ID", "NAME", "OWNER_ID", "URL", "GROUP_ID", "GROUP_NAME")); while ($arBlogS = $dbBlog->GetNext()) { $arBlogS["PERMS"] = BLOG_PERMS_FULL; $arResult["avBlog"][$arBlogS["ID"]] = $arBlogS; } } else { $arFlt = array("USE_SOCNET" => "N", ">=PERMS" => BLOG_PERMS_PREMODERATE, "PERMS_TYPE" => BLOG_PERMS_POST, "PERMS_USER_ID" => $user_id, "PERMS_POST_ID" => false, "ACTIVE" => "Y", "GROUP_SITE_ID" => SITE_ID, "!ID" => $arBlog["ID"]); $dbBlog = CBlog::GetList(array("NAME" => "ASC"), $arFlt, false, false, array("ID", "NAME", "OWNER_ID", "URL", "PERMS", "GROUP_ID", "GROUP_NAME")); while ($arBlogS = $dbBlog->GetNext()) { $arBlogS["USE_SOCNET"] = "N"; $arResult["avBlog"][$arBlogS["ID"]] = $arBlogS; } $arFlt = array("OWNER_ID" => $user_id, "ACTIVE" => "Y", "GROUP_SITE_ID" => SITE_ID, "!ID" => $arBlog["ID"]); $dbBlog = CBlog::GetList(array("NAME" => "ASC"), $arFlt, false, false, array("ID", "NAME", "OWNER_ID", "URL", "GROUP_ID", "GROUP_NAME")); while ($arBlogS = $dbBlog->GetNext()) { $arBlogS["PERMS"] = BLOG_PERMS_FULL; $arResult["avBlog"][$arBlogS["ID"]] = $arBlogS; } } foreach ($arResult["avBlog"] as $id => $blog) { $arResult["avBlogCategory"]["users_" . $blog["GROUP_ID"]][$id] = $blog; } } } else { $arResult["PostToShow"]["TITLE"] = htmlspecialcharsEx($_POST["POST_TITLE"]); $arResult["PostToShow"]["CATEGORY_ID"] = $_POST["CATEGORY_ID"]; $arResult["PostToShow"]["CategoryText"] = htmlspecialcharsEx($_POST["TAGS"]); $arResult["PostToShow"]["DETAIL_TEXT_TYPE"] = htmlspecialcharsEx($_POST["POST_MESSAGE_TYPE"]); $arResult["PostToShow"]["DETAIL_TEXT"] = $_POST["POST_MESSAGE_TYPE"] == "html" ? $_POST["POST_MESSAGE_HTML"] : htmlspecialcharsEx($_POST["POST_MESSAGE"]);
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } /** @var array $arCurrentValues */ if (!CModule::IncludeModule("iblock")) { return; } if (!CModule::IncludeModule("blog")) { return; } //Get a list of all groups $rsGroups = CGroup::GetList($by = "id", $order = "asc", array("ACTIVE" => "Y")); if (intval($rsGroups->SelectedRowsCount()) > 0) { while ($arGroups = $rsGroups->Fetch()) { $arUsersGroups[$arGroups["ID"]] = $arGroups["NAME"] . " [" . $arGroups["ID"] . "]"; } } //Get a list of IBlocks $arIBlock = array(); $rsIBlock = CIBlock::GetList(array("sort" => "asc"), array("ACTIVE" => "Y")); while ($arEl = $rsIBlock->Fetch()) { $arIBlock[$arEl["ID"]] = $arEl["NAME"] . " [" . $arEl["ID"] . "]"; } //Get a list of groups blogs $arFilter = array(); $arSelectedFields = array("ID", "NAME"); $dbBlogs = CBlog::GetList(array(), $arFilter, false, false, $arSelectedFields); while ($arBlog = $dbBlogs->Fetch()) { $arBlogs[$arBlog["ID"]] = $arBlog["NAME"] . " [" . $arBlog["ID"] . "]"; } $arComponentParameters = array("GROUPS" => array(), "PARAMETERS" => array("EXPERTS_GROUP" => array("PARENT" => "BASE", "NAME" => GetMessage("SPIRA_STAT_EXPERTS_GROUP"), "TYPE" => "LIST", "VALUES" => $arUsersGroups), "QUESTIONS_IBLOCK_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("SPIRA_STAT_QUESTIONS_IBLOCK_ID"), "TYPE" => "LIST", "VALUES" => $arIBlock), "CATEGORIES_IBLOCK_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("SPIRA_STAT_CATEGORIES_IBLOCK_ID"), "TYPE" => "LIST", "VALUES" => $arIBlock), "WORK_IBLOCK_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("SPIRA_STAT_WORK_IBLOCK_ID"), "TYPE" => "LIST", "VALUES" => $arIBlock), "BLOG_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("SPIRA_STAT_BLOG_ID"), "TYPE" => "LIST", "VALUES" => $arBlogs), "CACHE_TIME" => array("DEFAULT" => 3600), "CACHE_FILTER" => array("PARENT" => "CACHE_SETTINGS", "NAME" => GetMessage("IBLOCK_CACHE_FILTER"), "TYPE" => "CHECKBOX", "DEFAULT" => "N"), "CACHE_GROUPS" => array("PARENT" => "CACHE_SETTINGS", "NAME" => GetMessage("CP_BNL_CACHE_GROUPS"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y")));
function AddFilterParams(&$arComponentParameters, $arCurrentValues, $name, $parent, $MULTIPLE = "Y") { $arComponentParameters["PARAMETERS"][$name] = array("PARENT" => $parent, "NAME" => GetMessage("SEARCH_CP_WHERE_FILTER"), "TYPE" => "LIST", "MULTIPLE" => $MULTIPLE, "VALUES" => CSearchParameters::GetFilterDropDown(true), "DEFAULT" => "all", "REFRESH" => "Y"); if (!is_array($arCurrentValues[$name]) && strlen($arCurrentValues[$name]) > 0) { $arCurrentValues[$name] = array($arCurrentValues[$name]); } if (is_array($arCurrentValues[$name])) { foreach ($arCurrentValues[$name] as $strFILTER) { if ($strFILTER == "main") { $arComponentParameters["PARAMETERS"][$name . "_" . $strFILTER] = array("PARENT" => $parent, "NAME" => GetMessage("SEARCH_CP_URL"), "TYPE" => "STRING", "MULTIPLE" => $MULTIPLE, "ADDITIONAL_VALUES" => "Y", "DEFAULT" => ""); } elseif ($strFILTER == "forum") { $arrFILTER = array(); if (CModule::IncludeModule("forum")) { $arrFILTER["all"] = GetMessage("SEARCH_CP_ALL"); $rsForum = CForumNew::GetList(); while ($arForum = $rsForum->Fetch()) { $arrFILTER[$arForum["ID"]] = $arForum["NAME"]; } } $arComponentParameters["PARAMETERS"][$name . "_" . $strFILTER] = array("PARENT" => $parent, "NAME" => GetMessage("SEARCH_CP_FORUM"), "TYPE" => "LIST", "MULTIPLE" => $MULTIPLE, "VALUES" => $arrFILTER, "ADDITIONAL_VALUES" => "N", "DEFAULT" => "all"); } elseif (strpos($strFILTER, "iblock_") === 0) { $arrFILTER = array(); if (CModule::IncludeModule("iblock")) { $arrFILTER["all"] = GetMessage("SEARCH_CP_ALL"); $rsIBlock = CIBlock::GetList(array("SORT" => "ASC"), array("TYPE" => substr($strFILTER, 7))); while ($arIBlock = $rsIBlock->Fetch()) { $arrFILTER[$arIBlock["ID"]] = $arIBlock["NAME"]; } } $arComponentParameters["PARAMETERS"][$name . "_" . $strFILTER] = array("PARENT" => $parent, "NAME" => GetMessage("SEARCH_CP_IBLOCK_TYPE", array("#TYPE_ID#" => $strFILTER)), "TYPE" => "LIST", "MULTIPLE" => $MULTIPLE, "VALUES" => $arrFILTER, "ADDITIONAL_VALUES" => "N", "DEFAULT" => "all"); } elseif ($strFILTER == "blog") { $arrFILTER = array(); if (CModule::IncludeModule("blog")) { $arrFILTER["all"] = GetMessage("SEARCH_CP_ALL"); $rsBlog = CBlog::GetList(); while ($arBlog = $rsBlog->Fetch()) { $arrFILTER[$arBlog["ID"]] = $arBlog["NAME"]; } } $arComponentParameters["PARAMETERS"][$name . "_" . $strFILTER] = array("PARENT" => $parent, "NAME" => GetMessage("SEARCH_CP_BLOG"), "TYPE" => "LIST", "MULTIPLE" => $MULTIPLE, "VALUES" => $arrFILTER, "ADDITIONAL_VALUES" => "N", "DEFAULT" => "all"); } elseif ($strFILTER == "socialnetwork") { $arrFILTER = array(); if (CModule::IncludeModule("socialnetwork")) { $arrFILTER["all"] = GetMessage("SEARCH_CP_ALL"); $rsGroup = CSocNetGroup::GetList(array("ID" => "DESC"), array(), false, false, array("ID", "NAME")); while ($arGroup = $rsGroup->Fetch()) { $arrFILTER[$arGroup["ID"]] = $arGroup["NAME"]; } } $arComponentParameters["PARAMETERS"][$name . "_" . $strFILTER] = array("PARENT" => $parent, "NAME" => GetMessage("SEARCH_CP_SOCIALNETWORK_GROUPS"), "TYPE" => "LIST", "MULTIPLE" => $MULTIPLE, "VALUES" => $arrFILTER, "ADDITIONAL_VALUES" => "N", "DEFAULT" => "all"); } elseif ($strFILTER == "socialnetwork_user") { $arComponentParameters["PARAMETERS"][$name . "_" . $strFILTER] = array("PARENT" => "DATA_SOURCE", "NAME" => GetMessage("SEARCH_CP_SOCIALNETWORK_USER"), "TYPE" => "STRING", "DEFAULT" => ""); } } } }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } elseif (!CModule::IncludeModule("blog")) { return; } $SocNetGroupID = false; $db_blog_group = CBlogGroup::GetList(array("ID" => "ASC"), array("SITE_ID" => WIZARD_SITE_ID, "NAME" => "[" . WIZARD_SITE_ID . "] " . GetMessage("BLOG_DEMO_GROUP_SOCNET"))); if ($res_blog_group = $db_blog_group->Fetch()) { $SocNetGroupID = $res_blog_group["ID"]; if (WIZARD_INSTALL_DEMO_DATA) { $db_blog = CBlog::GetList(array(), array("GROUP_ID" => $res_blog_group["ID"]), false, false, array("ID")); if ($res_blog = $db_blog->Fetch()) { do { CBlog::Delete($res_blog["ID"]); } while ($res_blog = $db_blog->Fetch()); } if (CModule::IncludeModule("socialnetwork")) { $db_log = CSocNetLog::GetList(array("ID" => "DESC"), array("SITE_ID" => WIZARD_SITE_ID, "EVENT_ID" => array("blog", "blog_post", "blog_comment")), false, false, array("ID")); while ($arLog = $db_log->Fetch()) { CSocNetLog::Delete($arLog["ID"]); } } BXClearCache(True, "/" . WIZARD_SITE_ID . "/blog/"); } else { CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/_index.php", array("BLOG_GROUP_ID" => $SocNetGroupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index.php", array("BLOG_GROUP_ID" => $SocNetGroupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/people/user.php", array("BLOG_GROUP_ID" => $SocNetGroupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/groups/group.php", array("BLOG_GROUP_ID" => $SocNetGroupID)); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/blogs/index.php", array("BLOG_GROUP_ID" => $SocNetGroupID));
IncludeTemplateLangFile(__FILE__); /* $APPLICATION->IncludeFile("blog/blog/bloginfo.php", Array( "URL"=>$arFolders[0], "CATEGORY" => $category, "CACHE_TIME"=>0, ) ); */ if (CModule::IncludeModule("blog")) { $is404 = $is404 == 'N' ? false : true; $CACHE_TIME = intval($CACHE_TIME); $category = IntVal($CATEGORY); $arSelectFields = array("ID", "NAME", "URL", "ACTIVE", "OWNER_ID"); $dbBlog = CBlog::GetList(array(), array("URL" => $URL, "ACTIVE" => "Y"), false, array("nTopCount" => 1), $arSelectedFields); if ($arBlog = $dbBlog->Fetch()) { echo '<div align="left" style="padding-left:25px;">'; echo '<p><font class="blogtext"><b><a href="' . CBlog::PreparePath($arBlog["URL"], SITE_ID, $is404) . '">'; echo htmlspecialcharsex($arBlog["NAME"]); echo '</a></b></font><br><br>'; $arUserBlog = CBlogUser::GetByID($arBlog["OWNER_ID"], BLOG_BY_USER_ID); $dbUser = CUser::GetByID($arBlog["OWNER_ID"]); $arUser = $dbUser->Fetch(); $AuthorName = CBlogUser::GetUserName($arUserBlog["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]); echo '<a href="' . CBlogUser::PreparePath($arBlog["OWNER_ID"], SITE_ID, $is404) . '">'; echo CFile::ShowImage($arUserBlog["AVATAR"], 100, 100, 'title="' . $AuthorName . '" border="0"'); echo '</a></p>'; if ($GLOBALS["USER"]->IsAuthorized()) { $arMyBlog = CBlog::GetByOwnerID($GLOBALS["USER"]->GetID()); if ($arMyBlog && $arMyBlog["ID"] != $arBlog["ID"]) {
"CACHE_TIME"=>0, ) ); */ if (CModule::IncludeModule("blog")) { $CACHE_TIME = intval($CACHE_TIME); $ID = IntVal($ID); $BLOG_URL = preg_replace("/[^a-zA-Z0-9_-]/is", "", Trim($BLOG_URL)); $TBLenght = IntVal($TBLenght) > 0 ? IntVal($TBLenght) : false; $editPage = strlen($EDIT_PAGE) > 0 ? $EDIT_PAGE : "post_edit.php"; $is404 = $is404 == 'N' ? false : true; $USER_ID = $USER->GetID(); $PostPerm = CBlogPost::GetBlogUserPostPerms($ID, $USER_ID); $arPost = CBlogPost::GetByID($ID); $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); $dbBlog = CBlog::GetList(array(), array("URL" => $BLOG_URL), false, array("nTopCount" => 1)); if (($arBlogUrl = $dbBlog->Fetch()) || strlen($BLOG_URL) <= 0) { $APPLICATION->SetTitle($arPost["TITLE"]); $APPLICATION->AddChainItem($arBlogUrl["NAME"], CBlog::PreparePath($arBlogUrl["URL"])); //Заявка на чтение блога if ($_GET["become_friend"] == "Y" && $PostPerm < BLOG_PERMS_READ) { if ($USER->IsAuthorized()) { $dbCandidate = CBlogCandidate::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $USER_ID)); if ($arCandidate = $dbCandidate->Fetch()) { echo '<font class="text">' . GetMessage("B_B_MES_REQUEST_ALREADY") . '</font>'; } else { if (CBlogCandidate::Add(array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $USER_ID))) { echo '<font class="text">' . GetMessage("B_B_MES_REQUEST_ADDED") . '</font>'; } else { echo ShowError(GetMessage("B_B_MES_REQUEST_ERROR")); }
} if (strtolower($TYPE) == "atom") { $TYPE = "Atom .03"; } $CACHE_TIME = IntVal($CACHE_TIME); $cache = new CPHPCache(); $cache_id = "blog_rss_out_" . $BLOG_URL . "_" . $NUM_POSTS . "_" . $TYPE; $cache_path = "/" . SITE_ID . "/blog/" . $BLOG_URL . "/rss_out/" . strtolower($TYPE_CACHE) . "/"; global $APPLICATION; $APPLICATION->RestartBuffer(); header("Content-Type: text/xml"); header("Pragma: no-cache"); if ($CACHE_TIME > 0 && $cache->InitCache($CACHE_TIME, $cache_id, $cache_path)) { $cache->Output(); } else { $dbBlog = CBlog::GetList(array(), array("URL" => $BLOG_URL), false, false, array("ID")); if ($arBlog = $dbBlog->Fetch()) { if ($textRSS = CBlog::BuildRSS($arBlog["ID"], $TYPE, $NUM_POSTS)) { if ($CACHE_TIME > 0) { $cache->StartDataCache($CACHE_TIME, $cache_id, $cache_path); } echo $textRSS; if ($CACHE_TIME > 0) { $cache->EndDataCache(array()); } } } } die; //******************************************************* }
} } else { $errorMessage .= GetMessage("BLOG_BLOG_SESSID_WRONG") . "<br />"; } } if (isset($_REQUEST["add_friend"]) && is_array($_REQUEST["add_friend"])) { if (check_bitrix_sessid()) { foreach ($_REQUEST["add_friend"] as $key => $friend) { $arFriendUsers = array(); if (StrLen($friend) > 0) { $arUserID = array(); $dbUsers = CBlogUser::GetList(array(), array("GROUP_BLOG_ID" => $arBlog["ID"]), array("ID", "USER_ID")); while ($arUsers = $dbUsers->Fetch()) { $arFriendUsers[] = $arUsers["USER_ID"]; } $dbSearchUser = CBlog::GetList(array(), array("URL" => $friend), false, false, array("ID", "OWNER_ID")); if ($arSearchUser = $dbSearchUser->Fetch()) { $arUserID[] = $arSearchUser["OWNER_ID"]; } /* $dbSearchUser = CBlog::GetList(array(), array("NAME" => $friend), false, false, array("ID", "OWNER_ID")); while(($arSearchUser = $dbSearchUser->Fetch()) && !in_array($arSearchUser["OWNER_ID"], $arUserID)) $arUserID[] = $arSearchUser["OWNER_ID"]; */ $canUseAlias = COption::GetOptionString("blog", "allow_alias", "Y"); if ($canUseAlias == "Y") { $dbSearchUser = CBlogUser::GetList(array(), array("ALIAS" => $friend), false, false, array("ID", "USER_ID")); if (($arSearchUser = $dbSearchUser->Fetch()) && !in_array($arSearchUser["USER_ID"], $arUserID)) { $arUserID[] = $arSearchUser["USER_ID"]; } }
$arCurrentValues = is_array($arCurrentValues) ? $arCurrentValues : array(); //IB Idea category $arIb = array(); $oRes = CIblock::GetList(array("IBLOCK_ID" => "ASC", "NAME" => "DESC"), array('ACTIVE' => 'Y')); while ($arRes = $oRes->Fetch()) { $arIb[$arRes["ID"]] = '(' . $arRes["IBLOCK_TYPE_ID"] . ') ' . $arRes["NAME"]; } //Default Idea Status $arUFStatus = array(); $arStatusList = CIdeaManagment::getInstance()->Idea()->GetStatusList(); foreach ($arStatusList as $Status) { $arUFStatus[$Status["ID"]] = $Status["VALUE"]; } //Blog URL $arBlog = array(); $dbBlog = CBlog::GetList(array("NAME" => "ASC"), array("ACTIVE" => "Y"), false, false, array("ID", "NAME", "URL")); while ($Blog = $dbBlog->Fetch()) { $arBlog[$Blog["URL"]] = $Blog["NAME"]; } $arComponentParameters = array("PARAMETERS" => array("BLOG_URL" => array("NAME" => GetMessage("ONE_BLOG_BLOG_URL"), "TYPE" => "LIST", "DEFAULT" => "", "PARENT" => "BASE", "REFRESH" => "Y", "VALUES" => $arBlog, "ADDITIONAL_VALUES" => "Y"), "IBLOCK_CATEGORIES" => array("TYPE" => "LIST", "NAME" => GetMessage("BC_POST_IBLOCK_CATEGORIES"), "VALUES" => $arIb, "MULTIPLE" => "N", "DEFAULT" => "", "PARENT" => "BASE"), "PATH_IDEA_INDEX" => array("NAME" => GetMessage("IDEA_PARAM_PATH_IDEA_INDEX"), "TYPE" => "STRING", "DEFAULT" => '/services/idea/', "PARENT" => "BASE"), "PATH_IDEA_POST" => array("NAME" => GetMessage("IDEA_PARAM_PATH_IDEA_POST"), "TYPE" => "STRING", "DEFAULT" => '/services/idea/#post_id#/', "PARENT" => "BASE"), "BUTTON_COLOR" => array("NAME" => GetMessage("IDEA_PARAM_BUTTON_COLOR"), "TYPE" => "STRING", "DEFAULT" => '#3EA822', "PARENT" => "BASE"), "POST_BIND_STATUS_DEFAULT" => array("TYPE" => "LIST", "NAME" => GetMessage("IDEA_PARAM_POST_BIND_STATUS_DEFAULT"), "VALUES" => $arUFStatus, "MULTIPLE" => "N", "DEFAULT" => "", "PARENT" => "BASE"), "CATEGORIES_CNT" => array("NAME" => GetMessage("CATEGORIES_CNT"), "TYPE" => "STRING", "DEFAULT" => 4, "PARENT" => "VISUAL"), "LIST_MESSAGE_COUNT" => array("NAME" => GetMessage("BC_MESSAGE_COUNT"), "TYPE" => "STRING", "DEFAULT" => 8, "PARENT" => "VISUAL"), "AUTH_TEMPLATE" => array("PARENT" => "BASE", "NAME" => GetMessage("IDEA_PARAM_AUTH_TEMPLATE"), "TYPE" => "STRING", "DEFAULT" => ""), "FORGOT_PASSWORD_URL" => array("NAME" => GetMessage("IDEA_PARAM_FORGOT_PASSWORD_URL"), "TYPE" => "STRING", "DEFAULT" => '', "PARENT" => "BASE"), "REGISTER_URL" => array("NAME" => GetMessage("IDEA_PARAM_REGISTER_URL"), "TYPE" => "STRING", "DEFAULT" => '', "PARENT" => "BASE"), "CACHE_TIME" => array("DEFAULT" => 3600))); //Rating $arComponentParameters["PARAMETERS"]["SHOW_RATING"] = array("NAME" => GetMessage("B_SHOW_RATING"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", "REFRESH" => "Y", "PARENT" => "ADDITIONAL_SETTINGS"); if ($arCurrentValues["SHOW_RATING"] == "Y") { $arComponentParameters["PARAMETERS"]["RATING_TEMPLATE"] = array("NAME" => GetMessage("IDEA_PARAM_RATING_TEMPLATE_TITLE"), "TYPE" => "LIST", "DEFAULT" => "standart", "REFRESH" => "N", "PARENT" => "ADDITIONAL_SETTINGS", "MULTIPLE" => "N", "VALUES" => array("standart" => GetMessage("IDEA_PARAM_RATING_TEMPLATE_STANDART"), "like" => GetMessage("IDEA_PARAM_RATING_TEMPLATE_LIKE"))); } if (!array_key_exists("IBLOCK_CATEGORIES", $arCurrentValues) && array_key_exists("IBLOCK_CATOGORIES", $arCurrentValues)) { $arCurrentValues["IBLOCK_CATEGORIES"] = $arCurrentValues["IBLOCK_CATOGORIES"]; } if (!array_key_exists("CATEGORIES_CNT", $arCurrentValues) && array_key_exists("CATOGORIES_CNT", $arCurrentValues)) { $arCurrentValues["CATEGORIES_CNT"] = $arCurrentValues["CATOGORIES_CNT"]; }
private function CheckBlog() { $arFilter = array("URL" => $this->ModuleBlogUrl, "GROUP_ID" => $this->arResult["INSTALLATION"]["BLOG_GROUP_ID"]); if ($arBlog = CBlog::GetList(array(), $arFilter)->Fetch()) { $this->arResult["INSTALLATION"]["BLOG_INSTALL"] = false; $this->arResult["INSTALLATION"]["BLOG_ID"] = $arBlog["ID"]; } }
$SORT_ORDER1 = isset($SORT_ORDER1) ? $SORT_ORDER1 : "DESC"; $SORT_BY2 = isset($SORT_BY2) ? $SORT_BY2 : "ID"; $SORT_ORDER2 = isset($SORT_ORDER2) ? $SORT_ORDER2 : "DESC"; $SORT = array($SORT_BY1 => $SORT_ORDER1, $SORT_BY2 => $SORT_ORDER2); $editPage = strlen($EDIT_PAGE) > 0 ? $EDIT_PAGE : "post_edit.php"; $year = IntVal($YEAR) > 0 ? IntVal($YEAR) : false; $month = IntVal($MONTH) > 0 ? IntVal($MONTH) : false; $day = IntVal($DAY) > 0 ? IntVal($DAY) : false; $category = IntVal($CATEGORY) > 0 ? IntVal($CATEGORY) : false; $CACHE_TIME_SHORT = intval($CACHE_TIME_SHORT); $CACHE_TIME_LONG = intval($CACHE_TIME_LONG); $is404 = $is404 == 'N' ? false : true; $arSelectFields = array("ID", "NAME", "DESCRIPTION", "URL", "DATE_CREATE", "DATE_UPDATE", "ACTIVE", "OWNER_ID", "OWNER_NAME", "LAST_POST_DATE", "LAST_POST_ID", "BLOG_USER_AVATAR", "BLOG_USER_ALIAS"); CpageOption::SetOptionString("main", "nav_page_in_session", "N"); $APPLICATION->SetTitle(GetMessage("BLOG_BLOG_BLOG_TITLE")); $dbBlog = CBlog::GetList(array(), array("URL" => $BLOG_URL), false, array("nTopCount" => 1), $arSelectedFields); if ($arBlog = $dbBlog->Fetch()) { $user_id = $USER->GetID(); $APPLICATION->SetTitle($arBlog["NAME"]); $title = $arBlog["NAME"] . " - "; $APPLICATION->AddChainItem($arBlog["NAME"], CBlog::PreparePath($arBlog["URL"], SITE_ID, $is404)); $PostPerm = CBlog::GetBlogUserPostPerms($arBlog["ID"], $user_id); //Заявка на чтение блога if ($_GET["become_friend"] == "Y") { if ($USER->IsAuthorized()) { $dbCandidate = CBlogCandidate::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $user_id)); if ($arCandidate = $dbCandidate->Fetch()) { echo '<font class="text">' . GetMessage("BLOG_BLOG_BLOG_REQUEST_ALREADY") . '</font>'; } else { if (CBlogCandidate::Add(array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $user_id))) { echo '<font class="text">' . GetMessage("BLOG_BLOG_BLOG_REQUEST_ADDED") . '</font>';
$is404 = $is404 == 'N' ? false : true; $arFilter = array("SITE_ID" => SITE_ID, "GROUP_ID" => $ID, "ACTIVE" => "Y"); $arSelectFields = array("ID", "NAME", "DESCRIPTION", "URL", "SITE_ID", "DATE_CREATE", "DATE_UPDATE", "ACTIVE", "OWNER_ID", "OWNER_LOGIN", "OWNER_NAME", "OWNER_LAST_NAME", "LAST_POST_DATE", "LAST_POST_ID", "BLOG_USER_AVATAR", "BLOG_USER_ALIAS"); if ($arGroup = CBlogGroup::GetByID($ID)) { $APPLICATION->SetTitle($arGroup["NAME"]); //формируем кэш $cache = new CPHPCache(); $cache_id = "blog_groups_" . serialize($arParams) . "_" . CDBResult::NavStringForCache($BLOGS_COUNT); $cache_path = "/" . SITE_ID . "/blog/groups/" . $ID . "/"; if ($CACHE_TIME > 0 && $cache->InitCache($CACHE_TIME, $cache_id, $cache_path)) { $cache->Output(); } else { if ($CACHE_TIME > 0) { $cache->StartDataCache($CACHE_TIME, $cache_id, $cache_path); } $dbBlogs = CBlog::GetList($SORT, $arFilter, false, $COUNT, $arSelectFields); if ($arBlogs = $dbBlogs->NavNext(false)) { //$dbBlogs->NavPrint(GetMessage("B_B_GR_TITLE")); do { $urlToBlog = CBlog::PreparePath($arBlogs["URL"], SITE_ID, $is404); $urlToPost = CBlogPost::PreparePath($arBlogs["URL"], $arBlogs["LAST_POST_ID"], SITE_ID, $is404); $urlToAuthor = CBlogUser::PreparePath($arBlogs["OWNER_ID"], SITE_ID, $is404); $AuthorName = CBlogUser::GetUserName($arBlogs["BLOG_USER_ALIAS"], $arBlogs["OWNER_NAME"], $arBlogs["OWNER_LAST_NAME"], $arBlogs["OWNER_LOGIN"]); ?> <table class="blogtableborder" cellspacing="1" cellpadding="0" width="100%" border="0"> <tr> <td> <table border="0" width="100%" cellpadding="3" cellspacing="0" class="blogtablebody"> <tr> <td class="blogtablehead" align="left" nowrap width="70%" style="padding-left:10px;"><font class="blogpostdate"><a href="<?php echo $urlToBlog;
$blogExist = true; $blogGroupExist = true; } else { $newBlog = true; $arResult['BLOG_DATA']['BLOG_URL'] .= '_'.SITE_ID; } } unset($blogIterator); if (!$blogExist) { $blogIterator = CBlog::GetList( array(), array('URL' => $arResult['BLOG_DATA']['BLOG_URL']), false, false, array('ID', 'GROUP_ID', 'EMAIL_NOTIFY', 'GROUP_SITE_ID') ); if ($blog = $blogIterator->Fetch()) { if ($blog['GROUP_SITE_ID'] == SITE_ID) { $blogExist = true; $blogGroupExist = true; } else { $newBlog = true; $arResult['BLOG_DATA']['BLOG_URL'] .= '_'.$this->randString(); }
public static function PostIntoBuzzAsBlog($userTwit, $arSiteId = array(), $userLogin = '') { global $DB; if (!CModule::IncludeModule("blog")) { return; } $arParams = array(); if (IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME') && $userLogin != '') { if ($arUserTwit = unserialize(base64_decode($userTwit))) { $userTwit = $arUserTwit; } if ($arSiteIdCheck = unserialize(base64_decode($arSiteId))) { $arSiteId = $arSiteIdCheck; } $dbUser = CUser::GetByLogin($userLogin); if ($arUser = $dbUser->Fetch()) { $arParams["USER_ID"] = $arUser["ID"]; } } else { $arParams["USER_ID"] = $userTwit['kp_user_id']; } if (isset($arSiteId[$userTwit['kp_user_id']])) { $siteId = $arSiteId[$userTwit['kp_user_id']]; } if (strlen($siteId) <= 0) { $siteId = SITE_ID; } if (isset($userTwit['text'])) { $arParams["GROUP_ID"] = COption::GetOptionString("socialnetwork", "userbloggroup_id", false, $siteId); $arParams["PATH_TO_BLOG"] = COption::GetOptionString("socialnetwork", "userblogpost_page", false, $siteId); $arParams["PATH_TO_SMILE"] = COption::GetOptionString("socialnetwork", "smile_page", false, $siteId); $arParams["NAME_TEMPLATE"] = COption::GetOptionString("main", "TOOLTIP_NAME_TEMPLATE", false, $siteId); $arParams["SHOW_LOGIN"] = '******'; $arParams["PATH_TO_POST"] = $arParams["PATH_TO_BLOG"]; $arFilterblg = array("ACTIVE" => "Y", "USE_SOCNET" => "Y", "GROUP_ID" => $arParams["GROUP_ID"], "GROUP_SITE_ID" => $siteId, "OWNER_ID" => $arParams["USER_ID"]); $groupId = is_array($arParams["GROUP_ID"]) ? IntVal($arParams["GROUP_ID"][0]) : IntVal($arParams["GROUP_ID"]); if (isset($GLOBALS["BLOG_POST"]["BLOG_P_" . $groupId . "_" . $arParams["USER_ID"]]) && !empty($GLOBALS["BLOG_POST"]["BLOG_P_" . $groupId . "_" . $arParams["USER_ID"]])) { $arBlog = $GLOBALS["BLOG_POST"]["BLOG_P_" . $groupId . "_" . $arParams["USER_ID"]]; } else { $dbBl = CBlog::GetList(array(), $arFilterblg); $arBlog = $dbBl->Fetch(); if (!$arBlog && IsModuleInstalled("intranet")) { $arBlog = CBlog::GetByOwnerID($arParams["USER_ID"]); } $GLOBALS["BLOG_POST"]["BLOG_P_" . $groupId . "_" . $arParams["USER_ID"]] = $arBlog; } $arResult["Blog"] = $arBlog; if (empty($arBlog)) { if (!empty($arParams["GROUP_ID"])) { $arFields = array("=DATE_UPDATE" => $DB->CurrentTimeFunction(), "GROUP_ID" => is_array($arParams["GROUP_ID"]) ? IntVal($arParams["GROUP_ID"][0]) : IntVal($arParams["GROUP_ID"]), "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($arParams["USER_ID"]); $arUser = $rsUser->Fetch(); if (strlen($arUser["NAME"] . "" . $arUser["LAST_NAME"]) <= 0) { $arFields["NAME"] = GetMessage("BLG_NAME") . " " . $arUser["LOGIN"]; } else { $arFields["NAME"] = GetMessage("BLG_NAME") . " " . $arUser["NAME"] . " " . $arUser["LAST_NAME"]; } $arFields["URL"] = str_replace(" ", "_", $arUser["LOGIN"]) . "-blog-" . SITE_ID; $arFields["OWNER_ID"] = $arParams["USER_ID"]; $urlCheck = preg_replace("/[^a-zA-Z0-9_-]/is", "", $arFields["URL"]); if ($urlCheck != $arFields["URL"]) { $arFields["URL"] = "u" . $arParams["USER_ID"] . "-blog-" . SITE_ID; } 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; } $arFields["PATH"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arFields["URL"], "user_id" => $arFields["OWNER_ID"], "group_id" => $arFields["SOCNET_GROUP_ID"])); $blogID = CBlog::Add($arFields); if ($bRights) { CBlog::AddSocnetRead($blogID); } $arBlog = CBlog::GetByID($blogID, $arParams["GROUP_ID"]); } } // $DATE_PUBLISH = ""; // if(strlen($_POST["DATE_PUBLISH_DEF"]) > 0) // $DATE_PUBLISH = $_POST["DATE_PUBLISH_DEF"]; // elseif (strlen($_POST["DATE_PUBLISH"])<=0) $DATE_PUBLISH = ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL"); // else // $DATE_PUBLISH = $_POST["DATE_PUBLISH"]; $arFields = array("DETAIL_TEXT" => $userTwit['text'], "DETAIL_TEXT_TYPE" => "text", "DATE_PUBLISH" => $DATE_PUBLISH, "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "PATH" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => "#post_id#", "user_id" => $arBlog["OWNER_ID"])), "URL" => $arBlog["URL"], "SOURCE_TYPE" => "twitter"); $arFields["PERMS_POST"] = array(); $arFields["PERMS_COMMENT"] = array(); $arFields["MICRO"] = "N"; if (strlen($arFields["TITLE"]) <= 0) { $arFields["MICRO"] = "Y"; $arFields["TITLE"] = trim(blogTextParser::killAllTags($arFields["DETAIL_TEXT"])); if (strlen($arFields["TITLE"]) <= 0) { $arFields["TITLE"] = GetMessage("BLOG_EMPTY_TITLE_PLACEHOLDER"); } } $arFields["SOCNET_RIGHTS"] = array(); if (!empty($userTwit['user_perms'])) { $bOne = true; foreach ($userTwit['user_perms'] as $v => $k) { if (strlen($v) > 0 && is_array($k) && !empty($k)) { foreach ($k as $vv) { if (strlen($vv) > 0) { $arFields["SOCNET_RIGHTS"][] = $vv; if ($v != "SG") { $bOne = false; } } } } } if ($bOne && !empty($userTwit['user_perms']["SG"])) { $bOnesg = false; $bFirst = true; $oGrId = 0; foreach ($userTwit['user_perms']["SG"] as $v) { if (strlen($v) > 0) { if ($bFirst) { $bOnesg = true; $bFirst = false; $v = str_replace("SG", "", $v); $oGrId = IntVal($v); } else { $bOnesg = false; } } } if ($bOnesg) { if (!CSocNetFeaturesPerms::CanPerformOperation($arParams["USER_ID"], SONET_ENTITY_GROUP, $oGrId, "blog", "write_post") && !CSocNetFeaturesPerms::CanPerformOperation($arParams["USER_ID"], SONET_ENTITY_GROUP, $oGrId, "blog", "moderate_post") && !CSocNetFeaturesPerms::CanPerformOperation($arParams["USER_ID"], SONET_ENTITY_GROUP, $oGrId, "blog", "full_post")) { $arFields["PUBLISH_STATUS"] = BLOG_PUBLISH_STATUS_READY; } } } } $bError = false; /* if (CModule::IncludeModule('extranet') && !CExtranet::IsIntranetUser()) { if(empty($arFields["SOCNET_RIGHTS"]) || in_array("UA", $arFields["SOCNET_RIGHTS"])) { $bError = true; $arResult["ERROR_MESSAGE"] = GetMessage("BLOG_BPE_EXTRANET_ERROR"); } }*/ if (!$bError) { preg_match_all("/\\[user\\s*=\\s*([^\\]]*)\\](.+?)\\[\\/user\\]/ies" . BX_UTF_PCRE_MODIFIER, $userTwit['text'], $arMention); $arFields["=DATE_CREATE"] = $DB->GetNowFunction(); $arFields["AUTHOR_ID"] = $arParams["USER_ID"]; $arFields["BLOG_ID"] = $arBlog["ID"]; $newID = CBlogPost::Add($arFields); $socnetRightsOld = array("U" => array()); $bAdd = true; $bNeedMail = false; if ($newID) { $arFields["ID"] = $newID; $arParamsNotify = array("bSoNet" => true, "UserID" => $arParams["USER_ID"], "allowVideo" => $arResult["allowVideo"], "PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"], "PATH_TO_POST" => $arParams["PATH_TO_POST"], "SOCNET_GROUP_ID" => $arParams["GROUP_ID"], "user_id" => $arParams["USER_ID"], "NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"], "SHOW_LOGIN" => $arParams["SHOW_LOGIN"]); CBlogPost::Notify($arFields, $arBlog, $arParamsNotify); } } if ($newID > 0 && strlen($arResult["ERROR_MESSAGE"]) <= 0 && $arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH) { BXClearCache(true, "/" . SITE_ID . "/blog/last_messages_list/"); $arFieldsIM = array("TYPE" => "POST", "TITLE" => $arFields["TITLE"], "URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $newID, "user_id" => $arBlog["OWNER_ID"])), "ID" => $newID, "FROM_USER_ID" => $arParams["USER_ID"], "TO_USER_ID" => array(), "TO_SOCNET_RIGHTS" => $arFields["SOCNET_RIGHTS"], "TO_SOCNET_RIGHTS_OLD" => $socnetRightsOld["U"]); if (!empty($arMentionOld)) { $arFieldsIM["MENTION_ID_OLD"] = $arMentionOld[1]; } if (!empty($arMention)) { $arFieldsIM["MENTION_ID"] = $arMention[1]; } CBlogPost::NotifyIm($arFieldsIM); $arParams["ID"] = $newID; if (!empty($_POST["SPERM"]["SG"])) { foreach ($_POST["SPERM"]["SG"] as $v) { $group_id_tmp = substr($v, 2); if (IntVal($group_id_tmp) > 0) { CSocNetGroup::SetLastActivity(IntVal($group_id_tmp)); } } } } } }
} else { LocalRedirect("/bitrix/admin/blog_blog_edit.php?lang=" . LANG . "&ID=" . $ID . "&" . $tabControl->ActiveTabParam()); } } else { $bVarsFromForm = true; } } require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/blog/prolog.php"; if ($ID > 0) { $APPLICATION->SetTitle(GetMessage("BLBE_UPDATING")); } else { $APPLICATION->SetTitle(GetMessage("BLBE_ADDING")); } require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; ClearVars("str_"); $dbBlog = CBlog::GetList(array(), array("ID" => $ID), false, false, array("ID", "NAME", "DESCRIPTION", "DATE_CREATE", "DATE_UPDATE", "ACTIVE", "OWNER_ID", "URL", "REAL_URL", "GROUP_ID", "ENABLE_COMMENTS", "ENABLE_IMG_VERIF", "ENABLE_RSS", "LAST_POST_ID", "LAST_POST_DATE", "EMAIL_NOTIFY", "SEARCH_INDEX", "USE_SOCNET")); if (!$dbBlog->ExtractFields("str_")) { $ID = 0; } if ($bVarsFromForm) { $DB->InitTableVarsForEdit("b_blog", "", "str_"); } ?> <?php $aMenu = array(array("TEXT" => GetMessage("BLBE_2FLIST"), "ICON" => "btn_list", "LINK" => "/bitrix/admin/blog_blog.php?lang=" . LANG . "&" . GetFilterParams("filter_", false))); if ($ID > 0 && $blogModulePermissions >= "W") { $aMenu[] = array("SEPARATOR" => "Y"); $aMenu[] = array("TEXT" => GetMessage("BLBE_NEW_BLOG"), "ICON" => "btn_new", "LINK" => "/bitrix/admin/blog_blog_edit.php?lang=" . LANG . "&" . GetFilterParams("filter_", false)); $aMenu[] = array("TEXT" => GetMessage("BLBE_DELETE_BLOG"), "ICON" => "btn_delete", "LINK" => "javascript:if(confirm('" . GetMessage("BLBE_DELETE_BLOG_CONFIRM") . "')) window.location='/bitrix/admin/blog_blog.php?ID=" . $ID . "&action=delete&lang=" . LANG . "&" . bitrix_sessid_get() . "#tb';", "WARNING" => "Y"); }
$arComponentParameters["PARAMETERS"]["COMMENTS_TYPE"] = Array( "PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("P_COMMENTS_TYPE"), "TYPE" => "LIST", "VALUES" => $arr, "DEFAULT" => $default, "REFRESH" => "Y"); $arCurrentValues["COMMENTS_TYPE"] = ($arCurrentValues["COMMENTS_TYPE"] == "forum" || $arCurrentValues["COMMENTS_TYPE"] == "blog" ? $arCurrentValues["COMMENTS_TYPE"] : $default); if (IsModuleInstalled("blog") && $arCurrentValues["COMMENTS_TYPE"]=="blog") { $arBlogs = array(); if(CModule::IncludeModule("blog")) { $rsBlog = CBlog::GetList(); while($arBlog=$rsBlog->Fetch()) { $arBlogs[$arBlog["URL"]] = $arBlog["NAME"]; $url = $arBlog["URL"]; } } $arComponentParameters["PARAMETERS"]["BLOG_URL"] = Array( "PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_BLOG_URL"), "TYPE" => "LIST", "VALUES" => $arBlogs, "DEFAULT" => $url); $arComponentParameters["PARAMETERS"]["COMMENTS_COUNT"] = Array( "PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("F_COMMENTS_COUNT"),
if (isset($arParams["BLOG_URL"]) && trim($arParams["BLOG_URL"]) != "") { $arResult["BLOG_URL"] = $arParams["BLOG_URL"]; } else { $arResult["BLOG_URL"] = "catalog_comments"; } $SITE_ID = defined("SITE_ID") && strLen(SITE_ID) > 0 ? SITE_ID : "s1"; $arFields = array("SITE_ID" => $SITE_ID, "NAME" => GetMessage("IBLOCK_CSC_BLOG_GROUP_NAME")); $dbBlogGroup = CBlogGroup::GetList(array(), $arFields, false, false, array("ID")); if ($arBlogGroup = $dbBlogGroup->Fetch()) { $blogGroupID = $arBlogGroup["ID"]; } else { $blogGroupID = CBlogGroup::Add($arFields); } $blogGroupID = intval($blogGroupID); if ($blogGroupID > 0) { $dbBlog = CBlog::GetList(array(), array("URL" => $arResult["BLOG_URL"]), false, false, array("ID")); if ($arBlog = $dbBlog->Fetch()) { $blogId = $arBlog["ID"]; } else { $arFields = array("NAME" => GetMessage("IBLOCK_CSC_BLOG_NAME"), "DESCRIPTION" => GetMessage("IBLOCK_CSC_BLOG_DESCRIPTION"), "GROUP_ID" => $blogGroupID, "ENABLE_COMMENTS" => 'Y', "ENABLE_IMG_VERIF" => 'Y', "EMAIL_NOTIFY" => isset($arParams["EMAIL_NOTIFY"]) && $arParams["EMAIL_NOTIFY"] == 'Y' ? 'Y' : 'N', "URL" => $arResult["BLOG_URL"], "ACTIVE" => "Y", "OWNER_ID" => 1, "AUTO_GROUPS" => "N"); $blogId = CBlog::Add($arFields); if (IntVal($blogId) > 0) { CBlog::SetBlogPerms($blogId, array("1" => BLOG_PERMS_WRITE, "2" => BLOG_PERMS_WRITE), BLOG_PERMS_COMMENT); } else { if ($ex = $APPLICATION->GetException()) { $arResult["ERRORS"][] = $ex->GetString(); } else { $arResult["ERRORS"][] = GetMessage("IBLOCK_CSC_BLOG_CREATE_ERROR"); } } }
$arFilter = array("GROUP_SITE_ID" => SITE_ID, "ACTIVE" => "Y"); if (!$bShowAll) { $arFilter["GROUP_ID"] = $arParams["ID"]; } elseif (!empty($arParams["GROUP_ID"])) { $arFilter["GROUP_ID"] = $arParams["GROUP_ID"]; } $arSelectFields = array("ID", "NAME", "DESCRIPTION", "URL", "SITE_ID", "DATE_CREATE", "DATE_UPDATE", "ACTIVE", "OWNER_ID", "OWNER_LOGIN", "OWNER_NAME", "OWNER_LAST_NAME", "OWNER_SECOND_NAME", "LAST_POST_DATE", "LAST_POST_ID", "BLOG_USER_AVATAR", "BLOG_USER_ALIAS", "SOCNET_GROUP_ID"); if (CModule::IncludeModule("socialnetwork") && $arParams["USE_SOCNET"] == "Y") { unset($arFilter[">PERMS"]); $arSelectFields[] = "SOCNET_BLOG_READ"; $arFilter["USE_SOCNET"] = "Y"; } if ($arParams["SHOW_BLOG_WITHOUT_POSTS"] != "Y") { $arFilter[">LAST_POST_ID"] = 0; } $dbBlog = CBlog::GetList($SORT, $arFilter, false, array("nPageSize" => $arParams["BLOG_COUNT"], "bShowAll" => false), $arSelectFields); $arResult["NAV_STRING"] = $dbBlog->GetPageNavString(GetMessage("B_B_GR_TITLE"), $arParams["NAV_TEMPLATE"], false, $component); $arResult["BLOG"] = array(); while ($arBlog = $dbBlog->GetNext()) { $arBlog["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "post_id" => $arBlog["LAST_POST_ID"], "user_id" => $arBlog["OWNER_ID"])); $arBlog["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"])); $arBlog["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arBlog["OWNER_ID"])); $arBlog["AuthorName"] = CBlogUser::GetUserName($arBlog["BLOG_USER_ALIAS"], $arBlog["OWNER_NAME"], $arBlog["OWNER_LAST_NAME"], $arBlog["OWNER_LOGIN"]); $arBlog["BLOG_USER_AVATAR_ARRAY"] = CFile::GetFileArray($arBlog["BLOG_USER_AVATAR"]); if ($arBlog["BLOG_USER_AVATAR_ARRAY"] !== false) { $arBlog["Avatar_resized"] = CFile::ResizeImageGet($arBlog["BLOG_USER_AVATAR_ARRAY"], array("width" => 100, "height" => 100), BX_RESIZE_IMAGE_EXACT, false); $arBlog["BLOG_USER_AVATAR_IMG"] = CFile::ShowImage($arBlog["Avatar_resized"]["src"], 100, 100, 'align="right"'); } $arBlog["LAST_POST_DATE_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arBlog["LAST_POST_DATE"], CSite::GetDateFormat("FULL"))); $arResult["BLOG"][] = $arBlog; }
function Delete($ID) { global $DB; $ID = IntVal($ID); $bSuccess = True; $arUser = CBlogUser::GetByID($ID, BLOG_BY_USER_ID); if ($arUser) { $dbResult = CBlog::GetList(array(), array("OWNER_ID" => $arUser["USER_ID"]), false, false, array("ID")); if ($dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_OWNER"), "ERROR_OWNER"); $bSuccess = False; } if ($bSuccess) { $dbResult = CBlogPost::GetList(array(), array("AUTHOR_ID" => $arUser["USER_ID"]), false, false, array("ID")); if ($arResult = $dbResult->Fetch()) { if (!CBlogPost::Delete($arResult["ID"])) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_AUTHOR"), "ERROR_AUTHOR"); $bSuccess = False; } } } if ($bSuccess) { $dbGloUser = CUser::GetByID($arUser["USER_ID"]); $arGloUser = $dbGloUser->Fetch(); $DB->Query("UPDATE b_blog_comment SET " . "\tAUTHOR_NAME = '" . $DB->ForSql(CBlogUser::GetUserName($arUser["ALIAS"], $arGloUser["NAME"], $arGloUser["LAST_NAME"], $arGloUser["LOGIN"], $arGloUser["SECOND_NAME"])) . "', " . "\tAUTHOR_ID = null " . "WHERE AUTHOR_ID = " . $arUser["USER_ID"] . "", true); $DB->Query("DELETE FROM b_blog_user2user_group WHERE USER_ID = " . $arUser["USER_ID"] . "", true); } if ($bSuccess) { $strSql = "SELECT F.ID " . "FROM b_blog_user FU, b_file F " . "WHERE FU.ID = " . $arUser["ID"] . " " . "\tAND FU.AVATAR = F.ID "; $z = $DB->Query($strSql, false, "FILE: " . __FILE__ . " LINE:" . __LINE__); while ($zr = $z->Fetch()) { CFile::Delete($zr["ID"]); } if (CModule::IncludeModule("search")) { CSearch::Index("blog", "U" . $arUser["ID"], array("TITLE" => "", "BODY" => "")); } unset($GLOBALS["BLOG_USER"]["BLOG_USER_CACHE_" . $arUser["ID"]]); unset($GLOBALS["BLOG_USER"]["BLOG_USER1_CACHE_" . $arUser["USER_ID"]]); unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP_CACHE_" . $arUser["ID"]]); unset($GLOBALS["BLOG_USER"]["BLOG_USER2GROUP1_CACHE_" . $arUser["USER_ID"]]); return $DB->Query("DELETE FROM b_blog_user WHERE ID = " . $arUser["ID"] . "", true); } if (!$bSuccess) { return false; } } return True; }
function NewPost($params) { global $USER, $DB; $blogId = IntVal(CBlogMetaWeblog::DecodeParams($params[0]["#"]["value"][0]["#"])); $user = CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"]); $password = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]); $arPostInfo = $params[3]["#"]["value"][0]["#"]["struct"][0]["#"]["member"]; $publish = $params[4]["#"]["value"][0]["#"]["boolean"][0]["#"]; foreach ($arPostInfo as $val) { ${$val["#"]["name"][0]["#"]} = CBlogMetaWeblog::DecodeParams($val["#"]["value"][0]["#"]); } $arCategory = array(); if (is_array($categories["data"][0]["#"]["value"])) { foreach ($categories["data"][0]["#"]["value"] as $val) { $catTmp = CBlogMetaWeblog::DecodeParams($val["#"]); if (strlen($catTmp) > 0) { $arCategory[] = $catTmp; } } } if (CBlogMetaWeblog::Authorize($user, $password)) { $result = ''; $userId = $USER->GetID(); if (IntVal($blogId) > 0) { $dbBlog = CBlog::GetList(array(), array("GROUP_SITE_ID" => SITE_ID, "ACTIVE" => "Y", "ID" => $blogId), false, false, array("ID", "URL", "NAME", "GROUP_ID", "SOCNET_GROUP_ID")); if ($arBlog = $dbBlog->GetNext()) { $CATEGORYtmp = array(); $dbCategory = CBlogCategory::GetList(array(), array("BLOG_ID" => $blogId)); while ($arCat = $dbCategory->Fetch()) { $arCatBlog[ToLower($arCat["NAME"])] = $arCat["ID"]; } if (intval($arBlog["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork") && method_exists("CSocNetGroup", "GetSite")) { $arSites = array(); $rsGroupSite = CSocNetGroup::GetSite($arBlog["SOCNET_GROUP_ID"]); while ($arGroupSite = $rsGroupSite->Fetch()) { $arSites[] = $arGroupSite["LID"]; } } else { $arSites = array(SITE_ID); } foreach ($arCategory as $tg) { $tg = trim($tg); if (!in_array($arCatBlog[ToLower($tg)], $CATEGORYtmp)) { if (IntVal($arCatBlog[ToLower($tg)]) > 0) { $CATEGORYtmp[] = $arCatBlog[ToLower($tg)]; } else { $CATEGORYtmp[] = CBlogCategory::Add(array("BLOG_ID" => $blogId, "NAME" => $tg)); foreach ($arSites as $site_id_tmp) { BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/category/"); } } } } $dbSite = CSite::GetByID(SITE_ID); $arSite = $dbSite->Fetch(); $serverName = htmlspecialcharsEx($arSite["SERVER_NAME"]); if (strlen($serverName) <= 0) { if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) { $serverName = SITE_SERVER_NAME; } else { $serverName = COption::GetOptionString("main", "server_name", "www.bitrixsoft.com"); } } $arImgRepl = array(); $dbImage = CBlogImage::GetList(array(), array("POST_ID" => false, "BLOG_ID" => $blogId, "IS_COMMENT" => "N")); while ($arImage = $dbImage->Fetch()) { $path = ""; $path = CFile::GetPath($arImage["FILE_ID"]); $path = "http://" . $serverName . $path; if (strpos($description, $path) !== false) { $description = str_replace('<img src="' . $path . '" alt=""/>', "[IMG ID=" . $arImage["ID"] . "]", $description); $arImgRepl[] = $arImage["ID"]; } } $arFields = array("BLOG_ID" => $blogId, "AUTHOR_ID" => $userId, "TITLE" => $title, "DETAIL_TEXT" => $description, "DETAIL_TEXT_TYPE" => "html", "=DATE_PUBLISH" => $DB->GetNowFunction(), "=DATE_CREATE" => $DB->GetNowFunction(), "PUBLISH_STATUS" => $publish == 1 ? "P" : "D", "ENABLE_TRACKBACK" => "N", "ENABLE_COMMENTS" => "Y", "CATEGORY_ID" => implode(",", $CATEGORYtmp), "PERMS_POST" => array(), "PERMS_COMMENT" => array()); $postId = CBlogPost::Add($arFields); if (IntVal($postId) > 0) { foreach ($CATEGORYtmp as $v) { CBlogPostCategory::Add(array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $postId, "CATEGORY_ID" => $v)); } foreach ($arImgRepl as $v) { CBlogImage::Update($v, array("POST_ID" => $postId)); } foreach ($arSites as $site_id_tmp) { BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/first_page/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/calendar/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/last_messages/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/commented_posts/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/popular_posts/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/last_comments/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/groups/" . $arBlog["GROUP_ID"] . "/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_out/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_all/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_sonet/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_all/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/favorite/"); } return '<params> <param> <value> <i4>' . $postId . '</i4> </value> </param> </params>'; } else { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>Error on adding post</string></value> </member> </struct> </value> </fault>'; } } } } else { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>' . $arAuthResult["MESSAGE"] . '</string></value> </member> </struct> </value> </fault>'; } }
} ?> <?php $APPLICATION->IncludeComponent("bitrix:blog.menu", "", array("BLOG_VAR" => $arResult["ALIASES"]["blog"], "POST_VAR" => $arResult["ALIASES"]["post_id"], "USER_VAR" => $arResult["ALIASES"]["user_id"], "PAGE_VAR" => $arResult["ALIASES"]["page"], "PATH_TO_BLOG" => $arResult["PATH_TO_BLOG"], "PATH_TO_USER" => $arResult["PATH_TO_USER"], "PATH_TO_BLOG_EDIT" => $arResult["PATH_TO_BLOG_EDIT"], "PATH_TO_BLOG_INDEX" => $arResult["PATH_TO_BLOG_INDEX"], "PATH_TO_DRAFT" => $arResult["PATH_TO_DRAFT"], "PATH_TO_POST_EDIT" => $arResult["PATH_TO_POST_EDIT"], "PATH_TO_USER_FRIENDS" => $arResult["PATH_TO_USER_FRIENDS"], "PATH_TO_USER_SETTINGS" => $arResult["PATH_TO_USER_SETTINGS"], "PATH_TO_GROUP_EDIT" => $arResult["PATH_TO_GROUP_EDIT"], "PATH_TO_CATEGORY_EDIT" => $arResult["PATH_TO_CATEGORY_EDIT"], "BLOG_URL" => $arResult["VARIABLES"]["blog"], "SET_NAV_CHAIN" => $arResult["SET_NAV_CHAIN"], "GROUP_ID" => $arParams["GROUP_ID"]), $component); ?> <?php $APPLICATION->IncludeComponent("bitrix:blog.search", "", array("PAGE_RESULT_COUNT" => 0, "SEARCH_PAGE" => $arResult["PATH_TO_SEARCH"], "BLOG_VAR" => $arResult["ALIASES"]["blog"], "POST_VAR" => $arResult["ALIASES"]["post_id"], "USER_VAR" => $arResult["ALIASES"]["user_id"], "PAGE_VAR" => $arResult["ALIASES"]["page"], "PATH_TO_BLOG" => $arResult["PATH_TO_BLOG"], "PATH_TO_POST" => $arResult["PATH_TO_POST"], "PATH_TO_USER" => $arResult["PATH_TO_USER"], "SET_TITLE" => "N"), $component); ?> <?php if ($USER->IsAuthorized() && CBlog::CanUserCreateBlog($USER->GetID())) { $bHaveBlog = false; if (IntVal($arParams["GROUP_ID"]) > 0) { $dbBl = CBlog::GetList(array(), array("GROUP_ID" => $arParams["GROUP_ID"], "OWNER_ID" => $USER->GetID(), "ACTIVE" => "Y", "GROUP_SITE_ID" => SITE_ID)); if ($dbBl->Fetch()) { $bHaveBlog = true; } } elseif (CBlog::GetByOwnerID($USER->GetID())) { $bHaveBlog = true; } if (!$bHaveBlog) { ?> <h4><a href="<?php echo $arResult["PATH_TO_NEW_BLOG"]; ?> "><img src="<?php echo $templateFolder; ?> /images/add_blog.gif" width="42" height="42" border="0" title="<?php