Example #1
0
	/**
	 * <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>
	 * &lt;?
	 * $status_id = 1; // ID статуса
	 * // скопируем статус
	 * if ($NEW_STATUS_ID = <b>CFormStatus::Copy</b>($status_id))
	 * {
	 *     echo "Статус #1 успешно скопирован в новый статус #".$NEW_STATUS_ID;
	 * }
	 * else
	 * {
	 *     // выведем текст ошибки
	 *     global $strError;
	 *     echo $strError;
	 * }
	 * ?&gt;
	 * </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;
	}
Example #2
0
            }
        }
    }
    $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']);