Beispiel #1
0
 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;
 }
    function EditPost($params)
    {
        global $USER, $DB;
        $postId = IntVal(CBlogMetaWeblog::DecodeParams($params[0]["#"]["value"][0]["#"]));
        $user = CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"]);
        $password = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]);
        $arPostInfo = $params[3]["#"]["value"][0]["#"]["struct"][0]["#"]["member"];
        $publish = $params[4]["#"]["value"][0]["#"]["boolean"][0]["#"];
        foreach ($arPostInfo as $val) {
            ${$val["#"]["name"][0]["#"]} = CBlogMetaWeblog::DecodeParams($val["#"]["value"][0]["#"]);
        }
        $arCategory = array();
        if (is_array($categories["data"][0]["#"]["value"])) {
            foreach ($categories["data"][0]["#"]["value"] as $val) {
                $catTmp = CBlogMetaWeblog::DecodeParams($val["#"]);
                if (strlen($catTmp) > 0) {
                    $arCategory[] = $catTmp;
                }
            }
        }
        if (CBlogMetaWeblog::Authorize($user, $password)) {
            $result = '';
            $userId = $USER->GetID();
            if (IntVal($postId) > 0) {
                $arSelectedFields = array("ID", "BLOG_ID", "TITLE", "DATE_PUBLISH", "AUTHOR_ID", "DETAIL_TEXT", "DETAIL_TEXT_TYPE");
                $dbPost = CBlogPost::GetList(array(), array("AUTHOR_ID" => $userId, "ID" => $postId), false, array("nTopCount" => 1), $arSelectedFields);
                if ($arPost = $dbPost->Fetch()) {
                    $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);
                    }
                    $CATEGORYtmp = array();
                    $dbCategory = CBlogCategory::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"]));
                    while ($arCat = $dbCategory->Fetch()) {
                        $arCatBlog[ToLower($arCat["NAME"])] = $arCat["ID"];
                    }
                    foreach ($arCategory as $tg) {
                        $tg = trim($tg);
                        if (!in_array($arCatBlog[ToLower($tg)], $CATEGORYtmp)) {
                            if (IntVal($arCatBlog[ToLower($tg)]) > 0) {
                                $CATEGORYtmp[] = $arCatBlog[ToLower($tg)];
                            } else {
                                $CATEGORYtmp[] = CBlogCategory::Add(array("BLOG_ID" => $arPost["BLOG_ID"], "NAME" => $tg));
                                foreach ($arSites as $site_id_tmp) {
                                    BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/category/");
                                }
                            }
                        }
                    }
                    $dbSite = CSite::GetByID(SITE_ID);
                    $arSite = $dbSite->Fetch();
                    $serverName = htmlspecialcharsEx($arSite["SERVER_NAME"]);
                    if (strlen($serverName) <= 0) {
                        if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) {
                            $serverName = SITE_SERVER_NAME;
                        } else {
                            $serverName = COption::GetOptionString("main", "server_name", "www.bitrixsoft.com");
                        }
                    }
                    $dbImage = CBlogImage::GetList(array(), array("POST_ID" => false, "BLOG_ID" => $arBlog["ID"], "IS_COMMENT" => "N"));
                    while ($arImage = $dbImage->Fetch()) {
                        $path = "";
                        $path = CFile::GetPath($arImage["FILE_ID"]);
                        $path = "http://" . $serverName . $path;
                        if (strpos($description, $path) !== false) {
                            $description = str_replace('<img src="' . $path . '" alt=""/>', "[IMG ID=" . $arImage["ID"] . "]", $description);
                            CBlogImage::Update($arImage["ID"], array("POST_ID" => $arPost["ID"]));
                        }
                    }
                    $arFields = array("TITLE" => $title, "DETAIL_TEXT" => $description, "DETAIL_TEXT_TYPE" => "html", "PUBLISH_STATUS" => $publish == 1 ? "P" : "D", "CATEGORY_ID" => implode(",", $CATEGORYtmp));
                    $postId = CBlogPost::Update($arPost["ID"], $arFields);
                    CBlogPostCategory::DeleteByPostID($arPost["ID"]);
                    foreach ($CATEGORYtmp as $v) {
                        CBlogPostCategory::Add(array("BLOG_ID" => $arPost["BLOG_ID"], "POST_ID" => $arPost["ID"], "CATEGORY_ID" => $v));
                    }
                    if (IntVal($postId) > 0) {
                        foreach ($arSites as $site_id_tmp) {
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/first_page/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/calendar/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/last_messages/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/commented_posts/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/popular_posts/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/last_comments/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/groups/" . $arBlog["GROUP_ID"] . "/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/trackback/" . $arPost["ID"] . "/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/comment/" . $arPost["ID"] . "/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_out/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/rss_all/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_sonet/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/rss_all/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/favorite/");
                            BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/post/" . $arPost["ID"] . "/");
                        }
                        return '<params>
									<param>
										<value>
											<i4>' . $postId . '</i4>
										</value>
									</param>
								</params>';
                    } else {
                        return '<fault>
							<value>
								<struct>
									<member>
										<name>faultCode</name>
										<value><int>3</int></value>
										</member>
									<member>
										<name>faultString</name>
										<value><string>Error on saving post</string></value>
										</member>
									</struct>
								</value>
							</fault>';
                    }
                }
            }
        } else {
            return '<fault>
				<value>
					<struct>
						<member>
							<name>faultCode</name>
							<value><int>3</int></value>
							</member>
						<member>
							<name>faultString</name>
							<value><string>' . $arAuthResult["MESSAGE"] . '</string></value>
							</member>
						</struct>
					</value>
				</fault>';
        }
    }
