function CheckFields($ACTION, &$arFields, $ID = 0) { if ((is_set($arFields, "POST_ID") || $ACTION == "ADD") && strlen($arFields["POST_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GCT_EMPTY_POST_ID"), "EMPTY_POST_ID"); return false; } elseif (is_set($arFields, "POST_ID")) { $arResult = CBlogPost::GetByID($arFields["POST_ID"]); if (!$arResult) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["POST_ID"], GetMessage("BLG_GCT_ERROR_NO_POST")), "ERROR_NO_POST"); return false; } } if ((is_set($arFields, "BLOG_ID") || $ACTION == "ADD") && IntVal($arFields["BLOG_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GCT_EMPTY_BLOG_ID"), "EMPTY_BLOG_ID"); return false; } elseif (is_set($arFields, "BLOG_ID")) { $arResult = CBlog::GetByID($arFields["BLOG_ID"]); if (!$arResult) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["BLOG_ID"], GetMessage("BLG_GCT_ERROR_NO_BLOG")), "ERROR_NO_BLOG"); return false; } } if ((is_set($arFields, "CATEGORY_ID") || $ACTION == "ADD") && IntVal($arFields["CATEGORY_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GCT_EMPTY_CATEGORY_ID"), "EMPTY_CATEGORY_ID"); return false; } elseif (is_set($arFields, "CATEGORY_ID")) { $arResult = CBlogCategory::GetByID($arFields["CATEGORY_ID"]); if (!$arResult) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["CATEGORY_ID"], GetMessage("BLG_GCT_ERROR_NO_CATEGORY")), "ERROR_NO_CATEGORY"); return false; } } return True; }
public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array()) { if (!CModule::IncludeModule('blog')) { return false; } global $DB; if (count($arSelectFields) == 0) { $arSelectFields = array("ID", "USER_ID", "USER_EMAIL"); } // FIELDS --> $arFields = array("ID" => array("FIELD" => "IES.ID", "TYPE" => "string"), "USER_ID" => array("FIELD" => "IES.USER_ID", "TYPE" => "int"), "USER_EMAIL" => array("FIELD" => "U.EMAIL", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (IES.USER_ID = U.ID)")); $arSqls = CBlog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields); $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]); //Make Query $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_idea_email_subscribe IES " . " " . $arSqls["FROM"] . " "; if (strlen($arSqls["WHERE"]) > 0) { $strSql .= "WHERE " . $arSqls["WHERE"] . " "; } if (strlen($arSqls["GROUPBY"]) > 0) { $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " "; } if (strlen($arSqls["ORDERBY"]) > 0) { $strSql .= "ORDER BY " . $arSqls["ORDERBY"] . " "; } return $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); }
public static function OnGroupDelete($ID) { $ID = IntVal($ID); if ($ID <= 0) { return false; } $arBlog = CBlog::GetBySocNetGroupID($ID); if (!empty($arBlog)) { CBlog::Delete($arBlog["ID"]); } }
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); }
public static function GetList($arOrder = array("ID" => "ASC"), $arFilter = array(), $arAddParams = array()) { global $DB; $arFields = array("ID" => array("FIELD" => "BPP.ID", "TYPE" => "int"), "POST_ID" => array("FIELD" => "BPP.POST_ID", "TYPE" => "int"), "USER_ID" => array("FIELD" => "BPP.USER_ID", "TYPE" => "int"), "NAME" => array("FIELD" => "BPP.NAME", "TYPE" => "string"), "VALUE" => array("FIELD" => "BPP.VALUE", "TYPE" => "string"), "RANK" => $arOrder["OWNER_ID"] > 0 ? array("FIELD" => "RV0.RANK", "TYPE" => "int", "FROM" => "\n\tLEFT JOIN (\n\t\t" . "SELECT MAX(RV2.VOTE_WEIGHT) as VOTE_WEIGHT, RV2.ENTITY_ID \n\t\t" . "FROM b_rating_user RV2 \n\t\t" . "GROUP BY RV2.ENTITY_ID) RV ON (RV.ENTITY_ID = BPP.USER_ID)\n\t" . "LEFT JOIN (\n\t\t" . "SELECT RV1.OWNER_ID, SUM(case when RV1.ID is not null then 1 else 0 end) as RANK \n\t\t" . "FROM b_rating_vote RV1 \n\t\t" . "WHERE RV1.USER_ID = " . $arOrder["OWNER_ID"] . "\n\t\t" . "GROUP BY RV1.OWNER_ID) RV0 ON (RV0.OWNER_ID = BPP.USER_ID)") : array("FIELD" => "RV.RANK", "TYPE" => "string", "FROM" => "\n\tLEFT JOIN (" . "\n\t\tSELECT MAX(RV2.VOTE_WEIGHT) as VOTE_WEIGHT, RV2.ENTITY_ID, 0 as RANK " . "\n\t\tFROM b_rating_user RV2" . "\n\t\tGROUP BY RV2.ENTITY_ID) RV ON (RV.ENTITY_ID = BPP.USER_ID)"), "USER_ACTIVE" => array("FIELD" => "U.ACTIVE", "TYPE" => "string", "FROM" => "\n\tINNER JOIN b_user U ON (BPP.USER_ID = U.ID)"), "USER_NAME" => array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "\n\tINNER JOIN b_user U ON (BPP.USER_ID = U.ID)"), "USER_LAST_NAME" => array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "\n\tINNER JOIN b_user U ON (BPP.USER_ID = U.ID)"), "USER_SECOND_NAME" => array("FIELD" => "U.SECOND_NAME", "TYPE" => "string", "FROM" => "\n\tINNER JOIN b_user U ON (BPP.USER_ID = U.ID)"), "USER_LOGIN" => array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "\n\tINNER JOIN b_user U ON (BPP.USER_ID = U.ID)"), "USER_PERSONAL_PHOTO" => array("FIELD" => "U.PERSONAL_PHOTO", "TYPE" => "string", "FROM" => "\n\tINNER JOIN b_user U ON (BPP.USER_ID = U.ID)")); $arSelect = array_diff(array_keys($arFields), array("RANK")); $arSelect = is_array($arAddParams["SELECT"]) && !empty($arAddParams["SELECT"]) ? array_intersect($arAddParams["SELECT"], $arSelect) : $arSelect; $arSql = CBlog::PrepareSql($arFields, array(), $arFilter, false, $arSelect); $arSql["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSql["SELECT"]); $iCnt = 0; if ($arAddParams["bCount"] || array_key_exists("bDescPageNumbering", $arAddParams)) { $strSql = "SELECT COUNT(BPP.ID) AS CNT \n" . "FROM b_blog_post_param BPP " . $arSql["FROM"] . "\n" . (empty($arSql["GROUPBY"]) ? "" : "GROUP BY " . $arSql["GROUPBY"] . "\n") . "WHERE " . (empty($arSql["WHERE"]) ? "1 = 1" : $arSql["WHERE"]); $db_res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arAddParams["bCount"]) { return $db_res; } $iCnt = $db_res && ($res = $db_res->Fetch()) ? intval($res["CNT"]) : 0; } // ORDER BY --> $arSqlOrder = array(); foreach ($arOrder as $by => $order) { $by = strtoupper($by); $order = strtoupper($order) != "ASC" ? "DESC" : "ASK"; if (array_key_exists($by, $arFields) && !array_key_exists($by, $arSqlOrder)) { if (strtoupper($DB->type) == "ORACLE") { $order .= $order == "ASC" ? " NULLS FIRST" : " NULLS LAST"; } if (isset($arFields[$by]["FROM"]) && !empty($arFields[$by]["FROM"]) && strpos($arSql["FROM"], $arFields[$by]["FROM"]) === false) { $arSql["FROM"] .= " " . $arFields[$by]["FROM"]; } if ($by == "RANK") { $arSql["SELECT"] .= ", " . $arFields["RANK"]["FIELD"]; $arSqlOrder[$by] = IsModuleInstalled("intranet") ? "RV.VOTE_WEIGHT " . $order . ", RANK " . $order : "RANK " . $order . ", RV.VOTE_WEIGHT " . $order; } else { $arSqlOrder[$by] = (array_key_exists("ORDER", $arFields[$by]) ? $arFields[$by]["ORDER"] : $arFields[$by]["FIELD"]) . " " . $order; } } } DelDuplicateSort($arSqlOrder); $arSql["ORDERBY"] = implode(", ", $arSqlOrder); // <-- ORDER BY $strSql = "SELECT " . $arSql["SELECT"] . "\n" . "FROM b_blog_post_param BPP" . $arSql["FROM"] . "\n" . "WHERE " . (empty($arSql["WHERE"]) ? "1 = 1" : $arSql["WHERE"]) . (empty($arSql["ORDERBY"]) ? "" : "\nORDER BY " . $arSql["ORDERBY"]); if (is_set($arAddParams, "bDescPageNumbering")) { $db_res = new CDBResult(); $db_res->NavQuery($strSql, $iCnt, $arAddParams); } else { $db_res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } return $db_res; }
function CheckFields($ACTION, &$arFields, $ID = 0) { if ((is_set($arFields, "BLOG_ID") || $ACTION == "ADD") && IntVal($arFields["BLOG_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GUGP_EMPTY_BLOG_ID"), "EMPTY_BLOG_ID"); return false; } elseif (is_set($arFields, "BLOG_ID")) { $arResult = CBlog::GetByID($arFields["BLOG_ID"]); if (!$arResult) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["BLOG_ID"], GetMessage("BLG_GUGP_ERROR_NO_BLOG")), "ERROR_NO_BLOG"); return false; } } if ((is_set($arFields, "USER_GROUP_ID") || $ACTION == "ADD") && IntVal($arFields["USER_GROUP_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GUGP_EMPTY_USER_GROUP_ID"), "EMPTY_USER_GROUP_ID"); return false; } elseif (is_set($arFields, "USER_GROUP_ID")) { $arResult = CBlogUserGroup::GetByID($arFields["USER_GROUP_ID"]); if (!$arResult) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["USER_GROUP_ID"], GetMessage("BLG_GUGP_ERROR_NO_USER_GROUP")), "ERROR_NO_USER_GROUP"); return false; } } if ((is_set($arFields, "PERMS_TYPE") || $ACTION == "ADD") && $arFields["PERMS_TYPE"] != BLOG_PERMS_POST && $arFields["PERMS_TYPE"] != BLOG_PERMS_COMMENT) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GUGP_EMPTY_PERMS_TYPE"), "EMPTY_PERMS_TYPE"); return false; } if ((is_set($arFields, "PERMS") || $ACTION == "ADD") && strlen($arFields["PERMS"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GUGP_EMPTY_PERMS"), "EMPTY_PERMS"); return false; } elseif (is_set($arFields, "PERMS")) { $arAvailPerms = array_keys($GLOBALS["AR_BLOG_PERMS"]); if (!in_array($arFields["PERMS"], $arAvailPerms)) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PERMS"], GetMessage("BLG_GUGP_ERROR_NO_PERMS")), "ERROR_NO_PERMS"); return false; } } if ((is_set($arFields, "AUTOSET") || $ACTION == "ADD") && $arFields["AUTOSET"] != "Y" && $arFields["AUTOSET"] != "N") { $arFields["AUTOSET"] = "N"; } return True; }
public static function CheckFields($ACTION, &$arFields, $ID = 0) { if ((is_set($arFields, "NAME") || $ACTION == "ADD") && strlen($arFields["NAME"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GCT_EMPTY_NAME"), "EMPTY_NAME"); return false; } if ((is_set($arFields, "BLOG_ID") || $ACTION == "ADD") && IntVal($arFields["BLOG_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GCT_EMPTY_BLOG_ID"), "EMPTY_BLOG_ID"); return false; } elseif (is_set($arFields, "BLOG_ID")) { $arResult = CBlog::GetByID($arFields["BLOG_ID"]); if (!$arResult) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["BLOG_ID"], GetMessage("BLG_GCT_ERROR_NO_BLOG")), "ERROR_NO_BLOG"); return false; } } if (is_set($arFields, "NAME")) { if (intval($arFields["BLOG_ID"]) > 0) { $blogID = $arFields["BLOG_ID"]; } elseif (IntVal($ID) > 0) { $arCat = CBlogCategory::GetByID($ID); $blogID = $arCat["BLOG_ID"]; } else { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GCT_EMPTY_BLOG_ID"), "EMPTY_BLOG_ID"); return false; } if (strlen($arFields["NAME"]) > 255) { $arFields["NAME"] = substr($arFields["NAME"], 0, 255); } $dbCategory = CBlogCategory::GetList(array(), array("BLOG_ID" => $blogID, "NAME" => $arFields["NAME"])); while ($arCategory = $dbCategory->Fetch()) { if ($ID != $arCategory["ID"]) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_ALREADY_EXIST"), "ALREADY_EXIST"); return false; } } } return True; }
public static function CheckFields($ACTION, &$arFields, $ID = 0) { if ((is_set($arFields, "BLOG_ID") || $ACTION == "ADD") && IntVal($arFields["BLOG_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GC_EMPTY_BLOG_ID"), "EMPTY_BLOG_ID"); return false; } elseif (is_set($arFields, "BLOG_ID")) { $arResult = CBlog::GetByID($arFields["BLOG_ID"]); if (!$arResult) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["BLOG_ID"], GetMessage("BLG_GB_ERROR_NO_BLOG")), "ERROR_NO_BLOG"); return false; } } if ((is_set($arFields, "USER_ID") || $ACTION == "ADD") && IntVal($arFields["USER_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_EMPTY_USER_ID"), "EMPTY_USER_ID"); return false; } elseif (is_set($arFields, "USER_ID")) { $dbResult = CUser::GetByID($arFields["USER_ID"]); if (!$dbResult->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GB_ERROR_NO_USER_ID"), "ERROR_NO_USER_ID"); return false; } } return True; }
function Notify($arPost, $arBlog, $arParams) { global $DB; if (empty($arBlog)) { $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); } if ($arParams["bSoNet"] || $arBlog["EMAIL_NOTIFY"] == "Y" && $arParams["user_id"] != $arBlog["OWNER_ID"]) { $BlogUser = CBlogUser::GetByID($arParams["user_id"], BLOG_BY_USER_ID); $BlogUser = CBlogTools::htmlspecialcharsExArray($BlogUser); $res = CUser::GetByID($arBlog["OWNER_ID"]); $arOwner = $res->GetNext(); $dbUser = CUser::GetByID($arParams["user_id"]); $arUser = $dbUser->Fetch(); $AuthorName = CBlogUser::GetUserNameEx($arUser, $BlogUser, $arParams); $parserBlog = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $text4mail = $arPost["DETAIL_TEXT"]; if ($arPost["DETAIL_TEXT_TYPE"] == "html") { $text4mail = HTMLToTxt($text4mail); } $arImages = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"], "IS_COMMENT" => "N")); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } $text4mail = $parserBlog->convert4mail($text4mail, $arImages); $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", ""); } } } if (!$arParams["bSoNet"] && $arBlog["EMAIL_NOTIFY"] == "Y" && $arParams["user_id"] != $arBlog["OWNER_ID"] && IntVal($arBlog["OWNER_ID"]) > 0) { CEvent::Send("NEW_BLOG_MESSAGE", SITE_ID, array("BLOG_ID" => $arBlog["ID"], "BLOG_NAME" => htmlspecialcharsBack($arBlog["NAME"]), "BLOG_URL" => $arBlog["URL"], "MESSAGE_TITLE" => $arPost["TITLE"], "MESSAGE_TEXT" => $text4mail, "MESSAGE_DATE" => GetTime(MakeTimeStamp($arPost["DATE_PUBLISH"]) - CTimeZone::GetOffset(), "FULL"), "MESSAGE_PATH" => "http://" . $serverName . CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("blog" => $arBlog["URL"], "post_id" => $arPost["ID"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"])), "AUTHOR" => $AuthorName, "EMAIL_FROM" => COption::GetOptionString("main", "email_from", "*****@*****.**"), "EMAIL_TO" => $arOwner["EMAIL"])); } if ($arParams["bSoNet"] && $arPost["ID"] && CModule::IncludeModule("socialnetwork")) { if ($arPost["DETAIL_TEXT_TYPE"] == "html" && $arParams["allowHTML"] == "Y" && $arBlog["ALLOW_HTML"] == "Y") { $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y"); if ($arParams["allowVideo"] != "Y") { $arAllow["VIDEO"] = "N"; } $text4message = $parserBlog->convert($arPost["DETAIL_TEXT"], false, $arImages, $arAllow); } else { $arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "TABLE" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "N"); $text4message = $parserBlog->convert($arPost["DETAIL_TEXT"], false, $arImages, $arAllow, array("isSonetLog" => true)); } $arSoFields = array("EVENT_ID" => "blog_post", "=LOG_DATE" => strlen($arPost["DATE_PUBLISH"]) > 0 ? MakeTimeStamp($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL", $SITE_ID)) > time() + CTimeZone::GetOffset() ? $DB->CharToDateFunction($arPost["DATE_PUBLISH"], "FULL", SITE_ID) : $DB->CurrentTimeFunction() : $DB->CurrentTimeFunction(), "TITLE_TEMPLATE" => "#USER_NAME# " . GetMessage("BLG_SONET_TITLE"), "TITLE" => $arPost["TITLE"], "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "MODULE_ID" => "blog", "CALLBACK_FUNC" => false, "SOURCE_ID" => $arPost["ID"], "ENABLE_COMMENTS" => array_key_exists("ENABLE_COMMENTS", $arPost) && $arPost["ENABLE_COMMENTS"] == "N" ? "N" : "Y"); $arSoFields["RATING_TYPE_ID"] = "BLOG_POST"; $arSoFields["RATING_ENTITY_ID"] = intval($arPost["ID"]); if ($arParams["bGroupMode"]) { $arSoFields["ENTITY_TYPE"] = SONET_ENTITY_GROUP; $arSoFields["ENTITY_ID"] = $arParams["SOCNET_GROUP_ID"]; $arSoFields["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"], "post_id" => $arPost["ID"])); } else { $arSoFields["ENTITY_TYPE"] = SONET_ENTITY_USER; $arSoFields["ENTITY_ID"] = $arBlog["OWNER_ID"]; $arSoFields["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"], "post_id" => $arPost["ID"])); } if (intval($arParams["user_id"]) > 0) { $arSoFields["USER_ID"] = $arParams["user_id"]; } $logID = CSocNetLog::Add($arSoFields, false); if (intval($logID) > 0) { $socnetPerms = CBlogPost::GetSocNetPermsCode($arPost["ID"]); if (!in_array("U" . $arPost["AUTHOR_ID"], $socnetPerms)) { $socnetPerms[] = "U" . $arPost["AUTHOR_ID"]; } $socnetPerms[] = "SA"; // socnet admin CSocNetLog::Update($logID, array("TMP_ID" => $logID)); if (CModule::IncludeModule("extranet")) { $arSiteID = CExtranet::GetSitesByLogDestinations($socnetPerms); CSocNetLog::Update($logID, array("SITE_ID" => $arSiteID)); } CSocNetLogRights::DeleteByLogID($logID); CSocNetLogRights::Add($logID, $socnetPerms); CSocNetLog::SendEvent($logID, "SONET_NEW_EVENT", $logID); return $logID; } } }
$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));
$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; }
$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()) { if (!in_array($arBlogGroup["ID"], $arIdeaBlogGroupID)) { $arBlogGroupID[] = $arBlogGroup["ID"]; } } $arBlog = CBlog::GetByOwnerID($arParams["USER_ID"], $arBlogGroupID); } } $obCache->EndDataCache($arBlog); } $arResult["Blog"] = $arBlog; if ($GLOBALS["USER"]->IsAuthorized()) { CSocNetTools::InitGlobalExtranetArrays(); if (isset($GLOBALS["arExtranetGroupID"])) { $arResult["arExtranetGroupID"] = $GLOBALS["arExtranetGroupID"]; } } } $arParams["ID"] = trim($arParams["ID"]); if (preg_match("/^[1-9][0-9]*\$/", $arParams["ID"])) { $arParams["ID"] = IntVal($arParams["ID"]);
function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array()) { global $DB; if (count($arSelectFields) <= 0) { $arSelectFields = array("ID", "BLOG_ID", "NAME"); } // FIELDS --> $arFields = array("ID" => array("FIELD" => "C.ID", "TYPE" => "int"), "BLOG_ID" => array("FIELD" => "C.BLOG_ID", "TYPE" => "int"), "NAME" => array("FIELD" => "C.NAME", "TYPE" => "string")); // <-- FIELDS $arSqls = CBlog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields); $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]); if (is_array($arGroupBy) && count($arGroupBy) == 0) { $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_blog_category C " . "\t" . $arSqls["FROM"] . " "; if (strlen($arSqls["WHERE"]) > 0) { $strSql .= "WHERE " . $arSqls["WHERE"] . " "; } if (strlen($arSqls["GROUPBY"]) > 0) { $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " "; } //echo "!1!=".htmlspecialchars($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arRes = $dbRes->Fetch()) { return $arRes["CNT"]; } else { return False; } } $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_blog_category C " . "\t" . $arSqls["FROM"] . " "; if (strlen($arSqls["WHERE"]) > 0) { $strSql .= "WHERE " . $arSqls["WHERE"] . " "; } if (strlen($arSqls["GROUPBY"]) > 0) { $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " "; } if (strlen($arSqls["ORDERBY"]) > 0) { $strSql .= "ORDER BY " . $arSqls["ORDERBY"] . " "; } if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) <= 0) { $strSql_tmp = "SELECT COUNT('x') as CNT " . "FROM b_blog_category C " . "\t" . $arSqls["FROM"] . " "; if (strlen($arSqls["WHERE"]) > 0) { $strSql_tmp .= "WHERE " . $arSqls["WHERE"] . " "; } if (strlen($arSqls["GROUPBY"]) > 0) { $strSql_tmp .= "GROUP BY " . $arSqls["GROUPBY"] . " "; } //echo "!2.1!=".htmlspecialchars($strSql_tmp)."<br>"; $dbRes = $DB->Query($strSql_tmp, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $cnt = 0; if ($arRes = $dbRes->Fetch()) { $cnt = $arRes["CNT"]; } $dbRes = new CDBResult(); //echo "!2.2!=".htmlspecialchars($strSql)."<br>"; $dbRes->NavQuery($strSql, $cnt, $arNavStartParams); } else { if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0) { $strSql = "SELECT * FROM (" . $strSql . ") WHERE ROWNUM<=" . $arNavStartParams["nTopCount"]; } //echo "!3!=".htmlspecialchars($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } return $dbRes; }
public static function GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array()) { global $DB; if (count($arSelectFields) <= 0) { $arSelectFields = array("ID", "TITLE", "URL", "PREVIEW_TEXT", "BLOG_NAME", "POST_DATE", "BLOG_ID", "POST_ID"); } // FIELDS --> $arFields = array("ID" => array("FIELD" => "C.ID", "TYPE" => "int"), "TITLE" => array("FIELD" => "C.TITLE", "TYPE" => "string"), "URL" => array("FIELD" => "C.URL", "TYPE" => "string"), "PREVIEW_TEXT" => array("FIELD" => "C.PREVIEW_TEXT", "TYPE" => "string"), "BLOG_NAME" => array("FIELD" => "C.BLOG_NAME", "TYPE" => "string"), "POST_DATE" => array("FIELD" => "C.POST_DATE", "TYPE" => "datetime"), "BLOG_ID" => array("FIELD" => "C.BLOG_ID", "TYPE" => "int"), "POST_ID" => array("FIELD" => "C.POST_ID", "TYPE" => "int")); // <-- FIELDS $arSqls = CBlog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields); $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]); if (is_array($arGroupBy) && count($arGroupBy) == 0) { $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_blog_trackback C " . "\t" . $arSqls["FROM"] . " "; if (strlen($arSqls["WHERE"]) > 0) { $strSql .= "WHERE " . $arSqls["WHERE"] . " "; } if (strlen($arSqls["GROUPBY"]) > 0) { $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " "; } //echo "!1!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arRes = $dbRes->Fetch()) { return $arRes["CNT"]; } else { return False; } } $strSql = "SELECT " . $arSqls["SELECT"] . " " . "FROM b_blog_trackback C " . "\t" . $arSqls["FROM"] . " "; if (strlen($arSqls["WHERE"]) > 0) { $strSql .= "WHERE " . $arSqls["WHERE"] . " "; } if (strlen($arSqls["GROUPBY"]) > 0) { $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " "; } if (strlen($arSqls["ORDERBY"]) > 0) { $strSql .= "ORDER BY " . $arSqls["ORDERBY"] . " "; } if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) <= 0) { $strSql_tmp = "SELECT COUNT('x') as CNT " . "FROM b_blog_trackback C " . "\t" . $arSqls["FROM"] . " "; if (strlen($arSqls["WHERE"]) > 0) { $strSql_tmp .= "WHERE " . $arSqls["WHERE"] . " "; } if (strlen($arSqls["GROUPBY"]) > 0) { $strSql_tmp .= "GROUP BY " . $arSqls["GROUPBY"] . " "; } //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>"; $dbRes = $DB->Query($strSql_tmp, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $cnt = 0; if (strlen($arSqls["GROUPBY"]) <= 0) { if ($arRes = $dbRes->Fetch()) { $cnt = $arRes["CNT"]; } } else { // ТОЛЬКО ДЛЯ MYSQL!!! ДЛЯ ORACLE ДРУГОЙ КОД $cnt = $dbRes->SelectedRowsCount(); } $dbRes = new CDBResult(); //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes->NavQuery($strSql, $cnt, $arNavStartParams); } else { if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0) { $strSql .= "LIMIT " . IntVal($arNavStartParams["nTopCount"]); } //echo "!3!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } return $dbRes; }
} if (!CModule::IncludeModule("blog")) { ShowError(GetMessage("BLOG_MODULE_NOT_INSTALL")); return; } if (!CModule::IncludeModule('idea')) { ShowError(GetMessage("IDEA_MODULE_NOT_INSTALL")); return; } if (strlen($arParams["BLOG_URL"]) == 0) { return; } $arResult = array(); $obCache = new CPHPCache(); $life_time = 60 * 60 * 24; //1 day $cache_id = 'idea_statistic_list_' . $arParams["BLOG_URL"]; $cache_path = '/' . SITE_ID . '/idea/statistic_list/'; if ($obCache->StartDataCache($life_time, $cache_id, $cache_path)) { $arResult = CIdeaManagment::getInstance()->Idea()->GetStatusList(); if ($arCurBlog = CBlog::GetByUrl($arParams["BLOG_URL"])) { $dbPosts = CBlogPost::GetList(array(), array("BLOG_ID" => $arCurBlog["ID"], "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH), false, false, array("ID", "UF_STATUS")); while ($arPost = $dbPosts->Fetch()) { $arResult[intval($arPost["UF_STATUS"])]["CNT"]++; } } $obCache->EndDataCache($arResult); } else { $arResult = $obCache->GetVars(); } $this->IncludeComponentTemplate();
$arParams["USE_COMMENTS"] = $arParams["USE_COMMENTS"] == "N" ? "N" : "Y"; if ($arParams["USE_COMMENTS"] == "Y" && $arParams["COMMENTS_TYPE"] == "FORUM" && !$arParams["FORUM_ID"]) { $arParams["USE_COMMENTS"] = "N"; $arParams["SHOW_COMMENTS"] = "N"; } if ($arParams["USE_COMMENTS"] == "Y") { $arParams["COMMENTS_PERM_VIEW"] = "Y"; $arParams["COMMENTS_PERM_ADD"] = "Y"; if ($arParams["COMMENTS_TYPE"] == "FORUM" && CModule::IncludeModule("forum")) { $forumPerm = ForumCurrUserPermissions($arParams["FORUM_ID"]); $arParams["COMMENTS_PERM_VIEW"] = $forumPerm >= "E" ? "Y" : "N"; $arParams["COMMENTS_PERM_ADD"] = $forumPerm >= "I" ? "Y" : "N"; } elseif (CModule::IncludeModule("blog")) { $arBlog = CBlog::GetByUrl($arParams["BLOG_URL"]); if (IntVal($arBlog["ID"]) > 0) { $blogComPerm = CBlog::GetBlogUserCommentPerms(IntVal($arBlog["ID"]), $USER->GetId()); $arParams["COMMENTS_PERM_VIEW"] = $blogComPerm >= "I" ? "Y" : "N"; $arParams["COMMENTS_PERM_ADD"] = $blogComPerm >= "P" ? "Y" : "N"; } } if ($arParams["COMMENTS_PERM_VIEW"] == "N") { $arParams["USE_COMMENTS"] = "N"; $arParams["SHOW_COMMENTS"] = "N"; } } $arParams["SHOW_LOGIN"] = $arParams["SHOW_LOGIN"] == "N" ? "N" : "Y"; if (strlen($arParams["NAME_TEMPLATE"]) <= 0) { $arParams["NAME_TEMPLATE"] = CSite::GetNameFormat(); } //if (strlen($arParams["PATH_TO_USER"]) <= 0) // $arParams["PATH_TO_USER"] = '******';
function GetList($arOrder = Array("ID" => "DESC"), $arFilter = Array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array()) { global $DB, $USER_FIELD_MANAGER, $USER; $obUserFieldsSql = new CUserTypeSQL; $obUserFieldsSql->SetEntity("BLOG_POST", "P.ID"); $obUserFieldsSql->SetSelect($arSelectFields); $obUserFieldsSql->SetFilter($arFilter); $obUserFieldsSql->SetOrder($arOrder); if (isset($arFilter["DATE_PUBLISH_DAY"]) && isset($arFilter["DATE_PUBLISH_MONTH"]) && isset($arFilter["DATE_PUBLISH_YEAR"])) { if (strlen($arFilter["DATE_PUBLISH_YEAR"]) == 2) $arFilter["DATE_PUBLISH_YEAR"] = "20".$arFilter["DATE_PUBLISH_YEAR"]; $date1 = mktime(0, 0, 0, $arFilter["DATE_PUBLISH_MONTH"], $arFilter["DATE_PUBLISH_DAY"], $arFilter["DATE_PUBLISH_YEAR"]); $date2 = mktime(0, 0, 0, $arFilter["DATE_PUBLISH_MONTH"], $arFilter["DATE_PUBLISH_DAY"] + 1, $arFilter["DATE_PUBLISH_YEAR"]); $arFilter[">=DATE_PUBLISH"] = ConvertTimeStamp($date1, "SHORT", SITE_ID); $arFilter["<DATE_PUBLISH"] = ConvertTimeStamp($date2, "SHORT", SITE_ID); unset($arFilter["DATE_PUBLISH_DAY"]); unset($arFilter["DATE_PUBLISH_MONTH"]); unset($arFilter["DATE_PUBLISH_YEAR"]); } elseif (isset($arFilter["DATE_PUBLISH_MONTH"]) && isset($arFilter["DATE_PUBLISH_YEAR"])) { if (strlen($arFilter["DATE_PUBLISH_YEAR"]) == 2) $arFilter["DATE_PUBLISH_YEAR"] = "20".$arFilter["DATE_PUBLISH_YEAR"]; $date1 = mktime(0, 0, 0, $arFilter["DATE_PUBLISH_MONTH"], 1, $arFilter["DATE_PUBLISH_YEAR"]); $date2 = mktime(0, 0, 0, $arFilter["DATE_PUBLISH_MONTH"] + 1, 1, $arFilter["DATE_PUBLISH_YEAR"]); $arFilter[">=DATE_PUBLISH"] = ConvertTimeStamp($date1, "SHORT", SITE_ID); $arFilter["<DATE_PUBLISH"] = ConvertTimeStamp($date2, "SHORT", SITE_ID); unset($arFilter["DATE_PUBLISH_MONTH"]); unset($arFilter["DATE_PUBLISH_YEAR"]); } elseif (isset($arFilter["DATE_PUBLISH_YEAR"])) { if (strlen($arFilter["DATE_PUBLISH_YEAR"]) == 2) $arFilter["DATE_PUBLISH_YEAR"] = "20".$arFilter["DATE_PUBLISH_YEAR"]; $date1 = mktime(0, 0, 0, 1, 1, $arFilter["DATE_PUBLISH_YEAR"]); $date2 = mktime(0, 0, 0, 1, 1, $arFilter["DATE_PUBLISH_YEAR"] + 1); $arFilter[">=DATE_PUBLISH"] = ConvertTimeStamp($date1, "SHORT", SITE_ID); $arFilter["<DATE_PUBLISH"] = ConvertTimeStamp($date2, "SHORT", SITE_ID); unset($arFilter["DATE_PUBLISH_YEAR"]); } if (count($arSelectFields) <= 0) $arSelectFields = array("ID", "TITLE", "BLOG_ID", "AUTHOR_ID", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DATE_CREATE", "DATE_PUBLISH", "KEYWORDS", "PUBLISH_STATUS", "ATRIBUTE", "ATTACH_IMG", "ENABLE_TRACKBACK", "ENABLE_COMMENTS", "VIEWS", "NUM_COMMENTS", "CODE", "MICRO"); if(in_array("*", $arSelectFields)) $arSelectFields = array("ID", "TITLE", "BLOG_ID", "AUTHOR_ID", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DATE_CREATE", "DATE_PUBLISH", "KEYWORDS", "PUBLISH_STATUS", "ATRIBUTE", "ATTACH_IMG", "ENABLE_TRACKBACK", "ENABLE_COMMENTS", "NUM_COMMENTS", "NUM_TRACKBACKS", "VIEWS", "FAVORITE_SORT", "CATEGORY_ID", "PERMS", "AUTHOR_LOGIN", "AUTHOR_NAME", "AUTHOR_LAST_NAME", "AUTHOR_SECOND_NAME", "AUTHOR_EMAIL", "AUTHOR", "BLOG_USER_ALIAS", "BLOG_USER_AVATAR", "BLOG_URL", "BLOG_OWNER_ID", "BLOG_ACTIVE", "BLOG_GROUP_ID", "BLOG_GROUP_SITE_ID", "BLOG_SOCNET_GROUP_ID", "BLOG_ENABLE_RSS", "BLOG_USE_SOCNET", "CODE", "MICRO"); if((array_key_exists("BLOG_GROUP_SITE_ID", $arFilter) || in_array("BLOG_GROUP_SITE_ID", $arSelectFields)) && !in_array("BLOG_URL", $arSelectFields)) $arSelectFields[] = "BLOG_URL"; // FIELDS --> $arFields = array( "ID" => array("FIELD" => "P.ID", "TYPE" => "int"), "TITLE" => array("FIELD" => "P.TITLE", "TYPE" => "string"), "CODE" => array("FIELD" => "P.CODE", "TYPE" => "string"), "BLOG_ID" => array("FIELD" => "P.BLOG_ID", "TYPE" => "int"), "AUTHOR_ID" => array("FIELD" => "P.AUTHOR_ID", "TYPE" => "int"), "PREVIEW_TEXT" => array("FIELD" => "P.PREVIEW_TEXT", "TYPE" => "string"), "PREVIEW_TEXT_TYPE" => array("FIELD" => "P.PREVIEW_TEXT_TYPE", "TYPE" => "string"), "DETAIL_TEXT" => array("FIELD" => "P.DETAIL_TEXT", "TYPE" => "string"), "DETAIL_TEXT_TYPE" => array("FIELD" => "P.DETAIL_TEXT_TYPE", "TYPE" => "string"), "DATE_CREATE" => array("FIELD" => "P.DATE_CREATE", "TYPE" => "datetime"), "DATE_PUBLISH" => array("FIELD" => "P.DATE_PUBLISH", "TYPE" => "datetime"), "KEYWORDS" => array("FIELD" => "P.KEYWORDS", "TYPE" => "string"), "PUBLISH_STATUS" => array("FIELD" => "P.PUBLISH_STATUS", "TYPE" => "string"), "ATRIBUTE" => array("FIELD" => "P.ATRIBUTE", "TYPE" => "string"), "ATTACH_IMG" => array("FIELD" => "P.ATTACH_IMG", "TYPE" => "int"), "ENABLE_TRACKBACK" => array("FIELD" => "P.ENABLE_TRACKBACK", "TYPE" => "string"), "ENABLE_COMMENTS" => array("FIELD" => "P.ENABLE_COMMENTS", "TYPE" => "string"), "NUM_COMMENTS" => array("FIELD" => "P.NUM_COMMENTS", "TYPE" => "int"), "NUM_TRACKBACKS" => array("FIELD" => "P.NUM_TRACKBACKS", "TYPE" => "int"), "VIEWS" => array("FIELD" => "P.VIEWS", "TYPE" => "int"), "FAVORITE_SORT" => array("FIELD" => "P.FAVORITE_SORT", "TYPE" => "int"), "CATEGORY_ID" => array("FIELD" => "P.CATEGORY_ID", "TYPE" => "string"), "PATH" => array("FIELD" => "P.PATH", "TYPE" => "string"), "MICRO" => array("FIELD" => "P.MICRO", "TYPE" => "string"), "HAS_IMAGES" => array("FIELD" => "P.HAS_IMAGES", "TYPE" => "string"), "HAS_PROPS" => array("FIELD" => "P.HAS_PROPS", "TYPE" => "string"), "HAS_TAGS" => array("FIELD" => "P.HAS_TAGS", "TYPE" => "string"), "HAS_COMMENT_IMAGES" => array("FIELD" => "P.HAS_COMMENT_IMAGES", "TYPE" => "string"), "HAS_SOCNET_ALL" => array("FIELD" => "P.HAS_SOCNET_ALL", "TYPE" => "string"), "SEO_TITLE" => array("FIELD" => "P.SEO_TITLE", "TYPE" => "string"), "SEO_TAGS" => array("FIELD" => "P.SEO_TAGS", "TYPE" => "string"), "SEO_DESCRIPTION" => array("FIELD" => "P.SEO_DESCRIPTION", "TYPE" => "string"), "PERMS" => array(), "AUTHOR_LOGIN" => array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (P.AUTHOR_ID = U.ID)"), "AUTHOR_NAME" => array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (P.AUTHOR_ID = U.ID)"), "AUTHOR_LAST_NAME" => array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (P.AUTHOR_ID = U.ID)"), "AUTHOR_SECOND_NAME" => array("FIELD" => "U.SECOND_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (P.AUTHOR_ID = U.ID)"), "AUTHOR_EMAIL" => array("FIELD" => "U.EMAIL", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (P.AUTHOR_ID = U.ID)"), "AUTHOR" => array("FIELD" => "U.LOGIN, U.NAME, U.LAST_NAME, U.EMAIL, U.ID", "WHERE_ONLY" => "Y", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (P.AUTHOR_ID = U.ID)"), "CATEGORY_NAME" => array("FIELD" => "PCN.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_blog_category PCN ON (P.CATEGORY_ID = PCN.ID)"), "CATEGORY_ID_F" => array("FIELD" => "PC.CATEGORY_ID", "TYPE" => "int", "FROM" => "LEFT JOIN b_blog_post_category PC ON (PC.POST_ID = P.ID)"), "BLOG_USER_ALIAS" => array("FIELD" => "BU.ALIAS", "TYPE" => "string", "FROM" => "LEFT JOIN b_blog_user BU ON (P.AUTHOR_ID = BU.USER_ID)"), "BLOG_USER_AVATAR" => array("FIELD" => "BU.AVATAR", "TYPE" => "int", "FROM" => "LEFT JOIN b_blog_user BU ON (P.AUTHOR_ID = BU.USER_ID)"), "BLOG_URL" => array("FIELD" => "B.URL", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (P.BLOG_ID = B.ID)"), "BLOG_OWNER_ID" => array("FIELD" => "B.OWNER_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (P.BLOG_ID = B.ID)"), "BLOG_ACTIVE" => array("FIELD" => "B.ACTIVE", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (P.BLOG_ID = B.ID)"), "BLOG_GROUP_ID" => array("FIELD" => "B.GROUP_ID", "TYPE" => "int", "FROM" => "INNER JOIN b_blog B ON (P.BLOG_ID = B.ID)"), "BLOG_ENABLE_RSS" => array("FIELD" => "B.ENABLE_RSS", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (P.BLOG_ID = B.ID)"), "BLOG_USE_SOCNET" => array("FIELD" => "B.USE_SOCNET", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (P.BLOG_ID = B.ID)"), "BLOG_NAME" => array("FIELD" => "B.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (P.BLOG_ID = B.ID)"), "BLOG_GROUP_SITE_ID" => array("FIELD" => "BG.SITE_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_blog_group BG ON (B.GROUP_ID = BG.ID)"), "SOCNET_BLOG_READ" => array("FIELD" => "BSR.BLOG_ID", "TYPE" => "int", "FROM" => "INNER JOIN b_blog_socnet BSR ON (P.BLOG_ID = BSR.BLOG_ID)"), "BLOG_SOCNET_GROUP_ID" => array("FIELD" => "B.SOCNET_GROUP_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (P.BLOG_ID = B.ID)"), "SOCNET_GROUP_ID" => array("FIELD" => "SR1.ENTITY_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_blog_socnet_rights SR1 ON (P.ID = SR1.POST_ID AND SR1.ENTITY_TYPE = 'SG')"), "SOCNET_SITE_ID" => array("FIELD" => "SLS.SITE_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_log BSL ON (BSL.EVENT_ID in ('blog_post', 'blog_post_micro', 'blog_post_important') AND BSL.SOURCE_ID = P.ID) ". "LEFT JOIN b_sonet_log_site SLS ON BSL.ID = SLS.LOG_ID"), "COMMENT_ID" => array("FIELD" => "PC.ID", "TYPE" => "string", "FROM" => "INNER JOIN b_blog_comment PC ON (P.ID = PC.POST_ID)"), ); foreach ($arFilter as $key => $val) { $key_res = CBlog::GetFilterOperation($key); $k = $key_res["FIELD"]; if (strpos($k, "POST_PARAM_") === 0) { $user_id = 0; $ii++; $pref = "BPP".$ii; if (is_array($val)) { $user_id = (isset($val["USER_ID"]) ? intval($val["USER_ID"]) : 0); $arFilter[$key] = $val["VALUE"]; } $arSelectFields[] = $k; $arFields[$k] = array("FIELD" => $pref.".VALUE", "TYPE" => "string", "FROM" => "LEFT JOIN b_blog_post_param ".$pref." ON (P.ID = ".$pref.".POST_ID AND ".$pref.".USER_ID". ($user_id <= 0 ? " IS NULL" : "=".$user_id)." AND ".$pref.".NAME='".$GLOBALS["DB"]->ForSql(substr($k, 11), 50)."')"); } } if(isset($arFilter["GROUP_CHECK_PERMS"])) { if(is_array($arFilter["GROUP_CHECK_PERMS"])) { foreach($arFilter["GROUP_CHECK_PERMS"] as $val) { if(IntVal($val)>0) { $arFields["POST_PERM_".$val] = Array( "FIELD" => "BUGP".$val.".PERMS", "TYPE" => "string", "FROM" => "LEFT JOIN b_blog_user_group_perms BUGP".$val." ON (P.BLOG_ID = BUGP".$val.".BLOG_ID AND P.ID = BUGP".$val.".POST_ID AND BUGP".$val.".USER_GROUP_ID = ".$val." AND BUGP".$val.".PERMS_TYPE = '".BLOG_PERMS_POST."')" ); $arSelectFields[] = "POST_PERM_".$val; } } } else { if(IntVal($arFilter["GROUP_CHECK_PERMS"])>0) { $arFields["POST_PERM_".$arFilter["GROUP_CHECK_PERMS"]] = Array( "FIELD" => "BUGP.PERMS", "TYPE" => "string", "FROM" => "LEFT JOIN b_blog_user_group_perms BUGP ON (P.BLOG_ID = BUGP.BLOG_ID AND P.ID = BUGP.POST_ID AND BUGP.USER_GROUP_ID = ".$arFilter["GROUP_CHECK_PERMS"]." AND BUGP.PERMS_TYPE = '".BLOG_PERMS_POST."')" ); $arSelectFields[] = "POST_PERM_".$arFilter["GROUP_CHECK_PERMS"]; } } unset($arFilter["GROUP_CHECK_PERMS"]); } // rating variable if ( in_array("RATING_TOTAL_VALUE", $arSelectFields) || in_array("RATING_TOTAL_VOTES", $arSelectFields) || in_array("RATING_TOTAL_POSITIVE_VOTES", $arSelectFields) || in_array("RATING_TOTAL_NEGATIVE_VOTES", $arSelectFields) || array_key_exists("RATING_TOTAL_VALUE", $arOrder) || array_key_exists("RATING_TOTAL_VOTES", $arOrder) || array_key_exists("RATING_TOTAL_POSITIVE_VOTES", $arOrder) || array_key_exists("RATING_TOTAL_NEGATIVE_VOTES", $arOrder) ) { $arSelectFields[] = 'RATING_TOTAL_VALUE'; $arSelectFields[] = 'RATING_TOTAL_VOTES'; $arSelectFields[] = 'RATING_TOTAL_POSITIVE_VOTES'; $arSelectFields[] = 'RATING_TOTAL_NEGATIVE_VOTES'; $arFields["RATING_TOTAL_VALUE"] = array("FIELD" => $DB->IsNull('RV.TOTAL_VALUE', '0'), "ORDER" => "RATING_TOTAL_VALUE", "TYPE" => "double", "FROM" => "LEFT JOIN b_rating_voting RV ON ( RV.ENTITY_TYPE_ID = 'BLOG_POST' AND RV.ENTITY_ID = P.ID )"); $arFields["RATING_TOTAL_VOTES"] = array("FIELD" => $DB->IsNull('RV.TOTAL_VOTES', '0'), "ORDER" => "RATING_TOTAL_VALUE", "TYPE" => "int", "FROM" => "LEFT JOIN b_rating_voting RV ON ( RV.ENTITY_TYPE_ID = 'BLOG_POST' AND RV.ENTITY_ID = P.ID )"); $arFields["RATING_TOTAL_POSITIVE_VOTES"] = array("FIELD" => $DB->IsNull('RV.TOTAL_POSITIVE_VOTES', '0'), "ORDER" => "RATING_TOTAL_POSITIVE_VOTES", "TYPE" => "int", "FROM" => "LEFT JOIN b_rating_voting RV ON ( RV.ENTITY_TYPE_ID = 'BLOG_POST' AND RV.ENTITY_ID = P.ID )"); $arFields["RATING_TOTAL_NEGATIVE_VOTES"] = array("FIELD" => $DB->IsNull('RV.TOTAL_NEGATIVE_VOTES', '0'), "ORDER" => "RATING_TOTAL_POSITIVE_VOTES", "TYPE" => "int", "FROM" => "LEFT JOIN b_rating_voting RV ON ( RV.ENTITY_TYPE_ID = 'BLOG_POST' AND RV.ENTITY_ID = P.ID )"); } if (in_array("RATING_USER_VOTE_VALUE", $arSelectFields)) { global $USER; if (isset($USER) && is_object($USER)) { $arSelectFields[] = 'RATING_USER_VOTE_VALUE'; $arFields["RATING_USER_VOTE_VALUE"] = Array("FIELD" => $DB->IsNull('RVV.VALUE', '0'), "ORDER" => "RATING_USER_VOTE_VALUE", "TYPE" => "double", "FROM" => "LEFT JOIN b_rating_vote RVV ON RVV.ENTITY_TYPE_ID = 'BLOG_POST' AND RVV.ENTITY_ID = P.ID AND RVV.USER_ID = ".intval($USER->GetId())); } } // <-- FIELDS $bNeedDistinct = false; $blogModulePermissions = $GLOBALS["APPLICATION"]->GetGroupRight("blog"); if ($blogModulePermissions < "W") { $user_id = 0; if(isset($USER) && is_object($USER) && $USER->IsAuthorized()) $user_id = $GLOBALS["USER"]->GetID(); if(!CBlog::IsBlogOwner($arFilter["BLOG_ID"], $user_id)) { $arUserGroups = CBlogUser::GetUserGroups($user_id, IntVal($arFilter["BLOG_ID"]), "Y", BLOG_BY_USER_ID); $strUserGroups = "0"; foreach($arUserGroups as $v) $strUserGroups .= ",".IntVal($v); $arFields["PERMS"] = array("FIELD" => "UGP.PERMS", "TYPE" => "string", "FROM" => "INNER JOIN b_blog_user_group_perms UGP ON (P.ID = UGP.POST_ID AND P.BLOG_ID = UGP.BLOG_ID AND UGP.USER_GROUP_ID IN (".$strUserGroups.") AND UGP.PERMS_TYPE = '".BLOG_PERMS_POST."')"); $bNeedDistinct = true; } else $arFields["PERMS"] = array("FIELD" => "'W'", "TYPE" => "string"); } else { $arFields["PERMS"] = array("FIELD" => "'W'", "TYPE" => "string"); } $arSqls = CBlog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql); if(array_key_exists("SOCNET_GROUP_ID", $arFilter) || array_key_exists("SOCNET_GROUP_ID", $arFilter)) $bNeedDistinct = true; if(array_key_exists("FOR_USER", $arFilter)) { if(IntVal($arFilter["FOR_USER"]) > 0) //authorized user { if($arFilter["FOR_USER_TYPE"] == "ALL") { $arSqls["FROM"] .= " INNER JOIN b_blog_socnet_rights SR ON (P.ID = SR.POST_ID) ". " LEFT JOIN b_user_access UA ON (UA.ACCESS_CODE = SR.ENTITY AND UA.USER_ID = ".IntVal($arFilter["FOR_USER"]).") "; if(strlen($arSqls["WHERE"]) > 0) $arSqls["WHERE"] .= " AND "; $arSqls["WHERE"] .= " (SR.ENTITY_TYPE != 'SG') AND ". " (SR.ENTITY = 'U".IntVal($arFilter["FOR_USER"])."' OR (UA.USER_ID is not NULL AND SR.ENTITY_TYPE = 'DR') OR P.AUTHOR_ID = '".IntVal($arFilter["FOR_USER"])."')"; } elseif($arFilter["FOR_USER_TYPE"] == "SELF") { $arSqls["FROM"] .= " INNER JOIN b_blog_socnet_rights SR ON (P.ID = SR.POST_ID) ". " LEFT JOIN b_user_access UA ON (UA.ACCESS_CODE = SR.ENTITY AND UA.USER_ID = ".IntVal($arFilter["FOR_USER"]).") "; if(strlen($arSqls["WHERE"]) > 0) $arSqls["WHERE"] .= " AND "; $arSqls["WHERE"] .= " (SR.ENTITY = 'U".IntVal($arFilter["FOR_USER"])."' OR (UA.USER_ID is not NULL AND SR.ENTITY_TYPE = 'DR')) "; } elseif($arFilter["FOR_USER_TYPE"] == "DR") { $arSqls["FROM"] .= " INNER JOIN b_blog_socnet_rights SR ON (P.ID = SR.POST_ID) " . " LEFT JOIN b_user_access UA ON (UA.ACCESS_CODE = SR.ENTITY AND UA.USER_ID = ".IntVal($arFilter["FOR_USER"]).") "; if(strlen($arSqls["WHERE"]) > 0) $arSqls["WHERE"] .= " AND "; $arSqls["WHERE"] .= " (UA.USER_ID is not NULL AND SR.ENTITY_TYPE = 'DR') "; } else { $arSqls["FROM"] .= " INNER JOIN b_blog_socnet_rights SR ON (P.ID = SR.POST_ID) " . " LEFT JOIN b_user_access UA ON (UA.ACCESS_CODE = SR.ENTITY AND UA.USER_ID = ".IntVal($arFilter["FOR_USER"]).") "; if(strlen($arSqls["WHERE"]) > 0) $arSqls["WHERE"] .= " AND "; $arSqls["WHERE"] .= " (UA.USER_ID is not NULL OR SR.ENTITY = 'AU') "; } } else { $arSqls["FROM"] .= " INNER JOIN b_blog_socnet_rights SR ON (P.ID = SR.POST_ID) ". " INNER JOIN b_user_access UA ON (UA.ACCESS_CODE = SR.ENTITY AND UA.USER_ID = 0)"; } $bNeedDistinct = true; } if($bNeedDistinct) $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "DISTINCT", $arSqls["SELECT"]); else $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]); $r = $obUserFieldsSql->GetFilter(); if(strlen($r)>0) $strSqlUFFilter = " (".$r.") "; if (is_array($arGroupBy) && count($arGroupBy)==0) { $strSql = "SELECT ".$arSqls["SELECT"]." ". $obUserFieldsSql->GetSelect()." ". "FROM b_blog_post P ". " ".$arSqls["FROM"]." ". $obUserFieldsSql->GetJoin("P.ID")." "; if (strlen($arSqls["WHERE"]) > 0) $strSql .= "WHERE ".$arSqls["WHERE"]." "; if(strlen($arSqls["WHERE"]) > 0 && strlen($strSqlUFFilter) > 0) $strSql .= " AND ".$strSqlUFFilter." "; elseif(strlen($arSqls["WHERE"]) <= 0 && strlen($strSqlUFFilter) > 0) $strSql .= " WHERE ".$strSqlUFFilter." "; if (strlen($arSqls["GROUPBY"]) > 0) $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." "; //echo "!1!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); if ($arRes = $dbRes->Fetch()) return $arRes["CNT"]; else return False; } $strSql = "SELECT ".$arSqls["SELECT"]." ". $obUserFieldsSql->GetSelect()." ". "FROM b_blog_post P ". " ".$arSqls["FROM"]." ". $obUserFieldsSql->GetJoin("P.ID")." "; if (strlen($arSqls["WHERE"]) > 0) $strSql .= "WHERE ".$arSqls["WHERE"]." "; if(strlen($arSqls["WHERE"]) > 0 && strlen($strSqlUFFilter) > 0) $strSql .= " AND ".$strSqlUFFilter." "; elseif(strlen($arSqls["WHERE"]) <= 0 && strlen($strSqlUFFilter) > 0) $strSql .= " WHERE ".$strSqlUFFilter." "; if (strlen($arSqls["GROUPBY"]) > 0) $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." "; if (strlen($arSqls["ORDERBY"]) > 0) $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." "; if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"])<=0) { $strSql_tmp = "SELECT COUNT(DISTINCT P.ID) as CNT ". "FROM b_blog_post P ". " ".$arSqls["FROM"]." ". $obUserFieldsSql->GetJoin("P.ID")." "; if (strlen($arSqls["WHERE"]) > 0) $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." "; if(strlen($arSqls["WHERE"]) > 0 && strlen($strSqlUFFilter) > 0) $strSql_tmp .= " AND ".$strSqlUFFilter." "; elseif(strlen($arSqls["WHERE"]) <= 0 && strlen($strSqlUFFilter) > 0) $strSql_tmp .= " WHERE ".$strSqlUFFilter." "; if (strlen($arSqls["GROUPBY"]) > 0) $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." "; //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>"; $dbRes = $DB->Query($strSql_tmp, false, "File: ".__FILE__."<br>Line: ".__LINE__); $cnt = 0; if (strlen($arSqls["GROUPBY"]) <= 0) { if ($arRes = $dbRes->Fetch()) $cnt = $arRes["CNT"]; } else { $cnt = $dbRes->SelectedRowsCount(); } $dbRes = new CDBResult(); //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes->SetUserFields($USER_FIELD_MANAGER->GetUserFields("BLOG_POST")); $dbRes->NavQuery($strSql, $cnt, $arNavStartParams); } else { if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0) $strSql .= "LIMIT ".IntVal($arNavStartParams["nTopCount"]); //echo "!3!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); $dbRes->SetUserFields($USER_FIELD_MANAGER->GetUserFields("BLOG_POST")); } //echo "!4!=".htmlspecialcharsbx($strSql)."<br>"; return $dbRes; }
public static function BuildRSS($postID, $blogID, $type = "RSS2.0", $numPosts = 10, $arPathTemplate = Array()) { $blogID = IntVal($blogID); $postID = IntVal($postID); if($blogID <= 0) return false; if($postID <= 0) return false; $numPosts = IntVal($numPosts); $type = strtolower(preg_replace("/[^a-zA-Z0-9.]/is", "", $type)); if ($type != "rss.92" && $type != "atom.03") $type = "rss2.0"; $rssText = False; $arBlog = CBlog::GetByID($blogID); if ($arBlog && $arBlog["ACTIVE"] == "Y" && $arBlog["ENABLE_RSS"] == "Y") { $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]); if($arGroup["SITE_ID"] == SITE_ID) { $arPost = CBlogPost::GetByID($postID); if(!empty($arPost) && $arPost["BLOG_ID"] == $arBlog["ID"] && $arPost["ENABLE_COMMENTS"] == "Y") { $now = date("r"); $nowISO = date("Y-m-d\TH:i:s").substr(date("O"), 0, 3).":".substr(date("O"), -2, 2); $serverName = ""; $charset = ""; $language = ""; $dbSite = CSite::GetList(($b = "sort"), ($o = "asc"), array("LID" => SITE_ID)); if ($arSite = $dbSite->Fetch()) { $serverName = $arSite["SERVER_NAME"]; $charset = $arSite["CHARSET"]; $language = $arSite["LANGUAGE_ID"]; } 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", ""); } if (strlen($charset) <= 0) { if (defined("SITE_CHARSET") && strlen(SITE_CHARSET) > 0) $charset = SITE_CHARSET; else $charset = "windows-1251"; } if(strlen($arPathTemplate["PATH_TO_BLOG"])>0) $blogURL = htmlspecialcharsbx("http://".$serverName.CComponentEngine::MakePathFromTemplate($arPathTemplate["PATH_TO_BLOG"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arBlog["SOCNET_GROUP_ID"]))); else $blogURL = htmlspecialcharsbx("http://".$serverName.CBlog::PreparePath($arBlog["URL"], $arGroup["SITE_ID"])); if(strlen($arPathTemplate["PATH_TO_POST"])>0) $url = htmlspecialcharsbx("http://".$serverName.CComponentEngine::MakePathFromTemplate($arPathTemplate["PATH_TO_POST"], array("blog" => $arBlog["URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arPathTemplate["ALLOW_POST_CODE"]), "user_id" => $arBlog["OWNER_ID"], "group_id" => $arBlog["SOCNET_GROUP_ID"]))); else $url = htmlspecialcharsbx("http://".$serverName.CBlogPost::PreparePath($arBlog["URL"], $arPost["ID"], $arGroup["SITE_ID"])); $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]); $arUser = $dbUser->Fetch(); if($arPathTemplate["USE_SOCNET"] == "Y") { $blogName = GetMessage("BLG_GCM_RSS_TITLE_SOCNET", Array("#AUTHOR_NAME#" => htmlspecialcharsEx($arUser["NAME"]." ".$arUser["LAST_NAME"]), "#POST_TITLE#" => htmlspecialcharsEx($arPost["TITLE"]))); } else { $blogName = GetMessage("BLG_GCM_RSS_TITLE", Array("#BLOG_NAME#" => htmlspecialcharsEx($arBlog["NAME"]), "#POST_TITLE#" => htmlspecialcharsEx($arPost["TITLE"]))); } $rssText = ""; if ($type == "rss.92") { $rssText .= "<"."?xml version=\"1.0\" encoding=\"".$charset."\"?".">\n\n"; $rssText .= "<rss version=\".92\">\n"; $rssText .= " <channel>\n"; $rssText .= " <title>".$blogName."</title>\n"; $rssText .= " <description>".$blogName."</description>\n"; $rssText .= " <link>".$url."</link>\n"; $rssText .= " <language>".$language."</language>\n"; $rssText .= " <docs>http://backend.userland.com/rss092</docs>\n"; $rssText .= "\n"; } elseif ($type == "rss2.0") { $rssText .= "<"."?xml version=\"1.0\" encoding=\"".$charset."\"?".">\n\n"; $rssText .= "<rss version=\"2.0\">\n"; $rssText .= " <channel>\n"; $rssText .= " <title>".$blogName."</title>\n"; $rssText .= " <description>".$blogName."</description>\n"; //$rssText .= " <guid>".$url."</guid>\n"; $rssText .= " <link>".$url."</link>\n"; $rssText .= " <language>".$language."</language>\n"; $rssText .= " <docs>http://backend.userland.com/rss2</docs>\n"; $rssText .= " <pubDate>".$now."</pubDate>\n"; $rssText .= "\n"; } elseif ($type == "atom.03") { $atomID = "tag:".htmlspecialcharsbx($serverName).",".date("Y-m-d").":".$postID; $rssText .= "<"."?xml version=\"1.0\" encoding=\"".$charset."\"?".">\n\n"; $rssText .= "<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\" xml:lang=\"".$language."\">\n"; $rssText .= " <title>".$blogName."</title>\n"; $rssText .= " <tagline>".$url."</tagline>\n"; $rssText .= " <id>".$atomID."</id>\n"; $rssText .= " <link rel=\"alternate\" type=\"text/html\" href=\"".$url."\" />\n"; $rssText .= " <modified>".$nowISO."</modified>\n"; $BlogUser = CBlogUser::GetByID($arPost["AUTHOR_ID"], BLOG_BY_USER_ID); $authorP = htmlspecialcharsex(CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"], $arUser["SECOND_NAME"])); if(strLen($arPathTemplate["PATH_TO_USER"])>0) $authorURLP = htmlspecialcharsbx("http://".$serverName.CComponentEngine::MakePathFromTemplate($arPathTemplate["PATH_TO_USER"], array("user_id"=>$arPost["AUTHOR_ID"]))); else $authorURLP = "http://".$serverName.CBlogUser::PreparePath($arPost["AUTHOR_ID"], $arGroup["SITE_ID"]); $rssText .= " <author>\n"; $rssText .= " <name>".$authorP."</name>\n"; $rssText .= " <uri>".$authorURLP."</uri>\n"; $rssText .= " </author>\n"; $rssText .= "\n"; } $user_id = $GLOBALS["USER"]->GetID(); if($arPathTemplate["USE_SOCNET"] == "Y") { $postPerm = CBlogPost::GetSocNetPostPerms($postID); if($postPerm > BLOG_PERMS_DENY) $postPerm = CBlogComment::GetSocNetUserPerms($postID, $arPost["AUTHOR_ID"]); } else $postPerm = CBlogPost::GetBlogUserCommentPerms($postID, IntVal($user_id)); if($postPerm >= BLOG_PERMS_READ) { $parser = new blogTextParser(); $arParserParams = Array( "imageWidth" => $arPathTemplate["IMAGE_MAX_WIDTH"], "imageHeight" => $arPathTemplate["IMAGE_MAX_HEIGHT"], ); CTimeZone::Disable(); $dbComments = CBlogComment::GetList( array("DATE_CREATE" => "DESC"), array( //"BLOG_ID" => $blogID, "POST_ID" => $postID, "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, ), false, array("nTopCount" => $numPosts), array("ID", "TITLE", "DATE_CREATE", "POST_TEXT", "AUTHOR_EMAIL", "AUTHOR_ID", "AUTHOR_NAME", "USER_LOGIN", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_NAME", "BLOG_USER_ALIAS") ); CTimeZone::Enable(); $arImages = Array(); $dbImages = CBlogImage::GetList(Array(), Array("BLOG_ID" => $blogID, "POST_ID" => $postID, "IS_COMMENT" => "Y", "!COMMENT_ID" => false)); while($arI = $dbImages->Fetch()) $arImages[$arI["ID"]] = $arI["FILE_ID"]; while ($arComments = $dbComments->Fetch()) { $arDate = ParseDateTime($arComments["DATE_CREATE"], CSite::GetDateFormat("FULL", $arGroup["SITE_ID"])); $date = date("r", mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); if(strpos($url, "?") !== false) $url1 = $url."&"; else $url1 = $url."?"; $url1 .= "commentId=".$arComments["ID"]."#".$arComments["ID"]; $authorURL = ""; if(IntVal($arComments["AUTHOR_ID"]) > 0) { $author = CBlogUser::GetUserName($arComments["BLOG_USER_ALIAS"], $arComments["USER_NAME"], $arComments["USER_LAST_NAME"], $arComments["USER_LOGIN"], $arComments["USER_SECOND_NAME"]); if(strLen($arPathTemplate["PATH_TO_USER"])>0) $authorURL = htmlspecialcharsbx("http://".$serverName.CComponentEngine::MakePathFromTemplate($arPathTemplate["PATH_TO_USER"], array("user_id"=>$arComments["AUTHOR_ID"]))); else $authorURL = htmlspecialcharsbx("http://".$serverName.CBlogUser::PreparePath($arComments["AUTHOR_ID"], $arGroup["SITE_ID"])); } else $author = $arComments["AUTHOR_NAME"]; $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "TABLE" => "Y", "CUT_ANCHOR" => "N"); if($arPathTemplate["NO_URL_IN_COMMENTS"] == "L" || (IntVal($arComments["AUTHOR_ID"]) <= 0 && $arPathTemplate["NO_URL_IN_COMMENTS"] == "A")) $arAllow["CUT_ANCHOR"] = "Y"; if($arPathTemplate["NO_URL_IN_COMMENTS_AUTHORITY_CHECK"] == "Y" && $arAllow["CUT_ANCHOR"] != "Y" && IntVal($arComments["AUTHOR_ID"]) > 0) { $authorityRatingId = CRatings::GetAuthorityRating(); $arRatingResult = CRatings::GetRatingResult($authorityRatingId, $arComments["AUTHOR_ID"]); if($arRatingResult["CURRENT_VALUE"] < $arPathTemplate["NO_URL_IN_COMMENTS_AUTHORITY"]) $arAllow["CUT_ANCHOR"] = "Y"; } $text = $parser->convert_to_rss($arComments["POST_TEXT"], $arImages, $arAllow, false, $arParserParams); $title = GetMessage("BLG_GCM_COMMENT_TITLE", Array("#POST_TITLE#" => htmlspecialcharsEx($arPost["TITLE"]), "#COMMENT_AUTHOR#" => htmlspecialcharsEx($author))); /*$title = str_replace( array("&", "<", ">", "\""), array("&", "<", ">", """), $title); */ //$text1 = HTMLToTxt($text, "", Array("\ "), 60); $text = "<![CDATA[".$text."]]>"; if ($type == "rss.92") { $rssText .= " <item>\n"; $rssText .= " <title>".$title."</title>\n"; $rssText .= " <description>".$text."</description>\n"; $rssText .= " <link>".$url1."</link>\n"; $rssText .= " </item>\n"; $rssText .= "\n"; } elseif ($type == "rss2.0") { $rssText .= " <item>\n"; $rssText .= " <title>".$title."</title>\n"; $rssText .= " <description>".$text."</description>\n"; $rssText .= " <link>".$url1."</link>\n"; $rssText .= " <guid>".$url1."</guid>\n"; $rssText .= " <pubDate>".$date."</pubDate>\n"; $rssText .= " </item>\n"; $rssText .= "\n"; } elseif ($type == "atom.03") { $atomID = "tag:".htmlspecialcharsbx($serverName).":".$arBlog["URL"]."/".$arPost["ID"]; $timeISO = mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]); $dateISO = date("Y-m-d\TH:i:s", $timeISO).substr(date("O", $timeISO), 0, 3).":".substr(date("O", $timeISO), -2, 2); $rssText .= "<entry>\n"; $rssText .= " <title type=\"text/html\">".$title."</title>\n"; $rssText .= " <link rel=\"alternate\" type=\"text/html\" href=\"".$url1."\"/>\n"; $rssText .= " <issued>".$dateISO."</issued>\n"; $rssText .= " <modified>".$nowISO."</modified>\n"; $rssText .= " <id>".$atomID."</id>\n"; $rssText .= " <content type=\"text/html\" mode=\"escaped\" xml:lang=\"".$language."\" xml:base=\"".$blogURL."\">\n"; $rssText .= $text."\n"; $rssText .= " </content>\n"; $rssText .= " <author>\n"; $rssText .= " <name>".htmlspecialcharsex($author)."</name>\n"; if(strlen($authorURL) > 0) $rssText .= " <uri>".$authorURL."</uri>\n"; $rssText .= " </author>\n"; $rssText .= "</entry>\n"; $rssText .= "\n"; } } } if ($type == "rss.92") $rssText .= " </channel>\n</rss>"; elseif ($type == "rss2.0") $rssText .= " </channel>\n</rss>"; elseif ($type == "atom.03") $rssText .= "\n\n</feed>"; } } } return $rssText; }
public static function GetList($arOrder = Array("ID" => "DESC"), $arFilter = Array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array()) { global $DB, $USER_FIELD_MANAGER; $obUserFieldsSql = new CUserTypeSQL; $obUserFieldsSql->SetEntity("BLOG_COMMENT", "C.ID"); $obUserFieldsSql->SetSelect($arSelectFields); $obUserFieldsSql->SetFilter($arFilter); $obUserFieldsSql->SetOrder($arOrder); if (count($arSelectFields) <= 0) $arSelectFields = array("ID", "BLOG_ID", "POST_ID", "PARENT_ID", "AUTHOR_ID", "AUTHOR_NAME", "AUTHOR_EMAIL", "AUTHOR_IP", "AUTHOR_IP1", "TITLE", "POST_TEXT"); if(in_array("*", $arSelectFields)) $arSelectFields = array("ID", "BLOG_ID", "POST_ID", "PARENT_ID", "AUTHOR_ID", "AUTHOR_NAME", "AUTHOR_EMAIL", "AUTHOR_IP", "AUTHOR_IP1", "TITLE", "POST_TEXT", "DATE_CREATE", "USER_LOGIN", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_EMAIL", "USER", "BLOG_USER_ALIAS", "BLOG_USER_AVATAR", "BLOG_URL", "BLOG_OWNER_ID", "BLOG_SOCNET_GROUP_ID", "BLOG_ACTIVE", "BLOG_GROUP_ID", "BLOG_GROUP_SITE_ID", "BLOG_USE_SOCNET", "PERMS", "PUBLISH_STATUS"); if((array_key_exists("BLOG_GROUP_SITE_ID", $arFilter) || in_array("BLOG_GROUP_SITE_ID", $arSelectFields)) && !in_array("BLOG_URL", $arSelectFields)) $arSelectFields[] = "BLOG_URL"; // FIELDS --> $arFields = array( "ID" => array("FIELD" => "C.ID", "TYPE" => "int"), "BLOG_ID" => array("FIELD" => "C.BLOG_ID", "TYPE" => "int"), "POST_ID" => array("FIELD" => "C.POST_ID", "TYPE" => "int"), "PARENT_ID" => array("FIELD" => "C.PARENT_ID", "TYPE" => "int"), "AUTHOR_ID" => array("FIELD" => "C.AUTHOR_ID", "TYPE" => "int"), "AUTHOR_NAME" => array("FIELD" => "C.AUTHOR_NAME", "TYPE" => "string"), "AUTHOR_EMAIL" => array("FIELD" => "C.AUTHOR_EMAIL", "TYPE" => "string"), "AUTHOR_IP" => array("FIELD" => "C.AUTHOR_IP", "TYPE" => "string"), "AUTHOR_IP1" => array("FIELD" => "C.AUTHOR_IP1", "TYPE" => "string"), "TITLE" => array("FIELD" => "C.TITLE", "TYPE" => "string"), "POST_TEXT" => array("FIELD" => "C.POST_TEXT", "TYPE" => "string"), "DATE_CREATE" => array("FIELD" => "C.DATE_CREATE", "TYPE" => "datetime"), "DATE_CREATE_TS" => array("FIELD" => "UNIX_TIMESTAMP(C.DATE_CREATE)", "TYPE" => "int"), "PATH" => array("FIELD" => "C.PATH", "TYPE" => "string"), "PUBLISH_STATUS" => array("FIELD" => "C.PUBLISH_STATUS", "TYPE" => "string"), "HAS_PROPS" => array("FIELD" => "C.HAS_PROPS", "TYPE" => "string"), "SHARE_DEST" => array("FIELD" => "C.SHARE_DEST", "TYPE" => "string"), "USER_LOGIN" => array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (C.AUTHOR_ID = U.ID)"), "USER_NAME" => array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (C.AUTHOR_ID = U.ID)"), "USER_LAST_NAME" => array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (C.AUTHOR_ID = U.ID)"), "USER_SECOND_NAME" => array("FIELD" => "U.SECOND_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (C.AUTHOR_ID = U.ID)"), "USER_EMAIL" => array("FIELD" => "U.EMAIL", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (C.AUTHOR_ID = U.ID)"), "USER" => array("FIELD" => "U.LOGIN,U.NAME,U.LAST_NAME,U.EMAIL,U.ID", "WHERE_ONLY" => "Y", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (C.AUTHOR_ID = U.ID)"), "BLOG_USER_ALIAS" => array("FIELD" => "BU.ALIAS", "TYPE" => "string", "FROM" => "LEFT JOIN b_blog_user BU ON (C.AUTHOR_ID = BU.USER_ID)"), "BLOG_USER_AVATAR" => array("FIELD" => "BU.AVATAR", "TYPE" => "int", "FROM" => "LEFT JOIN b_blog_user BU ON (C.AUTHOR_ID = BU.USER_ID)"), "BLOG_URL" => array("FIELD" => "B.URL", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (C.BLOG_ID = B.ID)"), "BLOG_OWNER_ID" => array("FIELD" => "B.OWNER_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (C.BLOG_ID = B.ID)"), "BLOG_SOCNET_GROUP_ID" => array("FIELD" => "B.SOCNET_GROUP_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (C.BLOG_ID = B.ID)"), "BLOG_ACTIVE" => array("FIELD" => "B.ACTIVE", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (C.BLOG_ID = B.ID)"), "BLOG_GROUP_ID" => array("FIELD" => "B.GROUP_ID", "TYPE" => "int", "FROM" => "INNER JOIN b_blog B ON (C.BLOG_ID = B.ID)"), "BLOG_USE_SOCNET" => array("FIELD" => "B.USE_SOCNET", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (C.BLOG_ID = B.ID)"), "BLOG_NAME" => array("FIELD" => "B.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_blog B ON (C.BLOG_ID = B.ID)"), "BLOG_GROUP_SITE_ID" => array("FIELD" => "BG.SITE_ID", "TYPE" => "string", "FROM" => " INNER JOIN b_blog BGS ON (C.BLOG_ID = BGS.ID) INNER JOIN b_blog_group BG ON (BGS.GROUP_ID = BG.ID)"), "PERMS" => Array(), "SOCNET_BLOG_READ" => array("FIELD" => "BSR.BLOG_ID", "TYPE" => "int", "FROM" => "INNER JOIN b_blog_socnet BSR ON (C.BLOG_ID = BSR.BLOG_ID)"), "POST_CODE" => array("FIELD" => "BP.CODE", "TYPE" => "string", "FROM" => "INNER JOIN b_blog_post BP ON (C.POST_ID = BP.ID)"), "POST_TITLE" => array("FIELD" => "BP.TITLE", "TYPE" => "string", "FROM" => "INNER JOIN b_blog_post BP ON (C.POST_ID = BP.ID)"), "BLOG_POST_PUBLISH_STATUS" => array("FIELD" => "BP.PUBLISH_STATUS", "TYPE" => "string", "FROM" => "INNER JOIN b_blog_post BP ON (C.POST_ID = BP.ID)"), "BLOG_POST_MICRO" => array("FIELD" => "BP.MICRO", "TYPE" => "string", "FROM" => "INNER JOIN b_blog_post BP ON (C.POST_ID = BP.ID)"), ); if(isset($arFilter["GROUP_CHECK_PERMS"])) { if(is_array($arFilter["GROUP_CHECK_PERMS"])) { foreach($arFilter["GROUP_CHECK_PERMS"] as $val) { if(IntVal($val)>0) { $arFields["POST_PERM_".$val] = Array( "FIELD" => "BUGP".$val.".PERMS", "TYPE" => "string", "FROM" => "LEFT JOIN b_blog_user_group_perms BUGP".$val." ON (C.BLOG_ID = BUGP".$val.".BLOG_ID AND C.POST_ID = BUGP".$val.".POST_ID AND BUGP".$val.".USER_GROUP_ID = ".$val." AND BUGP".$val.".PERMS_TYPE = '".BLOG_PERMS_COMMENT."')" ); $arSelectFields[] = "POST_PERM_".$val; } } } else { if(IntVal($arFilter["GROUP_CHECK_PERMS"])>0) { $arFields["POST_PERM_".$arFilter["GROUP_CHECK_PERMS"]] = Array( "FIELD" => "BUGP.PERMS", "TYPE" => "string", "FROM" => "LEFT JOIN b_blog_user_group_perms BUGP ON (C.BLOG_ID = BUGP.BLOG_ID AND C.POST_ID = BUGP.POST_ID AND BUGP.USER_GROUP_ID = ".$arFilter["GROUP_CHECK_PERMS"]." AND BUGP.PERMS_TYPE = '".BLOG_PERMS_COMMENT."')" ); $arSelectFields[] = "POST_PERM_".$arFilter["GROUP_CHECK_PERMS"]; } } unset($arFilter["GROUP_CHECK_PERMS"]); } // rating variable if ( in_array("RATING_TOTAL_VOTES", $arSelectFields) || in_array("RATING_TOTAL_POSITIVE_VOTES", $arSelectFields) || in_array("RATING_TOTAL_NEGATIVE_VOTES", $arSelectFields) || array_key_exists("RATING_TOTAL_VALUE", $arOrder) || array_key_exists("RATING_TOTAL_VOTES", $arOrder) ) { $arFields["RATING_TOTAL_VALUE"] = array("FIELD" => $DB->IsNull('RV.TOTAL_VALUE', '0'), "TYPE" => "double", "FROM" => "LEFT JOIN b_rating_voting RV ON ( RV.ENTITY_TYPE_ID = 'BLOG_COMMENT' AND RV.ENTITY_ID = C.ID )"); $arFields["RATING_TOTAL_VOTES"] = array("FIELD" => $DB->IsNull('RV.TOTAL_VOTES', '0'), "TYPE" => "int", "FROM" => "LEFT JOIN b_rating_voting RV ON ( RV.ENTITY_TYPE_ID = 'BLOG_COMMENT' AND RV.ENTITY_ID = C.ID )"); $arFields["RATING_TOTAL_POSITIVE_VOTES"] = array("FIELD" => $DB->IsNull('RV.TOTAL_POSITIVE_VOTES', '0'), "TYPE" => "int", "FROM" => "LEFT JOIN b_rating_voting RV ON ( RV.ENTITY_TYPE_ID = 'BLOG_COMMENT' AND RV.ENTITY_ID = C.ID )"); $arFields["RATING_TOTAL_NEGATIVE_VOTES"] = array("FIELD" => $DB->IsNull('RV.TOTAL_NEGATIVE_VOTES', '0'), "TYPE" => "int", "FROM" => "LEFT JOIN b_rating_voting RV ON ( RV.ENTITY_TYPE_ID = 'BLOG_COMMENT' AND RV.ENTITY_ID = C.ID )"); } $bNeedDistinct = false; $blogModulePermissions = $GLOBALS["APPLICATION"]->GetGroupRight("blog"); if ($blogModulePermissions < "W") { $arUserGroups = CBlogUser::GetUserGroups(($GLOBALS["USER"]->IsAuthorized() ? $GLOBALS["USER"]->GetID() : 0), 0, "Y", BLOG_BY_USER_ID); $strUserGroups = "0"; foreach($arUserGroups as $v) $strUserGroups .= ",".IntVal($v); $arFields["PERMS"] = array("FIELD" => "UGP.PERMS", "TYPE" => "char", "FROM" => "INNER JOIN b_blog_user_group_perms UGP ON (C.POST_ID = UGP.POST_ID AND C.BLOG_ID = UGP.BLOG_ID AND UGP.USER_GROUP_ID IN (".$strUserGroups.") AND UGP.PERMS_TYPE = '".BLOG_PERMS_COMMENT."')"); $bNeedDistinct = true; } else { $arFields["PERMS"] = array("FIELD" => "'W'", "TYPE" => "string"); } $arSqls = CBlog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql); if(array_key_exists("FOR_USER", $arFilter)) { if(IntVal($arFilter["FOR_USER"]) > 0) //authorized user { $arSqls["FROM"] .= " INNER JOIN b_blog_socnet_rights SR ON (C.POST_ID = SR.POST_ID) " . " LEFT JOIN b_user_access UA ON (UA.ACCESS_CODE = SR.ENTITY AND UA.USER_ID = ".IntVal($arFilter["FOR_USER"]).") "; if(strlen($arSqls["WHERE"]) > 0) $arSqls["WHERE"] .= " AND "; $arSqls["WHERE"] .= " (UA.USER_ID is not NULL OR SR.ENTITY = 'AU') "; } else { $arSqls["FROM"] .= " INNER JOIN b_blog_socnet_rights SR ON (C.POST_ID = SR.POST_ID) ". " INNER JOIN b_user_access UA ON (UA.ACCESS_CODE = SR.ENTITY AND UA.USER_ID = 0)"; } $bNeedDistinct = true; } if($bNeedDistinct) $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "DISTINCT", $arSqls["SELECT"]); else $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]); $r = $obUserFieldsSql->GetFilter(); if(strlen($r)>0) $strSqlUFFilter = " (".$r.") "; if (is_array($arGroupBy) && count($arGroupBy)==0) { $strSql = "SELECT ".$arSqls["SELECT"]." ". $obUserFieldsSql->GetSelect()." ". "FROM b_blog_comment C ". " ".$arSqls["FROM"]." ". $obUserFieldsSql->GetJoin("C.ID")." "; if (strlen($arSqls["WHERE"]) > 0) $strSql .= "WHERE ".$arSqls["WHERE"]." "; if(strlen($arSqls["WHERE"]) > 0 && strlen($strSqlUFFilter) > 0) $strSql .= " AND ".$strSqlUFFilter." "; elseif(strlen($arSqls["WHERE"]) <= 0 && strlen($strSqlUFFilter) > 0) $strSql .= " WHERE ".$strSqlUFFilter." "; if (strlen($arSqls["GROUPBY"]) > 0) $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." "; //echo "!1!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); if ($arRes = $dbRes->Fetch()) return $arRes["CNT"]; else return False; } $strSql = "SELECT ".$arSqls["SELECT"]." ". $obUserFieldsSql->GetSelect()." ". "FROM b_blog_comment C ". " ".$arSqls["FROM"]." ". $obUserFieldsSql->GetJoin("C.ID")." "; if (strlen($arSqls["WHERE"]) > 0) $strSql .= "WHERE ".$arSqls["WHERE"]." "; if(strlen($arSqls["WHERE"]) > 0 && strlen($strSqlUFFilter) > 0) $strSql .= " AND ".$strSqlUFFilter." "; elseif(strlen($arSqls["WHERE"]) <= 0 && strlen($strSqlUFFilter) > 0) $strSql .= " WHERE ".$strSqlUFFilter." "; if (strlen($arSqls["GROUPBY"]) > 0) $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." "; if (strlen($arSqls["ORDERBY"]) > 0) $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." "; if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"])<=0) { $strSql_tmp = "SELECT COUNT('x') as CNT ". $obUserFieldsSql->GetSelect()." ". "FROM b_blog_comment C ". " ".$arSqls["FROM"]." ". $obUserFieldsSql->GetJoin("C.ID")." "; if (strlen($arSqls["WHERE"]) > 0) $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." "; if(strlen($arSqls["WHERE"]) > 0 && strlen($strSqlUFFilter) > 0) $strSql_tmp .= " AND ".$strSqlUFFilter." "; elseif(strlen($arSqls["WHERE"]) <= 0 && strlen($strSqlUFFilter) > 0) $strSql_tmp .= " WHERE ".$strSqlUFFilter." "; if (strlen($arSqls["GROUPBY"]) > 0) $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." "; //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>"; $dbRes = $DB->Query($strSql_tmp, false, "File: ".__FILE__."<br>Line: ".__LINE__); $cnt = 0; if (strlen($arSqls["GROUPBY"]) <= 0) { if ($arRes = $dbRes->Fetch()) $cnt = $arRes["CNT"]; } else { $cnt = $dbRes->SelectedRowsCount(); } $dbRes = new CDBResult(); //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes->SetUserFields($USER_FIELD_MANAGER->GetUserFields("BLOG_POST")); $dbRes->NavQuery($strSql, $cnt, $arNavStartParams); } else { if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0) $strSql .= "LIMIT ".IntVal($arNavStartParams["nTopCount"]); //echo "!3!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); $dbRes->SetUserFields($USER_FIELD_MANAGER->GetUserFields("BLOG_POST")); } return $dbRes; }
$arUsrTmp = array(); $arUsrTmp["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arComment["AUTHOR_ID"])); $arUsrTmp["BlogUser"] = CBlogUser::GetByID($arComment["AUTHOR_ID"], BLOG_BY_USER_ID); $arUsrTmp["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arUsrTmp["BlogUser"]); $dbUser = CUser::GetByID($arComment["AUTHOR_ID"]); $arUsrTmp["arUser"] = $dbUser->GetNext(); $arUsrTmp["AuthorName"] = CBlogUser::GetUserName($arUsrTmp["BlogUser"]["ALIAS"], $arUsrTmp["arUser"]["NAME"], $arUsrTmp["arUser"]["LAST_NAME"], $arUsrTmp["arUser"]["LOGIN"]); if (IntVal($arUsrTmp["BlogUser"]["AVATAR"]) > 0) { $arUsrTmp["AVATAR_file"] = CFile::ResizeImageGet($arUsrTmp["BlogUser"]["AVATAR"], array("width" => 30, "height" => 30), BX_RESIZE_IMAGE_EXACT, false); } elseif ($arResult["bSoNet"] && IntVal($arUsrTmp["arUser"]["PERSONAL_PHOTO"]) > 0) { $arUsrTmp["AVATAR_file"] = CFile::ResizeImageGet($arUsrTmp["arUser"]["PERSONAL_PHOTO"], array("width" => 30, "height" => 30), BX_RESIZE_IMAGE_EXACT, false); } if ($arUsrTmp["AVATAR_file"] !== false) { $arUsrTmp["AVATAR_img"] = CFile::ShowImage($arUsrTmp["AVATAR_file"]["src"], 30, 30, "border=0 align='right'"); } $arUsrTmp["Blog"] = CBlog::GetByOwnerID(IntVal($arComment["AUTHOR_ID"]), $arParams["GROUP_ID"]); if ($arUsrTmp["AUTHOR_ID"] == $arUsrTmp["AUTHOR_ID"]) { $arUsrTmp["AuthorIsPostAuthor"] = "Y"; } $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]] = $arUsrTmp; } $arComment["urlToAuthor"] = $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]]["urlToAuthor"]; $arComment["BlogUser"] = $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]]["BlogUser"]; $arComment["arUser"] = $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]]["arUser"]; $arComment["AuthorName"] = $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]]["AuthorName"]; $arComment["AVATAR_file"] = $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]]["AVATAR_file"]; $arComment["AVATAR_img"] = $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]]["AVATAR_img"]; $arComment["Blog"] = $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]]["Blog"]; $arComment["AuthorIsPostAuthor"] = $arResult["USER_CACHE"][$arComment["AUTHOR_ID"]]["AuthorIsPostAuthor"]; if (!empty($arComment["Blog"])) { $arComment["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arComment["Blog"]["URL"], "user_id" => $arComment["Blog"]["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"]));
<?php /** * MZ 404-sida * */ // Inkludera config-filen include __DIR__ . '/config.php'; //Erbjud logout om inloggad $login = new CUsers($mz['database']); $login->logout(); // Koppla upp till databasen $db = new CBlog($mz['database']); $thePost = $db->showPost(); // Skapa nödvändigt innehåll och spara i mz-variabeln $mz['title'] = "Nyheter"; $mz['main'] = <<<EOD <div class="container"> \t{$thePost} </div> EOD; // När alla variabler är satta, inkludera templaten include MZ_THEME_PATH;
$arResult["FRIENDS_POSTS"] = array(); $arResult["IDS"] = array(); $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"]); while ($arList = $dbList->Fetch()) { $arResult["IDS"][] = $arList["ID"]; $arPost = CBlogPost::GetByID($arList["ID"]); $arPost = CBlogTools::htmlspecialcharsExArray($arPost); $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); $arBlog = CBlogTools::htmlspecialcharsExArray($arBlog); $arPost["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]))); $arPost["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arPost["AUTHOR_ID"])); if ($arPost["AUTHOR_ID"] == $arBlog["OWNER_ID"]) { $arPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"])); } else { if ($arOwnerBlog = CBlog::GetByOwnerID($arPost["AUTHOR_ID"], $arParams["GROUP_ID"])) { $arPost["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arOwnerBlog["URL"])); } } $arImages = array(); $dbImage = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"], "IS_COMMENT" => "N")); while ($arImage = $dbImage->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; $arPost["arImages"][$arImage['ID']] = array("small" => "/bitrix/components/bitrix/blog/show_file.php?fid=" . $arImage['ID'] . "&width=70&height=70&type=square", "full" => "/bitrix/components/bitrix/blog/show_file.php?fid=" . $arImage['ID'] . "&width=1000&height=1000"); } if ($arPost["DETAIL_TEXT_TYPE"] == "html" && COption::GetOptionString("blog", "allow_html", "N") == "Y") { $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y"); if (COption::GetOptionString("blog", "allow_video", "Y") != "Y") { $arAllow["VIDEO"] = "N"; } $arPost["TEXT_FORMATED"] = $p->convert($arPost["~DETAIL_TEXT"], true, $arImages, $arAllow, $arParserParams);
$arResult["SecondLine"] = "Y"; } elseif ($perm >= BLOG_PERMS_PREMODERATE) { $arResult["urlToNewPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_EDIT"], array("blog" => $arBlog["URL"], "post_id" => "new")); $arResult["SecondLine"] = "Y"; } if (CBlog::CanUserManageBlog($arBlog["ID"], $user_id)) { $arResult["urlToUserSettings"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SETTINGS"], array("blog" => $arBlog["URL"])); $arResult["urlToGroupEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_EDIT"], array("blog" => $arBlog["URL"])); $arResult["urlToCategoryEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_CATEGORY_EDIT"], array("blog" => $arBlog["URL"])); $arResult["urlToBlogEdit"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG_EDIT"], array("blog" => $arBlog["URL"])); $arResult["ThirdLine"] = "Y"; } } if (empty($arOwnBlog) || $arOwnBlog["URL"] != $arBlog["URL"]) { if (IntVal($user_id) > 0) { if (!CBlog::IsFriend($arBlog["ID"], $user_id)) { $arResult["urlToBecomeFriend"] = $arResult["urlToCurrentBlog"] . (strpos($arResult["urlToCurrentBlog"], "?") === false ? "?" : "&") . "become_friend=Y&" . bitrix_sessid_get(); $arResult["SecondLine"] = "Y"; } if (!empty($arOwnBlog)) { if (!CBlog::IsFriend($arOwnBlog["ID"], $arBlog["OWNER_ID"])) { $tmpUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SETTINGS"], array("blog" => $arOwnBlog["URL"])); $arResult["urlToAddFriend"] = $tmpUrl . (strpos($tmpUrl, "?") === false ? "?" : "&") . "add_friend[]=" . UrlEncode($arBlog["URL"]) . "&" . bitrix_sessid_get(); $arResult["SecondLine"] = "Y"; } } } } } } $this->IncludeComponentTemplate();
function GetList($arOrder = Array("ID" => "DESC"), $arFilter = Array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array()) { global $DB; if (count($arSelectFields) <= 0) $arSelectFields = array("ID", "BLOG_ID", "NAME"); // FIELDS --> $arFields = array( "ID" => array("FIELD" => "G.ID", "TYPE" => "int"), "BLOG_ID" => array("FIELD" => "G.BLOG_ID", "TYPE" => "int"), "NAME" => array("FIELD" => "G.NAME", "TYPE" => "string"), "USER2GROUP_ID" => array("FIELD" => "U2UG.ID", "TYPE" => "int", "FROM" => "INNER JOIN b_blog_user2user_group U2UG ON (G.ID = U2UG.USER_GROUP_ID AND G.BLOG_ID = U2UG.BLOG_ID)"), "USER2GROUP_USER_ID" => array("FIELD" => "U2UG.USER_ID", "TYPE" => "int", "FROM" => "INNER JOIN b_blog_user2user_group U2UG ON (G.ID = U2UG.USER_GROUP_ID AND G.BLOG_ID = U2UG.BLOG_ID)"), ); // <-- FIELDS $arSqls = CBlog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields); $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]); if (is_array($arGroupBy) && count($arGroupBy)==0) { $strSql = "SELECT ".$arSqls["SELECT"]." ". "FROM b_blog_user_group G ". " ".$arSqls["FROM"]." "; if (strlen($arSqls["WHERE"]) > 0) $strSql .= "WHERE ".$arSqls["WHERE"]." "; if (strlen($arSqls["GROUPBY"]) > 0) $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." "; //echo "!1!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); if ($arRes = $dbRes->Fetch()) return $arRes["CNT"]; else return False; } $strSql = "SELECT ".$arSqls["SELECT"]." ". "FROM b_blog_user_group G ". " ".$arSqls["FROM"]." "; if (strlen($arSqls["WHERE"]) > 0) $strSql .= "WHERE ".$arSqls["WHERE"]." "; if (strlen($arSqls["GROUPBY"]) > 0) $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." "; if (strlen($arSqls["ORDERBY"]) > 0) $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." "; if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"])<=0) { $strSql_tmp = "SELECT COUNT('x') as CNT ". "FROM b_blog_user_group G ". " ".$arSqls["FROM"]." "; if (strlen($arSqls["WHERE"]) > 0) $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." "; if (strlen($arSqls["GROUPBY"]) > 0) $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." "; //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>"; $dbRes = $DB->Query($strSql_tmp, false, "File: ".__FILE__."<br>Line: ".__LINE__); $cnt = 0; if (strlen($arSqls["GROUPBY"]) <= 0) { if ($arRes = $dbRes->Fetch()) $cnt = $arRes["CNT"]; } else { // ТОЛЬКО ДЛЯ MYSQL!!! ДЛЯ ORACLE ДРУГОЙ КОД $cnt = $dbRes->SelectedRowsCount(); } $dbRes = new CDBResult(); //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes->NavQuery($strSql, $cnt, $arNavStartParams); } else { if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0) $strSql .= "LIMIT ".IntVal($arNavStartParams["nTopCount"]); //echo "!3!=".htmlspecialcharsbx($strSql)."<br>"; $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); } return $dbRes; }
$APPLICATION->AddHeadString('<link rel="alternate" type="application/rss+xml" title="RSS" href="' . CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_RSS"], array("blog" => $arBlog["URL"], "type" => "rss2", "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]))) . '" />'); } } } else { if ($bSoNet) { $blogOwnerID = $arParams["USER_ID"]; $arFilterblg = array("ACTIVE" => "Y", "GROUP_ID" => $arParams["PARAM_GROUP_ID"], "GROUP_SITE_ID" => SITE_ID, "USE_SOCNET" => "Y"); if ($bGroupMode) { $arFilterblg["SOCNET_GROUP_ID"] = $arParams["SOCNET_GROUP_ID"]; } else { $arFilterblg["OWNER_ID"] = $arParams["USER_ID"]; } $dbBl = CBlog::GetList(array(), $arFilterblg); $arBlog = $dbBl->Fetch(); } else { $arBlog = CBlog::GetByUrl($arParams["BLOG_URL"], $arParams["PARAM_GROUP_ID"]); } if (!empty($arBlog) && $arBlog["ACTIVE"] == "Y") { $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]); if ($arGroup["SITE_ID"] == SITE_ID) { if ($arParams["RSS1"] == "Y") { $arResult[] = array("type" => "rss1", "name" => GetMessage("BRL_B") . "RSS .92", "url" => CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_RSS"], array("blog" => $arBlog["URL"], "type" => "rss1", "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"]))); } if ($arParams["RSS2"] == "Y") { $arResult[] = array("type" => "rss2", "name" => GetMessage("BRL_B") . "RSS 2.0", "url" => CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_RSS"], array("blog" => $arBlog["URL"], "type" => "rss2", "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"]))); } if ($arParams["ATOM"] == "Y") { $arResult[] = array("type" => "atom", "name" => GetMessage("BRL_B") . "Atom .3", "url" => CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_RSS"], array("blog" => $arBlog["URL"], "type" => "atom", "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"]))); } $APPLICATION->AddHeadString('<link rel="alternate" type="application/rss+xml" title="RSS" href="' . CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_RSS"], array("blog" => $arBlog["URL"], "type" => "rss2", "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"])) . '" />'); }
<?php // delete this file - now in xml_result $b =& CBlog::getInstance(); $entryId = $_GET['entryId']; $b->delete($_USER_ID, $entryId);
if ($arImage = $dbImage->Fetch()) { if ($file = CFile::ResizeImageGet($arImage["FILE_ID"], array("width" => $arParams["PREVIEW_WIDTH"], "height" => $arParams["PREVIEW_HEIGHT"]))) { $arPost["IMG"] = CFile::ShowImage($file["src"], false, false, 'align="left" hspace="2" vspace="2"'); } } } else { $arPost["IMG"] = CFile::ShowImage($arPost["ATTACH_IMG"], false, false, 'align="left" hspace="2" vspace="2"'); } $arTmp = $arPost; if ($arTmp["AUTHOR_ID"] == $arTmp["BLOG_OWNER_ID"]) { $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arPost["BLOG_URL"], "user_id" => $arPost["AUTHOR_ID"])); } else { if ($arParams["USE_SOCNET"] == "Y" && IntVal($arParams["SOCNET_GROUP_ID"]) > 0) { $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arPost["AUTHOR_ID"])); } else { $arOwnerBlog = CBlog::GetByOwnerID($arTmp["AUTHOR_ID"], $arParams["GROUP_ID"]); if (!empty($arOwnerBlog)) { $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arOwnerBlog["URL"], "user_id" => $arOwnerBlog["OWNER_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])); } else { $arTmp["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arPost["BLOG_URL"], "user_id" => $arPost["AUTHOR_ID"], "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])); } } } if (IntVal($arPost["BLOG_SOCNET_GROUP_ID"]) > 0) { $arTmp["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_BLOG_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "group_id" => $arPost["BLOG_SOCNET_GROUP_ID"])); } else { $arTmp["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arPost["BLOG_URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "user_id" => $arPost["BLOG_OWNER_ID"])); } $arTmp["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arPost["AUTHOR_ID"])); $arTmp["AuthorName"] = CBlogUser::GetUserName($arPost["BLOG_USER_ALIAS"], $arPost["AUTHOR_NAME"], $arPost["AUTHOR_LAST_NAME"], $arPost["AUTHOR_LOGIN"]); if ($itemCnt == 0) {
$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("socialnetwork")) { $arGroupSo = CSocNetGroup::GetByID($f_SOCNET_GROUP_ID); if (!empty($arGroupSo)) { $row->AddField("SOCNET_GROUP_ID", "[" . $f_SOCNET_GROUP_ID . "] " . $arGroupSo["NAME"]); } } }
function DeletePost($params) { global $USER; $postId = IntVal(CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"])); $user = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]); $password = CBlogMetaWeblog::DecodeParams($params[3]["#"]["value"][0]["#"]); if (CBlogMetaWeblog::Authorize($user, $password)) { $result = ''; $userId = $USER->GetID(); if (IntVal($postId) > 0) { $dbPost = CBlogPost::GetList(array(), array("AUTHOR_ID" => $userId, "ID" => $postId), false, array("nTopCount" => 1), array("ID", "BLOG_ID", "AUTHOR_ID")); if ($arPost = $dbPost->Fetch()) { CBlogPost::Delete($postId); $arBlog = CBlog::GetByID($arPost["BLOG_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 ($arSites as $site_id_tmp) { BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/first_page/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/pages/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/calendar/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/post/" . $postId . "/"); 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/" . $arResult["BLOG"]["GROUP_ID"] . "/"); BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/trackback/" . $postId . "/"); 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/"); } } } return '<params> <param> <value> <boolean>1</boolean> </value> </param> </params>'; } 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>'; } }
$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"),