Color Picker для Drupal

Опубликовано 2014.07.01

В ядре друпала есть модуль Color, позволяющий задавать цвета различных элементов темы прямо из админки. Данный Color Picker легко вытянуть и поставить в любую друпальскую форму. Можно создать форму самому, или поальтерить существующую. Такой код добавит элемент ко всем формам, так что ориентируйтесь на переменную $form_id в теле хука.
  1. function my_module_form_alter(&$form, &$form_state, $form_id){
  2. $form['color'] = array(
  3. '#type' => 'textfield',
  4. '#title' => t('Color'),
  5. '#suffix' => '<div id="color-picker"></div>',
  6. '#default_value' => '#000000',
  7. '#attached' => array(
  8. 'library' => array(
  9. array('system', 'farbtastic'),
  10. ),
  11. 'js' => array(
  12. 'type' => 'inline',
  13. 'data' =>
  14. '(function($) {
  15. $(document).ready(function() {
  16. $("#color-picker").farbtastic("#edit-color");
  17. });
  18. }) (jQuery);'
  19. ),
  20. )
  21. )
  22. );
  23. }
Если у вас этот код не будет работать-обратите внимание на поле #suffix, в нём должен быть див с таким же идентификатором, что и в js функции. Так же смотрите на имя переменной $form, которую вы создаёте или альтерите существующую. Её айдишник должен быть передан в js метод farbtastic. Айдишник инпута можно смотреть прям в фаербаге браузера.