refinerycms-pages 0.9.9.4 → 0.9.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/admin/pages_controller.rb +6 -1
- data/app/controllers/pages_controller.rb +2 -0
- data/app/models/page.rb +12 -13
- data/config/locales/es.yml +9 -7
- data/config/locales/it.yml +46 -46
- data/config/locales/sk.yml +84 -0
- data/db/migrate/20110307025652_translate_custom_title_on_pages.rb +33 -0
- data/lib/pages/marketable_routes.rb +1 -1
- data/refinerycms-pages.gemspec +5 -3
- data/spec/models/page_spec.rb +43 -5
- metadata +6 -4
@@ -19,7 +19,12 @@ module Admin
|
|
19
19
|
protected
|
20
20
|
|
21
21
|
def globalize!
|
22
|
-
|
22
|
+
super
|
23
|
+
|
24
|
+
# Check whether we need to override e.g. on the pages form.
|
25
|
+
unless params[:switch_locale] or @page.try(:slug).nil? or !@page.persisted?
|
26
|
+
Thread.current[:globalize_locale] = @page.slug.locale
|
27
|
+
end
|
23
28
|
end
|
24
29
|
|
25
30
|
def show_errors_for_reserved_slug(exception)
|
@@ -22,6 +22,8 @@ class PagesController < ApplicationController
|
|
22
22
|
# if the admin wants this to be a "placeholder" page which goes to its first child, go to that instead.
|
23
23
|
if @page.skip_to_first_child && (first_live_child = @page.children.order('lft ASC').where(:draft=>false).first).present?
|
24
24
|
redirect_to first_live_child.url
|
25
|
+
elsif @page.link_url.present?
|
26
|
+
redirect_to @page.link_url and return
|
25
27
|
end
|
26
28
|
else
|
27
29
|
error_404
|
data/app/models/page.rb
CHANGED
@@ -2,7 +2,7 @@ require 'globalize3'
|
|
2
2
|
|
3
3
|
class Page < ActiveRecord::Base
|
4
4
|
|
5
|
-
translates :title, :meta_keywords, :meta_description, :browser_title if self.respond_to?(:translates)
|
5
|
+
translates :title, :meta_keywords, :meta_description, :browser_title, :custom_title if self.respond_to?(:translates)
|
6
6
|
attr_accessor :locale # to hold temporarily
|
7
7
|
validates :title, :presence => true
|
8
8
|
|
@@ -177,7 +177,7 @@ class Page < ActiveRecord::Base
|
|
177
177
|
else
|
178
178
|
[Refinery.base_cache_key, super].join('/')
|
179
179
|
end
|
180
|
-
|
180
|
+
|
181
181
|
end
|
182
182
|
|
183
183
|
# Returns true if this page is "published"
|
@@ -224,20 +224,18 @@ class Page < ActiveRecord::Base
|
|
224
224
|
#
|
225
225
|
# Will return the body page part of the first page.
|
226
226
|
def [](part_title)
|
227
|
-
#
|
228
|
-
|
229
|
-
if (super_value = super).blank?
|
230
|
-
# self.parts is already eager loaded so we can now just grab the first element matching the title we specified.
|
231
|
-
part = self.parts.detect do |part|
|
232
|
-
part.title.present? and #protecting against the problem that occurs when have nil title
|
233
|
-
part.title == part_title.to_s or
|
234
|
-
part.title.downcase.gsub(" ", "_") == part_title.to_s.downcase.gsub(" ", "_")
|
235
|
-
end
|
227
|
+
# Allow for calling attributes with [] shorthand (eg page[:parent_id])
|
228
|
+
return super if self.attributes.has_key?(part_title.to_s)
|
236
229
|
|
237
|
-
|
230
|
+
# the way that we call page parts seems flawed, will probably revert to page.parts[:title] in a future release.
|
231
|
+
# self.parts is already eager loaded so we can now just grab the first element matching the title we specified.
|
232
|
+
part = self.parts.detect do |part|
|
233
|
+
part.title.present? and #protecting against the problem that occurs when have nil title
|
234
|
+
part.title == part_title.to_s or
|
235
|
+
part.title.downcase.gsub(" ", "_") == part_title.to_s.downcase.gsub(" ", "_")
|
238
236
|
end
|
239
237
|
|
240
|
-
|
238
|
+
part.try(:body)
|
241
239
|
end
|
242
240
|
|
243
241
|
# In the admin area we use a slightly different title to inform the which pages are draft or hidden pages
|
@@ -260,6 +258,7 @@ class Page < ActiveRecord::Base
|
|
260
258
|
#
|
261
259
|
# Returns the sluggified string
|
262
260
|
def normalize_friendly_id(slug_string)
|
261
|
+
slug_string.gsub!('_', '-')
|
263
262
|
sluggified = super
|
264
263
|
if self.class.use_marketable_urls? && self.class.friendly_id_config.reserved_words.include?(sluggified)
|
265
264
|
sluggified << "-page"
|
data/config/locales/es.yml
CHANGED
@@ -2,6 +2,8 @@ es:
|
|
2
2
|
plugins:
|
3
3
|
refinery_pages:
|
4
4
|
title: Páginas
|
5
|
+
description: Gestionar páginas de contenido
|
6
|
+
article: femenino
|
5
7
|
admin:
|
6
8
|
pages_dialogs:
|
7
9
|
page_link:
|
@@ -16,7 +18,7 @@ es:
|
|
16
18
|
new_window: Nueva ventana
|
17
19
|
new_window_label: Marca esta casilla para que el enlace se abra en una ventana nueva del navegador.
|
18
20
|
not_sure: ¿No sabes qué escribir en el campo anterior?
|
19
|
-
step1: Busca en la web qué página quieres enlazar
|
21
|
+
step1: Busca en la web qué página quieres enlazar.
|
20
22
|
step2: Copia la dirección web desde la barra de direcciones de tu navegador y pégala en el campo anterior.
|
21
23
|
email_address:
|
22
24
|
tab_name: Dirección e-mail
|
@@ -25,7 +27,7 @@ es:
|
|
25
27
|
not_sure: ¿No sabes qué escribir en estos campos?
|
26
28
|
step1_html: Escribe o copia y pega (por ej. desde tu libreta de direcciones) la dirección e-mail a la que quieres enlazar en el campo '<strong>Dirección e-mail</strong>' anterior.
|
27
29
|
step2_html: Usa el campo <strong>Asunto opcional</strong> si quieres que el mensaje se envíe con un <strong>asunto predeterminado</strong>
|
28
|
-
step3_html: Usa el campo <strong>Mensaje</strong> si quieres que el mensaje se envíe con un <strong>contenido predeterminado</strong>
|
30
|
+
step3_html: Usa el campo <strong>Mensaje opcional</strong> si quieres que el mensaje se envíe con un <strong>contenido predeterminado</strong>
|
29
31
|
your_resource:
|
30
32
|
tab_name: Tu archivo
|
31
33
|
link_to_this_resource: Enlace a este archivo
|
@@ -34,7 +36,7 @@ es:
|
|
34
36
|
edit: Editar esta página
|
35
37
|
reserved_system_word: "Lo sentimos, pero ese título es una palabra reservada del sistema."
|
36
38
|
page:
|
37
|
-
view_live_html: Ver esta página como
|
39
|
+
view_live_html: Ver esta página como abierta al público<br/><em>(la abre en ventana nueva)</em>
|
38
40
|
hidden: oculta
|
39
41
|
draft: borrador
|
40
42
|
form_new_page_parts:
|
@@ -45,7 +47,7 @@ es:
|
|
45
47
|
form_advanced_options:
|
46
48
|
toggle_advanced_options: Pulsa para acceder a las opciones de meta tags y menú
|
47
49
|
page_options: Opciones de página
|
48
|
-
parent_page: Página
|
50
|
+
parent_page: Página padre
|
49
51
|
advanced_options: Opciones avanzadas
|
50
52
|
custom_title: Título personalizado
|
51
53
|
title_types:
|
@@ -56,15 +58,15 @@ es:
|
|
56
58
|
show_in_menu_help: Deja sin marcar esta casilla para eliminar una página del menú de tu web. Puede ser útil si tienes una página que quieres que la gente enlace directamente pero no quieres mostrarla en el menú.
|
57
59
|
save_as_draft: Guardar como borrador
|
58
60
|
skip_to_first_child: Saltar página de primer nivel
|
59
|
-
skip_to_first_child_label: Redirigir a los visitantes a la primera página
|
61
|
+
skip_to_first_child_label: Redirigir a los visitantes a la primera página hija.
|
60
62
|
skip_to_first_child_help: Esta opción hace que esta página enlace a su primera página hija. Puede ser útil para agrupar varias páginas juntas.
|
61
63
|
link_url: Redirigir esta página a otra web o a otra página
|
62
64
|
link_url_help: "Si quieres que esta página envíe a otra web o página entonces pulsa esta página en el menú y introduce una URL (por ej: http://google.com). En caso contrario déjalo en blanco."
|
63
65
|
parent_page_help: Puedes incluir una página dentro de otra seleccionándola en la lista. Si quieres que sea una página de primer nivel, déjalo en blanco.
|
64
66
|
custom_title_help: Si quieres que la página tenga un título diferente al que aparece en el menú selecciona 'Texto' y teclea el título que prefieres.
|
65
67
|
form_advanced_options_seo:
|
66
|
-
seo:
|
67
|
-
seo_override_title: Título
|
68
|
+
seo: Optimización para motores de búsqueda (SEO)
|
69
|
+
seo_override_title: Título del navegador
|
68
70
|
seo_override_title_help: Introduce un título de 5-10 palabras que resuma los contenidos de la página.
|
69
71
|
meta_keywords_title: Palabras clave (meta keyboards)
|
70
72
|
meta_keywords_help: Introduce 5-10 palabras clave relacionadas con esta página, separadas por comas.
|
data/config/locales/it.yml
CHANGED
@@ -2,40 +2,40 @@ it:
|
|
2
2
|
plugins:
|
3
3
|
refinery_pages:
|
4
4
|
title: Pagine
|
5
|
-
description: Gestione
|
5
|
+
description: Gestione dei contenuti del sito
|
6
6
|
admin:
|
7
7
|
pages_dialogs:
|
8
8
|
page_link:
|
9
|
-
link_to_this_page:
|
9
|
+
link_to_this_page: Link a questa pagina
|
10
10
|
link_to:
|
11
11
|
insert: Inserire
|
12
12
|
your_page:
|
13
13
|
tab_name: La tua pagina
|
14
14
|
web_address:
|
15
15
|
tab_name: Website
|
16
|
-
location:
|
16
|
+
location: URL
|
17
17
|
new_window: Nuova finestra
|
18
|
-
new_window_label: Seleziona questa casella per
|
19
|
-
not_sure:
|
20
|
-
step1:
|
21
|
-
step2:
|
18
|
+
new_window_label: Seleziona questa casella per fare in modo che la pagina linkata si apra in una nuova finestra/scheda del browser.
|
19
|
+
not_sure: Se non sei sicuro di cosa sia corretto inserire...
|
20
|
+
step1: Apri la pagina che desideri linkare.
|
21
|
+
step2: "Copia l'URL dalla barra degli indirizzi del browser ed incollalo nella casella."
|
22
22
|
email_address:
|
23
|
-
tab_name: Indirizzo
|
24
|
-
subject_line_optional: Oggetto
|
25
|
-
body_optional:
|
26
|
-
not_sure:
|
27
|
-
step1_html:
|
28
|
-
step2_html: Utilizzare la casella '<strong>
|
29
|
-
step3_html: Utilizzare la casella <strong>
|
23
|
+
tab_name: Indirizzo e-mail
|
24
|
+
subject_line_optional: Oggetto del messaggio (facoltativo)
|
25
|
+
body_optional: Testo del messaggio (facoltativo)
|
26
|
+
not_sure: Se non sei sicuro di cosa sia corretto inserire...
|
27
|
+
step1_html: "Inserisci l'indirizzo e-mail da linkare nella casella di testo '<strong>Indirizzo e-mail</strong>'."
|
28
|
+
step2_html: "Utilizzare la casella '<strong>Oggetto del messaggio</strong>' se si desidera che il messaggio abbia un <strong>oggetto predefinito</ strong>."
|
29
|
+
step3_html: "Utilizzare la casella <strong>Testo del messaggio</strong> se si desidera che il messaggio sia composto con un <strong>messaggio predefinito </strong>."
|
30
30
|
your_resource:
|
31
|
-
tab_name:
|
32
|
-
link_to_this_resource:
|
31
|
+
tab_name: File
|
32
|
+
link_to_this_resource: Link a questo file
|
33
33
|
pages:
|
34
|
-
delete:
|
34
|
+
delete: Eliminare per sempre questa pagina
|
35
35
|
edit: Modificare questa pagina
|
36
|
-
reserved_system_word: "
|
36
|
+
reserved_system_word: "Il titolo è una parola di sistema riservata."
|
37
37
|
page:
|
38
|
-
view_live_html: Visualizza questa pagina
|
38
|
+
view_live_html: Visualizza questa pagina<br/><em>(apre una nuova finestra del browser)</em>
|
39
39
|
hidden: nascosto
|
40
40
|
draft: bozza
|
41
41
|
form_new_page_parts:
|
@@ -44,15 +44,15 @@ it:
|
|
44
44
|
create_content_section: Aggiungi la sezione dei contenuti
|
45
45
|
delete_content_section: Elimina la sezione dei contenuti
|
46
46
|
form_advanced_options:
|
47
|
-
toggle_advanced_options: Cliccare per accedere alle
|
48
|
-
page_options: Opzioni
|
47
|
+
toggle_advanced_options: Cliccare per accedere alle impostazioni dei meta tags e del menu.
|
48
|
+
page_options: Opzioni avanzate
|
49
49
|
parent_page: Pagina Superiore
|
50
50
|
title: Titolo
|
51
|
-
create_content_section:
|
52
|
-
delete_content_section: Elimina sezione dei contenuti
|
53
|
-
advanced_options:
|
51
|
+
create_content_section: Crea la sezione dei contenuti
|
52
|
+
delete_content_section: Elimina la sezione dei contenuti
|
53
|
+
advanced_options: Mostra/nascondi opzioni avanzate
|
54
54
|
explain_page_different_title: Se si desidera che la pagina abbia un titolo diverso da quello mostrato nel menu e dal titolo del browser, scriverlo qui.
|
55
|
-
redirect_to_first_child: "Seleziona questa casella se vuoi che il visitatore
|
55
|
+
redirect_to_first_child: "Seleziona questa casella se vuoi che il visitatore sia reindirizzato alla prima pagina figlia di questa pagina, se questa pagina è selezionata."
|
56
56
|
parent_id_title: Genitore
|
57
57
|
custom_title: Titolo personalizzato
|
58
58
|
title_types:
|
@@ -60,39 +60,39 @@ it:
|
|
60
60
|
text: Testo
|
61
61
|
image: Immagine
|
62
62
|
custom_url: URL personalizzato
|
63
|
-
custom_url_explanation_html: "Inserisci un URL, se desideri che questa pagina sia collegata ad un sito esterno o ad una risorsa
|
63
|
+
custom_url_explanation_html: "Inserisci un URL, se desideri che questa pagina sia collegata ad un sito esterno o ad una risorsa preesistente, ad esempio una pagina contatti. <br/> Nota: L'URL inserito dovrà puntare ad una posizione già esistente."
|
64
64
|
show_in_menu_title: Mostra nel menu
|
65
|
-
show_in_menu_description: Seleziona questa casella se si desidera che questa pagina
|
66
|
-
show_in_menu_help: Deselezionare questa casella se si desidera rimuovere una pagina dal menu del sito. Questo può essere utile
|
65
|
+
show_in_menu_description: Seleziona questa casella se si desidera che questa pagina sia visibile nel menu del sito
|
66
|
+
show_in_menu_help: Deselezionare questa casella se si desidera rimuovere una pagina dal menu del sito. Questo può essere utile nel caso si disponga di una pagina a cui ci si può collegare direttamente ma che non si vuole mostrare nel menu.
|
67
67
|
save_as_draft: Salva come bozza
|
68
|
-
skip_to_first_child: Salta pagina di livello
|
68
|
+
skip_to_first_child: Salta alla prima pagina di livello inferiore
|
69
69
|
skip_to_first_child_label: Reindirizza i visitatori verso la prima pagina di livello inferiore.
|
70
|
-
skip_to_first_child_help: Questa opzione rende questo pagina collegata alla prima pagina sotto.
|
70
|
+
skip_to_first_child_help: Questa opzione rende questo pagina collegata alla prima pagina sotto. Ciò può essere utile quando si raggruppano pagine.
|
71
71
|
link_url: Inoltra questa pagina ad un altro sito o pagina
|
72
|
-
link_url_help:
|
73
|
-
parent_page_help: Si può
|
74
|
-
custom_title_help: Se si desidera che la pagina abbia un titolo diverso da quello mostrato nel menu, selezionare 'Testo' e inserirlo qui.
|
72
|
+
link_url_help: Inserire un URL se si desidera che questa pagina punti ad un altro sito o pagina quando si fa clic sul suo nome nel menu; altrimenti lasciare vuoto
|
73
|
+
parent_page_help: "Si può fare in modo che questa pagina sia figlia di un'altra pagina selezionandola dalla lista; se invece si desidera che questa pagina sia una pagina di primo livello, lasciare in bianco."
|
74
|
+
custom_title_help: "Se si desidera che la pagina abbia un titolo diverso da quello mostrato nel menu, selezionare 'Testo' e inserirlo qui."
|
75
75
|
form_advanced_options_seo:
|
76
|
-
seo: Ottimizzazione
|
76
|
+
seo: Ottimizzazione Motori di Ricerca
|
77
77
|
seo_override_title: Titolo del Browser
|
78
|
-
seo_override_title_help:
|
79
|
-
meta_keywords_title:
|
80
|
-
meta_keywords_help: Inserisci 5-10 parole chiave che riguardano questa pagina
|
81
|
-
meta_description_title:
|
78
|
+
seo_override_title_help: È possibile inserire un testo per il titolo della barra del browser che sovrascriverà il valore predefinito
|
79
|
+
meta_keywords_title: Parole chiave
|
80
|
+
meta_keywords_help: Inserisci 5-10 parole chiave che riguardano questa pagina, separate da una virgola.
|
81
|
+
meta_description_title: Descrizione
|
82
82
|
meta_description_help: Inserire due o tre frasi concise che descrivono questa pagina.
|
83
83
|
js:
|
84
84
|
content_section:
|
85
85
|
create: Crea sezione dei contenuti
|
86
|
-
already_exists: Una sezione di contenuti con quel titolo già
|
86
|
+
already_exists: Una sezione di contenuti con quel titolo e già esistente, si prega di modificarlo.
|
87
87
|
title_empty: Non è stato inserito un titolo per la sezione dei contenuti, inseriscine uno.
|
88
|
-
confirm_delete: Ciò eliminerà la sezione dei contenuti %{section_name}
|
88
|
+
confirm_delete: Ciò eliminerà la sezione dei contenuti %{section_name} e cancellerà tutti i contenuti che sono stati inseriti al suo interno. Sei sicuro?
|
89
89
|
index:
|
90
|
-
create_new_page:
|
91
|
-
reorder_pages:
|
92
|
-
reorder_pages_done: Riordino Pagine
|
93
|
-
sorry_no_results:
|
94
|
-
no_pages_yet: Non
|
90
|
+
create_new_page: Crea una nuova pagina
|
91
|
+
reorder_pages: Riordina le pagine
|
92
|
+
reorder_pages_done: Riordino Pagine terminato
|
93
|
+
sorry_no_results: La ricerca non ha prodotto risultati.
|
94
|
+
no_pages_yet: Non è stata ancora creata nessuna pagina. Clicca su "Crea nuova pagina" per aggiungere la tua prima pagina.
|
95
95
|
activerecord:
|
96
96
|
attributes:
|
97
97
|
page:
|
98
|
-
skip_to_first_child: "
|
98
|
+
skip_to_first_child: "Salta al primo figlio?"
|
@@ -0,0 +1,84 @@
|
|
1
|
+
sk:
|
2
|
+
plugins:
|
3
|
+
refinery_pages:
|
4
|
+
title: Stránky
|
5
|
+
description: Spravovať obsahové stránky
|
6
|
+
admin:
|
7
|
+
pages_dialogs:
|
8
|
+
page_link:
|
9
|
+
link_to_this_page: Odkaz na túto stránku
|
10
|
+
link_to:
|
11
|
+
insert: Vložiť
|
12
|
+
your_page:
|
13
|
+
tab_name: Vaša stránka
|
14
|
+
web_address:
|
15
|
+
tab_name: Web
|
16
|
+
location: Umiestnenie
|
17
|
+
new_window: Nové okno
|
18
|
+
new_window_label: Zaškrtnite ak chcete odkaz otvoriť v novom okne prehliadača.
|
19
|
+
not_sure: Nie ste si istí čo zadať do tohto poľa?
|
20
|
+
step1: Nájdite na webe stránku na ktorú chcete odkázať.
|
21
|
+
step2: Skopírujte adresu z adresného riadku vášho prehliadača a vložte jej to tohto poľa.
|
22
|
+
email_address:
|
23
|
+
tab_name: Emailová adresa
|
24
|
+
subject_line_optional: Voliteľný predmet
|
25
|
+
body_optional: Voliteľný obsah správy
|
26
|
+
not_sure: Nie ste si istí čo zadať do týchto polí?
|
27
|
+
step1_html: Napíšte, alebo skopírujte a vložte (napr. z vášho zoznamu kontaktov) emailovú adresu do poľa '<strong>Emailová adresa</strong>'.
|
28
|
+
step2_html: Použite '<strong>Voliteľný predmet</ strong>' ak chcete aby emailová správa obsahovala <strong>preddefinovaný predmet</strong>.
|
29
|
+
step3_html: Použite '<strong>Voliteľný obsah správy</strong>' ak chcete aby mailová správa obsahovala <strong>preddefinovaný obsah správy</strong>.
|
30
|
+
your_resource:
|
31
|
+
tab_name: Váš súbor
|
32
|
+
link_to_this_resource: Odkaz na tento súbor
|
33
|
+
pages:
|
34
|
+
delete: Zmazať túto stránku
|
35
|
+
edit: Upraviť túto stránku
|
36
|
+
reserved_system_word: "Prepáčte, ale tento titulok je rezervované systémové slovo."
|
37
|
+
page:
|
38
|
+
view_live_html: Zobraziť stránku <br/><em>(otvorí sa v novom okne)</em>
|
39
|
+
hidden: skrytá
|
40
|
+
draft: pracovná verzia
|
41
|
+
form_new_page_parts:
|
42
|
+
title: Názov
|
43
|
+
form_page_parts:
|
44
|
+
create_content_section: Pridať sekciu
|
45
|
+
delete_content_section: Zmazať sekciu
|
46
|
+
form_advanced_options:
|
47
|
+
toggle_advanced_options: Sprístupní nastavenia menu a meta tagov.
|
48
|
+
page_options: Nastavenie stránky
|
49
|
+
parent_page: Nadradená stránka
|
50
|
+
advanced_options: Rozšírené nastavenia
|
51
|
+
custom_title: Titulok
|
52
|
+
title_types:
|
53
|
+
none: Žiadny
|
54
|
+
text: Text
|
55
|
+
show_in_menu_title: Zobraziť v menu
|
56
|
+
show_in_menu_description: Zobraziť túto stránku v menu webu
|
57
|
+
show_in_menu_help: Odznačte ak chcete odstrániť odkaz na túto stránku z menu webu. Toto je užitočné ak máte stránku, na ktorú chcete mať priamy odkaz, ale nechcete zobrazovať stránku v menu.
|
58
|
+
save_as_draft: Uložiť ako pracovnú verziu
|
59
|
+
skip_to_first_child: Prejsť na prvú podstránku
|
60
|
+
skip_to_first_child_label: Presmeruje návštevníka na prvú podstránku sekcie.
|
61
|
+
skip_to_first_child_help: Táto stránka sa nezobrazí, namiesto toho bude odkaz na nej presmerovaný na jej prvú podstránku. To sa môže hodiť pre zoskupovanie stránok.
|
62
|
+
link_url: Presmerovať túto stránku na iný web alebo stránku.
|
63
|
+
link_url_help: Ak chcete, aby po kliknutí na odkaz na tútu stránku bol návštevník presmerovaný na iný web, vložte adresu (napr. http://google.com), inak ponechajte prázdne.
|
64
|
+
parent_page_help: Môžete umiestniť túto stránku v hierarchii pod inú stránku. Ak nevyberiete nič, bude táto stránka umiestnená na prvej úrovni.
|
65
|
+
custom_title_help: Ak chcete aby stránka mala iný titulok než ten ktorý sa zobrazuje v menu vyberte 'Text' a vložte ho tu.
|
66
|
+
form_advanced_options_seo:
|
67
|
+
seo: Optimalizácia pre vyhľadávanie
|
68
|
+
seo_override_title: Titulok prehliadača
|
69
|
+
seo_override_title_help: Vložte titulok dĺžky 5-10 slov, ktorý vystihuje obsah stránky.
|
70
|
+
meta_keywords_title: Kľúčové slová (Meta keywords)
|
71
|
+
meta_keywords_help: Vložte 5-10 kľúčových slov oddelených čiarkou, ktoré sa vzťahujú k obsahu stránky.
|
72
|
+
meta_description_title: Popis (Meta description)
|
73
|
+
meta_description_help: Vložte 2-3 krátke vety sumarizujúce obsah stránky.
|
74
|
+
index:
|
75
|
+
create_new_page: Pridať novú stránku
|
76
|
+
reorder_pages: Zmeniť usporiadanie stránok
|
77
|
+
reorder_pages_done: Uložiť usporiadanie
|
78
|
+
no_pages_yet: Zatiaľ neboli vytvorené žiadne stránky. Kliknite na "Pridať novú stránku" pre pridanie prvej.
|
79
|
+
activerecord:
|
80
|
+
models:
|
81
|
+
page: stránka
|
82
|
+
attributes:
|
83
|
+
page:
|
84
|
+
title: Názov
|
@@ -0,0 +1,33 @@
|
|
1
|
+
class TranslateCustomTitleOnPages < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
unless ::Page::Translation.column_names.map(&:to_sym).include?(:custom_title)
|
4
|
+
add_column ::Page::Translation.table_name, :custom_title, :string
|
5
|
+
|
6
|
+
# Re-save custom_title
|
7
|
+
::Page.all.each do |page|
|
8
|
+
page.update_attribute(:custom_title, page.untranslated_attributes['custom_title'])
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
if ::Page.column_names.map(&:to_sym).include?(:custom_title)
|
14
|
+
remove_column ::Page.table_name, :custom_title
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.down
|
19
|
+
# Restore
|
20
|
+
add_column ::Page.table_name, :custom_title, :string
|
21
|
+
|
22
|
+
# Re-save custom_title
|
23
|
+
::Page.all.each do |page|
|
24
|
+
::Page.update_all({
|
25
|
+
:custom_title => page.attributes['custom_title']
|
26
|
+
}, {
|
27
|
+
:id => page.id.to_s
|
28
|
+
}) unless page.attributes['custom_title'].nil?
|
29
|
+
end
|
30
|
+
|
31
|
+
remove_column ::Page::Translation.table_name, :custom_title
|
32
|
+
end
|
33
|
+
end
|
@@ -6,5 +6,5 @@ end
|
|
6
6
|
if Page.use_marketable_urls?
|
7
7
|
Page.friendly_id_config.reserved_words |= ::Refinery::Application.routes.named_routes.map { |name, route|
|
8
8
|
route.path.gsub(/^\//, '').to_s.split('(').first.split(':').first.to_s.split('/')
|
9
|
-
}.flatten.uniq
|
9
|
+
}.flatten.reject{|w| w =~ /\_/}.uniq
|
10
10
|
end
|
data/refinerycms-pages.gemspec
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{refinerycms-pages}
|
5
|
-
s.version = %q{0.9.9.
|
5
|
+
s.version = %q{0.9.9.5}
|
6
6
|
s.summary = %q{Pages engine for Refinery CMS}
|
7
7
|
s.description = %q{The default content engine of Refinery CMS. This engine handles the administration and display of user-editable pages.}
|
8
|
-
s.date = %q{2011-
|
8
|
+
s.date = %q{2011-03-08}
|
9
9
|
s.email = %q{info@refinerycms.com}
|
10
10
|
s.homepage = %q{http://refinerycms.com}
|
11
11
|
s.rubyforge_project = %q{refinerycms}
|
@@ -70,6 +70,7 @@ Gem::Specification.new do |s|
|
|
70
70
|
'config/locales/pt-BR.yml',
|
71
71
|
'config/locales/rs.yml',
|
72
72
|
'config/locales/ru.yml',
|
73
|
+
'config/locales/sk.yml',
|
73
74
|
'config/locales/sl.yml',
|
74
75
|
'config/locales/sv.yml',
|
75
76
|
'config/locales/vi.yml',
|
@@ -81,6 +82,7 @@ Gem::Specification.new do |s|
|
|
81
82
|
'db/migrate/20100913234708_create_refinerycms_pages_schema.rb',
|
82
83
|
'db/migrate/20101214040815_translate_page_plugin.rb',
|
83
84
|
'db/migrate/20101216194133_remove_cached_slug_from_pages.rb',
|
85
|
+
'db/migrate/20110307025652_translate_custom_title_on_pages.rb',
|
84
86
|
'db/seeds',
|
85
87
|
'db/seeds/pages.rb',
|
86
88
|
'features',
|
@@ -105,5 +107,5 @@ Gem::Specification.new do |s|
|
|
105
107
|
'spec/models/page_spec.rb'
|
106
108
|
]
|
107
109
|
|
108
|
-
s.add_dependency 'refinerycms-core', '~> 0.9.9.
|
110
|
+
s.add_dependency 'refinerycms-core', '~> 0.9.9.5'
|
109
111
|
end
|
data/spec/models/page_spec.rb
CHANGED
@@ -3,14 +3,18 @@ require 'spec_helper'
|
|
3
3
|
describe Page do
|
4
4
|
|
5
5
|
def reset_page(options = {})
|
6
|
-
@
|
6
|
+
if @page
|
7
|
+
@page.destroy!
|
8
|
+
@page.children.each(&:destroy!)
|
9
|
+
@page = nil
|
10
|
+
@child = nil
|
11
|
+
end
|
12
|
+
|
13
|
+
@page = Page.create!({
|
7
14
|
:id => 1,
|
8
15
|
:title => "RSpec is great for testing too",
|
9
16
|
:deletable => true
|
10
|
-
}
|
11
|
-
|
12
|
-
@page.destroy! if @page
|
13
|
-
@page = Page.create!(@valid_attributes.update(options))
|
17
|
+
}.update(options))
|
14
18
|
end
|
15
19
|
|
16
20
|
def page_cannot_be_destroyed
|
@@ -30,6 +34,9 @@ describe Page do
|
|
30
34
|
RefinerySetting.set(:use_marketable_urls, {:value => false, :scoping => 'pages'})
|
31
35
|
end
|
32
36
|
|
37
|
+
def turn_on_marketable_urls
|
38
|
+
RefinerySetting.set(:use_marketable_urls, {:value => true, :scoping => 'pages'})
|
39
|
+
end
|
33
40
|
|
34
41
|
before(:each) do
|
35
42
|
reset_page
|
@@ -84,10 +91,25 @@ describe Page do
|
|
84
91
|
@page.url[:path].should == ["rspec-is-great-for-testing-too"]
|
85
92
|
end
|
86
93
|
|
94
|
+
it "should return its path underneath its parent with marketable urls" do
|
95
|
+
create_child
|
96
|
+
@child.url[:id].should be_nil
|
97
|
+
@child.url[:path].should == [@page.url[:path].first, 'the-child-page']
|
98
|
+
end
|
99
|
+
|
87
100
|
it "should not have a path without marketable urls" do
|
88
101
|
turn_off_marketable_urls
|
89
102
|
@page.url[:path].should be_nil
|
90
103
|
@page.url[:id].should == "rspec-is-great-for-testing-too"
|
104
|
+
turn_on_marketable_urls
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should not mention its parent without marketable urls" do
|
108
|
+
turn_off_marketable_urls
|
109
|
+
create_child
|
110
|
+
@child.url[:id].should == 'the-child-page'
|
111
|
+
@child.url[:path].should be_nil
|
112
|
+
turn_on_marketable_urls
|
91
113
|
end
|
92
114
|
end
|
93
115
|
|
@@ -141,4 +163,20 @@ describe Page do
|
|
141
163
|
end
|
142
164
|
end
|
143
165
|
|
166
|
+
context "should add url suffix" do
|
167
|
+
before(:each) do
|
168
|
+
turn_on_marketable_urls
|
169
|
+
@reserved_word = Page.friendly_id_config.reserved_words.last
|
170
|
+
reset_page(:title => @reserved_word)
|
171
|
+
end
|
172
|
+
|
173
|
+
it "when title is set to a reserved word" do
|
174
|
+
@page.url[:path].should == ["#{@reserved_word}-page"]
|
175
|
+
end
|
176
|
+
|
177
|
+
it "when parent page title is set to a reserved word" do
|
178
|
+
create_child.url[:path].should == ["#{@reserved_word}-page", 'the-child-page']
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
144
182
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: refinerycms-pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.9.9.
|
5
|
+
version: 0.9.9.5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Resolve Digital
|
@@ -13,7 +13,7 @@ autorequire:
|
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
15
|
|
16
|
-
date: 2011-
|
16
|
+
date: 2011-03-08 00:00:00 +13:00
|
17
17
|
default_executable:
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
requirements:
|
25
25
|
- - ~>
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.9.9.
|
27
|
+
version: 0.9.9.5
|
28
28
|
type: :runtime
|
29
29
|
version_requirements: *id001
|
30
30
|
description: The default content engine of Refinery CMS. This engine handles the administration and display of user-editable pages.
|
@@ -78,6 +78,7 @@ files:
|
|
78
78
|
- config/locales/pt-BR.yml
|
79
79
|
- config/locales/rs.yml
|
80
80
|
- config/locales/ru.yml
|
81
|
+
- config/locales/sk.yml
|
81
82
|
- config/locales/sl.yml
|
82
83
|
- config/locales/sv.yml
|
83
84
|
- config/locales/vi.yml
|
@@ -87,6 +88,7 @@ files:
|
|
87
88
|
- db/migrate/20100913234708_create_refinerycms_pages_schema.rb
|
88
89
|
- db/migrate/20101214040815_translate_page_plugin.rb
|
89
90
|
- db/migrate/20101216194133_remove_cached_slug_from_pages.rb
|
91
|
+
- db/migrate/20110307025652_translate_custom_title_on_pages.rb
|
90
92
|
- db/seeds/pages.rb
|
91
93
|
- features/manage_pages.feature
|
92
94
|
- features/step_definitions/page_steps.rb
|
@@ -124,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
126
|
requirements: []
|
125
127
|
|
126
128
|
rubyforge_project: refinerycms
|
127
|
-
rubygems_version: 1.
|
129
|
+
rubygems_version: 1.6.0
|
128
130
|
signing_key:
|
129
131
|
specification_version: 3
|
130
132
|
summary: Pages engine for Refinery CMS
|