Пример #1
0
 public static function CanUserDeletePost($ID, $userID, $blogOwnerID, $groupOwnerID)
 {
     $ID = IntVal($ID);
     $userID = IntVal($userID);
     $blogOwnerID = IntVal($blogOwnerID);
     $groupOwnerID = IntVal($groupOwnerID);
     $blogModulePermissions = $GLOBALS["APPLICATION"]->GetGroupRight("blog");
     if ($blogModulePermissions >= "W") {
         return True;
     }
     $arPost = CBlogPost::GetByID($ID);
     if (empty($arPost)) {
         return False;
     }
     if ($groupOwnerID > 0) {
         $arBlogUser = CBlogUser::GetByID($userID, BLOG_BY_USER_ID);
         if ($arBlogUser && $arBlogUser["ALLOW_POST"] != "Y") {
             return False;
         }
         $perms = BLOG_PERMS_DENY;
         if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $groupOwnerID, "blog", "view_post")) {
             $perms = BLOG_PERMS_READ;
         }
         if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $groupOwnerID, "blog", "write_post")) {
             $perms = BLOG_PERMS_WRITE;
         }
         if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $groupOwnerID, "blog", "full_post")) {
             $perms = BLOG_PERMS_FULL;
         }
         if ($perms >= BLOG_PERMS_WRITE && $arPost["AUTHOR_ID"] == $userID) {
             return true;
         }
         if ($perms > BLOG_PERMS_WRITE) {
             return true;
         }
     } else {
         $arBlog = CBlog::GetByID($arPost["BLOG_ID"]);
         $arBlogUser = CBlogUser::GetByID($userID, BLOG_BY_USER_ID);
         if ($arBlogUser && $arBlogUser["ALLOW_POST"] != "Y") {
             return False;
         }
         $perms = BLOG_PERMS_DENY;
         if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $blogOwnerID, "blog", "view_post")) {
             $perms = BLOG_PERMS_READ;
         }
         if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $blogOwnerID, "blog", "write_post")) {
             $perms = BLOG_PERMS_WRITE;
         }
         if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $blogOwnerID, "blog", "full_post")) {
             $perms = BLOG_PERMS_FULL;
         }
         if ($perms >= BLOG_PERMS_WRITE && $arPost["AUTHOR_ID"] == $userID) {
             return true;
         }
         if ($perms > BLOG_PERMS_WRITE) {
             return true;
         }
     }
     return False;
 }
Пример #2
0
function OnAfterUserAuthorizeHandler(&$arFields)
{
    $f = fopen($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/md/log.txt', 'a+');
    global $USER;
    $rsUser = CUser::GetByID($USER->GetId());
    $arUser = $rsUser->Fetch();
    fwrite($f, "---start\n");
    if ($arUser['ID'] > 0 && $arUser['EXTERNAL_AUTH_ID'] == 'Facebook' && $arUser['UF_RULES'] != '1') {
        $facebook = new Facebook_Facebook(array('appId' => '447579571927341', 'secret' => '2f2cf9cd60f9e98d6cf3309e6b7bde5d'));
        $id = $arUser["XML_ID"];
        $user_info = $facebook->api('/' . $id . '?fields=id,name,first_name,middle_name,last_name,gender,birthday,email,picture');
        $props = array();
        if (!$arUser['PERSONAL_GENDER']) {
            if (isset($user_info['gender']) && $user_info['gender']) {
                $props['PERSONAL_GENDER'] = $user_info['gender'] == 'male' ? 'M' : 'F';
            }
        }
        if (!empty($props)) {
            $user = new CUser();
            $user->Update($arUser["ID"], $props);
        }
        CModule::IncludeModule("blog");
        $blogUser = CBlogUser::GetByID($USER->GetId(), BLOG_BY_USER_ID);
        $props = array();
        if (!$blogUser['AVATAR']) {
            if (isset($user_info['picture']) && $user_info['picture']) {
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, "http://graph.facebook.com/{$id}/picture?type=large");
                curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
                $output = curl_exec($ch);
                if ($output) {
                    $fileName = md5($user_info['picture']);
                    $fullPath = $_SERVER['DOCUMENT_ROOT'] . "/bitrix/cache/social_pictures/{$fileName}.jpg";
                    if (file_put_contents($fullPath, $output) !== false) {
                        $picture = CFile::MakeFileArray($fullPath);
                        $props['AVATAR'] = $picture;
                        $user = new CBlogUser();
                        $user->Update($blogUser["ID"], $props);
                        unlink($fullPath);
                    }
                }
            }
        }
    }
    fwrite($f, "---finish\n");
    fclose($f);
}
Пример #3
0
 public static function Add($arFields)
 {
     global $DB;
     $arFields1 = array();
     foreach ($arFields as $key => $value) {
         if (substr($key, 0, 1) == "=") {
             $arFields1[substr($key, 1)] = $value;
             unset($arFields[$key]);
         }
     }
     if (!CBlogCandidate::CheckFields("ADD", $arFields)) {
         return false;
     }
     $arInsert = $DB->PrepareInsert("b_blog_user2blog", $arFields);
     foreach ($arFields1 as $key => $value) {
         if (strlen($arInsert[0]) > 0) {
             $arInsert[0] .= ", ";
         }
         $arInsert[0] .= $key;
         if (strlen($arInsert[1]) > 0) {
             $arInsert[1] .= ", ";
         }
         $arInsert[1] .= $value;
     }
     $ID = False;
     if (strlen($arInsert[0]) > 0) {
         $strSql = "INSERT INTO b_blog_user2blog(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")";
         $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $ID = IntVal($DB->LastID());
     }
     if ($ID) {
         $arCandidat = CBlogCandidate::GetByID($ID);
         if ($arCandidat) {
             $arBlog = CBlog::GetByID($arCandidat["BLOG_ID"]);
             if (strlen($arBlog["AUTO_GROUPS"]) > 0) {
                 $arAutoGroups = unserialize($arBlog["AUTO_GROUPS"]);
                 if (is_array($arAutoGroups) && count($arAutoGroups) > 0) {
                     $arBlogUser = CBlogUser::GetByID($arCandidat["USER_ID"], BLOG_BY_USER_ID);
                     if (!$arBlogUser) {
                         CBlogUser::Add(array("USER_ID" => $arCandidat["USER_ID"], "=LAST_VISIT" => $GLOBALS["DB"]->GetNowFunction(), "=DATE_REG" => $GLOBALS["DB"]->GetNowFunction(), "ALLOW_POST" => "Y"));
                     }
                     CBlogUser::AddToUserGroup($arCandidat["USER_ID"], $arCandidat["BLOG_ID"], $arAutoGroups, "", BLOG_BY_USER_ID, BLOG_CHANGE);
                     CBlogCandidate::Delete($ID);
                 }
             }
         }
     }
     return $ID;
 }
Пример #4
0
 public function OnAfterUserAuthorizeHandler(&$arFields)
 {
     global $USER;
     $rsUser = CUser::GetByID($USER->GetId());
     $arUser = $rsUser->Fetch();
     $social = MH_Social_SocialFabric::getSocial($arUser['EXTERNAL_AUTH_ID'], $arUser["XML_ID"]);
     if ($arUser['ID'] > 0 && $arUser['UF_RULES'] != '1') {
         $props = array();
         if (!$arUser['PERSONAL_GENDER']) {
             $props['PERSONAL_GENDER'] = $social->getGender();
         }
         if (!$arUser['PERSONAL_BIRTHDAY']) {
             $props['PERSONAL_BIRTHDAY'] = $social->getBirthday();
         }
         if (!empty($props)) {
             $user = new CUser();
             $user->Update($arUser["ID"], $props);
         }
         CModule::IncludeModule("blog");
         $blogUser = CBlogUser::GetByID($arUser['ID'], BLOG_BY_USER_ID);
         if (!$blogUser || !$blogUser['AVATAR']) {
             $props = array('USER_ID' => $arUser['ID']);
             if ($path = $social->getPicture()) {
                 $picture = CFile::MakeFileArray($path);
                 $props['AVATAR'] = $picture;
                 $user = new CBlogUser();
                 if ($blogUser) {
                     $user->Update($blogUser["ID"], $props);
                 } else {
                     $user->Add($props);
                 }
                 unlink($path);
             }
         }
     }
 }
