effective_pages 1.0.13 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|