/**
  * <p>Удаляет <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>/<a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поле</a> и все ответы на него из <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результатов</a>. Возвращает "true" в случае положительного результата, и "false" - в противном случае.</p>
  *
  *
  * @param int $field_id  ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a>/<a
  * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</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#permissions#form">право</a> <b>[30] Полный
  * доступ</b> на веб-форму, к которой принадлежит
  * <i>field_id</i>.<br><br>Параметр необязательный. По умолчанию - "Y" (права
  * необходимо проверить).
  *
  * @return bool 
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * $FIELD_ID = 140;
  * // удалим вопрос #140
  * if (<b>CFormField::Delete</b>($FIELD_ID))
  * {
  *     echo "Вопрос #140 удален.";
  * }
  * 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/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> <li> <a
  * href="http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/delete.php">CFormResult::Delete</a> </li> </ul><a
  * name="examples"></a>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformfield/delete.php
  * @author Bitrix
  */
 public static function Delete($ID, $CHECK_RIGHTS = "Y")
 {
     global $DB, $strError;
     $err_mess = CAllFormField::err_mess() . "<br>Function: Delete<br>Line: ";
     $ID = intval($ID);
     $rsField = CFormField::GetByID($ID);
     if ($arField = $rsField->Fetch()) {
         $WEB_FORM_ID = intval($arField["FORM_ID"]);
         $F_RIGHT = $CHECK_RIGHTS != "Y" ? 30 : CForm::GetPermission($WEB_FORM_ID);
         if ($F_RIGHT >= 30) {
             // очищаем результаты по данному полю
             CFormField::Reset($ID, $CHECK_RIGHTS);
             // clear field validators
             CFormValidator::Clear($ID);
             // удаляем изображения поля
             $strSql = "SELECT IMAGE_ID FROM b_form_field WHERE ID='{$ID}' and IMAGE_ID>0";
             $z = $DB->Query($strSql, false, $err_mess . __LINE__);
             while ($zr = $z->Fetch()) {
                 CFile::Delete($zr["IMAGE_ID"]);
             }
             // удаляем варианты ответов на поле формы
             $DB->Query("DELETE FROM b_form_answer WHERE FIELD_ID='{$ID}'", false, $err_mess . __LINE__);
             // удаляем привязку к типам фильтра
             $DB->Query("DELETE FROM b_form_field_filter WHERE FIELD_ID='{$ID}'", false, $err_mess . __LINE__);
             // удаляем само поле
             $DB->Query("DELETE FROM b_form_field WHERE ID='{$ID}'", false, $err_mess . __LINE__);
             return true;
         } else {
             $strError .= GetMessage("FORM_ERROR_ACCESS_DENIED") . "<br>";
         }
     } else {
         $strError .= GetMessage("FORM_ERROR_FIELD_NOT_FOUND") . "<br>";
     }
     return false;
 }
 function Reset($ID, $CHECK_RIGHTS = "Y")
 {
     global $DB, $strError;
     $err_mess = CAllForm::err_mess() . "<br>Function: Reset<br>Line: ";
     $ID = intval($ID);
     $F_RIGHT = $CHECK_RIGHTS != "Y" ? 30 : CForm::GetPermission($ID);
     if ($F_RIGHT >= 30) {
         // обнул¤ем пол¤ формы
         $rsFields = CFormField::GetList($ID, "ALL", $by, $order, array(), $is_filtered);
         while ($arField = $rsFields->Fetch()) {
             CFormField::Reset($arField["ID"], "N");
         }
         // удал¤ем результаты данной формы
         $DB->Query("DELETE FROM b_form_result WHERE FORM_ID='{$ID}'", false, $err_mess . __LINE__);
         return true;
     } else {
         $strError .= GetMessage("FORM_ERROR_ACCESS_DENIED") . "<br>";
     }
     return false;
 }
Beispiel #3
0
 function ResetField($WEB_FORM_ID, $ID, $CHECK_RIGHTS = "Y")
 {
     return CFormField::Reset($ID, $CHECK_RIGHTS);
 }