Добавление CSS и JS для формирования с помощью вложений

Мне нужно добавить некоторые внешние и локальные файлы CSS и JavaScript в форму, но я не могу найти правильный способ сделать это. Я просто добавляю пути и URL-адреса для файлов JS и CSS?

Я предполагаю $ form ['# attach'] ['css'] [] и $ form ['# attach'] ['js'] [] являются правильными местами для этого, поэтому они перезагружаются при восстановлении формы. Кажется, я чего-то не хватает.

35 голосов | спросил vintorg 15 AMpMon, 15 Apr 2013 07:52:17 +040052Monday 2013, 07:52:17

3 ответа


65

Вы посмотрели документацию?

Прикрепить CSS и JS для формирования

http://api.drupal.org/апи /друпали /разработчик! тема! forms_api_reference.html /7 # прилагаются

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

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

Внешние файлы

http://api.drupal.org/API /друпал /включает в себя% 21common.inc /функция /drupal_process_attached /7

Также могут быть загружены внешние файлы «js» и «css». Например:

$ build ['#attached'] ['js'] ['http://code.jquery.com/jquery-1.4.2.min.js'] = array ('type' => «внешний»);
ответил Alex Gill 15 PMpMon, 15 Apr 2013 12:30:14 +040030Monday 2013, 12:30:14
8

Вот способ добавления встроенного CSS к формам ...

$ form ['# attach'] ['css'] [] = array (
  'data' => '.my-example-element {display: none; }»,
  'type' => 'в очереди',
);

Обратите внимание, что вы должны добавить в массив css вместо замены . Вы должны использовать: ['css'] [] =, а не ['css'] =, чтобы избежать раздавливания других дополнений.

ответил doublejosh 19 MaramSat, 19 Mar 2016 03:42:59 +03002016-03-19T03:42:59+03:0003 2016, 03:42:59
6

Вот один из способов сделать это через. вызывая функцию, используя свойство #after_build. Просто передайте свой идентификатор формы в корпусе коммутатора.

function mymodule_form_alter (& $ form, & $ form_state, $ form_id) {
  switch ($ form_id) {
    case 'my_form':
      $ form ['# after_build'] [] = 'mymodule_after_build';
      ломать;
  }
}

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

Также вы можете следовать этому хорошему учебнику Добавление css и js для форматов drupal

Надеюсь, это поможет. :)

ответил Prerit Mohan 15 AMpMon, 15 Apr 2013 08:55:33 +040055Monday 2013, 08:55:33

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132