Exemplo n.º 1
0
 function CheckFields(&$arFields, $ID = false)
 {
     /** @global CMain $APPLICATION */
     global $APPLICATION;
     $arMsg = array();
     if (!is_set($arFields, "TASK_ID")) {
         $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID"), "id" => "ERROR_TASKS_BAD_TASK_ID");
     } else {
         /** @noinspection PhpDeprecationInspection */
         $r = CTasks::GetByID($arFields["TASK_ID"], false);
         if (!$r->Fetch()) {
             $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID_EX"), "id" => "ERROR_TASKS_BAD_TASK_ID_EX");
         }
     }
     if (!is_set($arFields, "USER_ID")) {
         $arMsg[] = array("text" => GetMessage("TASKS_BAD_USER_ID"), "id" => "ERROR_TASKS_BAD_USER_ID");
     } else {
         /** @noinspection PhpDynamicAsStaticMethodCallInspection */
         $r = CUser::GetByID($arFields["USER_ID"]);
         if (!$r->Fetch()) {
             $arMsg[] = array("text" => GetMessage("TASKS_BAD_USER_ID_EX"), "id" => "ERROR_TASKS_BAD_USER_ID_EX");
         }
     }
     if (!empty($arMsg)) {
         $e = new CAdminException($arMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     //Defaults
     if (!is_set($arFields, "TYPE") || !in_array($arFields["TYPE"], array("A", "U"))) {
         $arFields["TYPE"] = "A";
     }
     return true;
 }
Exemplo n.º 2
0
 function CheckFields(&$arFields)
 {
     /** @global CMain $APPLICATION */
     global $APPLICATION;
     $arMsg = array();
     if (!is_set($arFields, "TASK_ID")) {
         $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID"), "id" => "ERROR_TASKS_BAD_TASK_ID");
     } else {
         $r = CTasks::GetByID($arFields["TASK_ID"]);
         if (!$r->Fetch()) {
             $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID_EX"), "id" => "ERROR_TASKS_BAD_TASK_ID_EX");
         }
     }
     if (!is_set($arFields, "DEPENDS_ON_ID")) {
         $arMsg[] = array("text" => GetMessage("TASKS_BAD_DEPENDS_ON_ID"), "id" => "ERROR_TASKS_BAD_DEPENDS_ON_ID");
     } else {
         $r = CTasks::GetByID($arFields["DEPENDS_ON_ID"]);
         if (!$r->Fetch()) {
             $arMsg[] = array("text" => GetMessage("TASKS_BAD_DEPENDS_ON_ID_EX"), "id" => "ERROR_TASKS_BAD_DEPENDS_ON_ID_EX");
         }
     }
     if (!empty($arMsg)) {
         $e = new CAdminException($arMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     return true;
 }
Exemplo n.º 3
0
 public static function SyncModifyTaskItem($arModifyEventArray)
 {
     global $DB;
     $ID = $arModifyEventArray["ID"];
     // sanitize description here
     $Sanitizer = new CBXSanitizer();
     $Sanitizer->SetLevel(CBXSanitizer::SECURE_LEVEL_LOW);
     $Sanitizer->ApplyHtmlSpecChars(false);
     $Sanitizer->DeleteSanitizedTags(true);
     $arModifyEventArray['BODY'] = trim($Sanitizer->SanitizeHtml($arModifyEventArray['BODY']));
     $arFields = array("RESPONSIBLE_ID" => $arModifyEventArray["USER_ID"], "SITE_ID" => SITE_ID, "EXCHANGE_ID" => $arModifyEventArray["XML_ID"], "EXCHANGE_MODIFIED" => $arModifyEventArray["MODIFICATION_LABEL"], "TITLE" => $arModifyEventArray["SUBJECT"], "DESCRIPTION" => $arModifyEventArray["BODY"], "DESCRIPTION_IN_BBCODE" => 'N', "CREATED_DATE" => $arModifyEventArray["DATE_CREATE"], "PRIORITY" => self::$PriorityMapping[strtolower($arModifyEventArray["IMPORTANCE"])], "DURATION_FACT" => ceil($arModifyEventArray["ACTUAL_WORK"] / 60), "START_DATE_PLAN" => $arModifyEventArray["START_DATE"], "DEADLINE" => $arModifyEventArray["DUE_DATE"], "STATUS" => self::$StatusMapping[strtolower($arModifyEventArray["STATUS"])], "DURATION_PLAN" => ceil($arModifyEventArray["TOTAL_WORK"] / 60), "DURATION_TYPE" => "hours");
     $arExtraFields = array();
     if (isset($arModifyEventArray['ExtendedProperty']) && is_array($arModifyEventArray['ExtendedProperty'])) {
         foreach ($arModifyEventArray['ExtendedProperty'] as $arExtendedProperty) {
             $arExtraFields[$arExtendedProperty['Name']] = $arExtendedProperty['Value'];
         }
     }
     if ($ID == 0) {
         $arFields["STATUS_CHANGED_BY"] = $arFields["CHANGED_BY"] = $arFields["CREATED_BY"] = $arFields["RESPONSIBLE_ID"];
         $arFields["STATUS_CHANGED_DATE"] = $arFields["CHANGED_DATE"] = $arFields["CREATED_DATE"];
         $ID = $DB->Add("b_tasks", $arFields, array("DESCRIPTION"), "tasks");
         if ($ID) {
             $arFields["ID"] = $ID;
             CTaskNotifications::SendAddMessage($arFields);
             $arLogFields = array("TASK_ID" => $ID, "USER_ID" => $arFields["CREATED_BY"], "CREATED_DATE" => $arFields["CREATED_DATE"], "FIELD" => "NEW");
             $log = new CTaskLog();
             $log->Add($arLogFields);
         }
     } else {
         $strUpdate = $DB->PrepareUpdate("b_tasks", $arFields, "tasks");
         $strSql = "UPDATE b_tasks SET " . $strUpdate . " WHERE ID=" . $ID;
         $arBinds = array('DESCRIPTION' => $arFields['DESCRIPTION']);
         $result = $DB->QueryBind($strSql, $arBinds, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         if ($result) {
             $rsTask = CTasks::GetByID($ID, false);
             if ($arTask = $rsTask->Fetch()) {
                 $arFields["CHANGED_BY"] = $arFields["RESPONSIBLE_ID"];
                 $arFields["CHANGED_DATE"] = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), time() + CTimeZone::GetOffset());
                 CTaskNotifications::SendUpdateMessage($arFields, $arTask);
                 $arChanges = CTaskLog::GetChanges($arTask, $arFields);
                 foreach ($arChanges as $key => $value) {
                     $arLogFields = array("TASK_ID" => $ID, "USER_ID" => $arFields["CHANGED_BY"], "CREATED_DATE" => $arFields["CHANGED_DATE"], "FIELD" => $key, "FROM_VALUE" => $value["FROM_VALUE"], "TO_VALUE" => $value["TO_VALUE"]);
                     $log = new CTaskLog();
                     $log->Add($arLogFields);
                 }
             }
         }
     }
 }
Exemplo n.º 4
0
 function CheckFields(&$arFields, $ID = false, $effectiveUserId = null)
 {
     /** @global CMain $APPLICATION */
     global $APPLICATION;
     $arMsg = array();
     if (!is_set($arFields, "TASK_ID")) {
         $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID"), "id" => "ERROR_TASKS_BAD_TASK_ID");
     } else {
         $arParams = array();
         if ($effectiveUserId !== null) {
             $arParams['USER_ID'] = $effectiveUserId;
         }
         $r = CTasks::GetByID($arFields["TASK_ID"], true, $arParams);
         if (!$r->Fetch()) {
             $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID_EX"), "id" => "ERROR_TASKS_BAD_TASK_ID_EX");
         }
     }
     if ($effectiveUserId !== null && !isset($arFields['USER_ID'])) {
         $arFields['USER_ID'] = $effectiveUserId;
     }
     if (!is_set($arFields, "USER_ID")) {
         $arMsg[] = array("text" => GetMessage("TASKS_BAD_USER_ID"), "id" => "ERROR_TASKS_BAD_USER_ID");
     } else {
         /** @noinspection PhpDynamicAsStaticMethodCallInspection */
         $r = CUser::GetByID($arFields["USER_ID"]);
         if (!$r->Fetch()) {
             $arMsg[] = array("text" => GetMessage("TASKS_BAD_USER_ID_EX"), "id" => "ERROR_TASKS_BAD_USER_ID_EX");
         }
     }
     if (!is_set($arFields, "NAME") || strlen(trim($arFields["NAME"])) <= 0) {
         $arMsg[] = array("text" => GetMessage("TASKS_BAD_NAME"), "id" => "ERROR_BAD_TASKS_NAME");
     }
     if (!empty($arMsg)) {
         $e = new CAdminException($arMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     return true;
 }
Exemplo n.º 5
0
 public static function SaveTask($tasksData)
 {
     $rc = false;
     if (!$GLOBALS['USER']->IsAuthorized()) {
         return false;
     }
     $delegateToUser = false;
     if (isset($tasksData['META::DELEGATE_TO_USER'])) {
         $delegateToUser = (int) $tasksData['META::DELEGATE_TO_USER'];
     }
     $bDelegate = false;
     if ($delegateToUser > 0) {
         $bDelegate = true;
     }
     $curUserId = (int) $GLOBALS['USER']->GetID();
     if (!CModule::IncludeModule('socialnetwork')) {
         return false;
     }
     $arNewTaskFields = false;
     $bErrorOccuredOnTaskCreation = false;
     if (isset($tasksData['TASK_ID']) && check_bitrix_sessid()) {
         $bCreateMode = true;
         if ($tasksData['TASK_ID'] > 0) {
             $bCreateMode = false;
         }
         // We are in edit mode
         if ($bCreateMode && $bDelegate) {
             throw new Exception('$bCreateMode && $bDelegate');
         }
         if (!$bCreateMode && $bDelegate) {
             $arNewTaskFields = array();
             if (intval($delegateToUser) !== $curUserId) {
                 $arNewTaskFields['RESPONSIBLE_ID'] = $delegateToUser;
                 $arNewTaskFields['STATUS'] = CTasks::STATE_PENDING;
                 $rsTask = CTasks::GetByID($tasksData['TASK_ID']);
                 $arTask = $rsTask->Fetch();
                 if (!$arTask || !isset($arTask['ID'])) {
                     return false;
                 }
                 if (sizeof($arTask['AUDITORS'] > 0)) {
                     if (!in_array($curUserId, $arTask['AUDITORS'])) {
                         $arNewTaskFields['AUDITORS'] = $arTask['AUDITORS'];
                         $arNewTaskFields['AUDITORS'][] = $curUserId;
                     }
                 } else {
                     $arNewTaskFields['AUDITORS'] = array($curUserId);
                 }
             } else {
                 return false;
             }
         } else {
             $arNewTaskFields = array('TITLE' => $tasksData['TITLE'], 'DESCRIPTION' => $tasksData['DESCRIPTION'], 'RESPONSIBLE_ID' => $tasksData['RESPONSIBLE_ID'], 'PRIORITY' => $tasksData['PRIORITY'], 'DEADLINE' => CAllDatabase::FormatDate(str_replace('T', ' ', $tasksData['DEADLINE']), 'YYYY-MM-DD HH:MI:SS', FORMAT_DATETIME));
             if (isset($tasksData['ACCOMPLICES'])) {
                 if ($tasksData['ACCOMPLICES'] == -1) {
                     $arNewTaskFields['ACCOMPLICES'] = array();
                 } else {
                     $arNewTaskFields['ACCOMPLICES'] = $tasksData['ACCOMPLICES'];
                 }
             }
             if (isset($tasksData['AUDITORS'])) {
                 if ($tasksData['AUDITORS'] == -1) {
                     $arNewTaskFields['AUDITORS'] = array();
                 } else {
                     $arNewTaskFields['AUDITORS'] = $tasksData['AUDITORS'];
                 }
             }
             $arNewTaskFields['GROUP_ID'] = 0;
             if (isset($tasksData['GROUP_ID']) && intval($tasksData['GROUP_ID']) > 0) {
                 if (CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, (int) $tasksData['GROUP_ID'], 'tasks', 'create_tasks')) {
                     $arNewTaskFields['GROUP_ID'] = (int) $tasksData['GROUP_ID'];
                 } else {
                     unset($arNewTaskFields['GROUP_ID']);
                 }
             }
             if ($bCreateMode) {
                 $arNewTaskFields['CREATED_BY'] = $curUserId;
             }
         }
         if (isset($tasksData['META::EVENT_GUID'])) {
             $arNewTaskFields['META::EVENT_GUID'] = $tasksData['META::EVENT_GUID'];
         }
         if ($bCreateMode) {
             $arNewTaskFields['ID'] = 0;
         } else {
             $arNewTaskFields['ID'] = (int) $tasksData['TASK_ID'];
         }
         $oTask = new CTasks();
         if (!$bCreateMode) {
             $rc = $oTask->Update($arNewTaskFields['ID'], $arNewTaskFields);
         } else {
             $arNewTaskFields['MULTITASK'] = 'N';
             $arNewTaskFields['DESCRIPTION_IN_BBCODE'] = 'Y';
             // Only creator or priveleged user can set responsible person.
             $arNewTaskFields['RESPONSIBLE_ID'] = $curUserId;
             if ($arNewTaskFields['CREATED_BY'] === $curUserId || $GLOBALS['USER']->IsAdmin() || CTasksTools::IsPortalB24Admin()) {
                 $arNewTaskFields['RESPONSIBLE_ID'] = (int) $tasksData['RESPONSIBLE_ID'];
             }
             $arNewTaskFields['SITE_ID'] = SITE_ID;
             $rc = $oTask->Add($arNewTaskFields);
             if ($rc > 0) {
                 $arNewTaskFields['ID'] = $rc;
             } else {
                 $bErrorOccuredOnTaskCreation = true;
             }
         }
         $rc = $arNewTaskFields['ID'];
     }
     if ($bErrorOccuredOnTaskCreation) {
         return false;
     }
     return $rc;
 }
Exemplo n.º 6
0
 public static function AddCrmActivityComment($arFields)
 {
     if (!CModule::IncludeModule("forum")) {
         return false;
     }
     $ufFileID = array();
     $ufDocID = array();
     $messageID = false;
     $dbResult = CSocNetLog::GetList(array(), array("ID" => $arFields["LOG_ID"]), false, false, array('ID', 'ENTITY_ID', 'SOURCE_ID', 'SITE_ID', 'TITLE', 'PARAMS'));
     if ($arLog = $dbResult->Fetch()) {
         $dbCrmActivity = CCrmActivity::GetList(array(), array('ID' => $arLog['ENTITY_ID'], 'CHECK_PERMISSIONS' => 'N'));
         if ($arCrmActivity = $dbCrmActivity->Fetch()) {
             if ($arCrmActivity['TYPE_ID'] == CCrmActivityType::Task && CModule::IncludeModule('tasks')) {
                 $userID = $GLOBALS["USER"]->GetID();
                 $dbTask = CTasks::GetByID($arCrmActivity["ASSOCIATED_ENTITY_ID"], false);
                 if ($arTaskFields = $dbTask->Fetch()) {
                     if (!($userName = trim($GLOBALS["USER"]->GetFormattedName(false)))) {
                         $userName = $GLOBALS["USER"]->GetLogin();
                     }
                     $FORUM_ID = CTasksTools::GetForumIdForIntranet();
                     if (!$arTaskFields["FORUM_TOPIC_ID"]) {
                         $arTopicFields = array("TITLE" => $arTaskFields["TITLE"], "USER_START_ID" => $arFields["USER_ID"], "STATE" => "Y", "FORUM_ID" => $FORUM_ID, "USER_START_NAME" => $userName, "START_DATE" => ConvertTimeStamp(time(), "FULL"), "POSTS" => 0, "VIEWS" => 0, "APPROVED" => "Y", "LAST_POSTER_NAME" => $userName, "LAST_POST_DATE" => ConvertTimeStamp(time(), "FULL"), "LAST_MESSAGE_ID" => 0, "XML_ID" => 'TASK_' . $arTaskFields['ID']);
                         $TOPIC_ID = CForumTopic::Add($arTopicFields);
                         if ($TOPIC_ID) {
                             $arFieldsFirstMessage = array("POST_MESSAGE" => $arTopicFields["XML_ID"], "AUTHOR_ID" => $arTopicFields["USER_START_ID"], "AUTHOR_NAME" => $arTopicFields["USER_START_NAME"], "FORUM_ID" => $arTopicFields["FORUM_ID"], "TOPIC_ID" => $TOPIC_ID, "APPROVED" => "Y", "NEW_TOPIC" => "Y", "PARAM1" => 'TK', "PARAM2" => $arTaskFields['ID'], "PERMISSION_EXTERNAL" => 'E', "PERMISSION" => 'E');
                             CForumMessage::Add($arFieldsFirstMessage, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N"));
                             $oTask = new CTasks();
                             $oTask->Update($arTaskFields["ID"], array("FORUM_TOPIC_ID" => $TOPIC_ID));
                         }
                     } else {
                         $TOPIC_ID = $arTaskFields["FORUM_TOPIC_ID"];
                     }
                     if ($TOPIC_ID) {
                         $arFieldsP = array("AUTHOR_ID" => $arFields["USER_ID"], "AUTHOR_NAME" => $userName, "POST_MESSAGE" => $arFields["TEXT_MESSAGE"], "FORUM_ID" => $FORUM_ID, "TOPIC_ID" => $TOPIC_ID, "APPROVED" => "Y");
                         $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("SONET_COMMENT", $arTmp);
                         if (is_array($arTmp)) {
                             if (array_key_exists("UF_SONET_COM_DOC", $arTmp)) {
                                 $GLOBALS["UF_FORUM_MESSAGE_DOC"] = $arTmp["UF_SONET_COM_DOC"];
                             } elseif (array_key_exists("UF_SONET_COM_FILE", $arTmp)) {
                                 $arFieldsP["FILES"] = array();
                                 foreach ($arTmp["UF_SONET_COM_FILE"] as $file_id) {
                                     $arFieldsP["FILES"][] = array("FILE_ID" => $file_id);
                                 }
                             }
                         }
                         $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("FORUM_MESSAGE", $arFieldsP);
                         $messageID = CForumMessage::Add($arFieldsP);
                         // get UF DOC value and FILE_ID there
                         if ($messageID > 0) {
                             $dbAddedMessageFiles = CForumFiles::GetList(array("ID" => "ASC"), array("MESSAGE_ID" => $messageID));
                             while ($arAddedMessageFiles = $dbAddedMessageFiles->Fetch()) {
                                 $ufFileID[] = $arAddedMessageFiles["FILE_ID"];
                             }
                             $ufDocID = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_DOC", $messageID, LANGUAGE_ID);
                         }
                     }
                 }
             } else {
                 return array("NO_SOURCE" => "Y");
             }
         } else {
             $sError = GetMessage("SONET_ADD_COMMENT_SOURCE_ERROR");
         }
     } else {
         $sError = GetMessage("SONET_ADD_COMMENT_SOURCE_ERROR");
     }
     return array("SOURCE_ID" => $messageID, "RATING_TYPE_ID" => "FORUM_POST", "RATING_ENTITY_ID" => $messageID, "ERROR" => $sError, "NOTES" => $sNote, "UF" => array("FILE" => $ufFileID, "DOC" => $ufDocID));
 }
Exemplo n.º 7
0
 /**
  * @param integer $taskId
  * @param array $arFilesIds
  * @return bool
  */
 public static function CheckFieldsMultiple($taskId, $arFilesIds)
 {
     /**
      * @global CMain $APPLICATION
      */
     global $APPLICATION;
     $arMsg = array();
     if (!($taskId > 0)) {
         $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID"), "id" => "ERROR_TASKS_BAD_TASK_ID");
     } else {
         /** @noinspection PhpDeprecationInspection */
         $r = CTasks::GetByID($taskId, false);
         if (!$r->Fetch()) {
             $arMsg[] = array("text" => GetMessage("TASKS_BAD_TASK_ID_EX"), "id" => "ERROR_TASKS_BAD_TASK_ID_EX");
         }
     }
     if (!is_array($arFilesIds)) {
         $arMsg[] = array("text" => GetMessage("TASKS_BAD_FILE_ID"), "id" => "ERROR_TASKS_BAD_FILE_ID");
     } elseif (!empty($arFilesIds)) {
         $arFilesIds = array_unique($arFilesIds);
         $arNotFetchedFilesIds = $arFilesIds;
         /** @noinspection PhpDynamicAsStaticMethodCallInspection */
         $r = CFile::GetList(array(), array('@ID' => implode(',', $arFilesIds)));
         while ($ar = $r->Fetch()) {
             $fileId = (int) $ar['ID'];
             $key = array_search($fileId, $arFilesIds);
             if ($key !== false) {
                 unset($arNotFetchedFilesIds[$key]);
             }
         }
         if (count($arNotFetchedFilesIds)) {
             $arMsg[] = array("text" => GetMessage("TASKS_BAD_FILE_ID_EX"), "id" => "ERROR_TASKS_BAD_FILE_ID_EX");
         }
     }
     if (!empty($arMsg)) {
         $e = new CAdminException($arMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     return true;
 }
Exemplo n.º 8
0
         }
         $arRes['FILES'] = array();
         if ($arRes['ITEM_ID'] > 0) {
             $dbFiles = CMeetingItem::GetFiles($arRes['ITEM_ID']);
             while ($arFile = $dbFiles->Fetch()) {
                 $arRes['FILES'][$arFile['FILE_ID']] = $arFile['FILE_SRC'];
             }
             if (count($arRes['FILES']) > 0) {
                 $arRes['FILES'] = CMeeting::GetFilesData($arRes['FILES'], array("ITEM" => $arRes['ITEM_ID']));
             }
         }
         $arRes['TASKS_COUNT'] = CMeetingItem::GetTasksCount($arRes['ITEM_ID'], $arRes['ID']);
         if (!$arParams['COPY']) {
             $arRes['EDITABLE'] = CMeetingItem::IsEditable($arRes['ITEM_ID']);
             if ($arRes['TASK_ID'] && CModule::IncludeModule('tasks')) {
                 $dbTask = CTasks::GetByID($arRes['TASK_ID']);
                 if ($arTask = $dbTask->Fetch()) {
                     $arRes['TASK_ACCESS'] = true;
                 }
             }
         }
         $arResult['MEETING']['AGENDA'][$arRes['ID']] = $arRes;
     }
 }
 if ($arResult['MEETING']['DATE_START'] && MakeTimeStamp($arResult['MEETING']['DATE_START']) > 0) {
     $arFormats = array('ru' => 'j F', 'en' => 'F j', 'de' => 'j. F');
     $dateFormat = isset($arFormats[LANGUAGE_ID]) ? $arFormats[LANGUAGE_ID] : $arFormats[LangSubst(LANGUAGE_ID)];
     $APPLICATION->SetTitle(GetMessage('ME_MEETING_EDIT', array('#ID#' => $arResult['MEETING']['ID'], '#DATE#' => FormatDate($dateFormat, MakeTimeStamp($arResult['MEETING']['DATE_START'])), '#TITLE#' => $arResult['MEETING']['TITLE'])));
     //			$arResult['MEETING']['DATE_START'] = FormatDate($DB->DateFormatToPhp(FORMAT_DATE).' H:i', MakeTimeStamp($arResult['MEETING']['DATE_START']));
     //			$arResult['MEETING']['DATE_START'] = date($DB->DateFormatToPhp(FORMAT_DATE).((IsAmPmMode()) ? ' g:i a' : ' H:i'), MakeTimeStamp($arResult['MEETING']['DATE_START']));
 } else {
Exemplo n.º 9
0
     if (CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $GROUP_ID, "tasks", "create_tasks")) {
         $arFields["GROUP_ID"] = $GROUP_ID;
     }
 }
 if ($DB->FormatDate($_POST["deadline"], CSite::GetDateFormat("FULL"))) {
     $arFields["DEADLINE"] = $_POST["deadline"];
 }
 $depth = intval($_POST["depth"]);
 if (intval($_POST["parent"]) > 0) {
     $arFields["PARENT_ID"] = intval($_POST["parent"]);
 }
 $arFields["STATUS"] = $status;
 $task = new CTasks();
 $ID = $task->Add($arFields);
 if ($ID) {
     $rsTask = CTasks::GetByID($ID);
     if ($task = $rsTask->GetNext()) {
         $APPLICATION->RestartBuffer();
         ob_start();
         if ($task["GROUP_ID"]) {
             $arGroup = CSocNetGroup::GetByID($task["GROUP_ID"]);
             if ($arGroup) {
                 $task["GROUP_NAME"] = $arGroup["NAME"];
             }
         }
         $params = array("PATHS" => $arPaths, "PLAIN" => false, "DEFER" => true, "SITE_ID" => $SITE_ID, "TASK_ADDED" => true, 'IFRAME' => 'N', "NAME_TEMPLATE" => $nameTemplate, 'DATA_COLLECTION' => array(array("CHILDREN_COUNT" => 0, "DEPTH" => $depth, "UPDATES_COUNT" => 0, "PROJECT_EXPANDED" => true, 'ALLOWED_ACTIONS' => null, "TASK" => $task)));
         $columnsOrder = null;
         if (isset($_POST['columnsOrder'])) {
             $columnsOrder = array_map('intval', $_POST['columnsOrder']);
         }
         if ($columnsOrder !== null) {
Exemplo n.º 10
0
    return false;
}
unset($paramsCheck);
if (!CBXFeatures::IsFeatureEnabled('Tasks')) {
    if ($arParams['SHOW_TEMPLATE'] === 'Y' && $arParams['RENDER_FORMAT'] === 'HTML') {
        ShowError(GetMessage('TASKS_MODULE_NOT_AVAILABLE_IN_THIS_EDITION'));
    }
    return false;
}
$rsUser = CUser::GetByID($arParams['USER_ID']);
if (!(is_object($rsUser) && ($arUser = $rsUser->GetNext()))) {
    return false;
}
$arResult['USER'] = $arUser;
unset($rsUser, $arUser);
$rsTask = CTasks::GetByID($arParams['TASK_ID']);
if (!(is_object($rsTask) && ($arTask = $rsTask->Fetch()))) {
    if ($arParams['SHOW_TEMPLATE'] === 'Y' && $arParams['RENDER_FORMAT'] === 'HTML') {
        ShowError(str_replace('#TASK_ID#', (int) $arParams['TASK_ID'], GetMessage('MB_TASKS_TASK_DETAIL_TASK_NOT_ACCESSIBLE')));
    }
    return false;
}
$arResult['FORUM_ID'] = false;
if ($arTask['FORUM_TOPIC_ID']) {
    $arTopic = CForumTopic::GetByID($arTask['FORUM_TOPIC_ID']);
    if ($arTopic) {
        $arResult['FORUM_ID'] = (int) $arTopic['FORUM_ID'];
    }
    unset($arTopic);
}
if ($arResult['FORUM_ID'] === false) {
Exemplo n.º 11
0
 function FormatEvent_Task2($arFields, $arParams, $bMail = false)
 {
     if ($bMail && strlen($arFields["MAIL_LANGUAGE_ID"]) > 0) {
         IncludeModuleLangFile(__FILE__, $arFields["MAIL_LANGUAGE_ID"]);
     }
     // Prevent module versions dependency between tasks and socialnetwork
     if (CModule::IncludeModule('tasks') && method_exists('CTaskNotifications', 'FormatTask4SocialNetwork')) {
         // Code moved out to tasks, use it
         if ($bMail && strlen($arFields["MAIL_LANGUAGE_ID"]) > 0) {
             IncludeModuleLangFile(__FILE__, LANGUAGE_ID);
         }
         return CTaskNotifications::FormatTask4SocialNetwork($arFields, $arParams, $bMail);
     }
     // Code wasn't moved out to tasks yet, use current function
     $GLOBALS['APPLICATION']->SetAdditionalCSS("/bitrix/js/tasks/css/tasks.css");
     $arFields["PARAMS"] = unserialize($arFields["~PARAMS"]);
     $arResult = array("EVENT" => $arFields, "CREATED_BY" => CSocNetLogTools::FormatEvent_GetCreatedBy($arFields, $arParams, $bMail), "ENTITY" => CSocNetLogTools::FormatEvent_GetEntity($arFields, $arParams, $bMail), "EVENT_FORMATTED" => array());
     if (!$bMail) {
         $arResult["AVATAR_SRC"] = CSocNetLogTools::FormatEvent_CreateAvatar($arFields, $arParams);
     }
     if (!$bMail && $arParams["MOBILE"] != "Y" && array_key_exists("URL", $arFields) && strlen($arFields["URL"]) > 0) {
         $task_tmp = '<a href="' . $arFields["URL"] . '" onclick="if (taskIFramePopup.isLeftClick(event)) {taskIFramePopup.view(' . $arFields["SOURCE_ID"] . '); return false;}">' . $arFields["TITLE"] . '</a>';
     } else {
         $task_tmp = $arFields["TITLE"];
     }
     $title_tmp = str_replace("#TITLE#", $task_tmp, GetMessage("SONET_GL_EVENT_TITLE_TASK"));
     if ($arFields["PARAMS"] && $arFields["PARAMS"]["CREATED_BY"]) {
         $suffix = is_array($GLOBALS["arExtranetUserID"]) && in_array($arFields["PARAMS"]["CREATED_BY"], $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "";
         $rsUser = CUser::GetByID(intval($arFields["PARAMS"]["CREATED_BY"]));
         if ($arUser = $rsUser->Fetch()) {
             $title_tmp .= " (" . str_replace("#USER_NAME#", CUser::FormatName(CSite::GetNameFormat(false), $arUser) . $suffix, GetMessage("SONET_GL_EVENT_TITLE_TASK_CREATED")) . ")";
         }
     }
     if ($bMail) {
         $title = str_replace(array("#TASK#", "#ENTITY#", "#CREATED_BY#"), array($title_tmp, $arResult["ENTITY"]["FORMATTED"], $bMail ? $arResult["CREATED_BY"]["FORMATTED"] : ""), GetMessage("SONET_GL_EVENT_TITLE_" . ($arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP ? "GROUP" : "USER") . "_TASK_MAIL"));
     } else {
         $title = $title_tmp;
         if (!is_array($arFields["PARAMS"]) || !array_key_exists("TYPE", $arFields["PARAMS"]) || strlen($arFields["PARAMS"]["TYPE"]) <= 0) {
             $arFields["PARAMS"]["TYPE"] = "DEFAULT";
         }
         switch ($arFields["CREATED_BY_PERSONAL_GENDER"]) {
             case "M":
                 $suffix = "_M";
                 break;
             case "F":
                 $suffix = "_F";
                 break;
             default:
                 $suffix = "";
         }
         $title_24 = str_replace("#TITLE#", $task_tmp, GetMessage("SONET_GL_EVENT_TITLE_TASK_" . strtoupper($arFields["PARAMS"]["TYPE"]) . "_24" . $suffix));
     }
     if (!$bMail && (in_array($arFields["PARAMS"]["TYPE"], array("create", "status")) || $arFields["PARAMS"]["TYPE"] == "modify" && is_array($arFields["PARAMS"]["CHANGED_FIELDS"])) && CModule::IncludeModule("tasks")) {
         $rsTask = CTasks::GetByID($arFields["SOURCE_ID"], false);
         if ($arTask = $rsTask->Fetch()) {
             $task_datetime = $arTask["CHANGED_DATE"];
             if ($arFields["PARAMS"]["TYPE"] == "create") {
                 if ($arParams["MOBILE"] == "Y") {
                     $title_24 = GetMessage("SONET_GL_TASKS2_NEW_TASK_MESSAGE");
                     $message_24_1 = $task_tmp;
                 } else {
                     $message = $message_24_1 = GetMessage("SONET_GL_TASKS2_NEW_TASK_MESSAGE");
                     $message_24_2 = $changes_24 = "";
                 }
             } elseif ($arFields["PARAMS"]["TYPE"] == "modify") {
                 $arChangesFields = $arFields["PARAMS"]["CHANGED_FIELDS"];
                 $changes_24 = implode(", ", CTaskNotifications::__Fields2Names($arChangesFields));
                 if ($arParams["MOBILE"] == "Y") {
                     $title_24 = GetMessage("SONET_GL_TASKS2_TASK_CHANGED_MESSAGE_24_1");
                     $message_24_1 = $task_tmp;
                 } else {
                     $message = str_replace("#CHANGES#", implode(", ", CTaskNotifications::__Fields2Names($arChangesFields)), GetMessage("SONET_GL_TASKS2_TASK_CHANGED_MESSAGE"));
                     $message_24_1 = GetMessage("SONET_GL_TASKS2_TASK_CHANGED_MESSAGE_24_1");
                     $message_24_2 = GetMessage("SONET_GL_TASKS2_TASK_CHANGED_MESSAGE_24_2");
                 }
             } elseif ($arFields["PARAMS"]["TYPE"] == "status") {
                 $message = GetMessage("SONET_GL_TASKS2_TASK_STATUS_MESSAGE_" . $arTask["STATUS"]);
                 $message_24_1 = GetMessage("SONET_GL_TASKS2_TASK_STATUS_MESSAGE_" . $arTask["STATUS"] . "_24");
                 if ($arTask["STATUS"] == 7) {
                     $message = str_replace("#TASK_DECLINE_REASON#", $arTask["DECLINE_REASON"], $message);
                     $message_24_2 = GetMessage("SONET_GL_TASKS2_TASK_STATUS_MESSAGE_" . $arTask["STATUS"] . "_24_2");
                     $changes_24 = $arTask["DECLINE_REASON"];
                 } elseif ($arTask["STATUS"] == 4) {
                     $message_24_2 = GetMessage("SONET_GL_TASKS2_TASK_STATUS_MESSAGE_" . $arTask["STATUS"] . "_24_2");
                     $changes_24 = GetMessage("SONET_GL_TASKS2_TASK_STATUS_MESSAGE_4_24_CHANGES");
                 } else {
                     $message_24_2 = $changes_24 = "";
                 }
             }
             ob_start();
             $GLOBALS['APPLICATION']->IncludeComponent("bitrix:tasks.task.livefeed", $arParams["MOBILE"] == "Y" ? 'mobile' : '', array("MOBILE" => $arParams["MOBILE"] == "Y" ? "Y" : "N", "TASK" => $arTask, "MESSAGE" => $message, "MESSAGE_24_1" => $message_24_1, "MESSAGE_24_2" => $message_24_2, "CHANGES_24" => $changes_24, "NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"], "PATH_TO_USER" => $arParams["PATH_TO_USER"]), null, array("HIDE_ICONS" => "Y"));
             $arFields["MESSAGE"] = ob_get_contents();
             ob_end_clean();
         }
     }
     if ($arParams["MOBILE"] == "Y") {
         $arResult["EVENT_FORMATTED"] = array("TITLE" => $title, "TITLE_24" => $title_24, "MESSAGE" => htmlspecialcharsbx($arFields["MESSAGE"]), "DESCRIPTION" => $message_24_1, "DESCRIPTION_STYLE" => "task");
     } else {
         $arResult["EVENT_FORMATTED"] = array("TITLE" => $title, "TITLE_24" => $title_24, "MESSAGE" => $bMail ? str_replace(array("<nobr>", "</nobr>"), array("", ""), $arFields["TEXT_MESSAGE"]) : $arFields["MESSAGE"], "SHORT_MESSAGE" => $bMail ? str_replace(array("<nobr>", "</nobr>"), array("", ""), $arFields["TEXT_MESSAGE"]) : $arFields["~MESSAGE"], "IS_MESSAGE_SHORT" => true, "STYLE" => "tasks-info");
         if (!$bMail && strlen($task_datetime) > 0) {
             $arResult["EVENT_FORMATTED"]["LOG_DATE_FORMAT"] = $task_datetime;
         }
     }
     if ($bMail) {
         $url = CSocNetLogTools::FormatEvent_GetURL($arFields);
         if (strlen($url) > 0) {
             $arResult["EVENT_FORMATTED"]["URL"] = $url;
         }
     } elseif ($arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP) {
         $arResult["EVENT_FORMATTED"]["DESTINATION"] = array(array("STYLE" => "sonetgroups", "TITLE" => $arResult["ENTITY"]["FORMATTED"]["NAME"], "URL" => $arResult["ENTITY"]["FORMATTED"]["URL"], "IS_EXTRANET" => is_array($GLOBALS["arExtranetGroupID"]) && in_array($arFields["ENTITY_ID"], $GLOBALS["arExtranetGroupID"])));
     }
     if ($bMail && strlen($arFields["MAIL_LANGUAGE_ID"]) > 0) {
         IncludeModuleLangFile(__FILE__, LANGUAGE_ID);
     }
     return $arResult;
 }
Exemplo n.º 12
0
 function SendAgent()
 {
     global $DB;
     /** @noinspection PhpDynamicAsStaticMethodCallInspection */
     $arFilter = array("<=REMIND_DATE" => (string) new \Bitrix\Main\Type\DateTime());
     $rsReminders = CTaskReminders::GetList(array("date" => "asc"), $arFilter);
     while ($arReminder = $rsReminders->Fetch()) {
         $rsTask = CTasks::GetByID($arReminder["TASK_ID"], false);
         if ($arTask = $rsTask->Fetch()) {
             // remind about not closed tasks only
             if ($arTask['CLOSED_DATE'] === NULL) {
                 /** @noinspection PhpDynamicAsStaticMethodCallInspection */
                 $rsUser = CUser::GetByID($arReminder["USER_ID"]);
                 if ($arUser = $rsUser->Fetch()) {
                     $arTask["PATH_TO_TASK"] = CTaskNotifications::GetNotificationPath($arUser, $arTask["ID"]);
                     $arFilterForSendedRemind = array_merge($arFilter, array('TASK_ID' => $arReminder['TASK_ID'], 'USER_ID' => $arReminder['USER_ID'], 'TRANSPORT' => $arReminder['TRANSPORT'], 'TYPE' => $arReminder['TYPE']));
                     CTaskReminders::Delete($arFilterForSendedRemind);
                     if ($arReminder["TRANSPORT"] == self::REMINDER_TRANSPORT_EMAIL || !CModule::IncludeModule("socialnetwork") || !CTaskReminders::__SendJabberReminder($arUser["ID"], $arTask)) {
                         CTaskReminders::__SendEmailReminder($arUser["EMAIL"], $arTask);
                     }
                 }
             }
         }
     }
     // Some older items can still exists (for removed users, etc.)
     CTaskReminders::Delete($arFilter);
     return "CTaskReminders::SendAgent();";
 }
Exemplo n.º 13
0
 public static function FormatTask4SocialNetwork($arFields, $arParams, $bMail = false)
 {
     /** @global CMain $APPLICATION */
     global $APPLICATION;
     $task_datetime = null;
     if (!CModule::IncludeModule('socialnetwork')) {
         return false;
     }
     $APPLICATION->SetAdditionalCSS('/bitrix/js/tasks/css/tasks.css');
     if (isset($arFields['~PARAMS']) && $arFields['~PARAMS']) {
         $arFields['PARAMS'] = unserialize($arFields['~PARAMS']);
     } elseif (isset($arFields['PARAMS']) && $arFields['PARAMS']) {
         $arFields['PARAMS'] = unserialize($arFields['PARAMS']);
     } else {
         $arFields['PARAMS'] = array();
     }
     $arResult = array('EVENT' => $arFields, 'CREATED_BY' => CSocNetLogTools::FormatEvent_GetCreatedBy($arFields, $arParams, $bMail), 'ENTITY' => CSocNetLogTools::FormatEvent_GetEntity($arFields, $arParams, $bMail), 'EVENT_FORMATTED' => array(), 'CACHED_CSS_PATH' => '/bitrix/js/tasks/css/tasks.css');
     if (!$bMail) {
         $arResult["AVATAR_SRC"] = CSocNetLogTools::FormatEvent_CreateAvatar($arFields, $arParams);
     }
     if (!$bMail && $arParams["MOBILE"] != "Y" && array_key_exists("URL", $arFields) && strlen($arFields["URL"]) > 0) {
         $taskHtmlTitle = '<a href="' . $arFields["URL"] . '" onclick="if (taskIFramePopup.isLeftClick(event)) {taskIFramePopup.view(' . $arFields["SOURCE_ID"] . '); return false;}">' . $arFields["TITLE"] . '</a>';
     } else {
         $taskHtmlTitle = $arFields["TITLE"];
     }
     $actorUserId = null;
     $actorUserName = '';
     $actorMaleSuffix = '';
     $eventTitlePhraseSuffix = '_DEFAULT';
     if (isset($arParams['NAME_TEMPLATE'])) {
         $nameTemplate = $arParams['NAME_TEMPLATE'];
     } else {
         $nameTemplate = CSite::GetNameFormat();
     }
     if (isset($arFields["PARAMS"], $arFields['PARAMS']['TYPE'])) {
         if ($arFields["PARAMS"]["TYPE"] === "create") {
             $eventTitlePhraseSuffix = '_CREATE_24';
             if (isset($arFields["PARAMS"]["CREATED_BY"])) {
                 $actorUserId = $arFields["PARAMS"]["CREATED_BY"];
             }
         } elseif ($arFields["PARAMS"]["TYPE"] === 'modify') {
             $eventTitlePhraseSuffix = '_MODIFY_24';
             if (isset($arFields["PARAMS"]["CHANGED_BY"])) {
                 $actorUserId = $arFields["PARAMS"]["CHANGED_BY"];
             }
         } elseif ($arFields["PARAMS"]["TYPE"] === 'status') {
             $eventTitlePhraseSuffix = '_STATUS_24';
             if (isset($arFields["PARAMS"]["CHANGED_BY"])) {
                 $actorUserId = $arFields["PARAMS"]["CHANGED_BY"];
             }
         } elseif ($arFields["PARAMS"]["TYPE"] === 'comment') {
             $eventTitlePhraseSuffix = '';
         }
     }
     if ($actorUserId) {
         $rsUser = CUser::GetList($by = 'id', $order = 'asc', array('ID_EQUAL_EXACT' => (int) $actorUserId), array('FIELDS' => array('ID', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'LOGIN', 'PERSONAL_GENDER')));
         if ($arUser = $rsUser->fetch()) {
             if (isset($arUser['PERSONAL_GENDER'])) {
                 switch ($arUser['PERSONAL_GENDER']) {
                     case "F":
                     case "M":
                         $actorMaleSuffix = '_' . $arUser['PERSONAL_GENDER'];
                         break;
                 }
             }
             $actorUserName = CUser::FormatName($nameTemplate, $arUser);
         }
     }
     $eventTitleTemplate = GetMessage('TASKS_SONET_GL_EVENT_TITLE_TASK' . $eventTitlePhraseSuffix . $actorMaleSuffix);
     $eventTitle = str_replace(array('#USER_NAME#', '#TITLE#'), array($actorUserName, $taskHtmlTitle), $eventTitleTemplate);
     $eventTitleWoTaskName = str_replace(array('#USER_NAME#', '#TITLE#'), array($actorUserName, ''), $eventTitleTemplate);
     $title_tmp = str_replace("#TITLE#", $taskHtmlTitle, GetMessage("TASKS_SONET_GL_EVENT_TITLE_TASK"));
     if ($arFields["PARAMS"] && $arFields["PARAMS"]["CREATED_BY"]) {
         $suffix = is_array($GLOBALS["arExtranetUserID"]) && in_array($arFields["PARAMS"]["CREATED_BY"], $GLOBALS["arExtranetUserID"]) ? GetMessage("TASKS_SONET_LOG_EXTRANET_SUFFIX") : "";
         $rsUser = CUser::GetList($by = 'id', $order = 'asc', array('ID_EQUAL_EXACT' => (int) $arFields['PARAMS']['CREATED_BY']), array('FIELDS' => array('PERSONAL_GENDER', 'ID', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'LOGIN')));
         if ($arUser = $rsUser->Fetch()) {
             $title_tmp .= " (" . str_replace("#USER_NAME#", CUser::FormatName(CSite::GetNameFormat(false), $arUser) . $suffix, GetMessage("TASKS_SONET_GL_EVENT_TITLE_TASK_CREATED")) . ")";
         }
     }
     if ($bMail) {
         $title = str_replace(array("#TASK#", "#ENTITY#", "#CREATED_BY#"), array($title_tmp, $arResult["ENTITY"]["FORMATTED"], $bMail ? $arResult["CREATED_BY"]["FORMATTED"] : ""), GetMessage("SONET_GL_EVENT_TITLE_" . ($arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP ? "GROUP" : "USER") . "_TASK_MAIL"));
     } else {
         $title = $title_tmp;
         $title_24 = $eventTitle;
     }
     if (!$bMail && in_array($arFields["PARAMS"]["TYPE"], array("create", "status", 'modify', 'comment'), true)) {
         if (!(isset($arFields['PARAMS']['CHANGED_FIELDS']) && is_array($arFields['PARAMS']['CHANGED_FIELDS']))) {
             $arFields['PARAMS']['CHANGED_FIELDS'] = array();
         }
         $rsTask = CTasks::GetByID($arFields["SOURCE_ID"], false);
         if ($arTask = $rsTask->Fetch()) {
             $task_datetime = $arTask["CHANGED_DATE"];
             if ($arFields["PARAMS"]["TYPE"] == "create") {
                 if ($arParams["MOBILE"] == "Y") {
                     $title_24 = GetMessage("TASKS_SONET_GL_TASKS2_NEW_TASK_MESSAGE");
                     $message_24_1 = $taskHtmlTitle;
                 } else {
                     $message = $message_24_1 = $eventTitle;
                     $message_24_2 = $changes_24 = "";
                 }
             } elseif ($arFields["PARAMS"]["TYPE"] == "modify") {
                 $arChangesFields = $arFields["PARAMS"]["CHANGED_FIELDS"];
                 $changes_24 = implode(", ", CTaskNotifications::__Fields2Names($arChangesFields));
                 if ($arParams["MOBILE"] == "Y") {
                     $title_24 = GetMessage("TASKS_SONET_GL_TASKS2_TASK_CHANGED_MESSAGE_24_1");
                     $message_24_1 = $taskHtmlTitle;
                 } else {
                     $message = str_replace("#CHANGES#", implode(", ", CTaskNotifications::__Fields2Names($arChangesFields)), GetMessage("TASKS_SONET_GL_TASKS2_TASK_CHANGED_MESSAGE"));
                     $message_24_1 = $eventTitle;
                     $message_24_2 = GetMessage("TASKS_SONET_GL_TASKS2_TASK_CHANGED_MESSAGE_24_2");
                 }
             } elseif ($arFields["PARAMS"]["TYPE"] == "status") {
                 $message = GetMessage("TASKS_SONET_GL_TASKS2_TASK_STATUS_MESSAGE_" . $arTask["STATUS"]);
                 $message_24_1 = $eventTitle;
                 if ($arTask["STATUS"] == CTasks::STATE_DECLINED) {
                     $message = str_replace("#TASK_DECLINE_REASON#", $arTask["DECLINE_REASON"], $message);
                     $message_24_2 = GetMessage("TASKS_SONET_GL_TASKS2_TASK_STATUS_MESSAGE_" . $arTask["STATUS"] . "_24_2");
                     $changes_24 = $arTask["DECLINE_REASON"];
                 } else {
                     $message_24_2 = $changes_24 = $message;
                 }
             } elseif ($arFields['PARAMS']['TYPE'] === 'comment') {
                 $message_24_1 = $eventTitle;
                 $message_24_2 = $changes_24 = $message = '';
             }
             $prevRealStatus = false;
             if (isset($arFields['PARAMS']['PREV_REAL_STATUS'])) {
                 $prevRealStatus = $arFields['PARAMS']['PREV_REAL_STATUS'];
             }
             ob_start();
             $GLOBALS['APPLICATION']->IncludeComponent("bitrix:tasks.task.livefeed", $arParams["MOBILE"] == "Y" ? 'mobile' : '', array("MOBILE" => $arParams["MOBILE"] == "Y" ? "Y" : "N", "TASK" => $arTask, "MESSAGE" => $message, "MESSAGE_24_1" => $message_24_1, "MESSAGE_24_2" => $message_24_2, "CHANGES_24" => $changes_24, "NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"], "PATH_TO_USER" => $arParams["PATH_TO_USER"], 'TYPE' => $arFields["PARAMS"]["TYPE"], 'task_tmp' => $taskHtmlTitle, 'taskHtmlTitle' => $taskHtmlTitle, 'PREV_REAL_STATUS' => $prevRealStatus), null, array("HIDE_ICONS" => "Y"));
             $arFields["MESSAGE"] = ob_get_contents();
             ob_end_clean();
         }
     }
     if ($arParams["MOBILE"] == "Y") {
         $arResult["EVENT_FORMATTED"] = array("TITLE" => '', "TITLE_24" => $eventTitleWoTaskName, "MESSAGE" => htmlspecialcharsbx($arFields['MESSAGE']), "DESCRIPTION" => $arFields['TITLE'], "DESCRIPTION_STYLE" => 'task');
     } else {
         $strMessage = $strShortMessage = '';
         if ($bMail) {
             $strMessage = $strShortMessage = str_replace(array('<nobr>', '</nobr>'), array('', ''), $arFields['TEXT_MESSAGE']);
         } else {
             $strMessage = $arFields['MESSAGE'];
             $strShortMessage = $arFields['~MESSAGE'];
         }
         $arResult["EVENT_FORMATTED"] = array("TITLE" => $title, "MESSAGE" => $strMessage, "SHORT_MESSAGE" => $strShortMessage, "IS_MESSAGE_SHORT" => true, "STYLE" => 'tasks-info', "COMMENT_URL" => !$bMail ? $arFields['~URL'] . (strpos($arFields['~URL'], '?') > 0 ? '&' : '?') . 'MID=#ID##com#ID#' : '');
     }
     if ($bMail) {
         $url = CSocNetLogTools::FormatEvent_GetURL($arFields);
         if (strlen($url) > 0) {
             $arResult["EVENT_FORMATTED"]["URL"] = $url;
         }
     } elseif ($arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP) {
         $arResult["EVENT_FORMATTED"]["DESTINATION"] = array(array("STYLE" => "sonetgroups", "TITLE" => $arResult["ENTITY"]["FORMATTED"]["NAME"], "URL" => $arResult["ENTITY"]["FORMATTED"]["URL"], "IS_EXTRANET" => is_array($GLOBALS["arExtranetGroupID"]) && in_array($arFields["ENTITY_ID"], $GLOBALS["arExtranetGroupID"])));
     }
     if (!$bMail && strlen($task_datetime) > 0) {
         $arResult["EVENT_FORMATTED"]["LOG_DATE_FORMAT"] = $task_datetime;
     }
     return $arResult;
 }
Exemplo n.º 14
0
        $arResult["ROLE_FILTER_SUFFIX"] = "_M";
    }
}
$arPreDefindFilters = tasksPredefinedFilters($arParams["USER_ID"], $arResult["ROLE_FILTER_SUFFIX"]);
$preDefinedFilterRole =& $arPreDefindFilters["ROLE"];
$preDefinedFilterStatus =& $arPreDefindFilters["STATUS"][0];
if (isset($arParams['COMMON_FILTER'])) {
    $arCommonFilter = $arParams['COMMON_FILTER'];
} else {
    $arCommonFilter = $oListCtrl->getCommonFilter();
}
if ($taskType == "group") {
    $preDefinedFilterRole[7]["FILTER"] = array();
}
if (isset($_GET["F_SEARCH"])) {
    if (is_numeric($_GET["F_SEARCH"]) && intval($_GET["F_SEARCH"]) > 0 && ($rsSearch = CTasks::GetByID(intval($_GET["F_SEARCH"]))) && $rsSearch->Fetch()) {
        $_GET["F_META::ID_OR_NAME"] = intval($_GET["F_SEARCH"]);
    } elseif (strlen(trim($_GET["F_SEARCH"]))) {
        $_GET["F_TITLE"] = $_GET["F_SEARCH"];
    } else {
        $_GET["F_ADVANCED"] = "N";
        $_SESSION["FILTER"] = array();
    }
}
if (isset($_GET["F_CANCEL"]) && $_GET["F_CANCEL"] == "Y" || !isset($_GET["F_CANCEL"]) || isset($_GET["FILTERR"]) || isset($_GET["FILTERS"]) || isset($_GET["F_ADVANCED"]) && $_GET["F_ADVANCED"] == "Y") {
    $_SESSION["FILTER"] = array();
}
if (isset($_GET["F_ADVANCED"]) && $_GET["F_ADVANCED"] == "Y" || isset($_SESSION["FILTER"]["F_ADVANCED"]) && $_SESSION["FILTER"]["F_ADVANCED"] == "Y") {
    $arResult["ADV_FILTER"]["F_ADVANCED"] = $_SESSION["FILTER"]["F_ADVANCED"] = "Y";
    $arFilter = array();
    if (intval($fID = tasksGetFilter("F_META::ID_OR_NAME")) > 0) {
Exemplo n.º 15
0
 /**
  * This method is deprecated. Use CTaskItem::delete() instead.
  * @deprecated
  */
 public static function Delete($ID, $arParams = array())
 {
     global $DB, $CACHE_MANAGER, $USER;
     if (isset($USER) && is_object($USER)) {
         $actorUserId = (int) $USER->getId();
     } else {
         $actorUserId = 1;
     }
     if (isset($arParams['META::EVENT_GUID'])) {
         $eventGUID = $arParams['META::EVENT_GUID'];
         unset($arParams['META::EVENT_GUID']);
     } else {
         $eventGUID = sha1(uniqid('AUTOGUID', true));
     }
     $paramSkipExchangeSync = false;
     if (is_array($arParams)) {
         if (isset($arParams['skipExchangeSync']) && ($arParams['skipExchangeSync'] === 'Y' || $arParams['skipExchangeSync'] === true)) {
             $paramSkipExchangeSync = true;
         }
     }
     $ID = intval($ID);
     if ($ID < 1) {
         return false;
     }
     $rsTask = CTasks::GetByID($ID, false);
     if ($arTask = $rsTask->Fetch()) {
         foreach (GetModuleEvents('tasks', 'OnBeforeTaskDelete', true) as $arEvent) {
             if (ExecuteModuleEventEx($arEvent, array($ID, $arTask)) === false) {
                 return false;
             }
         }
         CTaskCountersProcessor::onBeforeTaskDelete($ID, $arTask);
         CTaskMembers::DeleteByTaskID($ID);
         CTaskFiles::DeleteByTaskID($ID);
         CTaskDependence::DeleteByTaskID($ID);
         CTaskDependence::DeleteByDependsOnID($ID);
         CTaskTags::DeleteByTaskID($ID);
         $strSql = "DELETE FROM b_tasks_viewed WHERE TASK_ID = " . $ID;
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $strSql = "DELETE FROM b_tasks_reminder WHERE TASK_ID = " . $ID;
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         // clear cache
         if ($arTask["GROUP_ID"]) {
             $CACHE_MANAGER->ClearByTag("tasks_group_" . $arTask["GROUP_ID"]);
         }
         $arParticipants = array_unique(array_merge(array($arTask["CREATED_BY"], $arTask["RESPONSIBLE_ID"]), $arTask["ACCOMPLICES"], $arTask["AUDITORS"]));
         foreach ($arParticipants as $userId) {
             $CACHE_MANAGER->ClearByTag("tasks_user_" . $userId);
         }
         $strSql = "UPDATE b_tasks_template SET TASK_ID = NULL WHERE TASK_ID = " . $ID;
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $strSql = "UPDATE b_tasks_template SET PARENT_ID = " . ($arTask["PARENT_ID"] ? $arTask["PARENT_ID"] : "NULL") . " WHERE PARENT_ID = " . $ID;
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $strSql = "UPDATE b_tasks SET PARENT_ID = " . ($arTask["PARENT_ID"] ? $arTask["PARENT_ID"] : "NULL") . " WHERE PARENT_ID = " . $ID;
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $strUpdate = $DB->PrepareUpdate("b_tasks", array('ZOMBIE' => 'Y', 'CHANGED_BY' => $actorUserId, 'CHANGED_DATE' => date($DB->DateFormatToPHP(CSite::GetDateFormat('FULL')), time() + CTasksTools::getTimeZoneOffset())), "tasks");
         $strSql = "UPDATE b_tasks SET " . $strUpdate . " WHERE ID = " . (int) $ID;
         if ($DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__)) {
             CTaskNotifications::SendDeleteMessage($arTask);
             if ($arTask["FORUM_TOPIC_ID"] && CModule::IncludeModule("forum")) {
                 CForumTopic::Delete($arTask["FORUM_TOPIC_ID"]);
             }
             if (!$paramSkipExchangeSync) {
                 CTaskSync::DeleteItem($arTask);
             }
             // MS Exchange
             // Emit pull event
             try {
                 $arPullRecipients = array();
                 foreach ($arParticipants as $userId) {
                     $arPullRecipients[] = (int) $userId;
                 }
                 $taskGroupId = 0;
                 // no group
                 if (isset($arTask['GROUP_ID']) && $arTask['GROUP_ID'] > 0) {
                     $taskGroupId = (int) $arTask['GROUP_ID'];
                 }
                 $arPullData = array('TASK_ID' => (int) $ID, 'BEFORE' => array('GROUP_ID' => $taskGroupId), 'TS' => time(), 'event_GUID' => $eventGUID);
                 self::EmitPullWithTagPrefix($arPullRecipients, 'TASKS_GENERAL_', 'task_remove', $arPullData);
                 self::EmitPullWithTag($arPullRecipients, 'TASKS_TASK_' . (int) $ID, 'task_remove', $arPullData);
             } catch (Exception $e) {
             }
             foreach (GetModuleEvents('tasks', 'OnTaskDelete', true) as $arEvent) {
                 ExecuteModuleEventEx($arEvent, array($ID));
             }
             if (CModule::IncludeModule("search")) {
                 CSearch::DeleteIndex("tasks", $ID);
             }
         }
         return true;
     }
     return false;
 }
Exemplo n.º 16
0
 function AddAttachment($listName, $listItemID, $fileName, $attachment)
 {
     global $USER;
     if (!$this->__Init()) {
         return $this->error;
     }
     if (!($listName_original = CIntranetUtils::checkGUID($listName))) {
         return new CSoapFault('Data error', 'Wrong GUID - ' . $listName);
     }
     if (strlen($attachment) <= 0) {
         return new CSoapFault('Wrong attachment', 'Wrong attachment');
     }
     $listName = ToUpper(CIntranetUtils::makeGUID($listName_original));
     $listItemID = intval($listItemID);
     $dbRes = CTasks::GetByID($listItemID);
     if ($task = $dbRes->Fetch()) {
         $fileName = str_replace(array('/', '\\', '..'), '', $fileName);
         // minor security
         foreach ($task["FILES"] as $fileID) {
             $FILE = ToLower(basename(CFile::GetPath($fileID)));
             if ($FILE == ToLower($fileName)) {
                 Header('HTTP/1.1 500 Internal Server Error');
                 $obDetail = new CXMLCreator('detail');
                 $obDetail->addChild(CXMLCreator::createTagAttributed('errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/"', 'The specified name is already in use.'));
                 $obDetail->addChild(CXMLCreator::createTagAttributed('errorcode xmlns="http://schemas.microsoft.com/sharepoint/soap/"', '0x81020067'));
                 return new CSoapFault('soap::Server', 'Exception of type \'Microsoft.SharePoint.SoapServer.SoapServerException\' was thrown.', $obDetail);
             }
         }
         $tmpFileName = CTempFile::GetFileName('sheet_happens');
         RewriteFile($tmpFileName, $attachment);
         $arFile = CFile::MakeFileArray($tmpFileName);
         $arFile['name'] = basename($fileName);
         $arFile['MODULE_ID'] = 'tasks';
         $arValue = array($FILE_ID = CFile::SaveFile($arFile, 'outlook/Lists/' . $listItemID));
         CTasks::AddFiles($task["ID"], $arValue);
         return array('AddAttachmentResult' => '/tasks/getfile/' . (int) $listItemID . '/' . (int) $FILE_ID . '/' . urlencode(ToLower(basename(CFile::GetPath($FILE_ID)))));
     } else {
         return new CSoapFault('0x81020016', 'List item not found');
     }
 }
Exemplo n.º 17
0
 private static function RegisterLiveFeedEvent(&$arFields)
 {
     $ID = isset($arFields['ID']) ? intval($arFields['ID']) : 0;
     if ($ID <= 0) {
         $arFields['ERROR'] = 'Could not find activity ID.';
         return false;
     }
     $ownerTypeID = isset($arFields['OWNER_TYPE_ID']) ? intval($arFields['OWNER_TYPE_ID']) : CCrmOwnerType::Undefined;
     if (!CCrmOwnerType::IsDefined($ownerTypeID)) {
         $arFields['ERROR'] = 'Could not find owner type ID.';
         return false;
     }
     $ownerID = isset($arFields['OWNER_ID']) ? intval($arFields['OWNER_ID']) : 0;
     if ($ownerID <= 0) {
         $arFields['ERROR'] = 'Could not find owner ID.';
         return false;
     }
     $arOwners = array(array("OWNER_TYPE_ID" => $ownerTypeID, "OWNER_ID" => $ownerID));
     $authorID = isset($arFields['AUTHOR_ID']) ? intval($arFields['AUTHOR_ID']) : 0;
     $editorID = isset($arFields['EDITOR_ID']) ? intval($arFields['EDITOR_ID']) : 0;
     $userID = $authorID > 0 ? $authorID : $editorID;
     if ($userID <= 0) {
         $userID = CCrmSecurityHelper::GetCurrentUserID();
     }
     // Params are not assigned - we will use current activity only.
     $liveFeedFields = array('ENTITY_TYPE_ID' => CCrmOwnerType::Activity, 'ENTITY_ID' => $ID, 'USER_ID' => $userID, 'MESSAGE' => '', 'TITLE' => '');
     $bindings = isset($arFields['BINDINGS']) && is_array($arFields['BINDINGS']) ? $arFields['BINDINGS'] : array();
     if (!empty($bindings)) {
         $liveFeedFields['PARENTS'] = $bindings;
         $liveFeedFields['PARENT_OPTIONS'] = array('ENTITY_TYPE_ID_KEY' => 'OWNER_TYPE_ID', 'ENTITY_ID_KEY' => 'OWNER_ID');
         $ownerInfoOptions = array('ENTITY_TYPE_ID_KEY' => 'OWNER_TYPE_ID', 'ENTITY_ID_KEY' => 'OWNER_ID', 'ADDITIONAL_DATA' => array('LEVEL' => 2));
         $additionalParents = array();
         foreach ($bindings as &$binding) {
             $ownerTypeID = isset($binding['OWNER_TYPE_ID']) ? intval($binding['OWNER_TYPE_ID']) : CCrmOwnerType::Undefined;
             $ownerID = isset($binding['OWNER_ID']) ? intval($binding['OWNER_ID']) : 0;
             if ($ownerTypeID != CCrmOwnerType::Undefined && $ownerID > 0) {
                 $arOwners[] = array("OWNER_TYPE_ID" => $ownerTypeID, "OWNER_ID" => $ownerID);
             }
             if ($ownerTypeID === CCrmOwnerType::Contact && $ownerID > 0) {
                 $owners = array();
                 if (CCrmOwnerType::TryGetOwnerInfos(CCrmOwnerType::Contact, $ownerID, $owners, $ownerInfoOptions)) {
                     $additionalParents = array_merge($additionalParents, $owners);
                 }
             }
         }
         unset($binding);
         if (!empty($additionalParents)) {
             $liveFeedFields['PARENTS'] = array_merge($bindings, $additionalParents);
         }
         $arOwners = array_unique($arOwners);
     }
     self::PrepareStorageElementIDs($arFields);
     $arStorageElementID = $arFields["STORAGE_ELEMENT_IDS"];
     if (!empty($arStorageElementID)) {
         if ($arFields["STORAGE_TYPE_ID"] == StorageType::WebDav) {
             $liveFeedFields["UF_SONET_LOG_DOC"] = $arStorageElementID;
         } else {
             if ($arFields["STORAGE_TYPE_ID"] == StorageType::Disk) {
                 $liveFeedFields["UF_SONET_LOG_DOC"] = array();
                 //We have to add prefix Bitrix\Disk\Uf\FileUserType::NEW_FILE_PREFIX to file ID
                 foreach ($arStorageElementID as $elementID) {
                     $liveFeedFields["UF_SONET_LOG_DOC"][] = "n{$elementID}";
                 }
             } else {
                 $liveFeedFields["UF_SONET_LOG_FILE"] = $arStorageElementID;
             }
         }
     }
     if ($arFields['TYPE_ID'] == CCrmActivityType::Task && isset($arFields["ASSOCIATED_ENTITY_ID"]) && intval($arFields["ASSOCIATED_ENTITY_ID"]) > 0 && CModule::IncludeModule("tasks")) {
         $dbTask = CTasks::GetByID($arFields["ASSOCIATED_ENTITY_ID"], false);
         if ($arTask = $dbTask->Fetch()) {
             $ufDocID = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFieldValue("TASKS_TASK", "UF_TASK_WEBDAV_FILES", $arTask["ID"], LANGUAGE_ID);
             if ($ufDocID) {
                 $liveFeedFields["UF_SONET_LOG_DOC"] = $ufDocID;
             }
         }
     }
     $bConvert = false;
     if ($arTask) {
         $rsLog = CSocNetLog::GetList(array(), array("EVENT_ID" => "tasks", "SOURCE_ID" => $arTask["ID"]), array("ID"));
         if ($arLog = $rsLog->Fetch()) {
             $eventID = CCrmLiveFeed::ConvertTasksLogEvent(array("LOG_ID" => $arLog["ID"], "ACTIVITY_ID" => $ID));
             $bConvert = true;
         }
     }
     if (!$bConvert) {
         $eventID = CCrmLiveFeed::CreateLogEvent($liveFeedFields, CCrmLiveFeedEvent::Add);
     }
     if (!(is_int($eventID) && $eventID > 0) && isset($liveFeedFields['ERROR'])) {
         $arFields['ERROR'] = $liveFeedFields['ERROR'];
     } else {
         if ($arTask) {
             $arTaskParticipant = CTaskNotifications::GetRecipientsIDs($arTask, false);
             $arSocnetRights = CTaskNotifications::__UserIDs2Rights($arTaskParticipant);
             if (isset($arTask['GROUP_ID']) && intval($arTask['GROUP_ID']) > 0) {
                 $perm = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_GROUP, $arTask['GROUP_ID'], "tasks", "view");
                 $arSocnetRights = array_merge($arSocnetRights, array('SG' . $arTask['GROUP_ID'], 'SG' . $arTask['GROUP_ID'] . '_' . $perm));
             }
             CSocNetLogRights::DeleteByLogID($eventID);
             CSocNetLogRights::Add($eventID, $arSocnetRights);
         }
         if (intval($arFields["RESPONSIBLE_ID"]) > 0 && $arFields["RESPONSIBLE_ID"] != $userID && CModule::IncludeModule("im")) {
             $bHasPermissions = false;
             $perms = CCrmPerms::GetUserPermissions($arFields["RESPONSIBLE_ID"]);
             foreach ($arOwners as $arOwner) {
                 if (CCrmActivity::CheckReadPermission($arOwner["OWNER_TYPE_ID"], $arOwner["OWNER_ID"], $perms)) {
                     $bHasPermissions = true;
                     break;
                 }
             }
             switch ($arFields['TYPE_ID']) {
                 case CCrmActivityType::Call:
                     $type = 'CALL';
                     break;
                 case CCrmActivityType::Meeting:
                     $type = 'MEETING';
                     break;
                 default:
                     $type = false;
             }
             if ($bHasPermissions && $type) {
                 $url = "/crm/stream/?log_id=#log_id#";
                 $url = str_replace(array("#log_id#"), array($eventID), $url);
                 $serverName = (CMain::IsHTTPS() ? "https" : "http") . "://" . (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0 ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", ""));
                 $arMessageFields = array("MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "TO_USER_ID" => $arFields["RESPONSIBLE_ID"], "FROM_USER_ID" => $userID, "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "crm", "LOG_ID" => $eventID, "NOTIFY_EVENT" => "activity_add", "NOTIFY_TAG" => "CRM|ACTIVITY|" . $ID, "NOTIFY_MESSAGE" => GetMessage("CRM_ACTIVITY_" . $type . "_RESPONSIBLE_IM_NOTIFY", array("#title#" => '<a href="' . $url . '">' . htmlspecialcharsbx($arFields['SUBJECT']) . '</a>')), "NOTIFY_MESSAGE_OUT" => GetMessage("CRM_ACTIVITY_" . $type . "_RESPONSIBLE_IM_NOTIFY", array("#title#" => htmlspecialcharsbx($arFields['SUBJECT']))) . " (" . $serverName . $url . ")");
                 CIMNotify::Add($arMessageFields);
             }
         }
     }
     return $eventID;
 }
Exemplo n.º 18
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if (!CModule::IncludeModule('crm')) {
    return;
}
if (intval($arParams["FIELDS"]["ENTITY_ID"]) > 0) {
    $arActivity = $arParams["ACTIVITY"];
    if ($arActivity["TYPE_ID"] == CCrmActivityType::Task) {
        $APPLICATION->SetAdditionalCSS('/bitrix/js/tasks/css/tasks.css');
        if (intval($arActivity["ASSOCIATED_ENTITY_ID"]) > 0 && CModule::IncludeModule("tasks")) {
            $rsTask = CTasks::GetByID($arActivity["ASSOCIATED_ENTITY_ID"], false);
            if ($arTask = $rsTask->GetNext()) {
                $path = str_replace(array("#user_id#", "#task_id#"), array($arTask["RESPONSIBLE_ID"], $arTask["ID"]), COption::GetOptionString("tasks", "paths_task_user_entry", "/company/personal/user/#user_id#/tasks/task/view/#task_id#/", $arTask["SITE_ID"]));
                $taskHtmlTitle = !isset($arParams["PARAMS"]) || !isset($arParams["PARAMS"]["MOBILE"]) || $arParams["PARAMS"]["MOBILE"] != "Y" ? '<a href="' . $path . '" onclick="if (taskIFramePopup.isLeftClick(event)) {taskIFramePopup.view(' . $arTask["ID"] . '); return false;}">' . $arTask["TITLE"] . '</a>' : $arTask["TITLE"];
                $actorUserId = null;
                $actorUserName = '';
                $actorMaleSuffix = '';
                $eventTitlePhraseSuffix = '_DEFAULT';
                if (isset($arParams['NAME_TEMPLATE'])) {
                    $nameTemplate = $arParams['NAME_TEMPLATE'];
                } else {
                    $nameTemplate = CSite::GetNameFormat();
                }
                if ($arActivity["COMPLETED"] == "N") {
                    $eventTitlePhraseSuffix = '_CREATE';
                    $actorUserId = $arTask["CREATED_BY"];
                } else {
                    $eventTitlePhraseSuffix = '_COMPLETE';
Exemplo n.º 19
0
                            break;
                        }
                        $obSection = CIBLockSection::GetByID($arSection['IBLOCK_SECTION_ID']);
                        $arSection = $obSection->Fetch();
                    }
                    if ($arSection['XML_ID']) {
                        $url = str_replace(array('#GROUP_ID#', '#TASK_ID#'), array($arSection['XML_ID'], $ID), COption::GetOptionString('intranet', 'path_task_group_entry', '/workgroups/group/#GROUP_ID#/tasks/task/view/#TASK_ID#/'));
                    } else {
                        $url = str_replace(array('#USER_ID#'), array(intval($url)), COption::GetOptionString('intranet', 'path_task_user', '/company/personal/user/#USER_ID#/tasks/'));
                    }
                }
            }
        }
    } else {
        if (($ID = intval($matches[1][0])) && CModule::IncludeModule('tasks')) {
            $dbRes = CTasks::GetByID($ID);
            if ($arTask = $dbRes->Fetch()) {
                if (intval($arTask["GROUP_ID"]) > 0) {
                    $url = str_replace(array('#GROUP_ID#', '#TASK_ID#'), array($arTask["GROUP_ID"], $ID), COption::GetOptionString('intranet', 'path_task_group_entry', '/workgroups/group/#GROUP_ID#/tasks/task/view/#TASK_ID#/'));
                } else {
                    $url = str_replace(array('#USER_ID#', '#TASK_ID#'), array($arTask["RESPONSIBLE_ID"], $ID), COption::GetOptionString('intranet', 'path_task_user_entry', '/company/personal/user/#USER_ID#/tasks/task/view/#TASK_ID#/'));
                }
            }
        }
    }
} else {
    $url = str_replace(array('#USER_ID#'), array(intval($url)), COption::GetOptionString('intranet', 'path_task_user', '/company/personal/user/#USER_ID#/tasks/'));
}
$url = str_replace('.php/', '.php', $url);
if (substr($url, 0, 1) != '/') {
    $url = '/' . $url;
Exemplo n.º 20
0
         }
         /*
         if (
         	! isset($arCopy["PARENT_ID"]) 
         	|| ( ! $arCopy["PARENT_ID"])
         )
         {
         	$arCopy["PARENT_ID"] = intval($_GET["COPY"]);
         }
         */
         $arResult['COPY_PARAMS']['ORIGIN_TASK'] = intval($_GET["COPY"]);
         // get template.php to know task being copied
         $arData = $arCopy;
     }
 } elseif (intval($_GET["PARENT_ID"]) > 0) {
     $rsParent = CTasks::GetByID(intval($_GET["PARENT_ID"]));
     if ($rsParent = $rsParent->GetNext()) {
         $arData["GROUP_ID"] = $rsParent["GROUP_ID"];
         if (isset($rsParent["DESCRIPTION_IN_BBCODE"])) {
             $arData["DESCRIPTION_IN_BBCODE"] = $rsParent["DESCRIPTION_IN_BBCODE"];
         }
     }
 }
 $bNeedDecodeUtf8 = false;
 if (isset($_GET['UTF8encoded']) && ToUpper(SITE_CHARSET) !== 'UTF-8') {
     $bNeedDecodeUtf8 = true;
 }
 $arGotData = array();
 foreach ($_GET as $key => $val) {
     if ($key === 'UTF8encoded') {
         continue;