Пример #5
0
     }
 }
 $dbSearchUser = CUser::GetList($b = "LOGIN", $o = "ASC", array("LOGIN_EQUAL" => $friend));
 if (($arSearchUser = $dbSearchUser->Fetch()) && !in_array($arSearchUser["ID"], $arUserID)) {
     $arUserID[] = $arSearchUser["ID"];
 }
 if (count($arUserID) > 0) {
     for ($i = 0; $i < count($arUserID); $i++) {
         if ($arUserID[$i] != $arBlog["OWNER_ID"] && !in_array($arUserID[$i], $arFriendUsers)) {
             $dbCandidate = CBlogCandidate::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $arUserID[$i]));
             if ($dbCandidate->Fetch()) {
                 $okMessage .= str_replace("#NAME#", "[" . $arUserID[$i] . "] " . htmlspecialcharsex($friend), GetMessage("BLOG_BLOG_ADD_F_POS_ALREADY_WANT")) . ".<br />";
             } else {
                 if (CBlogCandidate::Add(array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $arUserID[$i]))) {
                     $okMessage .= str_replace("#NAME#", "[" . $arUserID[$i] . "] " . htmlspecialcharsex($friend), GetMessage("BLOG_BLOG_ADD_F_POS_ADDED")) . ".<br />";
                     $BlogUser = CBlogUser::GetByID($arUserID[$i], BLOG_BY_USER_ID);
                     $BlogUser = CBlogTools::htmlspecialcharsExArray($BlogUser);
                     $dbUser = CUser::GetByID($arUserID[$i]);
                     $arUser = $dbUser->GetNext();
                     $AuthorName = CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]);
                     $dbUser = CUser::GetByID($arBlog["OWNER_ID"]);
                     $arUserBlog = $dbUser->GetNext();
                     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");
                         }
                     }
                     $arMailFields = array("BLOG_ID" => $arBlog["ID"], "BLOG_NAME" => $arBlog["NAME"], "BLOG_URL" => $arBlog["URL"], "BLOG_ADR" => "http://" . $serverName . CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_BLOG"]), array("blog" => $arBlog["URL"])), "USER_ID" => $arUserID[$i], "USER" => $AuthorName, "USER_URL" => "http://" . $serverName . CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_USER"]), array("user_id" => $arUserID[$i])), "EMAIL_FROM" => COption::GetOptionString("main", "email_from", "*****@*****.**"));
                     $arF1 = $arF2 = $arMailFields;
Пример #6
0
 if ($dbComment->Fetch() && $arResult["Perm"] < BLOG_PERMS_FULL && !$bIntranetInstalled) {
     $arResult["COMMENT_ERROR"] = "<b>" . GetMessage("B_B_PC_COM_ERROR_EDIT") . "</b><br />" . GetMessage("B_B_PC_EDIT_ALREADY_COMMENTED");
 } else {
     if (!empty($_POST["attachedFilesRaw"]) && is_array($_POST["attachedFilesRaw"])) {
         CSocNetLogComponent::saveRawFilesToUF($_POST["attachedFilesRaw"], IsModuleInstalled("webdav") || IsModuleInstalled("disk") ? "UF_BLOG_COMMENT_FILE" : "UF_BLOG_COMMENT_DOC", $arFields);
     }
     if ($commentID = CBlogComment::Update($commentID, $arFields)) {
         BXClearCache(true, "/blog/comment/" . intval($arParams["ID"] / 100) . "/" . $arParams["ID"] . "/");
         $images = array();
         $res = CBlogImage::GetList(array(), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"], "COMMENT_ID" => $commentID, "IS_COMMENT" => "Y"));
         while ($aImg = $res->Fetch()) {
             $images[$aImg["ID"]] = $aImg["FILE_ID"];
         }
         $arParamsUpdateLog = array("PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"], "IMAGES" => $images);
         if (IntVal($user_id) > 0) {
             $arResult["BlogUser"] = CBlogUser::GetByID($user_id, BLOG_BY_USER_ID);
             $arResult["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["BlogUser"]);
             $dbUser = CUser::GetByID($user_id);
             $arResult["arUser"] = $dbUser->GetNext();
             $arResult["User"]["NAME"] = CBlogUser::GetUserName($arResult["BlogUser"]["ALIAS"], $arResult["arUser"]["NAME"], $arResult["arUser"]["LAST_NAME"], $arResult["arUser"]["LOGIN"]);
         }
         CBlogComment::UpdateLog($commentID, $arResult["BlogUser"], $arResult["User"], $arFields, $arPost, $arParamsUpdateLog);
         $res = CBlogImage::GetList(array(), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"], "IS_COMMENT" => "Y", "COMMENT_ID" => false, "<=TIMESTAMP_X" => ConvertTimeStamp(AddToTimeStamp(array("HH" => -3)), "FULL")));
         while ($aImg = $res->Fetch()) {
             CBlogImage::Delete($aImg["ID"]);
         }
         $commentUrl = CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "user_id" => $arBlog["OWNER_ID"]));
         $commentUrl .= strpos($commentUrl, "?") !== false ? "&" : "?";
         if (strlen($arFields["PUBLISH_STATUS"]) > 0 && $arFields["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH) {
             $arResult["MESSAGE"] = GetMessage("B_B_PC_MES_HIDDEN_EDITED");
         }
Пример #7
0
             $arSearch["USER_URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $Blog["OWNER_ID"]));
             $arSearch["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $Blog["URL"], "post_id" => $postID));
             if (strpos($arSearch["URL"], "?") !== false) {
                 $arSearch["URL"] .= "&";
             } else {
                 $arSearch["URL"] .= "?";
             }
             $arSearch["URL"] .= "commentId=" . substr($arSearch["ITEM_ID"], 1) . "#" . substr($arSearch["ITEM_ID"], 1);
         }
     } else {
         if (!empty($Blog)) {
             $arSearch["USER_URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $Blog["OWNER_ID"]));
         }
     }
     if ($where != "USER") {
         $arSearch["BlogUser"] = CBlogUser::GetByID($arSearch["PARAM2"], BLOG_BY_USER_ID);
         $arSearch["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arSearch["BlogUser"]);
         $dbUser = CUser::GetByID($arSearch["PARAM2"]);
         $arSearch["arUser"] = $dbUser->GetNext();
         $arSearch["AuthorName"] = CBlogUser::GetUserName($arSearch["BlogUser"]["ALIAS"], $arSearch["arUser"]["NAME"], $arSearch["arUser"]["LAST_NAME"], $arSearch["arUser"]["LOGIN"]);
     }
     $arSearch["FULL_DATE_CHANGE_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arSearch["FULL_DATE_CHANGE"], CSite::GetDateFormat("FULL")));
     $arResult["SEARCH_RESULT"][] = $arSearch;
 }
 if (count($arResult["SEARCH_RESULT"]) > 0) {
     if (strlen($arResult["~tags"]) > 0) {
         $arResult["ORDER_LINK"] = $APPLICATION->GetCurPageParam("tags=" . urlencode($arResult["tags"]) . "&where=" . urlencode($arResult["where"]), array("tags", "where", "how"));
     } else {
         $arResult["ORDER_LINK"] = $APPLICATION->GetCurPageParam("q=" . urlencode($arResult["q"]) . "&where=" . urlencode($arResult["where"]), array("q", "where", "how"));
     }
     if ($arResult["~how"] != "d") {
Пример #8
0
 function GetUserGroups($ID, $blogID, $joinStatus = "", $selectType = BLOG_BY_BLOG_USER_ID, $bUrl = false)
 {
     global $DB;
     $ID = IntVal($ID);
     $joinStatus = $joinStatus == "Y" || $joinStatus == "N" ? $joinStatus : "";
     $selectType = $selectType == BLOG_BY_USER_ID ? BLOG_BY_USER_ID : BLOG_BY_BLOG_USER_ID;
     if ($bUrl) {
         $bUrl = true;
     } else {
         $bUrl = false;
     }
     if (!$bUrl) {
         $blogID = IntVal($blogID);
     } else {
         $blogID = preg_replace("/[^a-zA-Z0-9_-]/is", "", Trim($blogID));
     }
     $varName = $selectType == BLOG_BY_USER_ID ? "BLOG_USER2GROUP1_CACHE_" . $blogID . "_" . $joinStatus . "_" . $ID . "_" . $bUrl : "BLOG_USER2GROUP_CACHE_" . $blogID . "_" . $joinStatus . "_" . $ID . "_" . $bUrl;
     if (isset($GLOBALS["BLOG_USER"][$varName]) && is_array($GLOBALS["BLOG_USER"][$varName])) {
         return $GLOBALS["BLOG_USER"][$varName];
     } else {
         $arGroups = array(1);
         if (isset($GLOBALS["USER"]) && is_object($GLOBALS["USER"]) && $GLOBALS["USER"]->IsAuthorized()) {
             $arGroups[] = 2;
         }
         if ($ID > 0 && strlen($blogID) > 0) {
             if ($selectType == BLOG_BY_BLOG_USER_ID) {
                 $arBlogUser = CBlogUser::GetByID($ID, $selectType);
                 $userID = $arBlogUser["USER_ID"];
             } else {
                 $userID = $ID;
             }
             $strSql = "SELECT UG.ID, UG.USER_ID, UG.BLOG_ID, UG.USER_GROUP_ID " . "FROM b_blog_user2user_group UG ";
             if ($bUrl) {
                 $strSql .= " INNER JOIN b_blog B ON (UG.BLOG_ID = B.ID AND B.URL='" . $DB->ForSql($blogID) . "') ";
             }
             $strSql .= " WHERE UG.USER_ID = " . $userID . " ";
             if (!$bUrl) {
                 $strSql .= "\tAND UG.BLOG_ID = " . $blogID . " ";
             }
             $dbResult = $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__);
             while ($arResult = $dbResult->Fetch()) {
                 $arGroups[] = IntVal($arResult["USER_GROUP_ID"]);
             }
         }
         if ($selectType == BLOG_BY_BLOG_USER_ID && !empty($arBlogUser)) {
             $GLOBALS["BLOG_USER"]["BLOG_USER2GROUP_CACHE_" . $blogID . "_" . $joinStatus . "_" . IntVal($arBlogUser["ID"]) . "_" . $bUrl] = $arGroups;
         }
         $GLOBALS["BLOG_USER"]["BLOG_USER2GROUP1_CACHE_" . $blogID . "_" . $joinStatus . "_" . IntVal($userID) . "_" . $bUrl] = $arGroups;
         return $arGroups;
     }
     return False;
 }
Пример #9
0
 function BuildRSS($ID, $type = "RSS .92", $numPosts = 10, $blogTemplate = "", $postTemplate = "", $userTemplate = "", $bSoNet = false, $arParams = array())
 {
     $ID = IntVal($ID);
     if ($ID <= 0 && $arParams["USE_SOCNET"] != "Y") {
         return false;
     }
     $numPosts = IntVal($numPosts);
     $type = strtolower(preg_replace("/[^a-zA-Z0-9.]/is", "", $type));
     if ($type != "rss2.0" && $type != "atom.03") {
         $type = "rss.92";
     }
     $rssText = False;
     $arBlog = CBlog::GetByID($ID);
     if ($arBlog && $arBlog["ACTIVE"] == "Y" && $arBlog["ENABLE_RSS"] == "Y" || $arParams["USE_SOCNET"] == "Y") {
         if (!empty($arBlog)) {
             $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]);
         }
         if ($arGroup["SITE_ID"] == SITE_ID || $arParams["USE_SOCNET"] == "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 ($bSoNet) {
                 if (IntVal($arParams["USER_ID"]) > 0) {
                     $dbUser = CUser::GetByID($arParams["USER_ID"]);
                     if ($arUser = $dbUser->Fetch()) {
                         $blogName = htmlspecialcharsbx(GetMessage("BLG_RSS_NAME_SONET", array("#AUTHOR_NAME#" => CUser::FormatName(CSite::GetNameFormat(false), $arUser, true))));
                         $blogURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($blogTemplate, array("user_id" => $arParams["USER_ID"])));
                     }
                 } else {
                     if ($arGroupSoNet = CSocNetGroup::GetByID($arParams["SOCNET_GROUP_ID"])) {
                         $blogName = htmlspecialcharsbx(GetMessage("BLG_RSS_NAME_SONET_GROUP", array("#GROUP_NAME#" => $arGroupSoNet["NAME"])));
                         $blogURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($blogTemplate, array("group_id" => $arParams["SOCNET_GROUP_ID"])));
                     }
                 }
                 $blogDescr = "";
             } else {
                 if (strlen($blogTemplate) > 0) {
                     $blogURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($blogTemplate, 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"]));
                 }
                 $blogName = htmlspecialcharsbx($arBlog["NAME"]);
                 $blogDescr = htmlspecialcharsbx($arBlog["DESCRIPTION"]);
             }
             $rssText = "";
             if ($type == "rss.92") {
                 $rssText .= "<" . "?xml version=\"1.0\" encoding=\"" . $charset . "\"?" . ">\n\n";
                 $rssText .= "<rss version=\".92\">\n";
                 $rssText .= " <channel>\n";
                 $rssText .= "\t<title>" . $blogName . "</title>\n";
                 $rssText .= "\t<link>" . $blogURL . "</link>\n";
                 $rssText .= "\t<description>" . $blogDescr . "</description>\n";
                 $rssText .= "\t<language>" . $language . "</language>\n";
                 $rssText .= "\t<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 .= "\t<title>" . $blogName . "</title>\n";
                 //$rssText .= "	<guid>".$blogURL."</guid>\n";
                 $rssText .= "\t<link>" . $blogURL . "</link>\n";
                 $rssText .= "\t<description>" . $blogDescr . "</description>\n";
                 $rssText .= "\t<language>" . $language . "</language>\n";
                 $rssText .= "\t<docs>http://backend.userland.com/rss2</docs>\n";
                 $rssText .= "\t<pubDate>" . $now . "</pubDate>\n";
                 $rssText .= "\n";
             } elseif ($type == "atom.03") {
                 $atomID = "tag:" . htmlspecialcharsbx($serverName) . "," . date("Y-m-d") . ":" . $ID;
                 $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>" . $blogURL . "</tagline>\n";
                 //$rssText .= "  <link href=\"".$blogURL."\"/>";
                 $rssText .= "  <id>" . $atomID . "</id>\n";
                 $rssText .= "  <link rel=\"alternate\" type=\"text/html\" href=\"" . $blogURL . "\" />\n";
                 $rssText .= "  <copyright>Copyright (c) " . $blogURL . "</copyright>\n";
                 $rssText .= "  <modified>" . $nowISO . "</modified>\n";
                 $rssText .= "\n";
             }
             $user_id = IntVal($GLOBALS["USER"]->GetID());
             if ($bSoNet) {
                 $postPerm = BLOG_PERMS_DENY;
                 if (IntVal($arParams["SOCNET_GROUP_ID"]) > 0) {
                     if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "view_post")) {
                         $postPerm = BLOG_PERMS_READ;
                     }
                     if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "write_post")) {
                         $postPerm = BLOG_PERMS_WRITE;
                     }
                     if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "full_post", CSocNetUser::IsCurrentUserModuleAdmin()) || $GLOBALS["APPLICATION"]->GetGroupRight("blog") >= "W") {
                         $postPerm = BLOG_PERMS_FULL;
                     }
                 } else {
                     if ($user_id == $arParams["USER_ID"]) {
                         $postPerm = BLOG_PERMS_FULL;
                     } elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_USER, $arParams["USER_ID"], "blog", "view_post")) {
                         $postPerm = BLOG_PERMS_READ;
                     }
                 }
             } else {
                 $postPerm = CBlog::GetBlogUserPostPerms($ID, IntVal($user_id));
             }
             if ($postPerm >= BLOG_PERMS_READ) {
                 $parser = new blogTextParser();
                 $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"]);
                 if ($bSoNet) {
                     $arFilter = array("<=DATE_PUBLISH" => ConvertTimeStamp(false, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "BLOG_ACTIVE" => "Y", "BLOG_GROUP_SITE_ID" => SITE_ID);
                     if (IntVal($arParams["SOCNET_GROUP_ID"]) > 0) {
                         $arFilter["SOCNET_GROUP_ID"] = $arParams["SOCNET_GROUP_ID"];
                     } else {
                         $arFilter["FOR_USER"] = $user_id;
                         $arFilter["AUTHOR_ID"] = $arParams["USER_ID"];
                     }
                 } else {
                     $arFilter = array("BLOG_ID" => $ID, "<=DATE_PUBLISH" => ConvertTimeStamp(false, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "MICRO" => "N");
                 }
                 CTimeZone::Disable();
                 $dbPosts = CBlogPost::GetList(array("DATE_PUBLISH" => "DESC"), $arFilter, false, array("nTopCount" => $numPosts), array("ID", "TITLE", "DETAIL_TEXT", "DATE_PUBLISH", "AUTHOR_ID", "AUTHOR_NAME", "AUTHOR_LAST_NAME", "BLOG_USER_ALIAS", "DETAIL_TEXT_TYPE", "CODE", "PATH"));
                 CTimeZone::Enable();
                 while ($arPost = $dbPosts->Fetch()) {
                     if (!$bSoNet) {
                         $perms = CBlogPost::GetBlogUserPostPerms($arPost["ID"], $GLOBALS["USER"]->IsAuthorized() ? $GLOBALS["USER"]->GetID() : 0);
                         if ($perms < BLOG_PERMS_READ) {
                             continue;
                         }
                     }
                     //$title = htmlspecialcharsEx($arPost["TITLE"]);
                     $title = str_replace(array("&", "<", ">", "\""), array("&amp;", "&lt;", "&gt;", "&quot;"), $arPost["TITLE"]);
                     $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost['ID'], "BLOG_ID" => $ID, "IS_COMMENT" => "N"));
                     while ($arImage = $res->Fetch()) {
                         $arImages[$arImage['ID']] = $arImage['FILE_ID'];
                     }
                     $arDate = ParseDateTime($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL", $arGroup["SITE_ID"]));
                     $date = date("r", mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
                     if (strlen($arPost["PATH"]) > 0) {
                         $url = htmlspecialcharsbx("http://" . $serverName . str_replace("#post_id#", CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), $arPost["PATH"]));
                     } elseif (strLen($postTemplate) > 0) {
                         $url = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($postTemplate, array("blog" => $arBlog["URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arParams["ALLOW_POST_CODE"]), "user_id" => IntVal($arParams["USER_ID"]) > 0 ? $arParams["USER_ID"] : $arBlog["OWNER_ID"], "group_id" => IntVal($arParams["SOCNET_GROUP_ID"]) > 0 ? $arParams["SOCNET_GROUP_ID"] : $arBlog["SOCNET_GROUP_ID"])));
                     } else {
                         $url = htmlspecialcharsbx("http://" . $serverName . CBlogPost::PreparePath($arBlog["URL"], $arPost["ID"], $arGroup["SITE_ID"]));
                     }
                     $category = htmlspecialcharsbx($arPost["CATEGORY_NAME"]);
                     $BlogUser = CBlogUser::GetByID($arPost["AUTHOR_ID"], BLOG_BY_USER_ID);
                     $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]);
                     $arUser = $dbUser->Fetch();
                     $author = htmlspecialcharsex(CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"], $arUser["SECOND_NAME"]));
                     if (strLen($userTemplate) > 0) {
                         $authorURL = htmlspecialcharsbx("http://" . $serverName . CComponentEngine::MakePathFromTemplate($userTemplate, array("user_id" => $arPost["AUTHOR_ID"])));
                     } else {
                         $authorURL = htmlspecialcharsbx("http://" . $serverName . CBlogUser::PreparePath($arPost["AUTHOR_ID"], $arGroup["SITE_ID"]));
                     }
                     if ($arPost["DETAIL_TEXT_TYPE"] == "html") {
                         $text = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "QUOTE" => "Y", "CODE" => "Y"), true, $arParserParams);
                     } else {
                         $text = $parser->convert_to_rss($arPost["DETAIL_TEXT"], $arImages, false, !$bSoNet, $arParserParams);
                     }
                     if (!$bSoNet) {
                         $text .= "<br /><a href=\"" . $url . "\">" . GetMessage("BLG_GB_RSS_DETAIL") . "</a>";
                     }
                     $text = "<![CDATA[" . $text . "]]>";
                     if ($type == "rss.92") {
                         $rssText .= "    <item>\n";
                         $rssText .= "      <title>" . $title . "</title>\n";
                         $rssText .= "      <description>" . $text . "</description>\n";
                         $rssText .= "      <link>" . $url . "</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>" . $url . "</link>\n";
                         $rssText .= "      <guid>" . $url . "</guid>\n";
                         $rssText .= "      <pubDate>" . $date . "</pubDate>\n";
                         if (strlen($category) > 0) {
                             $rssText .= "      <category>" . $category . "</category>\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);
                         $titleRel = htmlspecialcharsbx($arPost["TITLE"]);
                         $rssText .= "<entry>\n";
                         $rssText .= "  <title type=\"text/html\">" . $title . "</title>\n";
                         $rssText .= "  <link rel=\"alternate\" type=\"text/html\" href=\"" . $url . "\"/>\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 .= "  <link rel=\"related\" type=\"text/html\" href=\"" . $url . "\" title=\"" . $titleRel . "\"/>\n";
                         $rssText .= "  <author>\n";
                         $rssText .= "    <name>" . $author . "</name>\n";
                         $rssText .= "    <url>" . $authorURL . "</url>\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;
 }
Пример #10
0
     }
 }
 //Update categories & images
 if (IntVal($newID) > 0) {
     CBlogPostCategory::DeleteByPostID($newID);
     foreach ($CATEGORYtmp as $v) {
         CBlogPostCategory::Add(array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $newID, "CATEGORY_ID" => $v));
     }
     $DB->Query("UPDATE b_blog_image SET POST_ID=" . $newID . " WHERE BLOG_ID=" . $arBlog["ID"] . " AND POST_ID=0", true);
 }
 if (IntVal($newID) > 0 && strlen($arResult["ERROR_MESSAGE"]) <= 0) {
     if ($arFields["ACTION"] == "ADD") {
         $arResult["SUCCESS_MESSAGE"] = GetMessage("IDEA_NEW_MESSAGE_SUCCESS");
     }
     //Get Author Name
     $arResult["BlogUser"] = CBlogUser::GetByID($arFields["AUTHOR_ID"], BLOG_BY_USER_ID);
     $arResult["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["BlogUser"]);
     $arResult["arUser"] = CUser::GetByID($arFields["AUTHOR_ID"])->GetNext();
     $AuthorName = CBlogUser::GetUserName($arResult["BlogUser"]["~ALIAS"], $arResult["arUser"]["~NAME"], $arResult["arUser"]["~LAST_NAME"], $arResult["arUser"]["~LOGIN"]);
     $IdeaParser = new blogTextParser(false, $arParams["PATH_TO_SMILE"]);
     $arCategoryList = CIdeaManagment::getInstance()->Idea()->GetCategoryList();
     $arNotifyFields = array_merge($arFields, array("AUTHOR" => $AuthorName, "IDEA_TEXT" => $IdeaParser->convert4mail($arFields["DETAIL_TEXT"]), "SHOW_RATING" => $arParams["SHOW_RATING"], "RATING_TYPE_ID" => 'BLOG_POST', "RATING_ENTITY_ID" => $newID, "ID" => $newID, "TYPE" => "IDEA", "CATEGORY" => $arCategoryList[$arFields[CIdeaManagment::UFCategroryCodeField]]["NAME"], "FULL_PATH" => "http://" . $serverName . CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arFields["PATH"]), array("post_id" => $newID)), "PATH" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arFields["PATH"]), array("post_id" => $newID))));
     //Notifications
     $Notify = CIdeaManagment::getInstance()->Notification($arNotifyFields);
     //Socialnetwork notification
     $Notify->getSonetNotify()->Send();
     //Email notification
     $Notify->getEmailNotify()->Send();
     //Clear Caching and redirect
     BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/first_page/");
     BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/pages/");
