Sha256: 683b8dd42adcf25e8df926efcd58d91557bf17a537a8f9cedb667798c3e3dfca

Contents?: true

Size: 1.36 KB

Versions: 8

Compression:

Stored size: 1.36 KB

Contents

module Locomotive
  module Liquid
    module Drops
      class ContentTypes < ::Liquid::Drop

        def before_method(meth)
          type = @context.registers[:site].content_types.where(:slug => meth.to_s).first
          ContentTypeProxyCollection.new(type)
        end

      end

      class ContentTypeProxyCollection < ProxyCollection

        def initialize(content_type)
          @content_type = content_type
          @collection   = nil
        end

        def public_submission_url
          @context.registers[:controller].main_app.locomotive_entry_submissions_url(@content_type.slug)
        end

        def api
          Locomotive.log :warn, "[Liquid template] the api for content_types has been deprecated and replaced by public_submission_url instead."
          { 'create' => public_submission_url }
        end

        def before_method(meth)
          klass = @content_type.entries.klass # delegate to the proxy class

          if (meth.to_s =~ /^group_by_(.+)$/) == 0
            klass.send(:group_by_select_option, $1, @content_type.order_by_definition)
          else
            Locomotive.log :warn, "[Liquid template] trying to call #{meth} on a content_type object"
          end
        end

        protected

        def collection
          @collection ||= @content_type.ordered_entries(@context['with_scope'])
        end
      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
locomotive_cms-2.0.0.rc9 lib/locomotive/liquid/drops/content_types.rb
locomotive_cms-2.0.0.rc8 lib/locomotive/liquid/drops/content_types.rb
locomotive_cms-2.0.0.rc7 lib/locomotive/liquid/drops/content_types.rb
locomotive_cms-2.0.0.rc6 lib/locomotive/liquid/drops/content_types.rb
locomotive_cms-2.0.0.rc5 lib/locomotive/liquid/drops/content_types.rb
locomotive_cms-2.0.0.rc4 lib/locomotive/liquid/drops/content_types.rb
locomotive_cms-2.0.0.rc2 lib/locomotive/liquid/drops/content_types.rb
locomotive_cms-2.0.0.rc1 lib/locomotive/liquid/drops/content_types.rb