コード例 #1
0
 function ResetResult($ID, $WEB_FORM_ID, $DELETE_IMAGES = true, $DELETE_ADDITIONAL = "N", $arrException = array())
 {
     return CFormResult::Reset($ID, $DELETE_IMAGES, $DELETE_ADDITIONAL, $arrException);
 }
コード例 #2
0
	/**
	 * <p>Удаляет указанный <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результат</a>. В случае успеха функция возвращает "true", иначе - "false".</p>
	 *
	 *
	 *
	 *
	 * @param int $result_id  ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a>.
	 *
	 *
	 *
	 * @param string $check_rights = "Y" Флаг необходимости проверки прав текущего пользователя.
	 * Возможны следующие значения: <ul> <li> <b>Y</b> - права необходимо
	 * проверить; </li> <li> <b>N</b> - права не нужно проверять. </li> </ul> Для
	 * успешного удаления <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a> необходимо
	 * обладать следующими <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/permissions.php">правами</a>: <ol> <li>На веб-форму, к
	 * которой принадлежит редактируемый результат: <br><br><b>[20] Работа со
	 * всеми результатами в соответствии с их статусами</b> <br><br>или, в
	 * случае, если вы являетесь создателем удаляемого результата,
	 * достаточно права <br><br><b>[15] Работа со своим результатом в
	 * соответствии с его статусом.</b> <br> </li> <li>На статус в котором
	 * находится редактируемый результат необходимо иметь право:
	 * <br><br><b>[DELETE] удаление.</b> </li> </ol> Параметр необязательный. По
	 * умолчанию - "Y" (права необходимо проверить).
	 *
	 *
	 *
	 * @return bool 
	 *
	 *
	 * <h4>Example</h4> 
	 * <pre>
	 * &lt;?
	 * $RESULT_ID = 189; // ID результата
	 * 
	 * // удалим результат с проверкой прав текущего пользователя
	 * if (<b>CFormResult::Delete</b>($RESULT_ID))
	 * {
	 *     echo "Результат # ".$RESULT_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/delete.php">CForm::Delete</a> </li> <li> <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/classes/cformfield/delete.php">CFormField::Delete</a>; </li> <li> <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/classes/cformanswer/delete.php">CFormAnswer::Delete</a> </li> <li> <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/classes/cformstatus/delete.php">CFormStatus::Delete</a> </li> </ul><a
	 * name="examples"></a>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/delete.php
	 * @author Bitrix
	 */
	public static function Delete($RESULT_ID, $CHECK_RIGHTS="Y")
	{
//		echo $RESULT_ID; exit();
		global $DB, $USER, $APPLICATION, $strError;

		$strError = '';

		$err_mess = (CAllFormResult::err_mess())."<br>Function: Delete<br>Line: ";
		$RESULT_ID = intval($RESULT_ID);
		$strSql = "SELECT FORM_ID FROM b_form_result WHERE ID='".$RESULT_ID."'";
		$q = $DB->Query($strSql,false,$err_mess.__LINE__);
		if ($qr = $q->Fetch())
		{
			// rights check
			$F_RIGHT = ($CHECK_RIGHTS!="Y") ? 20 : CForm::GetPermission($qr["FORM_ID"]);
			if ($F_RIGHT>=20) $RIGHT_OK = "Y";
			else
			{
				$strSql = "SELECT USER_ID FROM b_form_result WHERE ID='".$RESULT_ID."'";
				$z = $DB->Query($strSql,false,$err_mess.__LINE__);
				$zr = $z->Fetch();
				if ($F_RIGHT>=15 && intval($USER->GetID())==$zr["USER_ID"]) $RIGHT_OK = "Y";
			}

			if ($RIGHT_OK=="Y")
			{
				// rights check by status
				if ($CHECK_RIGHTS == 'Y')
				{
					$arrRESULT_PERMISSION = CFormResult::GetPermissions($RESULT_ID, $v);
					$RIGHT_OK = in_array("DELETE", $arrRESULT_PERMISSION) ? 'Y' : 'N';
				}

				if ($RIGHT_OK=="Y") // delete rights ok
				{
					$dbEvents = GetModuleEvents('form', 'onBeforeResultDelete');
					while ($arEvent = $dbEvents->Fetch())
					{
						ExecuteModuleEventEx($arEvent, array($qr["FORM_ID"], $RESULT_ID, $CHECK_RIGHTS));

						if ($ex = $APPLICATION->GetException())
						{
							$strError .= $ex->GetString().'<br />';
							$APPLICATION->ResetException();
						}
					}

					if (strlen($strError) <= 0)
					{
						CForm::ExecHandlerBeforeChangeStatus($RESULT_ID, "DELETE");
						if (CFormResult::Reset($RESULT_ID, true, "Y"))
						{
							// delete result
							$DB->Query("DELETE FROM b_form_result WHERE ID='$RESULT_ID'", false, $err_mess.__LINE__);
							return true;
						}
					}
				}
			}
			else $strError .= GetMessage("FORM_ERROR_ACCESS_DENIED")."<br>";
		}
		else $strError .= GetMessage("FORM_ERROR_RESULT_NOT_FOUND")."<br>";
		return false;
	}
コード例 #3
0
 function Delete($RESULT_ID, $CHECK_RIGHTS = "Y")
 {
     global $DB, $USER, $strError;
     $err_mess = CAllFormResult::err_mess() . "<br>Function: Delete<br>Line: ";
     $RESULT_ID = intval($RESULT_ID);
     $strSql = "SELECT FORM_ID FROM b_form_result WHERE ID='" . $RESULT_ID . "'";
     $q = $DB->Query($strSql, false, $err_mess . __LINE__);
     if ($qr = $q->Fetch()) {
         // проверим общие права
         $F_RIGHT = $CHECK_RIGHTS != "Y" ? 20 : CForm::GetPermission($qr["FORM_ID"]);
         if ($F_RIGHT >= 20) {
             $RIGHT_OK = "Y";
         } else {
             $strSql = "SELECT USER_ID FROM b_form_result WHERE ID='" . $RESULT_ID . "'";
             $z = $DB->Query($strSql, false, $err_mess . __LINE__);
             $zr = $z->Fetch();
             if ($F_RIGHT >= 15 && intval($USER->GetID()) == $zr["USER_ID"]) {
                 $RIGHT_OK = "Y";
             }
         }
         if ($RIGHT_OK == "Y") {
             // проверим право на результат в зависимости от статуса результата
             $arrRESULT_PERMISSION = CFormResult::GetPermissions($RESULT_ID, $v);
             if (in_array("DELETE", $arrRESULT_PERMISSION)) {
                 CForm::ExecHandlerBeforeChangeStatus($RESULT_ID, "DELETE");
                 if (CFormResult::Reset($RESULT_ID, true, "Y")) {
                     // удаляем результат
                     $DB->Query("DELETE FROM b_form_result WHERE ID='{$RESULT_ID}'", false, $err_mess . __LINE__);
                     return true;
                 }
             }
         } else {
             $strError .= GetMessage("FORM_ERROR_ACCESS_DENIED") . "<br>";
         }
     } else {
         $strError .= GetMessage("FORM_ERROR_RESULT_NOT_FOUND") . "<br>";
     }
     return false;
 }