<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -21,6 +21,8 @@ begin
 
     gem.files = Dir[&quot;rails/*.rb&quot;]
     gem.files += Dir[&quot;browsercms.gemspec&quot;]
+    gem.files += Dir[&quot;doc/app/**/*&quot;]
+    gem.files += Dir[&quot;doc/guides/html/**/*&quot;]
     gem.files += Dir[&quot;app/**/*&quot;]
     gem.files += Dir[&quot;db/migrate/[0-9]*_*.rb&quot;]
     gem.files += Dir[&quot;db/demo/**/*&quot;]
@@ -33,6 +35,7 @@ begin
     gem.files += Dir[&quot;public/site/**/*&quot;]
     gem.files += Dir[&quot;public/images/cms/**/*&quot;]
     gem.files += Dir[&quot;public/themes/**/*&quot;]
+    gem.files += Dir[&quot;templates/*.rb&quot;]
 
     # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
   end</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -32,7 +32,7 @@ class Cms::FormBuilder &lt; ActionView::Helpers::FormBuilder
       def cms_#{f}(method, options={})
         add_tabindex!(options)
         set_default_value!(method, options)
-        cms_options = options.extract!(:label, :instructions)
+        cms_options = options.extract!(:label, :instructions, :default_value)
         render_cms_form_partial :#{f},
           :object_name =&gt; @object_name, :method =&gt; method,
           :options =&gt; options, :cms_options =&gt; cms_options
@@ -43,7 +43,8 @@ class Cms::FormBuilder &lt; ActionView::Helpers::FormBuilder
   
   def cms_drop_down(method, choices, options={}, html_options={})
     add_tabindex!(html_options)
-    cms_options = options.extract!(:label, :instructions)
+    set_default_value!(method, options)    
+    cms_options = options.extract!(:label, :instructions, :default_value)
     render_cms_form_partial :drop_down,
       :object_name =&gt; @object_name, :method =&gt; method,
       :choices =&gt; choices, :options =&gt; options, 
@@ -52,14 +53,16 @@ class Cms::FormBuilder &lt; ActionView::Helpers::FormBuilder
     
   def cms_tag_list(options={})
     add_tabindex!(options)
-    cms_options = options.extract!(:label, :instructions)
+    set_default_value!(:tag_list, options)    
+    cms_options = options.extract!(:label, :instructions, :default_value)
     render_cms_form_partial :tag_list, 
       :options =&gt; options, :cms_options =&gt; cms_options
   end
 
   def cms_text_editor(method, options = {})
     add_tabindex!(options)
-    cms_options = options.extract!(:label, :instructions)
+    set_default_value!(method, options)    
+    cms_options = options.extract!(:label, :instructions, :default_value)
     render_cms_form_partial :text_editor, 
       :id =&gt; (options[:id] || &quot;#{@object_name}_#{method}&quot;), 
       :editor_enabled =&gt; (cookies[&quot;editorEnabled&quot;].blank? ? true : (cookies[&quot;editorEnabled&quot;] == 'true' || cookies[&quot;editorEnabled&quot;] == ['true'])),</diff>
      <filename>app/helpers/cms/form_builder.rb</filename>
    </modified>
    <modified>
      <diff>@@ -83,11 +83,26 @@ class Portlet &lt; ActiveRecord::Base
   end
 
   def inline_options
-    options = {:inline =&gt; self.template}
+    options = {}
+    options[:inline] = self.template if self.class.render_inline 
     options[:type] = self.handler unless self.handler.blank?
     options
   end
 
+  def self.handler(handler_type)
+    define_method(:handler) { handler_type }
+  end
+
+  def self.render_inline(*args)
+    if args.length &gt; 0
+      @render_inline = args.first
+    elsif !defined?(@render_inline)
+      @render_inline = true
+    else
+      @render_inline
+    end
+  end
+
   def type_name
     type.to_s.titleize
   end</diff>
      <filename>app/models/portlet.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 0&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;BrowserMedia&quot;]
-  s.date = %q{2009-06-26}
+  s.date = %q{2009-06-30}
   s.email = %q{github@browsermedia.com}
   s.extra_rdoc_files = [
     &quot;LICENSE.txt&quot;,
@@ -230,6 +230,364 @@ Gem::Specification.new do |s|
      &quot;db/demo/page_templates/sub_page.html.erb&quot;,
      &quot;db/migrate/20080815014337_browsercms_3_0_0.rb&quot;,
      &quot;db/migrate/20081114172307_load_seed_data.rb&quot;,
+     &quot;doc/app/classes/AbstractFileBlock.html&quot;,
+     &quot;doc/app/classes/ActiveRecord.html&quot;,
+     &quot;doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html&quot;,
+     &quot;doc/app/classes/ActiveSupport.html&quot;,
+     &quot;doc/app/classes/ActiveSupport/Cache.html&quot;,
+     &quot;doc/app/classes/ActiveSupport/Cache/FileStore.html&quot;,
+     &quot;doc/app/classes/ActsAsList.html&quot;,
+     &quot;doc/app/classes/ActsAsList/ClassMethods.html&quot;,
+     &quot;doc/app/classes/ActsAsList/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/ApplicationController.html&quot;,
+     &quot;doc/app/classes/ApplicationHelper.html&quot;,
+     &quot;doc/app/classes/Attachment.html&quot;,
+     &quot;doc/app/classes/Category.html&quot;,
+     &quot;doc/app/classes/CategoryType.html&quot;,
+     &quot;doc/app/classes/Cms.html&quot;,
+     &quot;doc/app/classes/Cms/Acts.html&quot;,
+     &quot;doc/app/classes/Cms/Acts/ContentBlock.html&quot;,
+     &quot;doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/ApplicationController.html&quot;,
+     &quot;doc/app/classes/Cms/ApplicationHelper.html&quot;,
+     &quot;doc/app/classes/Cms/AttachmentsController.html&quot;,
+     &quot;doc/app/classes/Cms/Authentication.html&quot;,
+     &quot;doc/app/classes/Cms/Authentication/Controller.html&quot;,
+     &quot;doc/app/classes/Cms/Authentication/Model.html&quot;,
+     &quot;doc/app/classes/Cms/Authentication/Model/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Authentication/Model/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/BaseController.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Archiving.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Attaching.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Categorizing.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Categorizing/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Connecting.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/DynamicAttributes.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Hiding.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Hiding/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Pagination.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Pagination/Collection.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Publishing.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Publishing/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Rendering.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Searching.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/SoftDeleting.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Taggable.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Userstamping.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Userstamping/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Versioning.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html&quot;,
+     &quot;doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html&quot;,
+     &quot;doc/app/classes/Cms/CacheController.html&quot;,
+     &quot;doc/app/classes/Cms/Caching.html&quot;,
+     &quot;doc/app/classes/Cms/CategoriesController.html&quot;,
+     &quot;doc/app/classes/Cms/CategoryTypesController.html&quot;,
+     &quot;doc/app/classes/Cms/ConnectorsController.html&quot;,
+     &quot;doc/app/classes/Cms/ContentBlockController.html&quot;,
+     &quot;doc/app/classes/Cms/ContentController.html&quot;,
+     &quot;doc/app/classes/Cms/ContentTypesController.html&quot;,
+     &quot;doc/app/classes/Cms/DashboardController.html&quot;,
+     &quot;doc/app/classes/Cms/DataLoader.html&quot;,
+     &quot;doc/app/classes/Cms/DynamicViewsController.html&quot;,
+     &quot;doc/app/classes/Cms/EmailMessagesController.html&quot;,
+     &quot;doc/app/classes/Cms/ErrorHandling.html&quot;,
+     &quot;doc/app/classes/Cms/Errors.html&quot;,
+     &quot;doc/app/classes/Cms/Errors/AccessDenied.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions/ActionView.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions/ActionView/Base.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions/ActiveRecord.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions/ActiveRecord/Base.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions/Hash.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions/Integer.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions/NilClass.html&quot;,
+     &quot;doc/app/classes/Cms/Extensions/String.html&quot;,
+     &quot;doc/app/classes/Cms/FileBlocksController.html&quot;,
+     &quot;doc/app/classes/Cms/FormBuilder.html&quot;,
+     &quot;doc/app/classes/Cms/FormTagHelper.html&quot;,
+     &quot;doc/app/classes/Cms/GroupsController.html&quot;,
+     &quot;doc/app/classes/Cms/HomeController.html&quot;,
+     &quot;doc/app/classes/Cms/HtmlBlocksController.html&quot;,
+     &quot;doc/app/classes/Cms/ImageBlocksController.html&quot;,
+     &quot;doc/app/classes/Cms/LinksController.html&quot;,
+     &quot;doc/app/classes/Cms/MenuHelper.html&quot;,
+     &quot;doc/app/classes/Cms/PageHelper.html&quot;,
+     &quot;doc/app/classes/Cms/PageRouteConditionsController.html&quot;,
+     &quot;doc/app/classes/Cms/PageRouteOptionsController.html&quot;,
+     &quot;doc/app/classes/Cms/PageRouteRequirementsController.html&quot;,
+     &quot;doc/app/classes/Cms/PageRoutesController.html&quot;,
+     &quot;doc/app/classes/Cms/PagesController.html&quot;,
+     &quot;doc/app/classes/Cms/PathHelper.html&quot;,
+     &quot;doc/app/classes/Cms/PortletController.html&quot;,
+     &quot;doc/app/classes/Cms/PortletsController.html&quot;,
+     &quot;doc/app/classes/Cms/RedirectsController.html&quot;,
+     &quot;doc/app/classes/Cms/ResourceController.html&quot;,
+     &quot;doc/app/classes/Cms/Routes.html&quot;,
+     &quot;doc/app/classes/Cms/RoutesController.html&quot;,
+     &quot;doc/app/classes/Cms/SectionNodesController.html&quot;,
+     &quot;doc/app/classes/Cms/SectionNodesHelper.html&quot;,
+     &quot;doc/app/classes/Cms/SectionsController.html&quot;,
+     &quot;doc/app/classes/Cms/SessionsController.html&quot;,
+     &quot;doc/app/classes/Cms/TagsController.html&quot;,
+     &quot;doc/app/classes/Cms/TasksController.html&quot;,
+     &quot;doc/app/classes/Cms/ToolbarController.html&quot;,
+     &quot;doc/app/classes/Cms/UsersController.html&quot;,
+     &quot;doc/app/classes/Connector.html&quot;,
+     &quot;doc/app/classes/ContentType.html&quot;,
+     &quot;doc/app/classes/ContentTypeGroup.html&quot;,
+     &quot;doc/app/classes/DynamicPortlet.html&quot;,
+     &quot;doc/app/classes/DynamicView.html&quot;,
+     &quot;doc/app/classes/EmailMessage.html&quot;,
+     &quot;doc/app/classes/EmailMessageMailer.html&quot;,
+     &quot;doc/app/classes/EmailPagePortlet.html&quot;,
+     &quot;doc/app/classes/FileBlock.html&quot;,
+     &quot;doc/app/classes/Group.html&quot;,
+     &quot;doc/app/classes/GroupPermission.html&quot;,
+     &quot;doc/app/classes/GroupSection.html&quot;,
+     &quot;doc/app/classes/GroupType.html&quot;,
+     &quot;doc/app/classes/GroupTypePermission.html&quot;,
+     &quot;doc/app/classes/GuestUser.html&quot;,
+     &quot;doc/app/classes/HtmlBlock.html&quot;,
+     &quot;doc/app/classes/ImageBlock.html&quot;,
+     &quot;doc/app/classes/InitialData.html&quot;,
+     &quot;doc/app/classes/Link.html&quot;,
+     &quot;doc/app/classes/LoginPortlet.html&quot;,
+     &quot;doc/app/classes/Page.html&quot;,
+     &quot;doc/app/classes/PagePartial.html&quot;,
+     &quot;doc/app/classes/PageRoute.html&quot;,
+     &quot;doc/app/classes/PageRouteCondition.html&quot;,
+     &quot;doc/app/classes/PageRouteOption.html&quot;,
+     &quot;doc/app/classes/PageRouteRequirement.html&quot;,
+     &quot;doc/app/classes/PageTemplate.html&quot;,
+     &quot;doc/app/classes/Permission.html&quot;,
+     &quot;doc/app/classes/Portlet.html&quot;,
+     &quot;doc/app/classes/Redirect.html&quot;,
+     &quot;doc/app/classes/Section.html&quot;,
+     &quot;doc/app/classes/SectionNode.html&quot;,
+     &quot;doc/app/classes/Sequence.html&quot;,
+     &quot;doc/app/classes/Site.html&quot;,
+     &quot;doc/app/classes/Tag.html&quot;,
+     &quot;doc/app/classes/TagCloudPortlet.html&quot;,
+     &quot;doc/app/classes/Tagging.html&quot;,
+     &quot;doc/app/classes/Task.html&quot;,
+     &quot;doc/app/classes/User.html&quot;,
+     &quot;doc/app/classes/UserGroupMembership.html&quot;,
+     &quot;doc/app/created.rid&quot;,
+     &quot;doc/app/files/app/controllers/application_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/application_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/attachments_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/base_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/cache_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/categories_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/category_types_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/connectors_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/content_block_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/content_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/content_types_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/dashboard_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/dynamic_views_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/email_messages_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/error_handling_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/file_blocks_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/groups_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/home_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/html_blocks_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/image_blocks_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/links_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/page_route_conditions_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/page_route_options_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/page_route_requirements_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/page_routes_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/pages_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/portlet_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/portlets_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/redirects_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/resource_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/routes_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/section_nodes_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/sections_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/sessions_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/tags_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/tasks_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/toolbar_controller_rb.html&quot;,
+     &quot;doc/app/files/app/controllers/cms/users_controller_rb.html&quot;,
+     &quot;doc/app/files/app/helpers/application_helper_rb.html&quot;,
+     &quot;doc/app/files/app/helpers/cms/application_helper_rb.html&quot;,
+     &quot;doc/app/files/app/helpers/cms/form_builder_rb.html&quot;,
+     &quot;doc/app/files/app/helpers/cms/form_tag_helper_rb.html&quot;,
+     &quot;doc/app/files/app/helpers/cms/menu_helper_rb.html&quot;,
+     &quot;doc/app/files/app/helpers/cms/page_helper_rb.html&quot;,
+     &quot;doc/app/files/app/helpers/cms/path_helper_rb.html&quot;,
+     &quot;doc/app/files/app/helpers/cms/section_nodes_helper_rb.html&quot;,
+     &quot;doc/app/files/app/models/abstract_file_block_rb.html&quot;,
+     &quot;doc/app/files/app/models/attachment_rb.html&quot;,
+     &quot;doc/app/files/app/models/category_rb.html&quot;,
+     &quot;doc/app/files/app/models/category_type_rb.html&quot;,
+     &quot;doc/app/files/app/models/connector_rb.html&quot;,
+     &quot;doc/app/files/app/models/content_type_group_rb.html&quot;,
+     &quot;doc/app/files/app/models/content_type_rb.html&quot;,
+     &quot;doc/app/files/app/models/dynamic_view_rb.html&quot;,
+     &quot;doc/app/files/app/models/email_message_mailer_rb.html&quot;,
+     &quot;doc/app/files/app/models/email_message_rb.html&quot;,
+     &quot;doc/app/files/app/models/file_block_rb.html&quot;,
+     &quot;doc/app/files/app/models/group_permission_rb.html&quot;,
+     &quot;doc/app/files/app/models/group_rb.html&quot;,
+     &quot;doc/app/files/app/models/group_section_rb.html&quot;,
+     &quot;doc/app/files/app/models/group_type_permission_rb.html&quot;,
+     &quot;doc/app/files/app/models/group_type_rb.html&quot;,
+     &quot;doc/app/files/app/models/guest_user_rb.html&quot;,
+     &quot;doc/app/files/app/models/html_block_rb.html&quot;,
+     &quot;doc/app/files/app/models/image_block_rb.html&quot;,
+     &quot;doc/app/files/app/models/link_rb.html&quot;,
+     &quot;doc/app/files/app/models/page_partial_rb.html&quot;,
+     &quot;doc/app/files/app/models/page_rb.html&quot;,
+     &quot;doc/app/files/app/models/page_route_condition_rb.html&quot;,
+     &quot;doc/app/files/app/models/page_route_option_rb.html&quot;,
+     &quot;doc/app/files/app/models/page_route_rb.html&quot;,
+     &quot;doc/app/files/app/models/page_route_requirement_rb.html&quot;,
+     &quot;doc/app/files/app/models/page_template_rb.html&quot;,
+     &quot;doc/app/files/app/models/permission_rb.html&quot;,
+     &quot;doc/app/files/app/models/portlet_rb.html&quot;,
+     &quot;doc/app/files/app/models/redirect_rb.html&quot;,
+     &quot;doc/app/files/app/models/section_node_rb.html&quot;,
+     &quot;doc/app/files/app/models/section_rb.html&quot;,
+     &quot;doc/app/files/app/models/site_rb.html&quot;,
+     &quot;doc/app/files/app/models/tag_rb.html&quot;,
+     &quot;doc/app/files/app/models/tagging_rb.html&quot;,
+     &quot;doc/app/files/app/models/task_rb.html&quot;,
+     &quot;doc/app/files/app/models/user_group_membership_rb.html&quot;,
+     &quot;doc/app/files/app/models/user_rb.html&quot;,
+     &quot;doc/app/files/app/portlets/dynamic_portlet_rb.html&quot;,
+     &quot;doc/app/files/app/portlets/email_page_portlet_rb.html&quot;,
+     &quot;doc/app/files/app/portlets/login_portlet_rb.html&quot;,
+     &quot;doc/app/files/app/portlets/tag_cloud_portlet_rb.html&quot;,
+     &quot;doc/app/files/doc/README_FOR_APP.html&quot;,
+     &quot;doc/app/files/lib/acts_as_list_rb.html&quot;,
+     &quot;doc/app/files/lib/browsercms_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/acts/content_block_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/authentication/controller_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/authentication/model_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/archiving_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/attaching_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/categorizing_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/connecting_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/dynamic_attributes_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/flush_cache_on_change_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/hiding_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/pagination_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/publishing_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/rendering_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/searching_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/soft_deleting_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/taggable_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/userstamping_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors/versioning_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/behaviors_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/caching_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/data_loader_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions/action_view/base_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions/active_record/base_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions/active_record/errors_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions/active_support/cache/file_store_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions/hash_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions/integer_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions/nil_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions/string_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/extensions_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/init_rb.html&quot;,
+     &quot;doc/app/files/lib/cms/routes_rb.html&quot;,
+     &quot;doc/app/files/lib/initial_data_rb.html&quot;,
+     &quot;doc/app/files/lib/sequence_rb.html&quot;,
+     &quot;doc/app/fr_class_index.html&quot;,
+     &quot;doc/app/fr_file_index.html&quot;,
+     &quot;doc/app/fr_method_index.html&quot;,
+     &quot;doc/app/index.html&quot;,
+     &quot;doc/app/rdoc-style.css&quot;,
+     &quot;doc/guides/html/build_it_yourself.html&quot;,
+     &quot;doc/guides/html/deployment_guide.html&quot;,
+     &quot;doc/guides/html/designer_guide.html&quot;,
+     &quot;doc/guides/html/developer_guide.html&quot;,
+     &quot;doc/guides/html/files/javascripts/code_highlighter.js&quot;,
+     &quot;doc/guides/html/files/javascripts/guides.js&quot;,
+     &quot;doc/guides/html/files/javascripts/highlighters.js&quot;,
+     &quot;doc/guides/html/files/stylesheets/main.css&quot;,
+     &quot;doc/guides/html/files/stylesheets/reset.css&quot;,
+     &quot;doc/guides/html/files/stylesheets/style.css&quot;,
+     &quot;doc/guides/html/files/stylesheets/syntax.css&quot;,
+     &quot;doc/guides/html/getting_started.html&quot;,
+     &quot;doc/guides/html/images/bg.png&quot;,
+     &quot;doc/guides/html/images/bottom_cap.png&quot;,
+     &quot;doc/guides/html/images/browsercms_logo.png&quot;,
+     &quot;doc/guides/html/images/dot.png&quot;,
+     &quot;doc/guides/html/images/icons/README&quot;,
+     &quot;doc/guides/html/images/icons/callouts/1.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/10.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/11.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/12.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/13.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/14.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/15.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/2.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/3.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/4.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/5.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/6.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/7.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/8.png&quot;,
+     &quot;doc/guides/html/images/icons/callouts/9.png&quot;,
+     &quot;doc/guides/html/images/icons/caution.png&quot;,
+     &quot;doc/guides/html/images/icons/example.png&quot;,
+     &quot;doc/guides/html/images/icons/home.png&quot;,
+     &quot;doc/guides/html/images/icons/important.png&quot;,
+     &quot;doc/guides/html/images/icons/next.png&quot;,
+     &quot;doc/guides/html/images/icons/note.png&quot;,
+     &quot;doc/guides/html/images/icons/prev.png&quot;,
+     &quot;doc/guides/html/images/icons/tip.png&quot;,
+     &quot;doc/guides/html/images/icons/up.png&quot;,
+     &quot;doc/guides/html/images/icons/warning.png&quot;,
+     &quot;doc/guides/html/images/top_cap.png&quot;,
+     &quot;doc/guides/html/images/top_cap_content.png&quot;,
+     &quot;doc/guides/html/index.html&quot;,
+     &quot;doc/guides/html/installing_modules.html&quot;,
+     &quot;doc/guides/html/user_guide.html&quot;,
      &quot;lib/acts_as_list.rb&quot;,
      &quot;lib/browsercms.rb&quot;,
      &quot;lib/cms/acts/content_block.rb&quot;,
@@ -860,7 +1218,10 @@ Gem::Specification.new do |s|
      &quot;rails_generators/portlet/templates/_form.html.erb&quot;,
      &quot;rails_generators/portlet/templates/portlet.rb&quot;,
      &quot;rails_generators/portlet/templates/render.html.erb&quot;,
-     &quot;rails_generators/portlet/templates/unit_test.erb&quot;
+     &quot;rails_generators/portlet/templates/unit_test.erb&quot;,
+     &quot;templates/blank.rb&quot;,
+     &quot;templates/demo.rb&quot;,
+     &quot;templates/module.rb&quot;
   ]
   s.has_rdoc = true
   s.homepage = %q{http://www.browsercms.org}</diff>
      <filename>browsercms.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -184,6 +184,7 @@ end&lt;/code&gt;&lt;/div&gt;
 &lt;p&gt;So if you look at the form partial that was generate for this portlet, you will see this:&lt;/p&gt;
 &lt;div class=&quot;code_container&quot;&gt;&lt;code class=&quot;html&quot;&gt;&amp;lt;%= f.cms_text_field :name %&amp;gt;
 &amp;lt;%= f.cms_text_field :limit %&amp;gt;
+&amp;lt;%= f.cms_drop_down :handler, ActionView::Template.template_handler_extensions, :default_value =&amp;gt; &amp;quot;erb&amp;quot; %&amp;gt;
 &amp;lt;%= f.cms_text_area :template, :default_value =&amp;gt; @block.class.default_template %&amp;gt;&lt;/code&gt;&lt;/div&gt;
 &lt;p&gt;Every portlet instance has to have a name and that is stored in the main &lt;tt&gt;portlets&lt;/tt&gt; table, but &lt;tt&gt;limit&lt;/tt&gt; is stored in the &lt;tt&gt;portlet_attributes&lt;/tt&gt; table.  You could add anything to this form, such as &lt;tt&gt;&amp;lt;%= f.cms_text_field :foobar %&amp;gt;&lt;/tt&gt;, and whatever the user enters for &lt;tt&gt;foobar&lt;/tt&gt; would get saved with the portlet.&lt;/p&gt;
 &lt;p&gt;If you look at the code for the portlet, you will see:&lt;/p&gt;
@@ -202,7 +203,9 @@ end&lt;/code&gt;&lt;/div&gt;
   end
     
 end&lt;/code&gt;&lt;/div&gt;
-&lt;p&gt;&lt;tt&gt;self&lt;/tt&gt; in this case is the portlet instance, which is also available in the instance variable &lt;tt&gt;&lt;code&gt;portlet&amp;lt;/tt&amp;gt;.  We are setting the &amp;lt;tt&amp;gt;&lt;/code&gt;products&lt;/tt&gt; instance variable so that will be available in the view.  If you look at the render template, you will see this:&lt;/p&gt;
+&lt;p&gt;&lt;code&gt;self&lt;/code&gt; in this case is the portlet instance, which is also available in the instance variable 
+&lt;code&gt;@portlet&lt;/code&gt;.  
+We are setting the &lt;code&gt;@products&lt;/code&gt; instance variable so that will be available in the view.  If you look at the render template, you will see this:&lt;/p&gt;
 &lt;div class=&quot;code_container&quot;&gt;&lt;code class=&quot;html&quot;&gt;&amp;lt;%=h @portlet.name %&amp;gt;&lt;/code&gt;&lt;/div&gt;
 &lt;p&gt;This is simply a place holder, you should override this code with something similar to what you expect the user of your portlet to want to use.  In this case, let&amp;#8217;s go with:&lt;/p&gt;
 &lt;div class=&quot;code_container&quot;&gt;&lt;code class=&quot;html&quot;&gt;&amp;lt;ul&amp;gt;
@@ -214,6 +217,31 @@ end&lt;/code&gt;&lt;/div&gt;
 &lt;p&gt;If you look back at the form partial that was generated, you&amp;#8217;ll see:&lt;/p&gt;
 &lt;div class=&quot;code_container&quot;&gt;&lt;code class=&quot;html&quot;&gt;&amp;lt;%= f.cms_text_area :template, :default_value =&amp;gt; @block.class.default_template %&amp;gt;&lt;/code&gt;&lt;/div&gt;
 &lt;p&gt;What this does is preload the template with whatever you entered into the render template.  The user is free to change it as they see fit and even have different values from one portlet instance to the next.&lt;/p&gt;
+&lt;p&gt;If you do not want to have the portlet&amp;#8217;s render template entered in the &lt;span class=&quot;caps&quot;&gt;CMS&lt;/span&gt; and would rather have it just render the file from the file system, simply add this to your portlet code:&lt;/p&gt;
+&lt;div class=&quot;code_container&quot;&gt;&lt;code class=&quot;ruby&quot;&gt;class RecentProducts &amp;lt; Portlet
+
+    render_inline false
+
+    def render
+      @products = Product.all(:order =&amp;gt; &amp;quot;created_at desc&amp;quot;, :limit =&amp;gt; self.limit)
+    end
+
+  end&lt;/code&gt;&lt;/div&gt;
+&lt;p&gt;The key line being the &lt;code&gt;render_line false&lt;/code&gt;.  Also, you will probably notice this line in the form that was generated:&lt;/p&gt;
+&lt;div class=&quot;code_container&quot;&gt;&lt;code class=&quot;html&quot;&gt;&amp;lt;%= f.cms_drop_down :handler, ActionView::Template.template_handler_extensions, :default_value =&amp;gt; &amp;quot;erb&amp;quot; %&amp;gt;&lt;/code&gt;&lt;/div&gt;
+&lt;p&gt;This generates a drop-down menu for the user creating the portlet to select from the various portlet handlers installed in your Rails app.  The default is erb, but you could install haml and use haml instead, for example.&lt;/p&gt;
+&lt;p&gt;If you would rather not have the user select the handler type, or maybe you are using the file system instead of entering the template into the &lt;span class=&quot;caps&quot;&gt;CMS&lt;/span&gt;, you can set the handler to a different value like this:&lt;/p&gt;
+&lt;div class=&quot;code_container&quot;&gt;&lt;code class=&quot;ruby&quot;&gt;class RecentProducts &amp;lt; Portlet
+
+    handler &amp;quot;haml&amp;quot;
+    render_inline false
+
+    def render
+      @products = Product.all(:order =&amp;gt; &amp;quot;created_at desc&amp;quot;, :limit =&amp;gt; self.limit)
+    end
+
+  end&lt;/code&gt;&lt;/div&gt;
+&lt;p&gt;The key line being &lt;code&gt;handler &quot;haml&quot;&lt;/code&gt;.&lt;/p&gt;
 &lt;h3 id=&quot;page-routes&quot;&gt;4 Page Routes&lt;/h3&gt;
 &lt;p&gt;&lt;span class=&quot;caps&quot;&gt;TODO&lt;/span&gt;&lt;/p&gt;
                 &lt;/td&gt;</diff>
      <filename>doc/guides/html/developer_guide.html</filename>
    </modified>
    <modified>
      <diff>@@ -90,6 +90,7 @@ So if you look at the form partial that was generate for this portlet, you will
 &lt;erb&gt;
 &lt;%= f.cms_text_field :name %&gt;
 &lt;%= f.cms_text_field :limit %&gt;
+&lt;%= f.cms_drop_down :handler, ActionView::Template.template_handler_extensions, :default_value =&gt; &quot;erb&quot; %&gt;
 &lt;%= f.cms_text_area :template, :default_value =&gt; @block.class.default_template %&gt;
 &lt;/erb&gt;
 
@@ -119,7 +120,9 @@ class RecentProducts &lt; Portlet
 end
 &lt;/ruby&gt;
 
-&lt;tt&gt;self&lt;/tt&gt; in this case is the portlet instance, which is also available in the instance variable &lt;tt&gt;@portlet&lt;/tt&gt;.  We are setting the &lt;tt&gt;@products&lt;/tt&gt; instance variable so that will be available in the view.  If you look at the render template, you will see this:
+&lt;code&gt;self&lt;/code&gt; in this case is the portlet instance, which is also available in the instance variable 
+&lt;code&gt;@portlet&lt;/code&gt;.  
+We are setting the &lt;code&gt;@products&lt;/code&gt; instance variable so that will be available in the view.  If you look at the render template, you will see this:
 
 &lt;erb&gt;
 &lt;%=h @portlet.name %&gt;
@@ -145,6 +148,45 @@ If you look back at the form partial that was generated, you'll see:
 
 What this does is preload the template with whatever you entered into the render template.  The user is free to change it as they see fit and even have different values from one portlet instance to the next.
 
+If you do not want to have the portlet's render template entered in the CMS and would rather have it just render the file from the file system, simply add this to your portlet code:
+
+&lt;ruby&gt;
+  class RecentProducts &lt; Portlet
+
+    render_inline false
+
+    def render
+      @products = Product.all(:order =&gt; &quot;created_at desc&quot;, :limit =&gt; self.limit)
+    end
+
+  end  
+&lt;/ruby&gt;
+
+The key line being the &lt;code&gt;render_line false&lt;/code&gt;.  Also, you will probably notice this line in the form that was generated:
+
+&lt;erb&gt;
+&lt;%= f.cms_drop_down :handler, ActionView::Template.template_handler_extensions, :default_value =&gt; &quot;erb&quot; %&gt;
+&lt;/erb&gt;
+
+This generates a drop-down menu for the user creating the portlet to select from the various portlet handlers installed in your Rails app.  The default is erb, but you could install haml and use haml instead, for example.
+
+If you would rather not have the user select the handler type, or maybe you are using the file system instead of entering the template into the CMS, you can set the handler to a different value like this:
+
+&lt;ruby&gt;
+  class RecentProducts &lt; Portlet
+
+    handler &quot;haml&quot;
+    render_inline false
+
+    def render
+      @products = Product.all(:order =&gt; &quot;created_at desc&quot;, :limit =&gt; self.limit)
+    end
+
+  end  
+&lt;/ruby&gt;
+
+The key line being &lt;code&gt;handler &quot;haml&quot;&lt;/code&gt;.
+
 h3. Page Routes
 
 TODO
\ No newline at end of file</diff>
      <filename>doc/guides/source/developer_guide.textile</filename>
    </modified>
    <modified>
      <diff>@@ -114,7 +114,7 @@ module Cms
         # Copy instance variables from this renderable object to it's view
         action_view.assigns = assigns_for_view
           
-        if respond_to?(:inline_options) &amp;&amp; self.inline_options
+        if respond_to?(:inline_options) &amp;&amp; self.inline_options &amp;&amp; self.inline_options.has_key?(:inline)
           options = {:locals =&gt; {}}.merge(self.inline_options)
           ActionView::InlineTemplate.new(options[:inline], options[:type]).render(action_view, options[:locals])
         else</diff>
      <filename>lib/cms/behaviors/rendering.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ module Cms
       @version = SPEC.version.version
     end
     
-    def build_number; 247 end
+    def build_number; 248 end
     
     def load_rake_tasks
       load &quot;#{Cms.root}/lib/tasks/cms.rake&quot;</diff>
      <filename>lib/cms/init.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>doc/guides/cms_guides.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>8eec8fa8170b3bf737b52bff0c418002e2ce191a</id>
    </parent>
  </parents>
  <author>
    <name>Paul Barry</name>
    <email>mail@paulbarry.com</email>
  </author>
  <url>http://github.com/browsermedia/browsercms/commit/6b7270318eefacf504f2048dc1f4db707d435fb9</url>
  <id>6b7270318eefacf504f2048dc1f4db707d435fb9</id>
  <committed-date>2009-07-01T12:41:57-07:00</committed-date>
  <authored-date>2009-07-01T12:35:02-07:00</authored-date>
  <message>Added DSL for modifying portlet behavior and corresponding documentation</message>
  <tree>3b55db1a3a9162b7b3722ed58abdd587116e2ad2</tree>
  <committer>
    <name>Paul Barry</name>
    <email>mail@paulbarry.com</email>
  </committer>
</commit>