Beispiel #3
0
     $arResult["Post"]["DATE_PUBLISH_DATE"] = ltrim($arResult["Post"]["DATE_PUBLISH_DATE"], '0');
     $curYear = date('Y');
     $arResult["Post"]["DATE_PUBLISH_FORMATED"] = str_replace(array('-' . $curYear, '/' . $curYear, ' ' . $curYear, '.' . $curYear), '', $arResult["Post"]["DATE_PUBLISH_FORMATED"]);
     $arResult["Post"]["DATE_PUBLISH_DATE"] = str_replace(array('-' . $curYear, '/' . $curYear, ' ' . $curYear, '.' . $curYear), '', $arResult["Post"]["DATE_PUBLISH_DATE"]);
 }
 $arResult["Post"]["DATE_PUBLISH_TIME"] = FormatDateFromDB($arResult["Post"]["DATE_PUBLISH"], strpos($arParams["DATE_TIME_FORMAT_S"], 'a') !== false || ($arParams["DATE_TIME_FORMAT_S"] == 'FULL' && IsAmPmMode()) !== false ? strpos(FORMAT_DATETIME, 'TT') !== false ? 'G:MI TT' : 'G:MI T' : 'GG:MI');
 if (strcasecmp(LANGUAGE_ID, 'EN') !== 0 && strcasecmp(LANGUAGE_ID, 'DE') !== 0) {
     $arResult["Post"]["DATE_PUBLISH_TIME"] = ToLower($arResult["Post"]["DATE_PUBLISH_TIME"]);
 }
 $arResult["arUser"] = CBlogUser::GetUserInfo($arPost["AUTHOR_ID"], $arParams["PATH_TO_USER"], array("AVATAR_SIZE" => isset($arParams["AVATAR_SIZE_COMMON"]) ? $arParams["AVATAR_SIZE_COMMON"] : $arParams["AVATAR_SIZE"], "AVATAR_SIZE_COMMENT" => $arParams["AVATAR_SIZE_COMMENT"]));
 $arResult["arUser"]["isExtranet"] = intval($arPost["AUTHOR_ID"]) > 0 && is_array($GLOBALS["arExtranetUserID"]) && in_array($arPost["AUTHOR_ID"], $GLOBALS["arExtranetUserID"]);
 $arResult["Post"]["urlToPost"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "user_id" => $arPost["AUTHOR_ID"]));
 if (strlen($arPost["CATEGORY_ID"]) > 0) {
     $bHasTag = true;
     $arCategory = explode(",", $arPost["CATEGORY_ID"]);
     $dbCategory = CBlogCategory::GetList(array(), array("@ID" => $arCategory));
     while ($arCatTmp = $dbCategory->Fetch()) {
         $arCatTmp["~NAME"] = $arCatTmp["NAME"];
         $arCatTmp["NAME"] = htmlspecialcharsEx($arCatTmp["NAME"]);
         $arCatTmp["urlToCategory"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_SEARCH_TAG"], array("tag" => urlencode($arCatTmp["NAME"])));
         $arResult["Category"][] = $arCatTmp;
     }
 }
 $bAll = false;
 $arResult["Post"]["SPERM"] = array();
 if ($arPost["HAS_SOCNET_ALL"] != "Y") {
     $arSPERM = CBlogPost::GetSocnetPermsName($arResult["Post"]["ID"]);
     foreach ($arSPERM as $type => $v) {
         foreach ($v as $vv) {
             $name = "";
             $link = "";
Beispiel #4
0
$arParams["BLOG_URL"] = preg_replace("/[^a-zA-Z0-9_-]/is", "", Trim($arParams["BLOG_URL"]));
if (!array_key_exists("PATH_TO_BLOG_CATEGORY", $arParams) || !is_string($arParams["PATH_TO_BLOG_CATEGORY"])) {
    $arParams["PATH_TO_BLOG_CATEGORY"] = "";
}
//0 no limit
$arParams["TAGS_COUNT"] = intval($arParams["TAGS_COUNT"]);
$obCache = new CPHPCache();
$cache_id = md5(serialize(array($arParams["BLOG_URL"], $arParams["TAGS_COUNT"], $arParams["PATH_TO_BLOG_CATEGORY"])));
$cache_path = '/' . SITE_ID . '/idea/tags/';
if (!$obCache->StartDataCache(60 * 60 * 24, $cache_id, $cache_path)) {
    $arResult = $obCache->GetVars();
} else {
    if (($arBlog = CBlog::GetByUrl($arParams["BLOG_URL"])) && $arBlog["ACTIVE"] == "Y" && ($arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"])) && $arGroup["SITE_ID"] == SITE_ID) {
        $arResult = array("BLOG" => $arBlog, "CATEGORY" => array());
        $toCnt = array();
        $res = CBlogCategory::GetList(array("NAME" => "ASC"), array("BLOG_ID" => $arBlog["ID"]));
        while ($arCategory = $res->GetNext()) {
            $arSumCat["C" . $arCategory["ID"]] = array("ID" => $arCategory["ID"], "NAME" => $arCategory["NAME"]);
            $toCnt[] = $arCategory['ID'];
        }
        $resCnt = CBlogPostCategory::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "CATEGORY_ID" => $toCnt), array("CATEGORY_ID"), $arParams["TAGS_COUNT"] > 0 ? array("nTopCount" => $arParams["TAGS_COUNT"]) : false, array("ID", "BLOG_ID", "CATEGORY_ID", "NAME"));
        if (($arCategoryCount = $resCnt->Fetch()) && $arCategoryCount) {
            $cntMin = $cntMax = $arCategoryCount['CNT'];
            $arRes = array();
            do {
                $arRes["C" . $arCategoryCount["CATEGORY_ID"]] = array("CNT" => $arCategoryCount['CNT'], "URL" => CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG_CATEGORY"], array("category_id" => $arCategoryCount["CATEGORY_ID"])));
                $cntMin = min($cntMin, $arCategoryCount['CNT']);
                $cntMax = max($cntMax, $arCategoryCount['CNT']);
            } while ($arCategoryCount = $resCnt->Fetch());
            $arSumCat = array_merge_recursive(array_intersect_key($arSumCat, $arRes), $arRes);
            foreach ($arSumCat as $id => $arTag) {
Beispiel #5
0
			<input type=hidden name=BLOG_ID value="<?php 
            echo $BLOG_ID;
            ?>
">
			<input type=hidden name=blog value="<?php 
            echo htmlspecialchars($arBlog["URL"]);
            ?>
">
			<input type=hidden name=BACK_URL value="<?php 
            echo $APPLICATION->GetCurPage() . $add_back;
            ?>
">
			
			<table border=0 cellspacing=1 cellpadding=3  class="blogtableborder" width=300>
<?php 
            $res = CBlogCategory::GetList($arOrder = array("NAME" => "ASC"), $arFilter = array("BLOG_ID" => $BLOG_ID));
            while ($arCategory = $res->Fetch()) {
                $arSumCat[] = array("ID" => $arCategory['ID'], "NAME" => $arCategory['NAME']);
                $toCnt[] = $arCategory['ID'];
            }
            $resCnt = CBlogPost::GetList(array(), $arFilter = array("BLOG_ID" => $BLOG_ID, "CATEGORY_ID" => $toCnt, "PUBLISH_STATUS" => "P"), array("CATEGORY_ID"), false, array("ID", "BLOG_ID", "CATEGORY_ID", "PUBLISH_STATUS"));
            while ($arCategoryCount = $resCnt->Fetch()) {
                $arCntCat[$arCategoryCount["CATEGORY_ID"]] = $arCategoryCount['CNT'];
            }
            foreach ($arSumCat as $SumCat) {
                $count = intval($arCntCat[$SumCat["ID"]]);
                $name = htmlspecialchars($SumCat['NAME']);
                $id = $SumCat['ID'];
                print "\r\n\t<input type=hidden id=count_{$id} value={$count}>\r\n\t<input type=hidden id=name_{$id} value=\"{$name}\">\r\n\t<tr>\r\n\t\t<td class=\"blogtablebody\" width=100% nowrap><font class=blogtext>{$name} ({$count})</font></td>\r\n\t\t<td class=\"blogtablebody\"><a href='javascript:category_edit({$id})' class=blogButton title='" . GetMessage("BLOG_NAME_CHANGE") . "'><img src='/bitrix/templates/.default/blog/images/edit_button.gif' width=18 height=18 border=0></a></td>\r\n\t\t<td class=\"blogtablebody\"><a href='javascript:category_del({$id})' class=blogButton title='" . GetMessage("BLOG_GROUP_DELETE") . "'><img src='/bitrix/templates/.default/blog/images/delete_button.gif' width=18 height=18 border=0></a></td>\r\n\t</tr>";
            }
            ?>
Beispiel #6
0
} else {
    if ($arParams["CACHE_TIME"] > 0) {
        $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
    }
    $arFilter = array("<=DATE_PUBLISH" => ConvertTimeStamp(time() + $tzOffset, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "BLOG_ACTIVE" => "Y", "BLOG_GROUP_SITE_ID" => SITE_ID, ">PERMS" => BLOG_PERMS_DENY);
    if (strlen($arParams["BLOG_URL"]) > 0) {
        $arFilter["BLOG_URL"] = $arParams["BLOG_URL"];
    }
    if (IntVal($arParams["GROUP_ID"]) > 0) {
        $arFilter["BLOG_GROUP_ID"] = $arParams["GROUP_ID"];
    }
    if (strlen($arParams["CATEGORY"]) > 0) {
        $arFilter["CATEGORY_ID_F"] = array();
        $arFilterCategory = array("NAME" => $arParams["CATEGORY"]);
        $arSelectedFieldsCategory = array("ID");
        $dbCategory = CBlogCategory::GetList(array(), $arFilterCategory, false, false, $arSelectedFieldsCategory);
        while ($arCategory = $dbCategory->Fetch()) {
            $arFilter["CATEGORY_ID_F"][] = $arCategory["ID"];
        }
    }
    if ($USER->IsAdmin()) {
        unset($arFilter[">PERMS"]);
    }
    if (CModule::IncludeModule("socialnetwork") && IntVal($arParams["SOCNET_GROUP_ID"]) <= 0 && IntVal($arParams["USER_ID"]) <= 0) {
        unset($arFilter[">PERMS"]);
        $cacheSoNet = new CPHPCache();
        $cache_idSoNet = "blog_sonet_" . SITE_ID . "_" . $USER->GetID() . "_extranet";
        $cache_pathSoNet = "/" . SITE_ID . "/blog/sonet/";
        if ($arParams["CACHE_TIME"] > 0 && $cacheSoNet->InitCache($arParams["CACHE_TIME"], $cache_idSoNet, $cache_pathSoNet)) {
            $Vars = $cacheSoNet->GetVars();
            $arAvBlog = $Vars["arAvBlog"];