radiant-navigation_tags-extension 0.2.6 → 0.2.7
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.
- data/lib/navigation_tags.rb +49 -12
- data/lib/radiant-navigation_tags-extension.rb +1 -1
- metadata +6 -7
data/lib/navigation_tags.rb
CHANGED
|
@@ -10,16 +10,23 @@ module NavigationTags
|
|
|
10
10
|
<pre><code><r:nav [id="subnav"] [root=\"/products\"] [append_urls=\"/,/about-us/contact\"] [labels=\"/:Home,/about-us/contact:Contact us\"] [depth=\"2\"] [expand_all=\"true\"]/></code></pre>
|
|
11
11
|
*Attributes:*
|
|
12
12
|
|
|
13
|
-
root
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
*root*: defaults to "/", where to start building the navigation from, you can i.e. use "/products" to build a subnav
|
|
14
|
+
|
|
15
|
+
*append_urls*: urls of pages to add to the end of the navigation ul seperated by a comma. For external links, you can provide a label text after the link with a semicolon. E.g. append_urls="/,http://example.com;Other site"
|
|
16
|
+
|
|
17
|
+
*prepend_urls*: urls of pages to add to the beginning of the navigation ul seperated by a comma. For external links, you can provide a label text after the link with a semicolon. E.g. prepend_urls="/,http://example.com;Other site"
|
|
18
|
+
|
|
19
|
+
*ids_for_lis*: defaults to false, enable this to give each li an id (it's slug prefixed with nav_)
|
|
20
|
+
|
|
21
|
+
*ids_for_links*: defaults to false, enable this to give each link an id (it's slug prefixed with nav_)
|
|
22
|
+
|
|
23
|
+
*labels*: defaults to nil, use to overwrite the link text for given pages, otherwise the breadcrumb is used.
|
|
24
|
+
|
|
25
|
+
*depth*: defaults to 1, which means no sub-ul's, set to 2 or more for a nested list
|
|
26
|
+
|
|
27
|
+
*expand_all*: defaults to false, enable this to have all li's create sub-ul's of their children, i.o. only the currently active li
|
|
28
|
+
|
|
29
|
+
*id, class,..*: go as html attributes of the outer ul
|
|
23
30
|
}
|
|
24
31
|
|
|
25
32
|
tag "nav" do |tag|
|
|
@@ -45,6 +52,8 @@ module NavigationTags
|
|
|
45
52
|
page = Page.find_by_path(url)
|
|
46
53
|
if page.class_name != "FileNotFoundPage"
|
|
47
54
|
lis << li_for_current_page_vs_navigation_item(tag.locals.page, page)
|
|
55
|
+
else
|
|
56
|
+
lis << li_for_external_link(url)
|
|
48
57
|
end
|
|
49
58
|
end
|
|
50
59
|
end
|
|
@@ -58,6 +67,8 @@ module NavigationTags
|
|
|
58
67
|
page = Page.find_by_path(url)
|
|
59
68
|
if page.class_name != "FileNotFoundPage"
|
|
60
69
|
lis << li_for_current_page_vs_navigation_item(tag.locals.page, page)
|
|
70
|
+
else
|
|
71
|
+
lis << li_for_external_link(url)
|
|
61
72
|
end
|
|
62
73
|
end
|
|
63
74
|
end
|
|
@@ -121,11 +132,37 @@ module NavigationTags
|
|
|
121
132
|
"<li#{li_attrs_for_current_page_vs_navigation_item(current_page, child_page)}>#{link_for_page(child_page)}</li>"
|
|
122
133
|
end
|
|
123
134
|
|
|
135
|
+
def li_attrs_for_external_link link, label
|
|
136
|
+
classes = ["external"]
|
|
137
|
+
(classes << "first" && @first_set = true) unless @first_set
|
|
138
|
+
result = " class=\"#{classes.compact.join(" ")}\""
|
|
139
|
+
if @ids_for_lis
|
|
140
|
+
result << " id=\"nav_" + label.slugify + "\""
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def li_for_external_link link
|
|
145
|
+
if @labels &&
|
|
146
|
+
matched_label = @labels.split(',').map{|l| l[0..6] == 'http://' ? l[7..-1] : l }.select{|l| l.split(':').first == link}.first.try(:split, ':').try(:last)
|
|
147
|
+
else
|
|
148
|
+
matched_label = link[0..6] == 'http://' ? link[7..-1] : link
|
|
149
|
+
end
|
|
150
|
+
"<li#{li_attrs_for_external_link(link, matched_label)}>#{external_link(link, matched_label)}</li>"
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def external_link link, label
|
|
154
|
+
if @ids_for_links
|
|
155
|
+
"<a href=\"#{link}\" id=\"link_#{ label.slugify }\">#{label}</a>"
|
|
156
|
+
else
|
|
157
|
+
"<a href=\"#{link}\">#{label}</a>"
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
124
161
|
def link_for_page page
|
|
125
162
|
if @ids_for_links
|
|
126
|
-
"<a href=\"#{page.
|
|
163
|
+
"<a href=\"#{page.path}\" id=\"#{("link_" + (page.slug == "/" ? 'home' : page.slug))}\">#{label_for_page(page)}</a>"
|
|
127
164
|
else
|
|
128
|
-
"<a href=\"#{page.
|
|
165
|
+
"<a href=\"#{page.path}\">#{label_for_page(page)}</a>"
|
|
129
166
|
end
|
|
130
167
|
end
|
|
131
168
|
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: radiant-navigation_tags-extension
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 25
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 2
|
|
9
|
-
-
|
|
10
|
-
version: 0.2.
|
|
9
|
+
- 7
|
|
10
|
+
version: 0.2.7
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Benny Degezelle
|
|
@@ -17,8 +17,7 @@ autorequire:
|
|
|
17
17
|
bindir: bin
|
|
18
18
|
cert_chain: []
|
|
19
19
|
|
|
20
|
-
date:
|
|
21
|
-
default_executable:
|
|
20
|
+
date: 2012-05-05 00:00:00 Z
|
|
22
21
|
dependencies: []
|
|
23
22
|
|
|
24
23
|
description: Adds an r:nav radius tag to Radiant CMS. This tag helps you build css-able navigation menus with ease.
|
|
@@ -39,7 +38,6 @@ files:
|
|
|
39
38
|
- radiant-navigations_tags-extension.gemspec
|
|
40
39
|
- Rakefile
|
|
41
40
|
- README
|
|
42
|
-
has_rdoc: true
|
|
43
41
|
homepage: https://github.com/jomz/navigation_tags
|
|
44
42
|
licenses: []
|
|
45
43
|
|
|
@@ -69,9 +67,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
69
67
|
requirements: []
|
|
70
68
|
|
|
71
69
|
rubyforge_project:
|
|
72
|
-
rubygems_version: 1.
|
|
70
|
+
rubygems_version: 1.8.23
|
|
73
71
|
signing_key:
|
|
74
72
|
specification_version: 3
|
|
75
73
|
summary: Makes building navigations much easier.
|
|
76
74
|
test_files: []
|
|
77
75
|
|
|
76
|
+
has_rdoc:
|