Очередной хак на auto_admin. на этот раз интеграция fck_editor

Posted on May 01, 2007
Сегодня ранним утром (4 часа назад) я понял что осталось совсем немного до сдачи одного мелкого сайта, а в админке нет визуального редактора заявленного при разработке ... конечно я был просто в небольшом шоке, пришлось по быстрому скидать хак.
Итак, открываем файл vendor/plugins/auto_admin/lib/auto_admin_simple_theme.rb и пишем перед def static_image

 def fck_textarea(field, options = {})
      value = eval("@object.#{field}")
      value = value.nil? ? "" : value
      id = "#{@object_name}_#{field}_editor"

      cols = options[:cols].nil? ? '' : "cols='"+options[:cols]+"'"
      rows = options[:rows].nil? ? '' : "rows='"+options[:rows]+"'"

      width = options[:width].nil? ? '100%' : options[:width]
      height = options[:height].nil? ? '100%' : options[:height]

      toolbarSet = options[:toolbarSet].nil? ? 'Default' : options[:toolbarSet]

      base_path = '/javascripts/fckeditor/'
      inputs =
                      "<textarea id='#{id}' #{cols} #{rows} name='#{@object_name}[#{field}]'>#{value}</textarea>\n"+
		      "<script>var oFCKeditor = new FCKeditor('#{id}', '#{width}', '#{height}', '#{toolbarSet}');\n"+
                      "oFCKeditor.BasePath = \"#{base_path}\"\n"+
                      "oFCKeditor.Config['CustomConfigurationsPath'] = '../../fckcustom.js';\n"+
                      "oFCKeditor.ReplaceTextarea();\n</script>"
     return inputs
    end
Использовать примерно так:

 b.fck_textarea :description, {:toolbarSet => 'Simple', :width => '100%', :height => '300px'}
Код конечно написан в стиле fast and dirty но работает.

Небольшой хак на auto_admin для закачки файлов через file_column

Posted on March 12, 2007
В автоадмине не реализовано много вещей, что не радует.
Одной из этих вещей является поддержка закачки файлов.
Но это можно исправить, заменив в lib/auto_admin_simple_theme.rb

    def file_field(field, options = {})
    end
на

    def file_field(field, options = {})
      common_option_translations! options
      super
    end
Хак конечно не идеален, но на первое время сойдёт. В дальнейшем я более качественно покопаюсь в этом и напишу патч.