Oh, duh! Sorry I overlooked this problem. You need to memoize the @stylesheets array. Change that method to look like this:
def customize_admin_css @stylesheets ||=[] include_stylesheet 'radiant_custom' end Sean Christopher Zimmermann wrote: > Hi, > Im trying to include a custom CSS file for radiant. Previously, I just > replaced the main.css file in the radiant gem directory - but thats not > "sustainable". > > I tried following Sean's instructions below but have run into trouble. The > technique is to create an extension that runs a before filter that calls: > include_stylesheet 'my_stylesheet' > > But it looks like the include_stylesheet is crashing because the @stylesheet > array is empty. > > The line it is failing on is: > controllers/application.rb line 22 > "@stylesheets << sheet" > > My extension looks like this: > > def activate > require_dependency 'application' > SiteController.class_eval do > > prepend_before_filter :customize_admin_css > > def customize_admin_css > include_stylesheet ('radiant_custom') > end > end > end > > Any ideas anyone - could be something silly as I am still a rubynuby. > > Thanks! > Topher > > > Following is the dev log trace: > > NoMethodError (You have a nil object when you didn't expect it! > You might have expected an instance of Array. > The error occurred while evaluating nil.<<): > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/app/controllers/application.rb:22:in `include_stylesheet' > > C:/a_Systems/InstantRails-1.7-win/rails_apps/henry_radiant2/vendor/extensions/custom_stylesheet/custom_stylesheet_extension.rb:18:in > `customize_admin_css' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/filters.rb:469:in `send' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/filters.rb:469:in `call' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/filters.rb:442:in `run' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/filters.rb:714:in > `run_before_filters' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/filters.rb:694:in > `call_filters' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/filters.rb:688:in > `perform_action_without_benchmark' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:66:in > `perform_action_without_rescue' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/1.8/benchmark.rb:293:in > `measure' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:66:in > `perform_action_without_rescue' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/rescue.rb:83:in > `perform_action' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/base.rb:435:in `send' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/base.rb:435:in > `process_without_filters' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/filters.rb:684:in > `process_without_session_management_support' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/session_management.rb:114:in > `process' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/actionpack/lib/action_controller/base.rb:334:in `process' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/railties/lib/dispatcher.rb:41:in `dispatch' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel/rails.rb:78:in `process' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel/rails.rb:76:in `synchronize' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel/rails.rb:76:in `process' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:618:in `process_client' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:617:in `each' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:617:in `process_client' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:736:in `run' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:736:in `initialize' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:736:in `new' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:736:in `run' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:720:in `initialize' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:720:in `new' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel.rb:720:in `run' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel/configurator.rb:271:in `run' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel/configurator.rb:270:in `each' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel/configurator.rb:270:in `run' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/bin/mongrel_rails:127:in `run' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/lib/mongrel/command.rb:211:in `run' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/mongrel- > 1.0.1-mswin32/bin/mongrel_rails:243 > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/activesupport/lib/active_support/dependencies.rb:488:in > `load' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/activesupport/lib/active_support/dependencies.rb:488:in > `load' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in > `new_constants_in' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/activesupport/lib/active_support/dependencies.rb:488:in > `load' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/railties/lib/commands/servers/mongrel.rb:60 > > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in > `gem_original_require' > > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in > `require' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in > `require' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in > `new_constants_in' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in > `require' > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/gems/1.8/gems/radiant- > 0.6.4/vendor/rails/railties/lib/commands/server.rb:39 > > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in > `gem_original_require' > > C:/a_Systems/InstantRails-1.7-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in > `require' > script/server:3 > > On Dec 2, 2007 2:02 PM, Sean Cribbs <[EMAIL PROTECTED]> wrote: > > >> Richard, >> >> This is rather trivial to do with an extension. Write your desired CSS, >> put it in your extension public/stylesheets directory. Then put >> something like this in your extension's activate method: >> >> SiteController.class_eval do >> >> before_filter :customize_admin_css >> >> def customize_admin_css >> >> include_stylesheet 'my_stylesheet' >> >> end >> >> end >> >> Obviously you'd want to name your stylesheet something else. Hope this >> is helpful! >> >> Sean >> >> Richard Hurt wrote: >> >>> Putting the controls on a sidebar is OK with me. I would even be fine >>> >> with >> >>> a smaller text for the page title and various controls. I'm screen >>> >> height >> >>> challenged, not blind. :) >>> >>> Hmmm...what about a way to customize the CSS of the Admin pages for each >>> install? Would that work? It wouldn't even have to be anything fancy >>> >> like >> >>> a table in the DB, just a static file on the server would work for me. >>> >> We >> >>> could then change the look & feel of the pages pretty easily and to fit >>> within our own guidelines. >>> >>> Later... >>> Richard >>> >>> On Dec 2, 2007 3:08 PM, Ryan Heneise <[EMAIL PROTECTED]> wrote: >>> >>> >>> >>>> I think I prefer having the buttons underneath the form, because it is >>>> more standard and fits the open-edit-save workflow. Moving the buttons >>>> to the top breaks with convention. >>>> >>>> What about a 2-column layout (similar to this: >>>> http://www.madebyfrog.com/news/preview_layout_for_version_1) >>>> , moving the meta-data form inputs to the second column? If some of >>>> the metadata were moved out of the way horizontally, then the body of >>>> the form could be shorter. >>>> >>>> >>>> >>>> On Dec 2, 2007, at 6:30 AM, Andrew Neil wrote: >>>> >>>> >>>> >>>>>> 5. Can we make the edit page a little more friendly for those of us >>>>>> without 1700x2400 displays? :) >>>>>> >>>>>> >>>>> I feel your pain. A couple of thoughts: >>>>> >>>>> * "Save Changes" and "Save and continue" buttons could go at the top, >>>>> perhaps level with the "Edit Page" heading, but floated to the right. >>>>> * The same two buttons could be given access keys, e.g. S and C, so >>>>> that you can trigger them with a key command, rather than pushing >>>>> them with your cursor. >>>>> >>>>> A >>>>> _______________________________________________ >>>>> Radiant mailing list >>>>> Post: Radiant@lists.radiantcms.org >>>>> Search: http://radiantcms.org/mailing-list/search/ >>>>> Site: http://lists.radiantcms.org/mailman/listinfo/radiant >>>>> >>>>> >>>>> >>>> _______________________________________________ >>>> Radiant mailing list >>>> Post: Radiant@lists.radiantcms.org >>>> Search: http://radiantcms.org/mailing-list/search/ >>>> Site: http://lists.radiantcms.org/mailman/listinfo/radiant >>>> >>>> >>>> >>> _______________________________________________ >>> Radiant mailing list >>> Post: Radiant@lists.radiantcms.org >>> Search: http://radiantcms.org/mailing-list/search/ >>> Site: http://lists.radiantcms.org/mailman/listinfo/radiant >>> >>> >>> >> _______________________________________________ >> Radiant mailing list >> Post: Radiant@lists.radiantcms.org >> Search: http://radiantcms.org/mailing-list/search/ >> Site: http://lists.radiantcms.org/mailman/listinfo/radiant >> >> > > > > _______________________________________________ Radiant mailing list Post: Radiant@lists.radiantcms.org Search: http://radiantcms.org/mailing-list/search/ Site: http://lists.radiantcms.org/mailman/listinfo/radiant