2013-05-11 1 views

답변

5

Drupal Form API는 Drupal 사이트에서 양식을 표시, 확인 및 제출하는 표준화 된 방법을 제공합니다. 이 기능을 사용하면 다른 모듈이 사용자가 디자인 한 양식과 상호 작용할 수 있으며 필요한 경우 양식 동작을 수정하기 위해 필드를 추가 또는 변경합니다.

양식 API를 사용하면 테마가 사이트의 그래픽 디자인에 맞는 방식으로 스타일을 지정할 수있는 클래스 및 ID로 완전히 싸인 양식을 출력 할 수 있습니다.

양식 API는 안전한 양식을 출력합니다. 즉, 사용자가 제출 한 양식이 사이트에서 생성되고 악성 데이터를 데이터베이스에 공급하도록 설계된 가짜 페이지의 일부가 아닌지 확인합니다. 유효성 검사 프로세스를 통해 프로그래머는 SQL 주입 및 기타 보안 위협을 피하기 위해 모든 데이터를 삭제할 수 있습니다. 또한 여러 사용자가 동시에 동일한 내용을 수정하지 않도록하는 방법을 제공합니다.

구조화 된 배열로 양식을 작성하면 양식 디자인과 유지 보수가보다 수월해집니다.

다음은 양식 API 사용에 대한 개인적인 사항입니다. 드루팔 (Drupal Form) API 문서에서 this link을 자세히 읽고 싶을 수도 있습니다.

3

Pamatt's answer 잘 작성되었지만 질문이 매우 건설적/확실하지 않으므로 누락 된 부분을 추가하려고합니다.

왜 우리는 "drupal form"을 사용합니까? "HTML forms"로 모든 것을 할 수 있습니다.

"Drupal forms"같은 것은 없습니다. 그들은 여전히 ​​동일한 <input>, <select> 등의 태그를 사용하며 모든 것은 여전히 ​​HTML입니다. 그러나 모듈에는이 HTML로 엉망이되지 않고 양식 을 변경할 수있는 기회가 주어집니다. 여기

는 정상 드루팔 형태 :

$form['text'] = array(
    '#type' => 'textfield', 
    '#maxlength' => 120, 
    '#title' => t('Name'), 
); 

이것은 단지 PHP 배열하고 최대 길이를 수정하려면, 당신은 쉽게 수행 할 수 있습니다. 그것이 <input name="text" maxlength="120" />이라면? 특정 모듈이 그것을 변경하고 싶다면, 그것을하기 위해 일종의 정규식을 사용해야합니다.

또한 Drupal Form API에 의해 생성 된 양식에는 제출 기능뿐만 아니라 ** 추가 ** 검증 기능이 포함될 수 있습니다.

** 추가 : * 텍스트 길이가 120 자 이하 여야 유효성을 검사 할 필요가 없습니다. 누군가 HTML을 편집하고이 필드에 200자를 보낼 수 있지만 양식 API는이를 거부 할 수 있습니다 . 양식 API는 필수 입력란을 채우고, 최대 길이를 초과하지 않고, 요청이 CSRF 안전하고, 목록의 값이 실제로 허용 목록에있는 것과 같은 기본 유효성 검사를 수행 할 수 있습니다.

원시 HTML 양식을 사용하려면 양식 토큰, 캐시, 데이터 유효성 검사기 등을 추가해야합니다. 완료되면 이미 완료되었으며 "Form API"라는 이름이 부여됩니다.