Пример #11
0
 }
 $dbItem = CBlogPost::GetList(array("VIEWS" => "DESC", "NUM_COMMENTS" => "DESC"), $arFilter, false, false, $arSelectedFields);
 while ($arItem = $dbItem->Fetch()) {
     $arBlogs[$arItem["BLOG_ID"]]["VIEWS"] += $arItem["VIEWS"];
     $arBlogs[$arItem["BLOG_ID"]]["NUM_COMMENTS"] += $arItem["NUM_COMMENTS"];
 }
 if (!empty($arBlogs)) {
     uasort($arBlogs, create_function('$a, $b', 'if($a["VIEWS"] == $b["VIEWS"]) { if($a["NUM_COMMENTS"] < $b["NUM_COMMENTS"]) return 1; elseif($a["NUM_COMMENTS"] > $b["NUM_COMMENTS"]) return -1; else return 0;} return ($a["VIEWS"] < $b["VIEWS"])? 1 : -1;'));
     $i = 0;
     foreach ($arBlogs as $blogID => $info) {
         if ($i >= $arParams["BLOG_COUNT"] && IntVal($arParams["BLOG_COUNT"]) > 0) {
             continue;
         }
         $arBlog = CBlog::GetByID($blogID);
         $arBlog = CBlogTools::htmlspecialcharsExArray($arBlog);
         $arBlog["BlogUser"] = CBlogUser::GetByID($arBlog["OWNER_ID"], BLOG_BY_USER_ID);
         $arBlog["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arBlog["BlogUser"]);
         $dbUser = CUser::GetByID($arBlog["OWNER_ID"]);
         $arBlog["arUser"] = $dbUser->GetNext();
         $arBlog["AuthorName"] = CBlogUser::GetUserName($arBlog["BlogUser"]["ALIAS"], $arBlog["arUser"]["NAME"], $arBlog["arUser"]["LAST_NAME"], $arBlog["arUser"]["LOGIN"]);
         if (IntVal($arBlog["SOCNET_GROUP_ID"]) > 0) {
             $arBlog["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_BLOG"], array("blog" => $arBlog["URL"], "group_id" => $arBlog["SOCNET_GROUP_ID"]));
             $arBlog["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arBlog["SOCNET_GROUP_ID"]));
         } else {
             $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"]));
         }
         if ($i == 0) {
             $arBlog["FIRST_BLOG"] = "Y";
         }
         $i++;
Пример #12
0
     $Vars = $cache->GetVars();
     CBitrixComponentTemplate::ApplyCachedData($Vars["templateCachedData"]);
     $arResult = $Vars["arResult"];
     $cache->Output();
 } else {
     if ($arParams["CACHE_TIME"] > 0) {
         $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
     }
     if ($arBlog = CBlog::GetByUrl($arParams["BLOG_URL"], $arParams["GROUP_ID"])) {
         if ($arBlog["ACTIVE"] == "Y") {
             $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]);
             if ($arGroup["SITE_ID"] == SITE_ID) {
                 $arBlog["Group"] = $arGroup;
                 $arResult = $arBlog;
                 $arResult["urlToBlog"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("blog" => $arBlog["URL"]));
                 $arResult["arUserBlog"] = CBlogUser::GetByID($arBlog["OWNER_ID"], BLOG_BY_USER_ID);
                 $arResult["arUserBlog"] = CBlogTools::htmlspecialcharsExArray($arResult["arUserBlog"]);
                 $dbUser = CUser::GetByID($arBlog["OWNER_ID"]);
                 $arResult["arUser"] = $dbUser->GetNext();
                 $arResult["AuthorName"] = CBlogUser::GetUserName($arResult["arUserBlog"]["ALIAS"], $arResult["arUser"]["NAME"], $arResult["arUser"]["LAST_NAME"], $arResult["arUser"]["LOGIN"]);
                 $arResult["urlToAuthor"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arBlog["OWNER_ID"]));
                 $arResult["Avatar"] = CFile::GetFileArray($arResult["arUserBlog"]["AVATAR"]);
                 if (!empty($arResult["Avatar"])) {
                     $arResult["Avatar_FORMATED"] = CFile::ShowImage($arResult["Avatar"]["SRC"], 100, 100, 'title="' . $arResult["AuthorName"] . '" border="0"');
                 }
                 $arCategoryAll = array();
                 //$dbCategory = CBlogCategory::GetList(Array("NAME"=>"ASC"), Array("BLOG_ID"=>$arBlog["ID"]));
                 $dbCategory = CBlogPostCategory::GetList(array("NAME" => "ASC"), array("BLOG_ID" => $arBlog["ID"], "POST_PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH), array("CATEGORY_ID", "NAME"), false, array("POST_ID", "BLOG_ID", "NAME", "CATEGORY_ID"));
                 while ($arCategory = $dbCategory->GetNext()) {
                     if ($arParams["CATEGORY_ID"] == $arCategory["CATEGORY_ID"]) {
                         $arCategory["SELECTED"] = "Y";
Пример #13
0
     $arImages[$arImage['ID']] = $arImage['FILE_ID'];
 }
 if ($arResult["postPreview"]["POST_MESSAGE_TYPE"] == "html" && $arResult["allowHTML"] == "Y") {
     $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y");
     if ($arResult["allowVideo"] != "Y") {
         $arAllow["VIDEO"] = "N";
     }
     $arResult["postPreview"]["textFormated"] = $p->convert($arResult["postPreview"]["~DETAIL_TEXT"], false, $arImages, $arAllow, $arParserParams);
 } else {
     $arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y");
     if ($arResult["allowVideo"] != "Y") {
         $arAllow["VIDEO"] = "N";
     }
     $arResult["postPreview"]["textFormated"] = $p->convert($arResult["postPreview"]["DETAIL_TEXT"], false, $arImages, $arAllow, $arParserParams);
 }
 $arResult["postPreview"]["BlogUser"] = CBlogUser::GetByID($arResult["UserID"], BLOG_BY_USER_ID);
 $arResult["postPreview"]["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["postPreview"]["BlogUser"]);
 $dbUser = CUser::GetByID($arResult["UserID"]);
 $arResult["postPreview"]["arUser"] = $dbUser->GetNext();
 $arResult["postPreview"]["AuthorName"] = CBlogUser::GetUserName($arResult["postPreview"]["BlogUser"]["ALIAS"], $arResult["postPreview"]["arUser"]["NAME"], $arResult["postPreview"]["arUser"]["LAST_NAME"], $arResult["postPreview"]["arUser"]["LOGIN"]);
 $arResult["postPreview"]["BlogUser"]["AVATAR_file"] = CFile::GetFileArray($arResult["postPreview"]["BlogUser"]["AVATAR"]);
 if ($arResult["postPreview"]["BlogUser"]["AVATAR_file"] !== false) {
     $arResult["postPreview"]["BlogUser"]["Avatar_resized"] = CFile::ResizeImageGet($arResult["postPreview"]["BlogUser"]["AVATAR_file"], array("width" => 100, "height" => 100), BX_RESIZE_IMAGE_EXACT, false);
     $arResult["postPreview"]["BlogUser"]["AVATAR_img"] = CFile::ShowImage($arResult["postPreview"]["BlogUser"]["Avatar_resized"]["src"], 100, 100, "border=0 align='right'");
 }
 if (strlen($arResult["PostToShow"]["CategoryText"]) > 0) {
     $arCatTmp = explode(",", $arResult["PostToShow"]["CategoryText"]);
     if (is_array($arCatTmp)) {
         foreach ($arCatTmp as $v) {
             $arResult["postPreview"]["Category"][] = array("NAME" => htmlspecialcharsbx(trim($v)));
         }
Пример #14
0
 }
 $dbUser = CUser::GetByID($arParams["ID"]);
 if ($arUser = $dbUser->GetNext()) {
     $arResult["User"] = $arUser;
     if ($arBlog = CBlog::GetByUrl($arParams["BLOG_URL"], $arParams["GROUP_ID"])) {
         if ($arBlog["ACTIVE"] == "Y") {
             $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]);
             if ($arGroup["SITE_ID"] == SITE_ID) {
                 $arResult["Blog"] = $arBlog;
                 if (CBlog::CanUserManageBlog($arBlog["ID"], IntVal($USER->GetID()))) {
                     if ($arParams["SET_TITLE"] == "Y") {
                         $APPLICATION->SetTitle(str_replace("#NAME#", $arBlog["NAME"], GetMessage("B_B_USE_TITLE_BLOG")));
                     }
                     $errorMessage = "";
                     $okMessage = "";
                     $arBlogUser = CBlogUser::GetByID($arUser["ID"], BLOG_BY_USER_ID);
                     $arBlogUser = CBlogTools::htmlspecialcharsExArray($arBlogUser);
                     $arResult["BlogUser"] = $arBlogUser;
                     if ($GLOBALS["user_action"] == "Y" && check_bitrix_sessid()) {
                         if (strlen($GLOBALS["cancel"]) > 0) {
                             LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SETTINGS"], array("blog" => $arBlog["URL"])));
                         }
                         if (empty($arBlogUser)) {
                             CBlogUser::Add(array("USER_ID" => $arUser["ID"], "=LAST_VISIT" => $DB->GetNowFunction(), "=DATE_REG" => $DB->GetNowFunction(), "ALLOW_POST" => "Y"));
                         }
                         CBlogUser::AddToUserGroup($arUser["ID"], $arBlog["ID"], $GLOBALS["add2groups"], "", BLOG_BY_USER_ID, BLOG_CHANGE);
                         $dbCandidate = CBlogCandidate::GetList(array(), array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $arUser["ID"]));
                         if ($arCandidate = $dbCandidate->Fetch()) {
                             CBlogCandidate::Delete($arCandidate["ID"]);
                         }
                         LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER_SETTINGS"], array("blog" => $arBlog["URL"])));
Пример #15
0
					$arUserGroups = array();
					$dbUserGroups = CUser::GetUserGroupEx($arUser['ID']);
					while ($arG = $dbUserGroups->Fetch())
					{
						if (strlen($arG["STRING_ID"]) > 0)
							$arUserGroups[] = $arG["STRING_ID"];
						elseif ($arG["GROUP_ID"] == 1)
							$arUserGroups[] = "administrators";
						elseif ($arG["GROUP_ID"] == 2)
							$arUserGroups[] = "everyone";
					}
					$arSaveUser["GROUP_ID"] = $arUserGroups;

					if (CModule::IncludeModule("blog"))
					{
						$arBlogUser = CBlogUser::GetByID($arUser['ID'], BLOG_BY_USER_ID);
						if (is_array($arBlogUser) && $arBlogUser["AVATAR"] > 0)
							$arSaveUser["BLOG_AVATAR"] = CFile::GetPath($arBlogUser["AVATAR"]);
					}

					if (CModule::IncludeModule("forum"))
					{
						$arForumUser = CForumUser::GetByID($arUser['ID'], BLOG_BY_USER_ID);
						if (is_array($arForumUser) && $arForumUser["AVATAR"] > 0)
							$arSaveUser["FORUM_AVATAR"] = CFile::GetPath($arForumUser["AVATAR"]);
					}

					$oResponse->status = "200 OK";
					$oResponse->arParameters['USER_INFO'] = $arSaveUser;
					if (defined("FORMAT_DATE"))
						$oResponse->arParameters['FORMAT_DATE'] = FORMAT_DATE;
Пример #16
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
IncludeTemplateLangFile(__FILE__);
$strErrorMessage = "";
$BLOG_USER_ID = intval($_POST["BLOG_USER_ID"]);
if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["save"] != "" && check_bitrix_sessid()) {
    if (CModule::IncludeModule("blog")) {
        if ($BLOG_USER_ID <= 0) {
            $BLOG_USER_ID = CBlogUser::Add(array("USER_ID" => $USER->GetID(), "=LAST_VISIT" => $GLOBALS["DB"]->GetNowFunction(), "=DATE_REG" => $GLOBALS["DB"]->GetNowFunction(), "ALLOW_POST" => "Y"));
        }
        $BlogUser = CBlogUser::GetByID($BLOG_USER_ID);
        if ($BlogUser && ($USER->GetID() == $BlogUser["USER_ID"] || $USER->IsAdmin())) {
            $arPICTURE = $_FILES["BLOG_USER_AVATAR"];
            $arPICTURE["old_file"] = $BlogUser["AVATAR"];
            $arPICTURE["del"] = $_POST["BLOG_USER_AVATAR_del"];
            $arHobbyDB = array();
            $arHobby = explode(",", $_POST["BLOG_USER_INTERESTS"]);
            foreach ($arHobby as $Hobby) {
                $Hobby = trim($Hobby);
                $arHobbyDB[] = $Hobby;
            }
            $arHobbyDB = array_unique($arHobbyDB);
            if (count($arHobbyDB) > 0) {
                $Hobby = implode(", ", $arHobbyDB);
            } else {
                $Hobby = "";
            }
            $arFields = array("ALIAS" => $_POST["BLOG_USER_ALIAS"], "DESCRIPTION" => $_POST["BLOG_USER_DESCRIPTION"], "AVATAR" => $arPICTURE, "INTERESTS" => $Hobby);
Пример #17
0
                                CEvent::Send("NEW_BLOG_COMMENT", SITE_ID, $arMailFields);
                            }
                        }
                    }
                    LocalRedirect($urlToPost . "#" . $commmentId);
                }
            } else {
                if ($e = $APPLICATION->GetException()) {
                    echo ShowError(GetMessage("B_B_PC_COM_ERROR") . " " . $e->GetString());
                }
                if (strlen($strErrorMessage) > 0) {
                    echo ShowError(GetMessage("B_B_PC_COM_ERROR") . " " . $strErrorMessage);
                }
                $user_id = $USER->GetID();
                if (IntVal($user_id) > 0) {
                    $BlogUser = CBlogUser::GetByID($user_id, BLOG_BY_USER_ID);
                    $dbUser = CUser::GetByID($user_id);
                    $arUser = $dbUser->Fetch();
                    $User["NAME"] = CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]);
                    $User["ID"] = $user_id;
                }
                ?>
						<table width="100%" cellpadding="0" cellspacing="1" border="0" class="blogtableborder">
						<form method="POST" name="comment" enctype="multipart/form-data" action="">
						<tr>
							<td>
								<table cellspacing="0" cellpadding="3" width="100%" class="blogtablebody" border="0">
								<?php 
                echo bitrix_sessid_post();
                ?>
								<input type="hidden" name="parentId" value="<?php 
Пример #18
0
    }
    if ($strError == '') {
        if ($arParams['SEND_INFO'] == 'Y') {
            $obUser->SendUserInfo($arResult["ID"], SITE_ID, GetMessage("ACCOUNT_UPDATE"), true);
        }
        $bOk = true;
    }
}
$rsUser = CUser::GetByID($arResult["ID"]);
if (!($arResult["arUser"] = $rsUser->GetNext(false))) {
    $arResult["ID"] = 0;
}
if (CModule::IncludeModule("blog")) {
    $arResult["INCLUDE_BLOG"] = "Y";
    $arResult["arBlogUser"] = array();
    $arBlg = CBlogUser::GetByID($arResult["ID"], BLOG_BY_USER_ID);
    if (is_array($arBlg)) {
        foreach ($arBlg as $key => $val) {
            $arResult["arBlogUser"]["~" . $key] = $val;
            $arResult["arBlogUser"][$key] = htmlspecialcharsbx($val);
        }
    }
    if (!isset($arResult["arBlogUser"]["ALLOW_POST"]) || $arResult["arBlogUser"]["ALLOW_POST"] != "Y" && $arResult["arBlogUser"]["ALLOW_POST"] != "N") {
        $arResult["arBlogUser"]["ALLOW_POST"] = "Y";
    }
}
if (CModule::IncludeModule("forum")) {
    $arResult["INCLUDE_FORUM"] = "Y";
    $rsForumUser = CForumUser::GetList(array(), array("USER_ID" => $arResult["ID"]));
    $arResult["arForumUser"] = $rsForumUser->GetNext(false);
    if (!isset($arResult["arForumUser"]["ALLOW_POST"]) || $arResult["arForumUser"]["ALLOW_POST"] != "Y" && $arResult["arForumUser"]["ALLOW_POST"] != "N") {
Пример #19
0
	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."&amp;";
							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("&amp;", "&lt;", "&gt;", "&quot;"),
								$title);
							*/
							//$text1 = HTMLToTxt($text, "", Array("\&nbsp;"), 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;
	}
Пример #20
0
 function Update($ID, $arFields)
 {
     global $DB;
     $ID = IntVal($ID);
     $arFields1 = array();
     foreach ($arFields as $key => $value) {
         if (substr($key, 0, 1) == "=") {
             $arFields1[substr($key, 1)] = $value;
             unset($arFields[$key]);
         }
     }
     if (!CBlogUser::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     $strUpdate = $DB->PrepareUpdate("b_blog_user", $arFields, "blog/avatar");
     foreach ($arFields1 as $key => $value) {
         if (strlen($strUpdate) > 0) {
             $strUpdate .= ", ";
         }
         $strUpdate .= $key . "=" . $value . " ";
     }
     if (strlen($strUpdate) > 0) {
         $arUser = CBlogUser::GetByID($ID, BLOG_BY_BLOG_USER_ID);
         $strSql = "UPDATE b_blog_user SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " ";
         $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         unset($GLOBALS["BLOG_USER_CACHE_" . $ID]);
         unset($GLOBALS["BLOG_USER1_CACHE_" . $arUser["USER_ID"]]);
     } else {
         $ID = false;
     }
     if ($ID && !(count($arFields1) == 1 && strlen($arFields1["LAST_VISIT"]) > 0)) {
         if (CModule::IncludeModule("search")) {
             $arBlogUser = CBlogUser::GetByID($ID);
             $dbUser = CUser::GetByID($arBlogUser["USER_ID"]);
             $arUser = $dbUser->Fetch();
             $arBlog = CBlog::GetByOwnerID($arBlogUser["USER_ID"]);
             if ($arBlog) {
                 $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]);
                 $arPostSite = array($arGroup["SITE_ID"] => CBlogUser::PreparePath($arBlogUser["USER_ID"], $arGroup["SITE_ID"]));
             } else {
                 $arPostSite = array(SITE_ID => CBlogUser::PreparePath($arBlogUser["USER_ID"], SITE_ID));
             }
             if (strlen($arBlogUser["LAST_VISIT"]) <= 0) {
                 $arBlogUser["LAST_VISIT"] = ConvertTimeStamp(false, "FULL", false);
             }
             $arSearchIndex = array("SITE_ID" => $arPostSite, "LAST_MODIFIED" => $arBlogUser["LAST_VISIT"], "PARAM1" => "USER", "PARAM2" => $arBlogUser["USER_ID"], "PERMISSIONS" => array(2), "TITLE" => CBlogUser::GetUserName($arBlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]), "BODY" => blogTextParser::killAllTags($arBlogUser["INTERESTS"] . " " . $arBlogUser["DESCRIPTION"]));
             CSearch::Index("blog", "U" . $ID, $arSearchIndex);
         }
     }
     return $ID;
 }
Пример #21
0
     if (count($arParams["POST_PROPERTY_LIST"]) > 0) {
         foreach ($arPostFields as $FIELD_NAME => $arPostField) {
             if (!in_array($FIELD_NAME, $arParams["POST_PROPERTY_LIST"])) {
                 continue;
             }
             $arPostField["EDIT_FORM_LABEL"] = strLen($arPostField["EDIT_FORM_LABEL"]) > 0 ? $arPostField["EDIT_FORM_LABEL"] : $arPostField["FIELD_NAME"];
             $arPostField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arPostField["EDIT_FORM_LABEL"]);
             $arPostField["~EDIT_FORM_LABEL"] = $arPostField["EDIT_FORM_LABEL"];
             $arPost["POST_PROPERTIES"]["DATA"][$FIELD_NAME] = $arPostField;
         }
     }
     if (!empty($arPost["POST_PROPERTIES"]["DATA"])) {
         $arPost["POST_PROPERTIES"]["SHOW"] = "Y";
     }
 }
 $arPost["BlogUser"] = CBlogUser::GetByID($arPost["AUTHOR_ID"], BLOG_BY_USER_ID);
 $arPost["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arPost["BlogUser"]);
 $dbUser = CUser::GetByID($arPost["AUTHOR_ID"]);
 $arPost["arUser"] = $dbUser->GetNext();
 $arPost["AuthorName"] = CBlogUser::GetUserName($arPost["BlogUser"]["ALIAS"], $arPost["arUser"]["NAME"], $arPost["arUser"]["LAST_NAME"], $arPost["arUser"]["LOGIN"]);
 if (preg_match("/(\\[CUT\\])/i", $arPost["DETAIL_TEXT"]) || preg_match("/(<CUT>)/i", $arPost["DETAIL_TEXT"])) {
     $arPost["CUT"] = "Y";
 }
 if (strlen($arPost["CATEGORY_ID"]) > 0) {
     $arCategory = explode(",", $arPost["CATEGORY_ID"]);
     foreach ($arCategory as $v) {
         if (IntVal($v) > 0) {
             $arCatTmp = CBlogTools::htmlspecialcharsExArray(CBlogCategory::GetByID($v));
             $arCatTmp["urlToCategory"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG_CATEGORY"], array("blog" => $arBlog["URL"], "category_id" => $v));
             $arPost["Category"][] = $arCatTmp;
         }
Пример #22
0
             $arFields['DETAIL_TEXT'] = str_replace("[IMG ID={$imgID}]", "", $arFields['DETAIL_TEXT']);
         } else {
             CBlogImage::Update($imgID, array("TITLE" => $imgTitle));
         }
     }
 }
 if ($ID > 0) {
     // Проверяем: новая запись или изменение старой
     $newID = CBlogPost::Update($ID, $arFields);
 } else {
     $arFields['=DATE_CREATE'] = $DB->GetNowFunction();
     $arFields['AUTHOR_ID'] = $USER_ID;
     $arFields['BLOG_ID'] = $BLOG_ID;
     $newID = CBlogPost::Add($arFields);
     if ($newID && $arBlog['EMAIL_NOTIFY'] == 'Y' && $USER_ID != $arBlog['OWNER_ID']) {
         $BlogUser = CBlogUser::GetByID($USER_ID, BLOG_BY_USER_ID);
         $res = CUser::GetByID($arBlog['OWNER_ID']);
         $arOwner = $res->Fetch();
         $dbUser = CUser::GetByID($USER_ID);
         $arUser = $dbUser->Fetch();
         $AuthorName = CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]);
         CEvent::Send("NEW_BLOG_MESSAGE", SITE_ID, array("BLOG_ID" => $BLOG_ID, "BLOG_NAME" => $arBlog['NAME'], "BLOG_URL" => $arBlog['URL'], "MESSAGE_TITLE" => $_POST['POST_TITLE'], "MESSAGE_TEXT" => $_POST['POST_MESSAGE'], "MESSAGE_DATE" => $DATE_PUBLISH, "MESSAGE_PATH" => "http://" . (COption::GetOptionString("main", "server_name") . $sBlogPath . "/" . ($is404 ? $arBlog['URL'] . "/" . $newID . ".php" : "post.php?blog=" . $arBlog['URL'] . "&post_id=" . $newID)), "AUTHOR" => $AuthorName, "EMAIL_FROM" => COption::GetOptionString("main", "email_from", "*****@*****.**"), "EMAIL_TO" => $arOwner['EMAIL']));
     }
 }
 if ($newID > 0) {
     $DB->Query("UPDATE b_blog_image SET POST_ID='{$newID}' WHERE BLOG_ID={$BLOG_ID} AND POST_ID=0", true);
     if (strlen($TRACKBACK) > 0) {
         $arPingUrls = explode("\n", $TRACKBACK);
         CBlogTrackback::SendPing($newID, $arPingUrls);
     }
     BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog['URL'] . "/first_page/");
