effective_pages 1.0.13 → 1.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -0
- data/app/helpers/effective_breadcrumbs_helper.rb +38 -0
- data/app/helpers/effective_pages_helper.rb +2 -2
- data/app/models/effective/datatables/menus.rb +1 -1
- data/app/models/effective/datatables/pages.rb +1 -1
- data/app/models/effective/menu.rb +4 -0
- data/app/models/effective/page.rb +10 -10
- data/lib/effective_pages/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf763d4f232daee6825b70eecba5ab5b53291811
|
4
|
+
data.tar.gz: 82f8a5ce46c7a2701906d5fe1a11055237c173d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16dc7d33c5d459508610253ef31bb3bd0d14f31ced3721e669956966b861d11b384faa267d6523d6a37e53642122fd6546decd5a605477feb9fd529afb487eb0
|
7
|
+
data.tar.gz: c08ea63b217667b50b891fda31aae620ee2fb3afdff489b00b64722440f0cd912f9b1f25cd479f8e519d08873a3f733972df8138614760b4e0061dedb89cc1fc
|
data/README.md
CHANGED
@@ -331,6 +331,16 @@ To enable this functionality, require the following stylesheet on the asset pipe
|
|
331
331
|
|
332
332
|
and change the `config.menu[:maxdepth]` value in the `app/config/initializers/effective_pages.rb` initializer to 3, 4, or even 9999.
|
333
333
|
|
334
|
+
### Breadcrumbs
|
335
|
+
|
336
|
+
Bootstrap3 breadcrumbs can be generated based on a given menu and page.
|
337
|
+
|
338
|
+
```ruby
|
339
|
+
= render_breadcrumb(menu, page)
|
340
|
+
```
|
341
|
+
|
342
|
+
where menu is an `Effective::Menu` object, or the name of a menu, `'main menu'` and page is an `Effective::Page` object, or a string.
|
343
|
+
|
334
344
|
|
335
345
|
## Authorization
|
336
346
|
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module EffectiveBreadcrumbsHelper
|
2
|
+
def render_breadcrumbs(menu, page)
|
3
|
+
menu = Effective::Menu.find_by_title(menu) if menu.kind_of?(String)
|
4
|
+
return "Menu '#{menu}' does not exist".html_safe unless menu.present?
|
5
|
+
|
6
|
+
return breadcrumbs_fallback(page) if !page.present?
|
7
|
+
|
8
|
+
menu_item = if page.kind_of?(Effective::Page)
|
9
|
+
url = effective_pages.page_path(page)
|
10
|
+
menu.menu_items.find { |item| item.menuable == page || item.title == page.title || item.url == url }
|
11
|
+
else
|
12
|
+
menu.menu_items.find { |item| item.menuable == page || item.title == page || item.url == page }
|
13
|
+
end
|
14
|
+
|
15
|
+
return breadcrumbs_fallback(page) unless menu_item.present?
|
16
|
+
|
17
|
+
parents = menu.menu_items.select { |item| item.lft < menu_item.lft && item.rgt > menu_item.rgt }
|
18
|
+
|
19
|
+
content_tag(:ol, class: 'breadcrumb') do
|
20
|
+
(
|
21
|
+
parents.map { |parent| content_tag(:li, link_to(parent.title, parent.url.presence || '#', title: parent.title)) } +
|
22
|
+
[content_tag(:li, page.try(:title) || page, class: 'active')]
|
23
|
+
).join().html_safe
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
alias_method :render_breadcrumb, :render_breadcrumbs
|
28
|
+
|
29
|
+
def breadcrumbs_fallback(page)
|
30
|
+
content_tag(:ol, class: 'breadcrumb') do
|
31
|
+
[
|
32
|
+
content_tag(:li, link_to('Home', '/', title: 'Home')),
|
33
|
+
content_tag(:li, (page.try(:title) || page || @page_title || 'Here'), class: 'active')
|
34
|
+
].join().html_safe
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -19,7 +19,7 @@ module EffectivePagesHelper
|
|
19
19
|
|
20
20
|
def effective_pages_site_title
|
21
21
|
unless @page_title.present? || EffectivePages.silence_missing_page_title_warnings
|
22
|
-
Rails.logger.error("WARNING: Expected @page_title to be present. Please assign a @page_title variable in your controller action.")
|
22
|
+
Rails.logger.error("WARNING: (effective_pages) Expected @page_title to be present. Please assign a @page_title variable in your controller action.")
|
23
23
|
end
|
24
24
|
|
25
25
|
(@page_title || "#{params[:controller].try(:titleize)} #{params[:action].try(:titleize)}") + EffectivePages.site_title_suffix.to_s
|
@@ -27,7 +27,7 @@ module EffectivePagesHelper
|
|
27
27
|
|
28
28
|
def effective_pages_meta_description
|
29
29
|
unless @meta_description.present? || EffectivePages.silence_missing_meta_description_warnings
|
30
|
-
Rails.logger.error("WARNING: Expected @meta_description to be present. Please assign a @meta_description variable in your controller action.")
|
30
|
+
Rails.logger.error("WARNING: (effective_pages) Expected @meta_description to be present. Please assign a @meta_description variable in your controller action.")
|
31
31
|
end
|
32
32
|
|
33
33
|
truncate((@meta_description || EffectivePages.fallback_meta_description).to_s, length: 150)
|
@@ -12,20 +12,20 @@ module Effective
|
|
12
12
|
|
13
13
|
self.table_name = EffectivePages.pages_table_name.to_s
|
14
14
|
|
15
|
-
structure do
|
16
|
-
|
17
|
-
|
15
|
+
# structure do
|
16
|
+
# title :string
|
17
|
+
# meta_description :string
|
18
18
|
|
19
|
-
|
19
|
+
# draft :boolean
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
# layout :string
|
22
|
+
# template :string
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
# slug :string
|
25
|
+
# roles_mask :integer
|
26
26
|
|
27
|
-
|
28
|
-
end
|
27
|
+
# timestamps
|
28
|
+
# end
|
29
29
|
|
30
30
|
validates :title, presence: true, length: { maximum: 255 }
|
31
31
|
validates :meta_description, presence: true, length: { maximum: 150 }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -153,6 +153,7 @@ files:
|
|
153
153
|
- app/controllers/admin/menus_controller.rb
|
154
154
|
- app/controllers/admin/pages_controller.rb
|
155
155
|
- app/controllers/effective/pages_controller.rb
|
156
|
+
- app/helpers/effective_breadcrumbs_helper.rb
|
156
157
|
- app/helpers/effective_menus_admin_helper.rb
|
157
158
|
- app/helpers/effective_menus_helper.rb
|
158
159
|
- app/helpers/effective_pages_helper.rb
|