public static function addCommentLists($fields) { if (!CModule::IncludeModule('forum') || !CModule::IncludeModule('bizproc')) { return false; } $ufFileId = array(); $ufDocId = array(); $fieldsMessage = array(); $messageId = array(); $error = array(); $note = array(); $sonetLogQuery = CSocNetLog::GetList(array(), array('ID' => $fields['LOG_ID']), false, false, array('ID', 'SOURCE_ID', 'SITE_ID', 'MESSAGE', 'USER_ID')); if ($sonetLog = $sonetLogQuery->fetch()) { $users = CBPTaskService::getWorkflowParticipants($sonetLog['MESSAGE'], CBPTaskUserStatus::Waiting); if (preg_match_all("/(?<=\\[USER=)(?P<id>[0-9]+)(?=\\])/", $fields['TEXT_MESSAGE'], $matches)) { $users = array_unique(array_merge($users, $matches['id'])); } $users[] = $sonetLog['USER_ID']; self::setSocnetFollow($users, $sonetLog['ID'], 'Y', false, true); $forumId = CBPHelper::getForumId(); if ($forumId) { $topicQuery = CForumTopic::GetList(array(), array('FORUM_ID' => $forumId, 'XML_ID' => 'WF_' . $sonetLog['MESSAGE'])); if ($topicQuery && ($topic = $topicQuery->fetch())) { $topicId = $topic['ID']; } else { $arTopic = array('AUTHOR_ID' => 0, 'TITLE' => 'WF_' . $sonetLog['MESSAGE'], 'TAGS' => '', 'MESSAGE' => 'WF_' . $sonetLog['MESSAGE'], 'XML_ID' => 'WF_' . $sonetLog['MESSAGE']); $arUserStart = array("ID" => $arTopic["AUTHOR_ID"], "NAME" => $GLOBALS["FORUM_STATUS_NAME"]["guest"]); $GLOBALS["DB"]->StartTransaction(); $arTopicFields = array("TITLE" => $arTopic["TITLE"], "TAGS" => $arTopic["TAGS"], "FORUM_ID" => $forumId, "USER_START_ID" => $arUserStart["ID"], "USER_START_NAME" => $arUserStart["NAME"], "LAST_POSTER_NAME" => $arUserStart["NAME"], "XML_ID" => $arTopic["XML_ID"], "APPROVED" => "Y", "PERMISSION_EXTERNAL" => 'Q', "PERMISSION" => 'Y'); $topicId = CForumTopic::Add($arTopicFields); if (intval($topicId) > 0) { $arTopic['MESSAGE'] = strip_tags($arTopic['MESSAGE']); $arFields = array("POST_MESSAGE" => $arTopic['MESSAGE'], "AUTHOR_ID" => $arUserStart["ID"], "AUTHOR_NAME" => $arUserStart["NAME"], "FORUM_ID" => $forumId, "TOPIC_ID" => $topicId, "APPROVED" => "Y", "NEW_TOPIC" => "Y", "PARAM1" => "WF", "PARAM2" => 0, "PERMISSION_EXTERNAL" => 'Q', "PERMISSION" => 'Y'); $startMessageId = CForumMessage::Add($arFields, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N")); if (intVal($startMessageId) <= 0) { CForumTopic::Delete($topicId); $topicId = 0; } } if (intval($topicId) <= 0) { $GLOBALS["DB"]->Rollback(); } else { $GLOBALS["DB"]->Commit(); } } if ($topicId) { $fieldsMessage = array('POST_MESSAGE' => $fields['TEXT_MESSAGE'], 'USE_SMILES' => 'Y', 'PERMISSION_EXTERNAL' => 'Q', 'PERMISSION' => 'Y', 'APPROVED' => 'Y'); $tmp = false; $GLOBALS['USER_FIELD_MANAGER']->editFormAddFields('SONET_COMMENT', $tmp); if (is_array($tmp)) { if (array_key_exists('UF_SONET_COM_DOC', $tmp)) { $GLOBALS['UF_FORUM_MESSAGE_DOC'] = $tmp['UF_SONET_COM_DOC']; } elseif (array_key_exists('UF_SONET_COM_FILE', $tmp)) { $fieldsMessage['FILES'] = array(); foreach ($tmp['UF_SONET_COM_FILE'] as $fileId) { $fieldsMessage['FILES'][] = array('FILE_ID' => $fileId); } } if (array_key_exists("UF_SONET_COM_URL_PRV", $tmp)) { $GLOBALS["UF_FORUM_MES_URL_PRV"] = $tmp["UF_SONET_COM_URL_PRV"]; } } $messageId = ForumAddMessage("REPLY", $forumId, $topicId, 0, $fieldsMessage, $error, $note); if ($messageId > 0) { $addedMessageFilesQuery = CForumFiles::getList(array('ID' => 'ASC'), array('MESSAGE_ID' => $messageId)); while ($addedMessageFiles = $addedMessageFilesQuery->fetch()) { $ufFileId[] = $addedMessageFiles['FILE_ID']; } $ufDocId = $GLOBALS['USER_FIELD_MANAGER']->getUserFieldValue('FORUM_MESSAGE', 'UF_FORUM_MESSAGE_DOC', $messageId, LANGUAGE_ID); $ufUrlPreview = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MES_URL_PRV", $messageID, LANGUAGE_ID); } } } } if (!$messageId) { $error = Loc::getMessage('LISTS_LF_ADD_COMMENT_SOURCE_ERROR'); } return array('SOURCE_ID' => $messageId, 'MESSAGE' => $fieldsMessage ? $fieldsMessage['POST_MESSAGE'] : false, 'RATING_TYPE_ID' => 'FORUM_POST', 'RATING_ENTITY_ID' => $messageId, 'ERROR' => $error, 'NOTES' => $note, 'UF' => array('FILE' => $ufFileId, 'DOC' => $ufDocId, 'URL_PREVIEW' => $ufUrlPreview)); }
</span> </div> <div id="bp-task-tabs-content" class="bp-tab-contents"> <div id="bp-task-tab-1-content" class="bp-tab-content active"> <?php } ?> <?php if (!isset($arParams['IFRAME']) || $arParams['IFRAME'] == 'N') { // A < E < I < M < Q < U < Y // A - NO ACCESS, E - READ, I - ANSWER // M - NEW TOPIC // Q - MODERATE, U - EDIT, Y - FULL_ACCESS $APPLICATION->IncludeComponent("bitrix:forum.comments", "bitrix24", array("FORUM_ID" => CBPHelper::getForumId(), "ENTITY_TYPE" => "WF", "ENTITY_ID" => CBPStateService::getWorkflowIntegerId($arResult["TASK"]['WORKFLOW_ID']), "ENTITY_XML_ID" => "WF_" . $arResult["TASK"]['WORKFLOW_ID'], "PERMISSION" => "Y", "URL_TEMPLATES_PROFILE_VIEW" => "/company/personal/user/#user_id#/", "SHOW_RATING" => "Y", "SHOW_LINK_TO_MESSAGE" => "N", "BIND_VIEWER" => "Y"), false, array('HIDE_ICONS' => 'Y')); } else { ?> <iframe src="/bitrix/components/bitrix/bizproc.task/comments.php?TASK_ID=<?php echo $arResult['TASK']['ID']; ?> &USER_ID=<?php echo $arParams['USER_ID']; ?> &site_id=<?php echo SITE_ID; ?> &sessid=<?php echo bitrix_sessid(); ?>
public static function addCommentLists($fields) { if (!CModule::IncludeModule('forum') || !CModule::IncludeModule('bizproc')) { return false; } $ufFileId = array(); $ufDocId = array(); $fieldsMessage = array(); $messageId = array(); $error = array(); $note = array(); $sonetLogQuery = CSocNetLog::GetList(array(), array('ID' => $fields['LOG_ID']), false, false, array('ID', 'SOURCE_ID', 'SITE_ID', 'MESSAGE', 'USER_ID')); if ($sonetLog = $sonetLogQuery->fetch()) { self::setSocnetFollow(array($sonetLog['USER_ID']), $sonetLog['ID'], 'Y'); $forumId = CBPHelper::getForumId(); if ($forumId) { $topicQuery = CForumTopic::GetList(array(), array('FORUM_ID' => $forumId, 'XML_ID' => 'WF_' . $sonetLog['MESSAGE'])); if ($topicQuery && ($topic = $topicQuery->fetch())) { $topicId = $topic['ID']; } else { $topicId = 0; } $fieldsMessage = array('POST_MESSAGE' => $fields['TEXT_MESSAGE'], 'USE_SMILES' => 'Y', 'PERMISSION_EXTERNAL' => 'Q', 'PERMISSION' => 'Y', 'APPROVED' => 'Y'); if ($topicId === 0) { $fieldsMessage['TITLE'] = 'WF_' . $sonetLog['MESSAGE']; $fieldsMessage['TOPIC_XML_ID'] = 'WF_' . $sonetLog['MESSAGE']; } $tmp = false; $GLOBALS['USER_FIELD_MANAGER']->editFormAddFields('SONET_COMMENT', $tmp); if (is_array($tmp)) { if (array_key_exists('UF_SONET_COM_DOC', $tmp)) { $GLOBALS['UF_FORUM_MESSAGE_DOC'] = $tmp['UF_SONET_COM_DOC']; } elseif (array_key_exists('UF_SONET_COM_FILE', $tmp)) { $fieldsMessage['FILES'] = array(); foreach ($tmp['UF_SONET_COM_FILE'] as $fileId) { $fieldsMessage['FILES'][] = array('FILE_ID' => $fileId); } } } $messageId = ForumAddMessage($topicId > 0 ? "REPLY" : "NEW", $forumId, $topicId, 0, $fieldsMessage, $error, $note); if ($messageId > 0) { $addedMessageFilesQuery = CForumFiles::getList(array('ID' => 'ASC'), array('MESSAGE_ID' => $messageId)); while ($addedMessageFiles = $addedMessageFilesQuery->fetch()) { $ufFileId[] = $addedMessageFiles['FILE_ID']; } $ufDocId = $GLOBALS['USER_FIELD_MANAGER']->getUserFieldValue('FORUM_MESSAGE', 'UF_FORUM_MESSAGE_DOC', $messageId, LANGUAGE_ID); } } } if (!$messageId) { $error = Loc::getMessage('LISTS_LF_ADD_COMMENT_SOURCE_ERROR'); } return array('SOURCE_ID' => $messageId, 'MESSAGE' => $fieldsMessage ? $fieldsMessage['POST_MESSAGE'] : false, 'RATING_TYPE_ID' => 'FORUM_POST', 'RATING_ENTITY_ID' => $messageId, 'ERROR' => $error, 'NOTES' => $note, 'UF' => array('FILE' => $ufFileId, 'DOC' => $ufDocId)); }