Пример #23
0
        $socnetPerms = array("U1", "G2");
        CSocNetLog::Update($logID, array("TMP_ID" => $logID));
        CSocNetLogRights::DeleteByLogID($logID);
        CSocNetLogRights::Add($logID, $socnetPerms);
    }
}
foreach ($categoryID as $v) {
    CBlogPostCategory::Add(array("BLOG_ID" => $blogID, "POST_ID" => $postID, "CATEGORY_ID" => $v));
}
$arBlogCommentFields = array("TITLE" => GetMessage("BLOG_DEMO_COMMENT_TITLE"), "POST_TEXT" => GetMessage("BLOG_DEMO_COMMENT_BODY"), "BLOG_ID" => $blogID, "POST_ID" => $postID, "PARENT_ID" => 0, "AUTHOR_ID" => 1, "DATE_CREATE" => ConvertTimeStamp(false, "FULL"), "AUTHOR_IP" => "192.168.0.108");
$commmentId = CBlogComment::Add($arBlogCommentFields);
if (CModule::IncludeModule("socialnetwork")) {
    $arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "N");
    $text4message = $parserBlog->convert($arBlogCommentFields["POST_TEXT"], false, array(), $arAllow);
    $text4mail = $parserBlog->convert4mail($arBlogCommentFields["POST_TEXT"]);
    $arBlogUser = CBlogUser::GetByID(1, BLOG_BY_USER_ID);
    $arBlogUser = CBlogTools::htmlspecialcharsExArray($arBlogUser);
    $AuthorName = CBlogUser::GetUserName($arBlogUser["~ALIAS"], $arUser["~NAME"], $arUser["~LAST_NAME"], $arUser["~LOGIN"]);
    $commentUrl = CComponentEngine::MakePathFromTemplate(WIZARD_SITE_DIR . "company/personal/user/#user_id#/blog/#post_id#/", array("post_id" => $postID, "user_id" => 1));
    if (strpos($commentUrl, "?") !== false) {
        $commentUrl .= "&";
    } else {
        $commentUrl .= "?";
    }
    $commentUrl .= "commentId=" . $commmentId . "#" . $commmentId;
    $arSoFields = array("ENTITY_TYPE" => "U", "ENTITY_ID" => 1, "EVENT_ID" => "blog_comment", "=LOG_DATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "URL" => $commentUrl, "MODULE_ID" => false, "SOURCE_ID" => $commmentId, "USER_ID" => 1, "LOG_ID" => $logID, "RATING_TYPE_ID" => "BLOG_COMMENT", "RATING_ENTITY_ID" => intval($commmentId));
    CSocNetLogComments::Add($arSoFields);
}
//CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH."/community/index.php", Array("SONET_GROUP_ID" => $SocNetGroupID));
CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/company/personal.php", array("BLOG_GROUP_ID" => $SocNetGroupID));
CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/index_b24.php", array("BLOG_GROUP_ID" => $SocNetGroupID));
Пример #24
0
 $p = new blogTextParser(false, $arParams["PATH_TO_SMILE"]);
 $arParserParams = array("imageWidth" => $arParams["IMAGE_MAX_WIDTH"], "imageHeight" => $arParams["IMAGE_MAX_HEIGHT"]);
 do {
     $arResult["Comments"][$arComment["ID"]] = array("ID" => $arComment["ID"], "PARENT_ID" => $arComment["PARENT_ID"]);
     $arComment["ShowIP"] = $arResult["ShowIP"];
     if (empty($resComments[IntVal($arComment["PARENT_ID"])])) {
         $resComments[IntVal($arComment["PARENT_ID"])] = array();
         if (strlen($arResult["firstLevel"]) <= 0) {
             $arResult["firstLevel"] = IntVal($arComment["PARENT_ID"]);
         }
     }
     if (IntVal($arComment["AUTHOR_ID"]) > 0) {
         if (empty($arResult["USER_CACHE"][$arComment["AUTHOR_ID"]])) {
             $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";
Пример #25
0
                 $DB->Rollback();
                 if ($e = $APPLICATION->GetException()) {
                     $strErrorMessage .= $e->GetString();
                 }
             }
         } else {
             $strErrorMessage .= GetMessage("B_B_PU_NO_RIGHTS") . "<br />";
         }
     }
     if (strlen($strErrorMessage) <= 0) {
         LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arParams["ID"])));
     } else {
         $arResult["ERROR_MESSAGE"] = $strErrorMessage;
     }
 }
 $arResult["BlogUser"] = CBlogUser::GetByID($arParams["ID"], BLOG_BY_USER_ID);
 $arResult["BlogUser"] = CBlogTools::htmlspecialcharsExArray($arResult["BlogUser"]);
 $arResult["arSex"] = array("M" => GetMessage("B_B_USER_SEX_M"), "F" => GetMessage("B_B_USER_SEX_F"));
 $arResult["userName"] = CBlogUser::GetUserNameEx($arResult["arUser"], $arResult["BlogUser"], $arParams);
 $arResult["User"] = $arResult["arUser"];
 $arResult["BlogUser"]["LAST_VISIT_FORMATED"] = FormatDate($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($arResult["BlogUser"]["LAST_VISIT"], CSite::GetDateFormat("FULL")));
 foreach ($arResult["BlogUser"] as $k => $v) {
     $arResult["User"][$k] = $v;
 }
 if ($arResult["bEdit"] == "Y") {
     $arResult["User"]["ALIAS"] = htmlspecialcharsbx($_POST["ALIAS"]);
     $arResult["User"]["DESCRIPTION"] = htmlspecialcharsbx($_POST["DESCRIPTION"]);
     $arResult["User"]["PERSONAL_WWW"] = htmlspecialcharsbx($_POST["PERSONAL_WWW"]);
     $arResult["User"]["PERSONAL_GENDER"] = htmlspecialcharsbx($_POST["PERSONAL_GENDER"]);
     $arResult["User"]["PERSONAL_BIRTHDAY"] = htmlspecialcharsbx($_POST["PERSONAL_BIRTHDAY"]);
     $arResult["User"]["INTERESTS"] = htmlspecialcharsbx($_POST["INTERESTS"]);
Пример #26
0
 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;
         }
     }
 }
