/** * <p>Копирует <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#status">статус</a>. Возвращает ID нового <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#status">статуса</a> в случае положительного результата, в противном случае - "false".</p> * * * * * @param int $status_id ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#status">статуса</a> который * необходимо скопировать. * * * * @param string $check_rights = "Y" Флаг необходимости проверки <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#permissions">прав</a> текущего * пользователя. Возможны следующие значения: <ul> <li> <b>Y</b> - права * необходимо проверить; </li> <li> <b>N</b> - право не нужно проверять. </li> * </ul> Для копирования <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#status">статуса</a> * необходимо обладать нижеследующими <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#permissions#module">правами</a>: <ol> <li> <b>[25] * просмотр параметров веб-формы</b> на ту веб-форму, из которой идет * копирование; </li> <li> <b>[30] полный доступ</b> на ту веб-форму, в которую * копируется. </li> </ol> Параметр необязательный. По умолчанию - "Y" * (права необходимо проверить). * * * * @param mixed $form_id = false ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#form">веб-формы</a> в который * необходимо скопировать <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#status">статус</a>.<br> Необязательный * параметр. По умолчанию - "false" (текущая <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#form">веб-форма</a>). * * * * @return mixed * * * <h4>Example</h4> * <pre> * <? * $status_id = 1; // ID статуса * // скопируем статус * if ($NEW_STATUS_ID = <b>CFormStatus::Copy</b>($status_id)) * { * echo "Статус #1 успешно скопирован в новый статус #".$NEW_STATUS_ID; * } * else * { * // выведем текст ошибки * global $strError; * echo $strError; * } * ?> * </pre> * * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/copy.php">CForm::Copy</a> </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cformfield/copy.php">CFormField::Copy</a> </li> <li> <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cformanswer/copy.php">CFormAnswer::Copy</a> </li> </ul><a * name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformstatus/copy.php * @author Bitrix */ public static function Copy($ID, $CHECK_RIGHTS="Y", $NEW_FORM_ID=false) { global $DB, $APPLICATION, $strError; $err_mess = (CAllFormStatus::err_mess())."<br>Function: Copy<br>Line: "; $ID = intval($ID); $NEW_FORM_ID = intval($NEW_FORM_ID); $rsStatus = CFormStatus::GetByID($ID); if ($arStatus = $rsStatus->Fetch()) { $RIGHT_OK = "N"; if ($CHECK_RIGHTS!="Y" || CForm::IsAdmin()) $RIGHT_OK="Y"; else { $F_RIGHT = CForm::GetPermission($arStatus["FORM_ID"]); // если имеем право на просмотр параметров формы if ($F_RIGHT>=25) { // если задана новая форма if ($NEW_FORM_ID>0) { $NEW_F_RIGHT = CForm::GetPermission($NEW_FORM_ID); // если имеем полный доступ на новую форму if ($NEW_F_RIGHT>=30) $RIGHT_OK = "Y"; } elseif ($F_RIGHT>=30) // если имеем полный доступ на исходную форму { $RIGHT_OK = "Y"; } } } // если права проверили то if ($RIGHT_OK=="Y") { CFormStatus::GetPermissionList($ID, $arPERMISSION_VIEW, $arPERMISSION_MOVE, $arPERMISSION_EDIT, $arPERMISSION_DELETE); // копируем $arFields = array( "FORM_ID" => ($NEW_FORM_ID>0) ? $NEW_FORM_ID : $arStatus["FORM_ID"], "C_SORT" => $arStatus["C_SORT"], "ACTIVE" => $arStatus["ACTIVE"], "TITLE" => $arStatus["TITLE"], "DESCRIPTION" => $arStatus["DESCRIPTION"], "CSS" => $arStatus["CSS"], "HANDLER_OUT" => $arStatus["HANDLER_OUT"], "HANDLER_IN" => $arStatus["HANDLER_IN"], "DEFAULT_VALUE" => $arStatus["DEFAULT_VALUE"], "arPERMISSION_VIEW" => $arPERMISSION_VIEW, "arPERMISSION_MOVE" => $arPERMISSION_MOVE, "arPERMISSION_EDIT" => $arPERMISSION_EDIT, "arPERMISSION_DELETE" => $arPERMISSION_DELETE, ); $NEW_ID = CFormStatus::Set($arFields); return $NEW_ID; } else $strError .= GetMessage("FORM_ERROR_ACCESS_DENIED")."<br>"; } else $strError .= GetMessage("FORM_ERROR_STATUS_NOT_FOUND")."<br>"; return false; }
} } } $DB->PrepareFields("b_form_status"); } if ($ID > 0) { $rsStatus = CFormStatus::GetByID($ID); } if ($ID <= 0 || !$rsStatus || !$rsStatus->ExtractFields()) { $ID = 0; $str_ACTIVE = "Y"; $str_C_SORT = CFormStatus::GetNextSort($WEB_FORM_ID); $str_CSS = "statusgreen"; $str_DEFAULT_VALUE = intval($arForm["STATUSES"]) <= 0 ? "Y" : "N"; } else { CFormStatus::GetPermissionList($ID, $arPERMISSION_VIEW, $arPERMISSION_MOVE, $arPERMISSION_EDIT, $arPERMISSION_DELETE); if (strlen($strError) <= 0) { //$arSITE = CForm::GetSiteArray($ID); $arMAIL_TEMPLATE = CFormStatus::GetMailTemplateArray($ID); } } if (strlen($strError) > 0) { $DB->InitTableVarsForEdit("b_form_status", "", "str_"); } $sDocTitle = $ID > 0 ? str_replace("#ID#", $ID, GetMessage("FORM_EDIT_RECORD")) : GetMessage("FORM_NEW_RECORD"); $APPLICATION->SetTitle($sDocTitle); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; /*************************************************************************** HTML form ****************************************************************************/ $context = new CAdminContextMenuList($arForm['ADMIN_MENU']);