첨부 파일로 양식에 CSS 및 JS 추가


36

외부 및 로컬 CSS 및 JavaScript 파일을 양식에 추가해야하지만이를 수행하는 올바른 방법을 찾지 못하는 것 같습니다. JS 및 CSS 파일의 경로와 URL을 간단히 추가합니까?

나는 이것을하기에 올바른 장소 라고 가정 $form['#attached']['css'][]하고 $form['#attached']['js'][]양식 재 구축시 다시로드됩니다. 뭔가 빠진 것 같습니다.

답변:


70

설명서를 보셨습니까?

CSS와 JS를 양식에 첨부

http://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#attached

$form['#attached']['css'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.css';

$form['#attached']['js'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.js';

외부 파일

http://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_process_attached/7

외부 'js'및 'css'파일도로드 할 수 있습니다. 예를 들면 다음과 같습니다.

$build['#attached']['js']['http://code.jquery.com/jquery-1.4.2.min.js'] = array('type' => 'external');

나는 가지고있다. 외부 CSS 파일을 처리하는 방법을 참조하는 곳을 알려주시겠습니까?
vintorg


2
참고 사항- <module name>_form_<form id>_alter모듈에 이름 지정된 함수를 추가하여 위에서 설명한대로 JavaScript를 특정 양식에 추가 할 수 있습니다. 양식 ID 찾기에 대한 설명은 다음과 같습니다. drupal.stackexchange.com/questions/5802/…
Nux

1
이 예제는 폼의 유일한 첨부 파일이라고 가정하기 때문에 다소 나쁩니다!
doublejosh

6
doublejosh의 주석은 일반적으로 배열을 바꾸지 않고 추가해야합니다. 예를 들면 다음과 $form['#attached']['css'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.css';
같습니다

11

폼에 인라인 CSS 를 추가하는 방법은 다음과 같습니다 .

$form['#attached']['css'][] = array(
  'data' => '.my-example-element { display: none; }',
  'type' => 'inline',
);

css 배열을 바꾸지 말고 추가 해야 합니다 . 다른 첨가물을 찌그러 뜨리지 ['css'][] =말고 사용해야합니다 ['css'] =.


6

이 작업을 수행하는 한 가지 방법이 있습니다. #after_build속성을 사용하여 함수 호출 스위치 케이스에서 양식 ID를 전달하십시오.

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  switch ($form_id) {
    case 'my_form':
      $form['#after_build'][] = 'mymodule_after_build';
      break;
  }
}

function mymodule_after_build($form, &$form_state) {
  $path = drupal_get_path('module', 'mymodule');
  drupal_add_js ("$path/mymodule.js");
  return $form; 
}

또한이 훌륭한 자습서를 따를 수 있습니다. drupal 양식에 CSS 및 js 추가

도움이 되었기를 바랍니다. :)


이것은 여전히 ​​Drupal 7에서 작동하지만 D6 #attached에는 존재하지 않았기 때문에 필요한 D6 핵인 것 같습니다 .
tanius

drupal_add_js양식에 사용해서는 안됩니다 . 유효성 검사 상태 문제가 발생합니다.
doublejosh

1
@doublejosh 이것은 세 살짜리 답변입니다 :)
Prerit Mohan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.