<?php

$blogWarningTmp = "";
if (CModule::IncludeModule("blog") && check_bitrix_sessid()) {
    $arblogFields = array("ALIAS" => $blog_ALIAS, "DESCRIPTION" => $blog_DESCRIPTION, "INTERESTS" => $blog_INTERESTS, "AVATAR" => $_FILES["blog_AVATAR"]);
    $arblogFields["AVATAR"]["del"] = $blog_AVATAR_del;
    if ($USER->IsAdmin()) {
        $arblogFields["ALLOW_POST"] = $blog_ALLOW_POST == "Y" ? "Y" : "N";
    }
    $ar_res = CBlogUser::GetByID($ID, BLOG_BY_USER_ID);
    if ($ar_res) {
        $arblogFields["AVATAR"]["old_file"] = $ar_res["AVATAR"];
        $BLOG_USER_ID = IntVal($ar_res["ID"]);
        $BLOG_USER_ID1 = CBlogUser::Update($BLOG_USER_ID, $arblogFields);
        $blog_res = IntVal($BLOG_USER_ID1) > 0;
    } else {
        $arblogFields["USER_ID"] = $ID;
        $arblogFields["~DATE_REG"] = CDatabase::CurrentTimeFunction();
        $BLOG_USER_ID = CBlogUser::Add($arblogFields);
        $blog_res = IntVal($BLOG_USER_ID) > 0;
    }
}
Пример #28
0
    function GetUserInfo($params)
    {
        global $USER;
        $user = CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"]);
        $password = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]);
        if (CBlogMetaWeblog::Authorize($user, $password)) {
            $result = '';
            $userId = $USER->GetID();
            $dbUser = CUser::GetByID($userId);
            if ($arUser = $dbUser->Fetch()) {
                $BlogUser = CBlogUser::GetByID($userId, BLOG_BY_USER_ID);
                if (strlen($BlogUser["ALIAS"]) > 0) {
                    $nick = htmlspecialcharsEx($BlogUser["ALIAS"]);
                } else {
                    $nick = htmlspecialcharsEx($arUser["LOGIN"]);
                }
                $result .= '
						<value>
							<struct>
								<member>
									<name>nickname</name>
									<value>' . $nick . '</value>
								</member>
								<member>
									<name>email</name>
									<value>' . htmlspecialcharsEx($arUser["EMAIL"]) . '</value>
								</member>
								<member>
									<name>lastname</name>
									<value>' . htmlspecialcharsEx($arUser["LAST_NAME"]) . '</value>
								</member>
								<member>
									<name>firstname</name>
									<value>' . htmlspecialcharsEx($arUser["NAME"]) . '</value>
								</member>
							</struct>
						</value>
					';
            }
            if (strlen($result) > 0) {
                return '<params>
							<param>
								<value>
									<array>
										<data>' . $result . '</data>
									</array>
								</value>
							</param>
						</params>';
            } else {
                return '<fault>
					<value>
						<struct>
							<member>
								<name>faultCode</name>
								<value><int>4</int></value>
							</member>
							<member>
								<name>faultString</name>
								<value><string>User not found.</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>';
        }
    }
Пример #29
0
                //вывод сообщения
                $dbPost = CBlogPost::GetList($SORT, $arFilter, array("ID", "DATE_PUBLISH", "MAX" => "PERMS"), array("bDescPageNumbering" => true, "nPageSize" => $MESSAGE_COUNT, "bShowAll" => false));
                if ($arPost = $dbPost->NavNext(false)) {
                    do {
                        $CurPost = CBlogPost::GetByID($arPost["ID"]);
                        $urtToPost = CBlogPost::PreparePath($arBlog["URL"], $CurPost["ID"], SITE_ID, $is404);
                        $urlToAuthor = CBlogUser::PreparePath($CurPost["AUTHOR_ID"], SITE_ID, $is404);
                        $urlToBlog = CBlog::PreparePath($arBlog["URL"], SITE_ID, $is404);
                        $p = new blogTextParser();
                        $arImage = array();
                        $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost['ID'], "BLOG_ID" => $arBlog['ID']));
                        while ($arImage = $res->Fetch()) {
                            $arImages[$arImage['ID']] = $arImage['FILE_ID'];
                        }
                        $text = $p->convert($CurPost["DETAIL_TEXT"], true, $arImages);
                        $BlogUser = CBlogUser::GetByID($CurPost["AUTHOR_ID"], BLOG_BY_USER_ID);
                        $dbUser = CUser::GetByID($CurPost["AUTHOR_ID"]);
                        $arUser = $dbUser->Fetch();
                        $AuthorName = CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]);
                        ?>
						<table class="blogtableborder" cellspacing="1" cellpadding="0" width="100%" border="0">
						<tr>
						<td>
							<table border="0" width="100%" cellpadding="3" cellspacing="0" class="blogtablebody">
							<tr>
								<td class="blogtablehead" align="left" nowrap width="70%" style="padding-left:10px;"><font class="blogpostdate"><?php 
                        echo $CurPost["DATE_PUBLISH"];
                        ?>
</font></td>
								<td align="right" class="blogtablehead" nowrap width="30%"><font class="blogauthor"><?php 
                        echo GetMessage("BLOG_BLOG_BLOG_AUTHOR");