Version Description
- Respect "open in new tab" setting in more custom situations, like custom loops and widgets.
- Add unit tests
- Massive code refactoring
- Added translations for: Spanish, Catalan, French.
Download this release
Release Info
Developer | markjaquith |
Plugin | Page Links To |
Version | 2.9 |
Comparing to | |
See all releases |
Code changes from version 2.8 to 2.9
- js/new-tab.coffee +4 -0
- js/new-tab.js +2 -0
- js/page-links-to.coffee +16 -0
- js/page-links-to.dev.js +0 -12
- js/page-links-to.js +2 -0
- languages/import.rb +136 -0
- languages/page-links-to-ca.mo +0 -0
- languages/page-links-to-ca.po +51 -0
- languages/page-links-to-de_DE.mo +0 -0
- languages/page-links-to-de_DE.po +51 -0
- languages/page-links-to-es_ES.mo +0 -0
- languages/page-links-to-es_ES.po +51 -0
- languages/page-links-to-fr_FR.mo +0 -0
- languages/page-links-to-fr_FR.po +51 -0
- languages/page-links-to-he_IL.mo +0 -0
- languages/page-links-to-he_IL.po +25 -30
- languages/page-links-to-ja.mo +0 -0
- languages/page-links-to-ja.po +25 -30
- languages/page-links-to-nb_NO.mo +0 -0
- languages/page-links-to-nb_NO.po +26 -31
- languages/page-links-to-pt-BR.mo +0 -0
- languages/page-links-to-pt-BR.po +0 -54
- languages/page-links-to-pt_BR.mo +0 -0
- languages/page-links-to-pt_BR.po +51 -0
- languages/page-links-to-pt_PT.mo +0 -0
- languages/page-links-to-pt_PT.po +51 -0
- languages/page-links-to-sv-SE.mo +0 -0
- languages/page-links-to-sv-SE.po +0 -56
- languages/page-links-to-sv_SE.mo +0 -0
- languages/page-links-to-sv_SE.po +51 -0
- languages/page-links-to.pot +17 -12
- lib/wp-stack-plugin.php +24 -0
- page-links-to.php +359 -128
- phpunit.xml +14 -0
- readme.txt +14 -5
- tests/bootstrap.php +24 -0
- tests/test-admin.php +9 -0
- tests/test-default-options.php +7 -0
- tests/test-filtering.php +41 -0
- tests/test-js.php +14 -0
- tests/test-saving.php +120 -0
- tests/test-utils.php +18 -0
js/new-tab.coffee
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
jQuery ($) ->
|
2 |
+
$( 'body' ).on 'click', 'a', (e) ->
|
3 |
+
i = $ this
|
4 |
+
i.attr( 'target', '_blank' ) if $.inArray( i.attr('href'), pltNewTabURLs ) > -1
|
js/new-tab.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
// Generated by CoffeeScript 1.6.1
|
2 |
+
(function(){jQuery(function(e){return e("body").on("click","a",function(t){var n;n=e(this);if(e.inArray(n.attr("href"),pltNewTabURLs)>-1)return n.attr("target","_blank")})})}).call(this);
|
js/page-links-to.coffee
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery ($) ->
|
2 |
+
section = $ '#cws-links-to-custom-section'
|
3 |
+
input = $ 'input[type=radio]', '#page-links-to'
|
4 |
+
|
5 |
+
if input.filter('input[value="wp"]').prop 'checked'
|
6 |
+
section.fadeTo(1, 0).hide()
|
7 |
+
|
8 |
+
input.change ->
|
9 |
+
if $(@).val() is 'wp'
|
10 |
+
section.fadeTo 'fast', 0, ->
|
11 |
+
$(@).slideUp()
|
12 |
+
else
|
13 |
+
section.slideDown 'fast', ->
|
14 |
+
$(@).fadeTo 'fast', 1, ->
|
15 |
+
i = $ '#cws-links-to'
|
16 |
+
i.focus().val i.val()
|
js/page-links-to.dev.js
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
(function($){
|
2 |
-
$('input[type=radio]', '#page-links-to').change(function(){
|
3 |
-
if ( 'wp' == $(this).val() ) {
|
4 |
-
$('#txfx-links-to-alternate-section').fadeOut();
|
5 |
-
} else {
|
6 |
-
$('#txfx-links-to-alternate-section').fadeIn(function(){
|
7 |
-
i = $('#txfx-links-to');
|
8 |
-
i.focus().val(i.val());
|
9 |
-
});
|
10 |
-
}
|
11 |
-
});
|
12 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/page-links-to.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
// Generated by CoffeeScript 1.6.1
|
2 |
+
(function(){jQuery(function(e){var t,n;n=e("#cws-links-to-custom-section");t=e("input[type=radio]","#page-links-to");t.filter('input[value="wp"]').prop("checked")&&n.fadeTo(1,0).hide();return t.change(function(){return e(this).val()==="wp"?n.fadeTo("fast",0,function(){return e(this).slideUp()}):n.slideDown("fast",function(){return e(this).fadeTo("fast",1,function(){var t;t=e("#cws-links-to");return t.focus().val(t.val())})})})})}).call(this);
|
languages/import.rb
ADDED
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/ruby
|
2 |
+
langs = {
|
3 |
+
'af' => 'af',
|
4 |
+
'ak' => 'ak',
|
5 |
+
'ar' => 'ar',
|
6 |
+
'as' => 'as',
|
7 |
+
'az' => 'az',
|
8 |
+
'azb' => 'azb',
|
9 |
+
'az_TR' => 'az-tr',
|
10 |
+
'ba' => 'ba',
|
11 |
+
'bal' => 'bal',
|
12 |
+
'bg_BG' => 'bg',
|
13 |
+
'bn_BD' => 'bn',
|
14 |
+
'bs_BA' => 'bs',
|
15 |
+
'ca' => 'ca',
|
16 |
+
'ckb' => 'ckb',
|
17 |
+
'co' => 'co',
|
18 |
+
'cs_CZ' => 'cs',
|
19 |
+
'cy' => 'cy',
|
20 |
+
'da_DK' => 'da',
|
21 |
+
'de_DE' => 'de',
|
22 |
+
'dv' => 'dv',
|
23 |
+
'el' => 'el',
|
24 |
+
'en_US' => 'en',
|
25 |
+
'en_CA' => 'en-ca',
|
26 |
+
'en_GB' => 'en-gb',
|
27 |
+
'eo' => 'eo',
|
28 |
+
'es_CL' => 'es-cl',
|
29 |
+
'es_MX' => 'es-mx',
|
30 |
+
'es_PE' => 'es-pe',
|
31 |
+
'es_PR' => 'es-pr',
|
32 |
+
'es_VE' => 'es-ve',
|
33 |
+
'es_CO' => 'es-co',
|
34 |
+
'es_ES' => 'es',
|
35 |
+
'et' => 'et',
|
36 |
+
'eu' => 'eu',
|
37 |
+
'fa_IR' => 'fa',
|
38 |
+
'fa_AF' => 'fa-af',
|
39 |
+
'fi' => 'fi',
|
40 |
+
'fo' => 'fo',
|
41 |
+
'fr_FR' => 'fr',
|
42 |
+
'fr_BE' => 'fr-be',
|
43 |
+
'fy' => 'fy',
|
44 |
+
'gd' => 'gd',
|
45 |
+
'gl_ES' => 'gl',
|
46 |
+
'gn' => 'gn',
|
47 |
+
'gsw' => 'gsw',
|
48 |
+
'gu_IN' => 'gu',
|
49 |
+
'haw_US' => 'haw',
|
50 |
+
'haz' => 'haz',
|
51 |
+
'he_IL' => 'he',
|
52 |
+
'hi_IN' => 'hi',
|
53 |
+
'hr' => 'hr',
|
54 |
+
'hu_HU' => 'hu',
|
55 |
+
'hy' => 'hy',
|
56 |
+
'id_ID' => 'id',
|
57 |
+
'is_IS' => 'is',
|
58 |
+
'it_IT' => 'it',
|
59 |
+
'ja' => 'ja',
|
60 |
+
'jv_ID' => 'jv',
|
61 |
+
'ka_GE' => 'ka',
|
62 |
+
'kk' => 'kk',
|
63 |
+
'kn' => 'kn',
|
64 |
+
'ko_KR' => 'ko',
|
65 |
+
'ky_KY' => 'ky',
|
66 |
+
'lb_LU' => 'lb',
|
67 |
+
'li' => 'li',
|
68 |
+
'lo' => 'lo',
|
69 |
+
'lt_LT' => 'lt',
|
70 |
+
'lv' => 'lv',
|
71 |
+
'me_ME' => 'me',
|
72 |
+
'mg_MG' => 'mg',
|
73 |
+
'mk_MK' => 'mk',
|
74 |
+
'ml_IN' => 'ml',
|
75 |
+
'ms_MY' => 'ms',
|
76 |
+
'my_MM' => 'mya',
|
77 |
+
'ne_NP' => 'ne',
|
78 |
+
'nb_NO' => 'nb',
|
79 |
+
'nl_NL' => 'nl',
|
80 |
+
'nl_BE' => 'nl-be',
|
81 |
+
'nn_NO' => 'nn',
|
82 |
+
'os' => 'os',
|
83 |
+
'pa_IN' => 'pa',
|
84 |
+
'pl_PL' => 'pl',
|
85 |
+
'pt_BR' => 'pt-br',
|
86 |
+
'pt_PT' => 'pt',
|
87 |
+
'ps' => 'ps',
|
88 |
+
'ro_RO' => 'ro',
|
89 |
+
'ru_RU' => 'ru',
|
90 |
+
'ru_UA' => 'ru-ua',
|
91 |
+
'rue' => 'rue',
|
92 |
+
'rup_MK' => 'rup',
|
93 |
+
'sah' => 'sah',
|
94 |
+
'sa_IN' => 'sa-in',
|
95 |
+
'sd_PK' => 'sd',
|
96 |
+
'si_LK' => 'si',
|
97 |
+
'sk_SK' => 'sk',
|
98 |
+
'sl_SI' => 'sl',
|
99 |
+
'so_SO' => 'so',
|
100 |
+
'sq' => 'sq',
|
101 |
+
'sr_RS' => 'sr',
|
102 |
+
'srd' => 'srd',
|
103 |
+
'su_ID' => 'su',
|
104 |
+
'sv_SE' => 'sv',
|
105 |
+
'sw' => 'sw',
|
106 |
+
'ta_IN' => 'ta',
|
107 |
+
'ta_LK' => 'ta-lk',
|
108 |
+
'te' => 'te',
|
109 |
+
'tg' => 'tg',
|
110 |
+
'th' => 'th',
|
111 |
+
'tl' => 'tl',
|
112 |
+
'tr_TR' => 'tr',
|
113 |
+
'tt_RU' => 'tt',
|
114 |
+
'tuk' => 'tuk',
|
115 |
+
'tzm' => 'tzm',
|
116 |
+
'ug_CN' => 'ug',
|
117 |
+
'uk' => 'uk',
|
118 |
+
'ur' => 'ur',
|
119 |
+
'uz_UZ' => 'uz',
|
120 |
+
'vi' => 'vi',
|
121 |
+
'wa' => 'wa',
|
122 |
+
'xmf' => 'xmf',
|
123 |
+
'zh_CN' => 'zh-cn',
|
124 |
+
'zh_HK' => 'zh-hk',
|
125 |
+
'zh_TW' => 'zh-tw',
|
126 |
+
}
|
127 |
+
require 'pathname'
|
128 |
+
plugin = Pathname.new(File.expand_path '../').basename
|
129 |
+
url_root = 'http://translate.markjaquith.com/projects/wordpress-plugins/%s/%s/default/export-translations?format=%s'
|
130 |
+
files = Dir.glob("*.mo").map { |f| g = f[/#{plugin}-(.*)\.mo/, 1]; [g, langs[g]] }
|
131 |
+
files.each do |l|
|
132 |
+
['po', 'mo'].each do |fmt|
|
133 |
+
`wget -O #{plugin}-#{l[0]}.#{fmt} #{format url_root, plugin, l[1], fmt} 2>/dev/null`
|
134 |
+
end
|
135 |
+
`git checkout #{plugin}-#{l[0]}.*` if `git diff #{plugin}-#{l[0]}.po | ack '^[+-][^+-]{2}' | ack -v 'PO-Revision-Date'`.chomp.length === 0
|
136 |
+
end
|
languages/page-links-to-ca.mo
ADDED
Binary file
|
languages/page-links-to-ca.po
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Translation of Page Links To in Catalan
|
2 |
+
# This file is distributed under the same license as the Page Links To package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-22 04:51:58+0000\n"
|
6 |
+
"MIME-Version: 1.0\n"
|
7 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
+
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
12 |
+
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr "Page Links a"
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr "URL personalitzada"
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr "Obrir l'enllaç en una nova pestanya"
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr "<strong>Atenció</strong>: Aquest contingut apunta a una URL pròpia. Utilitza la caixa de “Page Links To” per canviar aquest comportament"
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
+
msgid "Point this content to:"
|
32 |
+
msgstr "Apuntar aquest contingut a: "
|
33 |
+
|
34 |
+
#: page-links-to.php:229
|
35 |
+
msgid "Its normal WordPress URL"
|
36 |
+
msgstr "La url normal de WordPress"
|
37 |
+
|
38 |
+
msgid "Page Links To"
|
39 |
+
msgstr "Page Links a"
|
40 |
+
|
41 |
+
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
+
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
+
|
44 |
+
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
+
msgstr "Et permet apuntar pàgines o entrades de WordPress a una URL que escullis. És bo per configurar enllaços de navegació a seccions que no siguin de WordPress o a recursos fora del teu web."
|
46 |
+
|
47 |
+
msgid "Mark Jaquith"
|
48 |
+
msgstr "Mark Jaquith"
|
49 |
+
|
50 |
+
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
languages/page-links-to-de_DE.mo
ADDED
Binary file
|
languages/page-links-to-de_DE.po
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Translation of Page Links To in German
|
2 |
+
# This file is distributed under the same license as the Page Links To package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-22 04:51:58+0000\n"
|
6 |
+
"MIME-Version: 1.0\n"
|
7 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
+
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
12 |
+
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr "Seite enthält Links zu"
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr "Eine benutzerdefinierte URL"
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr "Öffne diesen Link in einem neuen Tab"
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr "<strong>Hinweis</strong>: Dieser Inhalt zeigt auf eine benutzerdefinierte URL. Verwende die \"Seite zu Links\" Box,um dieses Verhalten zu ändern."
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
+
msgid "Point this content to:"
|
32 |
+
msgstr "Zeig diesen Inhalt auf:"
|
33 |
+
|
34 |
+
#: page-links-to.php:229
|
35 |
+
msgid "Its normal WordPress URL"
|
36 |
+
msgstr "Deine normale WordPress URL"
|
37 |
+
|
38 |
+
msgid "Page Links To"
|
39 |
+
msgstr "Page Links To"
|
40 |
+
|
41 |
+
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
+
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
+
|
44 |
+
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
+
msgstr "Hier kannst du WordPress Seiten oder Beiträge zu einer URL deiner Wahl zeigen. Das ist gut für die Einrichtung bei Navigations-Links zu nicht WP Bereichen deiner Website oder Off-Site-Ressourcen."
|
46 |
+
|
47 |
+
msgid "Mark Jaquith"
|
48 |
+
msgstr "Mark Jaquith"
|
49 |
+
|
50 |
+
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
languages/page-links-to-es_ES.mo
ADDED
Binary file
|
languages/page-links-to-es_ES.po
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Translation of Page Links To in Spanish (Spain)
|
2 |
+
# This file is distributed under the same license as the Page Links To package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-22 04:51:58+0000\n"
|
6 |
+
"MIME-Version: 1.0\n"
|
7 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
+
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
12 |
+
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr "Page Links a"
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr "Una url personalizada"
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr "Abrir este enlace en una nueva pestaña"
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr "<strong>Atención</strong>: Este contenido apunta a una url propia. Usa la caja de “Page Links To” para cambiar este comportamiento. "
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
+
msgid "Point this content to:"
|
32 |
+
msgstr "Apuntar este contenido a:"
|
33 |
+
|
34 |
+
#: page-links-to.php:229
|
35 |
+
msgid "Its normal WordPress URL"
|
36 |
+
msgstr "La url normal de WordPress"
|
37 |
+
|
38 |
+
msgid "Page Links To"
|
39 |
+
msgstr "Page Links a"
|
40 |
+
|
41 |
+
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
+
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
+
|
44 |
+
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
+
msgstr "Te permite apuntar entradas o páginas de WordPress a una url que escojas. Está bien para configurar enlaces de navegación a secciones que no sean de WordPress de tu sitio o a recursos de fuera de tu web."
|
46 |
+
|
47 |
+
msgid "Mark Jaquith"
|
48 |
+
msgstr "Mark Jaquith"
|
49 |
+
|
50 |
+
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
languages/page-links-to-fr_FR.mo
ADDED
Binary file
|
languages/page-links-to-fr_FR.po
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Translation of Page Links To in French (France)
|
2 |
+
# This file is distributed under the same license as the Page Links To package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-22 04:51:58+0000\n"
|
6 |
+
"MIME-Version: 1.0\n"
|
7 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
+
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
12 |
+
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr "Lier la page vers"
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr "Une URL personnalisée"
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr "Ouvrir ce lien dans un nouvel onglet"
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr "<strong>Note</strong>: Ce contenu pointe vers une URL personnalisée. Utilisez le bloc “Lier la page vers” pour changer ce comportement."
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
+
msgid "Point this content to:"
|
32 |
+
msgstr "Faire pointer ce contenu vers:"
|
33 |
+
|
34 |
+
#: page-links-to.php:229
|
35 |
+
msgid "Its normal WordPress URL"
|
36 |
+
msgstr "Son URL WordPress normale"
|
37 |
+
|
38 |
+
msgid "Page Links To"
|
39 |
+
msgstr "Page Links To"
|
40 |
+
|
41 |
+
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
+
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
+
|
44 |
+
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
+
msgstr "Vous permet de faire pointer des pages ou des articles WordPress vers une URL de votre choix. Utile pour mettre en place des liens de navigation vers des sections non-WP de votre site ou vers des ressources d'un site tiers."
|
46 |
+
|
47 |
+
msgid "Mark Jaquith"
|
48 |
+
msgstr "Mark Jaquith"
|
49 |
+
|
50 |
+
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
languages/page-links-to-he_IL.mo
CHANGED
Binary file
|
languages/page-links-to-he_IL.po
CHANGED
@@ -1,56 +1,51 @@
|
|
1 |
-
#
|
2 |
# This file is distributed under the same license as the Page Links To package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"
|
6 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/tag/page-links-to\n"
|
7 |
-
"POT-Creation-Date: 2012-01-05 22:58:34+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"
|
12 |
-
"
|
13 |
-
"
|
14 |
-
"X-Poedit-Language: Hebrew\n"
|
15 |
-
"X-Poedit-Country: ISRAEL\n"
|
16 |
|
17 |
-
#: page-links-to.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
msgid "Point this content to:"
|
19 |
msgstr "קישור עמוד זה אל:"
|
20 |
|
21 |
-
#: page-links-to.php:
|
22 |
msgid "Its normal WordPress URL"
|
23 |
msgstr "קישור וורדפרס רגיל"
|
24 |
|
25 |
-
#: page-links-to.php:155
|
26 |
-
msgid "An alternate URL"
|
27 |
-
msgstr "להפנות קישור"
|
28 |
-
|
29 |
-
#: page-links-to.php:158
|
30 |
-
msgid "Open this link in a new window"
|
31 |
-
msgstr "פתח קישור בחלון חדש"
|
32 |
-
|
33 |
-
#: page-links-to.php:286
|
34 |
-
msgid "<strong>Note</strong>: This content is pointing to an alternate URL. Use the “Page Links To” box to change this behavior."
|
35 |
-
msgstr "<strong>הערה</strong>: עמוד זה מפנה לכתובת אחרת, השתמש בחלונית “הפניית קישור עמוד” כדי לשנות בחזרה לקישור המקורי."
|
36 |
-
|
37 |
-
#. Plugin Name of the plugin/theme
|
38 |
msgid "Page Links To"
|
39 |
msgstr "הפניית קישור עמוד"
|
40 |
|
41 |
-
#. Plugin URI of the plugin/theme
|
42 |
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
44 |
|
45 |
-
#. Description of the plugin/theme
|
46 |
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
47 |
msgstr "מאפשר לקשר עמודים / פוסטים לכל קישור אחר שתרצו. תוכלו לקשר בין כתובות בתוך האתר שלך או לכתובות חיצוניות."
|
48 |
|
49 |
-
#. Author of the plugin/theme
|
50 |
msgid "Mark Jaquith"
|
51 |
msgstr "Mark Jaquith"
|
52 |
|
53 |
-
#. Author URI of the plugin/theme
|
54 |
msgid "http://coveredwebservices.com/"
|
55 |
-
msgstr "http://coveredwebservices.com/"
|
56 |
-
|
1 |
+
# Translation of Page Links To in Hebrew
|
2 |
# This file is distributed under the same license as the Page Links To package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-22 04:51:59+0000\n"
|
|
|
|
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
|
|
|
|
12 |
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
msgid "Point this content to:"
|
32 |
msgstr "קישור עמוד זה אל:"
|
33 |
|
34 |
+
#: page-links-to.php:229
|
35 |
msgid "Its normal WordPress URL"
|
36 |
msgstr "קישור וורדפרס רגיל"
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
msgid "Page Links To"
|
39 |
msgstr "הפניית קישור עמוד"
|
40 |
|
|
|
41 |
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
|
|
|
44 |
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
msgstr "מאפשר לקשר עמודים / פוסטים לכל קישור אחר שתרצו. תוכלו לקשר בין כתובות בתוך האתר שלך או לכתובות חיצוניות."
|
46 |
|
|
|
47 |
msgid "Mark Jaquith"
|
48 |
msgstr "Mark Jaquith"
|
49 |
|
|
|
50 |
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
|
languages/page-links-to-ja.mo
CHANGED
Binary file
|
languages/page-links-to-ja.po
CHANGED
@@ -1,56 +1,51 @@
|
|
1 |
-
#
|
2 |
# This file is distributed under the same license as the Page Links To package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"
|
6 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/tag/page-links-to\n"
|
7 |
-
"POT-Creation-Date: 2012-01-05 22:58:34+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"
|
12 |
-
"
|
13 |
-
"
|
14 |
-
"X-Poedit-Language: ja\n"
|
15 |
-
"X-Poedit-Country: JP\n"
|
16 |
|
17 |
-
#: page-links-to.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
msgid "Point this content to:"
|
19 |
msgstr "このコンテンツを向ける先:"
|
20 |
|
21 |
-
#: page-links-to.php:
|
22 |
msgid "Its normal WordPress URL"
|
23 |
msgstr "通常の WordPress の URL"
|
24 |
|
25 |
-
#: page-links-to.php:155
|
26 |
-
msgid "An alternate URL"
|
27 |
-
msgstr "代替の URL"
|
28 |
-
|
29 |
-
#: page-links-to.php:158
|
30 |
-
msgid "Open this link in a new window"
|
31 |
-
msgstr "このリンクを新しいウインドウで開く"
|
32 |
-
|
33 |
-
#: page-links-to.php:286
|
34 |
-
msgid "<strong>Note</strong>: This content is pointing to an alternate URL. Use the “Page Links To” box to change this behavior."
|
35 |
-
msgstr "<strong>メモ</strong>: このコンテンツは別の URL に向けられています。この挙動を変更するには “Page Links To” ボックスを利用してください。"
|
36 |
-
|
37 |
-
#. Plugin Name of the plugin/theme
|
38 |
msgid "Page Links To"
|
39 |
msgstr "Page Links To"
|
40 |
|
41 |
-
#. Plugin URI of the plugin/theme
|
42 |
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
44 |
|
45 |
-
#. Description of the plugin/theme
|
46 |
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
47 |
msgstr "WordPress の固定ページや投稿を任意の URL に向けます。WP 以外のセクションやサイト外のリソースにナビゲーションリンクを設定するのに便利です。"
|
48 |
|
49 |
-
#. Author of the plugin/theme
|
50 |
msgid "Mark Jaquith"
|
51 |
msgstr "Mark Jaquith"
|
52 |
|
53 |
-
#. Author URI of the plugin/theme
|
54 |
msgid "http://coveredwebservices.com/"
|
55 |
-
msgstr "http://coveredwebservices.com/"
|
56 |
-
|
1 |
+
# Translation of Page Links To in Japanese
|
2 |
# This file is distributed under the same license as the Page Links To package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-22 04:51:59+0000\n"
|
|
|
|
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=1; plural=0;\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
|
|
|
|
12 |
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
msgid "Point this content to:"
|
32 |
msgstr "このコンテンツを向ける先:"
|
33 |
|
34 |
+
#: page-links-to.php:229
|
35 |
msgid "Its normal WordPress URL"
|
36 |
msgstr "通常の WordPress の URL"
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
msgid "Page Links To"
|
39 |
msgstr "Page Links To"
|
40 |
|
|
|
41 |
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
|
|
|
44 |
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
msgstr "WordPress の固定ページや投稿を任意の URL に向けます。WP 以外のセクションやサイト外のリソースにナビゲーションリンクを設定するのに便利です。"
|
46 |
|
|
|
47 |
msgid "Mark Jaquith"
|
48 |
msgstr "Mark Jaquith"
|
49 |
|
|
|
50 |
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
|
languages/page-links-to-nb_NO.mo
CHANGED
Binary file
|
languages/page-links-to-nb_NO.po
CHANGED
@@ -1,56 +1,51 @@
|
|
1 |
-
#
|
2 |
# This file is distributed under the same license as the Page Links To package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"
|
6 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/tag/page-links-to\n"
|
7 |
-
"POT-Creation-Date: 2012-01-05 22:58:34+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"
|
12 |
-
"
|
13 |
-
"
|
14 |
-
"X-Poedit-Language: Norwegian Bokmal\n"
|
15 |
-
"X-Poedit-Country: NORWAY\n"
|
16 |
|
17 |
-
#: page-links-to.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
msgid "Point this content to:"
|
19 |
msgstr "Pek dette innholdet til:"
|
20 |
|
21 |
-
#: page-links-to.php:
|
22 |
msgid "Its normal WordPress URL"
|
23 |
msgstr "Sin vanlige WordPress URL"
|
24 |
|
25 |
-
#: page-links-to.php:155
|
26 |
-
msgid "An alternate URL"
|
27 |
-
msgstr "En alternativ URL"
|
28 |
-
|
29 |
-
#: page-links-to.php:158
|
30 |
-
msgid "Open this link in a new window"
|
31 |
-
msgstr "Åpne denne lenken i nytt vindu"
|
32 |
-
|
33 |
-
#: page-links-to.php:286
|
34 |
-
msgid "<strong>Note</strong>: This content is pointing to an alternate URL. Use the “Page Links To” box to change this behavior."
|
35 |
-
msgstr "<strong>NB</strong>: Dette innholdet peker til en alternativ URL. Bruk “Side lenker til” boksen for å endre oppførsel."
|
36 |
-
|
37 |
-
#. Plugin Name of the plugin/theme
|
38 |
msgid "Page Links To"
|
39 |
-
msgstr "
|
40 |
|
41 |
-
#. Plugin URI of the plugin/theme
|
42 |
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
44 |
|
45 |
-
#. Description of the plugin/theme
|
46 |
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
47 |
msgstr "Lar deg peke WordPress sider eller poster til en vilkårlig URL. Kjekt å bruke til å peke navigasjonslinker til annet innhold på siden din eller til ressurser som ikke er på ditt domene."
|
48 |
|
49 |
-
#. Author of the plugin/theme
|
50 |
msgid "Mark Jaquith"
|
51 |
msgstr "Mark Jaquith"
|
52 |
|
53 |
-
#. Author URI of the plugin/theme
|
54 |
msgid "http://coveredwebservices.com/"
|
55 |
-
msgstr "http://coveredwebservices.com/"
|
56 |
-
|
1 |
+
# Translation of Page Links To in Norwegian (Bokmål)
|
2 |
# This file is distributed under the same license as the Page Links To package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-23 00:49:54+0000\n"
|
|
|
|
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
|
|
|
|
12 |
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr "Side lenker til"
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr "En tilpasset URL"
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr "Åpne denne lenken i en ny fane"
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr "<strong>Merk</strong>: Dette innholdet peker til en tilpasset nettadresse. Bruk “Side lenker til” boksen for å endre denne atferden."
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
msgid "Point this content to:"
|
32 |
msgstr "Pek dette innholdet til:"
|
33 |
|
34 |
+
#: page-links-to.php:229
|
35 |
msgid "Its normal WordPress URL"
|
36 |
msgstr "Sin vanlige WordPress URL"
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
msgid "Page Links To"
|
39 |
+
msgstr "Page Links To"
|
40 |
|
|
|
41 |
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
|
|
|
44 |
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
msgstr "Lar deg peke WordPress sider eller poster til en vilkårlig URL. Kjekt å bruke til å peke navigasjonslinker til annet innhold på siden din eller til ressurser som ikke er på ditt domene."
|
46 |
|
|
|
47 |
msgid "Mark Jaquith"
|
48 |
msgstr "Mark Jaquith"
|
49 |
|
|
|
50 |
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
|
languages/page-links-to-pt-BR.mo
DELETED
Binary file
|
languages/page-links-to-pt-BR.po
DELETED
@@ -1,54 +0,0 @@
|
|
1 |
-
# Copyright (C) 2012 Page Links To
|
2 |
-
# This file is distributed under the same license as the Page Links To package.
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: Page Links To 2.7-beta\n"
|
6 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/tag/page-links-to\n"
|
7 |
-
"POT-Creation-Date: 2012-01-05 22:58:34+00:00\n"
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2012-01-05 21:29-0300\n"
|
12 |
-
"Last-Translator: Rafael Ehlers <rafaehlers@gmail.com>\n"
|
13 |
-
"Language-Team: Rafael Ehlers <rafaehlers@gmail.com>\n"
|
14 |
-
|
15 |
-
#: page-links-to.php:153
|
16 |
-
msgid "Point this content to:"
|
17 |
-
msgstr "Apontar este conteúdo para:"
|
18 |
-
|
19 |
-
#: page-links-to.php:154
|
20 |
-
msgid "Its normal WordPress URL"
|
21 |
-
msgstr "Sua URL normal do WordPress"
|
22 |
-
|
23 |
-
#: page-links-to.php:155
|
24 |
-
msgid "An alternate URL"
|
25 |
-
msgstr "Uma URL alternativa"
|
26 |
-
|
27 |
-
#: page-links-to.php:158
|
28 |
-
msgid "Open this link in a new window"
|
29 |
-
msgstr "Abra este link em uma nova janela"
|
30 |
-
|
31 |
-
#: page-links-to.php:286
|
32 |
-
msgid "<strong>Note</strong>: This content is pointing to an alternate URL. Use the “Page Links To” box to change this behavior."
|
33 |
-
msgstr "<strong>Nota</strong>: Este conteúdo está apontando para uma URL alternativa. Use o campo “Página aponta para” para alterar este comportamento."
|
34 |
-
|
35 |
-
#. Plugin Name of the plugin/theme
|
36 |
-
msgid "Page Links To"
|
37 |
-
msgstr "Página aponta para"
|
38 |
-
|
39 |
-
#. Plugin URI of the plugin/theme
|
40 |
-
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
41 |
-
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
-
|
43 |
-
#. Description of the plugin/theme
|
44 |
-
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
-
msgstr "Permite a você apontar páginas e posts do WordPress para a URL de sua escolha. Bom para apontar links de navegação para seções não-WP do seu site ou para recursos fora do site."
|
46 |
-
|
47 |
-
#. Author of the plugin/theme
|
48 |
-
msgid "Mark Jaquith"
|
49 |
-
msgstr "Mark Jaquith"
|
50 |
-
|
51 |
-
#. Author URI of the plugin/theme
|
52 |
-
msgid "http://coveredwebservices.com/"
|
53 |
-
msgstr "http://coveredwebservices.com/"
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/page-links-to-pt_BR.mo
ADDED
Binary file
|
languages/page-links-to-pt_BR.po
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Translation of Page Links To in Portuguese (Brazil)
|
2 |
+
# This file is distributed under the same license as the Page Links To package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-22 04:51:59+0000\n"
|
6 |
+
"MIME-Version: 1.0\n"
|
7 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
+
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
12 |
+
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr "A página aponta para"
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr "URL customizada"
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr "Abrir este link em uma nova aba do navegador"
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr "<strong>Aviso</strong>: Este conteúdo aponta para um endereço customizado da Internet. Utilize a caixa “A página aponta para” para modificar este endereço."
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
+
msgid "Point this content to:"
|
32 |
+
msgstr "Apontar este conteúdo para:"
|
33 |
+
|
34 |
+
#: page-links-to.php:229
|
35 |
+
msgid "Its normal WordPress URL"
|
36 |
+
msgstr "Sua URL normal do WordPress"
|
37 |
+
|
38 |
+
msgid "Page Links To"
|
39 |
+
msgstr "Page Links To"
|
40 |
+
|
41 |
+
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
+
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
+
|
44 |
+
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
+
msgstr "Permite a você apontar páginas e posts do WordPress para a URL de sua escolha. Bom para apontar links de navegação para seções não-WP do seu site ou para recursos fora do site."
|
46 |
+
|
47 |
+
msgid "Mark Jaquith"
|
48 |
+
msgstr "Mark Jaquith"
|
49 |
+
|
50 |
+
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
languages/page-links-to-pt_PT.mo
ADDED
Binary file
|
languages/page-links-to-pt_PT.po
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Translation of Page Links To in Portuguese (Portugal)
|
2 |
+
# This file is distributed under the same license as the Page Links To package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-22 04:51:59+0000\n"
|
6 |
+
"MIME-Version: 1.0\n"
|
7 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
+
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
12 |
+
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr "Link da página "
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr "Uma URL personalizada"
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr "Abrir este link numa nova janela"
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr "<strong>Nota</strong>: Este conteúdo está a apontar para uma URL personalizada. Use a opção “Link da página” para alterar este comportamento."
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
+
msgid "Point this content to:"
|
32 |
+
msgstr "Apontar este conteúdo para:"
|
33 |
+
|
34 |
+
#: page-links-to.php:229
|
35 |
+
msgid "Its normal WordPress URL"
|
36 |
+
msgstr "A sua URL normal de WordPress"
|
37 |
+
|
38 |
+
msgid "Page Links To"
|
39 |
+
msgstr "Ligações de páginas"
|
40 |
+
|
41 |
+
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
+
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
+
|
44 |
+
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
+
msgstr "Permite apontar os links de páginas e artigos para as URLs que deseje. Excelente para apontar links de navegação para secções não-WordPress do seu site ou para recursos externos."
|
46 |
+
|
47 |
+
msgid "Mark Jaquith"
|
48 |
+
msgstr "Mark Jaquith"
|
49 |
+
|
50 |
+
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
languages/page-links-to-sv-SE.mo
DELETED
Binary file
|
languages/page-links-to-sv-SE.po
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
# Copyright (C) 2012 Page Links To
|
2 |
-
# This file is distributed under the same license as the Page Links To package.
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: Page Links To 2.7-beta\n"
|
6 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/tag/page-links-to\n"
|
7 |
-
"POT-Creation-Date: 2012-01-05 22:58:34+00:00\n"
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2012-04-25 16:10+0100\n"
|
12 |
-
"Last-Translator: Ove Kaufeldt <ove.kaufeldt@shin-ken.se>\n"
|
13 |
-
"Language-Team: Ove Kaufeldt\n"
|
14 |
-
"X-Poedit-Language: Swedish\n"
|
15 |
-
"X-Poedit-Country: SWEDEN\n"
|
16 |
-
|
17 |
-
#: page-links-to.php:153
|
18 |
-
msgid "Point this content to:"
|
19 |
-
msgstr "Länka följande innehåll mot:"
|
20 |
-
|
21 |
-
#: page-links-to.php:154
|
22 |
-
msgid "Its normal WordPress URL"
|
23 |
-
msgstr "Det är en vanlig Wordpress-adress (URL)"
|
24 |
-
|
25 |
-
#: page-links-to.php:155
|
26 |
-
msgid "An alternate URL"
|
27 |
-
msgstr "En alternativ adress (URL)"
|
28 |
-
|
29 |
-
#: page-links-to.php:158
|
30 |
-
msgid "Open this link in a new window"
|
31 |
-
msgstr "Öppna länken i ett nytt fönster"
|
32 |
-
|
33 |
-
#: page-links-to.php:286
|
34 |
-
msgid "<strong>Note</strong>: This content is pointing to an alternate URL. Use the “Page Links To” box to change this behavior."
|
35 |
-
msgstr "<strong>Observera</strong>: Innehållet pekar på en alternativ adress (URL). Använd “Page Links To”-rutan för att ändra detta."
|
36 |
-
|
37 |
-
#. Plugin Name of the plugin/theme
|
38 |
-
msgid "Page Links To"
|
39 |
-
msgstr "Sidan länkar till"
|
40 |
-
|
41 |
-
#. Plugin URI of the plugin/theme
|
42 |
-
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
-
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
44 |
-
|
45 |
-
#. Description of the plugin/theme
|
46 |
-
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
47 |
-
msgstr "Låter dig länka sidor och inlägg i Wordpress till en adress (URL) som du själv väljer. Praktiskt fö ratt sätta upp navigeringslänkar till delar av webbplatsen som inte är Wordpress, och till externa webbplatser."
|
48 |
-
|
49 |
-
#. Author of the plugin/theme
|
50 |
-
msgid "Mark Jaquith"
|
51 |
-
msgstr "Mark Jaquith"
|
52 |
-
|
53 |
-
#. Author URI of the plugin/theme
|
54 |
-
msgid "http://coveredwebservices.com/"
|
55 |
-
msgstr "http://coveredwebservices.com/"
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/page-links-to-sv_SE.mo
ADDED
Binary file
|
languages/page-links-to-sv_SE.po
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Translation of Page Links To in Swedish
|
2 |
+
# This file is distributed under the same license as the Page Links To package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"PO-Revision-Date: 2013-06-22 04:51:59+0000\n"
|
6 |
+
"MIME-Version: 1.0\n"
|
7 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
+
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
10 |
+
"X-Generator: GlotPress/0.1\n"
|
11 |
+
"Project-Id-Version: Page Links To\n"
|
12 |
+
|
13 |
+
#: page-links-to.php:209
|
14 |
+
msgctxt "Meta box title"
|
15 |
+
msgid "Page Links To"
|
16 |
+
msgstr "Sidan länkar till"
|
17 |
+
|
18 |
+
#: page-links-to.php:230
|
19 |
+
msgid "A custom URL"
|
20 |
+
msgstr "En anpassad URL"
|
21 |
+
|
22 |
+
#: page-links-to.php:233
|
23 |
+
msgid "Open this link in a new tab"
|
24 |
+
msgstr "Öppna denna länk i en ny flik"
|
25 |
+
|
26 |
+
#: page-links-to.php:492
|
27 |
+
msgid "<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior."
|
28 |
+
msgstr "<strong>Obs</strong>: Detta innehåll pekar på en anpassad webbadress. Använd “sida länkar till” rutan för att ändra detta beteende."
|
29 |
+
|
30 |
+
#: page-links-to.php:228
|
31 |
+
msgid "Point this content to:"
|
32 |
+
msgstr "Länka följande innehåll mot:"
|
33 |
+
|
34 |
+
#: page-links-to.php:229
|
35 |
+
msgid "Its normal WordPress URL"
|
36 |
+
msgstr "Det är en vanlig Wordpress-adress (URL)"
|
37 |
+
|
38 |
+
msgid "Page Links To"
|
39 |
+
msgstr "Page Links To"
|
40 |
+
|
41 |
+
msgid "http://txfx.net/wordpress-plugins/page-links-to/"
|
42 |
+
msgstr "http://txfx.net/wordpress-plugins/page-links-to/"
|
43 |
+
|
44 |
+
msgid "Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources."
|
45 |
+
msgstr "Låter dig länka sidor och inlägg i Wordpress till en adress (URL) som du själv väljer. Praktiskt fö ratt sätta upp navigeringslänkar till delar av webbplatsen som inte är Wordpress, och till externa webbplatser."
|
46 |
+
|
47 |
+
msgid "Mark Jaquith"
|
48 |
+
msgstr "Mark Jaquith"
|
49 |
+
|
50 |
+
msgid "http://coveredwebservices.com/"
|
51 |
+
msgstr "http://coveredwebservices.com/"
|
languages/page-links-to.pot
CHANGED
@@ -1,36 +1,41 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the Page Links To package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Page Links To 2.
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/page-links-to\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
15 |
-
#: page-links-to.php:
|
|
|
|
|
|
|
|
|
|
|
16 |
msgid "Point this content to:"
|
17 |
msgstr ""
|
18 |
|
19 |
-
#: page-links-to.php:
|
20 |
msgid "Its normal WordPress URL"
|
21 |
msgstr ""
|
22 |
|
23 |
-
#: page-links-to.php:
|
24 |
-
msgid "
|
25 |
msgstr ""
|
26 |
|
27 |
-
#: page-links-to.php:
|
28 |
-
msgid "Open this link in a new
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: page-links-to.php:
|
32 |
msgid ""
|
33 |
-
"<strong>Note</strong>: This content is pointing to
|
34 |
"“Page Links To” box to change this behavior."
|
35 |
msgstr ""
|
36 |
|
1 |
+
# Copyright (C) 2013 Page Links To
|
2 |
# This file is distributed under the same license as the Page Links To package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Page Links To 2.9-beta\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/page-links-to\n"
|
7 |
+
"POT-Creation-Date: 2013-06-08 17:42:50+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
15 |
+
#: page-links-to.php:209
|
16 |
+
msgctxt "Meta box title"
|
17 |
+
msgid "Page Links To"
|
18 |
+
msgstr ""
|
19 |
+
|
20 |
+
#: page-links-to.php:228
|
21 |
msgid "Point this content to:"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: page-links-to.php:229
|
25 |
msgid "Its normal WordPress URL"
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: page-links-to.php:230
|
29 |
+
msgid "A custom URL"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: page-links-to.php:233
|
33 |
+
msgid "Open this link in a new tab"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: page-links-to.php:492
|
37 |
msgid ""
|
38 |
+
"<strong>Note</strong>: This content is pointing to a custom URL. Use the "
|
39 |
"“Page Links To” box to change this behavior."
|
40 |
msgstr ""
|
41 |
|
lib/wp-stack-plugin.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Convenience methods
|
4 |
+
if ( !class_exists( 'WP_Stack_Plugin' ) ) {
|
5 |
+
class WP_Stack_Plugin {
|
6 |
+
public function hook( $hook ) {
|
7 |
+
$priority = 10;
|
8 |
+
$method = $this->sanitize_method( $hook );
|
9 |
+
$args = func_get_args();
|
10 |
+
unset( $args[0] );
|
11 |
+
foreach( (array) $args as $arg ) {
|
12 |
+
if ( is_int( $arg ) )
|
13 |
+
$priority = $arg;
|
14 |
+
else
|
15 |
+
$method = $arg;
|
16 |
+
}
|
17 |
+
return add_action( $hook, array( $this, $method ), $priority, 999 );
|
18 |
+
}
|
19 |
+
|
20 |
+
private function sanitize_method( $method ) {
|
21 |
+
return str_replace( array( '.', '-' ), array( '_DOT_', '_DASH_' ), $method );
|
22 |
+
}
|
23 |
+
}
|
24 |
+
}
|
page-links-to.php
CHANGED
@@ -3,9 +3,11 @@
|
|
3 |
Plugin Name: Page Links To
|
4 |
Plugin URI: http://txfx.net/wordpress-plugins/page-links-to/
|
5 |
Description: Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources.
|
6 |
-
Version: 2.
|
7 |
Author: Mark Jaquith
|
8 |
Author URI: http://coveredwebservices.com/
|
|
|
|
|
9 |
*/
|
10 |
|
11 |
/* Copyright 2005-2013 Mark Jaquith
|
@@ -25,55 +27,103 @@ Author URI: http://coveredwebservices.com/
|
|
25 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
26 |
*/
|
27 |
|
28 |
-
|
|
|
|
|
|
|
29 |
static $instance;
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
function __construct() {
|
35 |
self::$instance = $this;
|
36 |
-
|
37 |
}
|
38 |
|
39 |
/**
|
40 |
* Bootstraps the upgrade process and registers all the hooks.
|
41 |
*/
|
42 |
function init() {
|
|
|
43 |
$this->maybe_upgrade();
|
44 |
|
45 |
-
|
|
|
46 |
|
47 |
-
|
48 |
-
|
49 |
-
add_filter( 'page_link', array( $this, 'link' ), 20, 2 );
|
50 |
-
add_filter( 'post_link', array( $this, 'link' ), 20, 2 );
|
51 |
-
add_filter( 'post_type_link', array( $this, 'link', ), 20, 2 );
|
52 |
-
add_action( 'do_meta_boxes', array( $this, 'do_meta_boxes' ), 20, 2 );
|
53 |
-
add_action( 'save_post', array( $this, 'save_post' ) );
|
54 |
-
add_filter( 'wp_nav_menu_objects', array( $this, 'wp_nav_menu_objects' ), 10, 2 );
|
55 |
-
add_action( 'load-post.php', array( $this, 'load_post' ) );
|
56 |
-
add_filter( 'the_posts', array( $this, 'the_posts' ) );
|
57 |
}
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
function maybe_upgrade() {
|
63 |
-
|
|
|
|
|
64 |
global $wpdb;
|
65 |
-
$
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
}
|
71 |
}
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
/**
|
74 |
* Returns post ids and meta values that have a given key
|
|
|
75 |
* @param string $key post meta key
|
76 |
-
* @return array
|
77 |
*/
|
78 |
function meta_by_key( $key ) {
|
79 |
global $wpdb;
|
@@ -82,70 +132,95 @@ class CWS_PageLinksTo {
|
|
82 |
|
83 |
/**
|
84 |
* Returns all links for the current site
|
|
|
85 |
* @return array an array of links, keyed by post ID
|
86 |
*/
|
87 |
function get_links() {
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
|
90 |
-
|
91 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
else
|
93 |
-
return $this->links[$blog_id];
|
94 |
-
|
95 |
-
if ( !$links_to ) {
|
96 |
-
$this->links[$blog_id] = false;
|
97 |
return false;
|
98 |
-
}
|
99 |
-
|
100 |
-
foreach ( (array) $links_to as $link )
|
101 |
-
$this->links[$blog_id][$link->post_id] = $link->meta_value;
|
102 |
-
|
103 |
-
return $this->links[$blog_id];
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
* Returns all targets for the current site
|
|
|
108 |
* @return array an array of targets, keyed by post ID
|
109 |
*/
|
110 |
-
function get_targets
|
111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
|
113 |
-
|
114 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
else
|
116 |
-
return $this->targets[$blog_id];
|
117 |
-
|
118 |
-
if ( !$links_to ) {
|
119 |
-
$this->targets[$blog_id] = false;
|
120 |
return false;
|
121 |
-
}
|
122 |
-
|
123 |
-
foreach ( (array) $links_to as $link )
|
124 |
-
$this->targets[$blog_id][$link->post_id] = $link->meta_value;
|
125 |
-
|
126 |
-
return $this->targets[$blog_id];
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
* Adds the meta box to the post or page edit screen
|
|
|
131 |
* @param string $page the name of the current page
|
132 |
* @param string $context the current context
|
133 |
*/
|
134 |
function do_meta_boxes( $page, $context ) {
|
135 |
-
// Plugins that use custom post types can use this filter to hide the
|
|
|
136 |
$plt_post_types = apply_filters( 'page-links-to-post-types', array_keys( get_post_types( array('show_ui' => true ) ) ) );
|
137 |
|
138 |
if ( in_array( $page, $plt_post_types ) && 'advanced' === $context )
|
139 |
-
add_meta_box( 'page-links-to', 'Page Links To', array( $this, 'meta_box' ), $page, 'advanced', 'low' );
|
140 |
}
|
141 |
|
|
|
|
|
|
|
142 |
function meta_box() {
|
143 |
-
|
144 |
echo '<p>';
|
145 |
-
wp_nonce_field( '
|
146 |
echo '</p>';
|
147 |
-
$url = get_post_meta( $post->ID,
|
148 |
-
if (
|
149 |
$linked = false;
|
150 |
$url = 'http://';
|
151 |
} else {
|
@@ -153,55 +228,175 @@ class CWS_PageLinksTo {
|
|
153 |
}
|
154 |
?>
|
155 |
<p><?php _e( 'Point this content to:', 'page-links-to' ); ?></p>
|
156 |
-
<p><label><input type="radio" id="
|
157 |
-
<p><label><input type="radio" id="
|
158 |
-
<div style="margin-left: 30px;" id="
|
159 |
-
<p><input name="
|
160 |
-
<p><label for="
|
161 |
</div>
|
162 |
-
<script src="<?php echo trailingslashit( plugin_dir_url(
|
163 |
<?php
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
* Saves data on post save
|
168 |
-
*
|
|
|
169 |
* @return int the post ID that was passed in
|
170 |
*/
|
171 |
-
function save_post( $
|
172 |
-
if ( isset( $_REQUEST['
|
173 |
-
if ( ( !isset( $_POST['
|
174 |
-
$
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
if ( isset( $_POST['txfx_links_to_new_window'] ) )
|
179 |
-
update_post_meta( $post_ID, '_links_to_target', '_blank' );
|
180 |
else
|
181 |
-
|
182 |
} else {
|
183 |
-
|
184 |
-
delete_post_meta( $post_ID, '_links_to_target' );
|
185 |
-
delete_post_meta( $post_ID, '_links_to_type' );
|
186 |
}
|
187 |
}
|
188 |
-
return $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
}
|
190 |
|
191 |
/**
|
192 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
* @param string $link the URL for the post or page
|
194 |
-
* @param int|
|
195 |
* @return string output URL
|
196 |
*/
|
197 |
function link( $link, $post ) {
|
198 |
-
$
|
199 |
|
200 |
-
|
201 |
-
$id = ( is_object( $post ) && $post->ID ) ? $post->ID : $post;
|
202 |
|
203 |
-
if (
|
204 |
-
$link = esc_url( $
|
|
|
|
|
|
|
205 |
|
206 |
return $link;
|
207 |
}
|
@@ -210,14 +405,17 @@ class CWS_PageLinksTo {
|
|
210 |
* Performs a redirect, if appropriate
|
211 |
*/
|
212 |
function template_redirect() {
|
213 |
-
|
|
|
|
|
214 |
return;
|
215 |
|
216 |
-
|
|
|
217 |
|
218 |
-
$link =
|
219 |
|
220 |
-
if (
|
221 |
return;
|
222 |
|
223 |
wp_redirect( $link, 301 );
|
@@ -226,25 +424,25 @@ class CWS_PageLinksTo {
|
|
226 |
|
227 |
/**
|
228 |
* Filters the list of pages to alter the links and targets
|
|
|
229 |
* @param string $pages the wp_list_pages() HTML block from WordPress
|
230 |
* @return string the modified HTML block
|
231 |
*/
|
232 |
function wp_list_pages( $pages ) {
|
233 |
$highlight = false;
|
234 |
$links = $this->get_links();
|
235 |
-
$page_links_to_target_cache = $this->get_targets();
|
236 |
|
237 |
-
if (
|
238 |
return $pages;
|
239 |
|
240 |
$this_url = ( is_ssl() ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
241 |
$targets = array();
|
242 |
|
243 |
foreach ( (array) $links as $id => $page ) {
|
244 |
-
if (
|
245 |
-
$targets[$page] =
|
246 |
|
247 |
-
if ( str_replace( 'http://www.', 'http://', $this_url )
|
248 |
$highlight = true;
|
249 |
$current_page = esc_url( $page );
|
250 |
}
|
@@ -265,55 +463,88 @@ class CWS_PageLinksTo {
|
|
265 |
return $pages;
|
266 |
}
|
267 |
|
268 |
-
|
269 |
-
|
|
|
|
|
|
|
|
|
|
|
270 |
$new_items = array();
|
271 |
foreach ( $items as $item ) {
|
272 |
-
if (
|
273 |
-
$item->target =
|
274 |
$new_items[] = $item;
|
275 |
}
|
276 |
return $new_items;
|
277 |
}
|
278 |
|
|
|
|
|
|
|
279 |
function load_post() {
|
280 |
if ( isset( $_GET['post'] ) ) {
|
281 |
-
if ( get_post_meta( absint( $_GET['post'] ),
|
282 |
-
|
283 |
}
|
284 |
}
|
285 |
}
|
286 |
|
|
|
|
|
|
|
287 |
function notify_of_external_link() {
|
288 |
-
?><div class="updated"><p><?php _e( '<strong>Note</strong>: This content is pointing to
|
289 |
-
}
|
290 |
-
|
291 |
-
function id_to_url_callback( &$val, $key ) {
|
292 |
-
$val = get_permalink( $val );
|
293 |
-
}
|
294 |
-
|
295 |
-
function the_posts( $posts ) {
|
296 |
-
$page_links_to_target_cache = $this->get_targets();
|
297 |
-
if ( is_array( $page_links_to_target_cache) && count( $page_links_to_target_cache ) ) {
|
298 |
-
$pids = array();
|
299 |
-
foreach ( (array) $posts as $p )
|
300 |
-
$pids[$p->ID] = $p->ID;
|
301 |
-
$targets = array_keys( array_intersect_key( $page_links_to_target_cache, $pids ) );
|
302 |
-
if ( count( $targets ) ) {
|
303 |
-
array_walk( $targets, array( $this, 'id_to_url_callback' ) );
|
304 |
-
$targets = array_unique( $targets );
|
305 |
-
$this->targets_on_this_page = $targets;
|
306 |
-
wp_enqueue_script( 'jquery' );
|
307 |
-
add_action( 'wp_head', array( $this, 'targets_in_new_window_via_js' ) );
|
308 |
-
}
|
309 |
-
}
|
310 |
-
return $posts;
|
311 |
}
|
312 |
|
313 |
-
|
314 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
}
|
316 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
317 |
}
|
318 |
|
|
|
319 |
new CWS_PageLinksTo;
|
3 |
Plugin Name: Page Links To
|
4 |
Plugin URI: http://txfx.net/wordpress-plugins/page-links-to/
|
5 |
Description: Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources.
|
6 |
+
Version: 2.9
|
7 |
Author: Mark Jaquith
|
8 |
Author URI: http://coveredwebservices.com/
|
9 |
+
Text Domain: page-links-to
|
10 |
+
Domain Path: /languages
|
11 |
*/
|
12 |
|
13 |
/* Copyright 2005-2013 Mark Jaquith
|
27 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
28 |
*/
|
29 |
|
30 |
+
// Pull in WP Stack plugin library
|
31 |
+
include( dirname( __FILE__ ) . '/lib/wp-stack-plugin.php' );
|
32 |
+
|
33 |
+
class CWS_PageLinksTo extends WP_Stack_Plugin {
|
34 |
static $instance;
|
35 |
+
const LINKS_CACHE_KEY = 'plt_cache__links';
|
36 |
+
const TARGETS_CACHE_KEY = 'plt_cache__targets';
|
37 |
+
const LINK_META_KEY = '_links_to';
|
38 |
+
const TARGET_META_KEY = '_links_to_target';
|
39 |
+
const VERSION = 'txfx_plt_schema_version';
|
40 |
+
const FILE = __FILE__;
|
41 |
+
|
42 |
+
var $targets_on_this_page = array();
|
43 |
|
44 |
function __construct() {
|
45 |
self::$instance = $this;
|
46 |
+
$this->hook( 'init' );
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
* Bootstraps the upgrade process and registers all the hooks.
|
51 |
*/
|
52 |
function init() {
|
53 |
+
// Check to see if any of our data needs to be upgraded
|
54 |
$this->maybe_upgrade();
|
55 |
|
56 |
+
// Load translation files
|
57 |
+
load_plugin_textdomain( 'page-links-to', false, basename( dirname( self::FILE ) ) . '/languages' );
|
58 |
|
59 |
+
// Register hooks
|
60 |
+
$this->register_hooks();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
}
|
62 |
|
63 |
+
/**
|
64 |
+
* Registers all the hooks
|
65 |
+
*/
|
66 |
+
function register_hooks() {
|
67 |
+
// Hook in to URL generation
|
68 |
+
$this->hook( 'page_link', 'link', 20 );
|
69 |
+
$this->hook( 'post_link', 'link', 20 );
|
70 |
+
$this->hook( 'post_type_link', 'link', 20 );
|
71 |
+
|
72 |
+
// Non-standard priority hooks
|
73 |
+
$this->hook( 'do_meta_boxes', 20 );
|
74 |
+
$this->hook( 'wp_footer', 19 );
|
75 |
+
|
76 |
+
// Non-standard callback hooks
|
77 |
+
$this->hook( 'load-post.php', 'load_post' );
|
78 |
+
|
79 |
+
// Standard hooks
|
80 |
+
$this->hook( 'wp_list_pages' );
|
81 |
+
$this->hook( 'template_redirect' );
|
82 |
+
$this->hook( 'save_post' );
|
83 |
+
$this->hook( 'wp_nav_menu_objects' );
|
84 |
+
$this->hook( 'plugin_row_meta' );
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Performs an upgrade for older versions
|
89 |
+
*
|
90 |
+
* * Version 3: Underscores the keys so they only show in the plugin's UI.
|
91 |
+
*/
|
92 |
function maybe_upgrade() {
|
93 |
+
// In earlier versions, the meta keys were stored without a leading underscore.
|
94 |
+
// Since then, underscore has been codified as the standard for "something manages this" post meta.
|
95 |
+
if ( get_option( self::VERSION ) < 3 ) {
|
96 |
global $wpdb;
|
97 |
+
$total_affected = 0;
|
98 |
+
foreach ( array( '', '_target', '_type' ) as $meta_key ) {
|
99 |
+
$meta_key = 'links_to' . $meta_key;
|
100 |
+
$affected = $wpdb->update( $wpdb->postmeta, array( 'meta_key' => '_' . $meta_key ), compact( 'meta_key' ) );
|
101 |
+
if ( $affected )
|
102 |
+
$total_affected += $affected;
|
103 |
+
}
|
104 |
+
// Only flush the cache if something changed
|
105 |
+
if ( $total_affected > 0 )
|
106 |
+
wp_cache_flush();
|
107 |
+
if ( update_option( self::VERSION, 3 ) ) {
|
108 |
+
$this->flush_links_cache();
|
109 |
+
$this->flush_targets_cache();
|
110 |
+
}
|
111 |
}
|
112 |
}
|
113 |
|
114 |
+
/**
|
115 |
+
* Enqueues jQuery, if we think we are going to need it
|
116 |
+
*/
|
117 |
+
function wp_footer() {
|
118 |
+
if ( count( $this->targets_on_this_page ) )
|
119 |
+
wp_enqueue_script( 'jquery' );
|
120 |
+
}
|
121 |
+
|
122 |
/**
|
123 |
* Returns post ids and meta values that have a given key
|
124 |
+
*
|
125 |
* @param string $key post meta key
|
126 |
+
* @return array|false objects with post_id and meta_value properties
|
127 |
*/
|
128 |
function meta_by_key( $key ) {
|
129 |
global $wpdb;
|
132 |
|
133 |
/**
|
134 |
* Returns all links for the current site
|
135 |
+
*
|
136 |
* @return array an array of links, keyed by post ID
|
137 |
*/
|
138 |
function get_links() {
|
139 |
+
if ( false === $links = get_transient( self::LINKS_CACHE_KEY ) ) {
|
140 |
+
$db_links = $this->meta_by_key( self::LINK_META_KEY );
|
141 |
+
$links = array();
|
142 |
+
if ( $db_links ) {
|
143 |
+
foreach ( $db_links as $link ) {
|
144 |
+
$links[ intval( $link->post_id ) ] = $link->meta_value;
|
145 |
+
}
|
146 |
+
}
|
147 |
+
set_transient( self::LINKS_CACHE_KEY, $links );
|
148 |
+
}
|
149 |
+
return $links;
|
150 |
+
}
|
151 |
|
152 |
+
/**
|
153 |
+
* Returns the link for the specified post ID
|
154 |
+
*
|
155 |
+
* @param integer $post_id a post ID
|
156 |
+
* @return mixed either a URL or false
|
157 |
+
*/
|
158 |
+
function get_link( $post_id ) {
|
159 |
+
$links = $this->get_links();
|
160 |
+
if ( isset( $links[$post_id] ) )
|
161 |
+
return $links[$post_id];
|
162 |
else
|
|
|
|
|
|
|
|
|
163 |
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
* Returns all targets for the current site
|
168 |
+
*
|
169 |
* @return array an array of targets, keyed by post ID
|
170 |
*/
|
171 |
+
function get_targets() {
|
172 |
+
if ( false === $targets = get_transient( self::TARGETS_CACHE_KEY ) ) {
|
173 |
+
$db_targets = $this->meta_by_key( self::TARGET_META_KEY );
|
174 |
+
$targets = array();
|
175 |
+
if ( $db_targets ) {
|
176 |
+
foreach ( $db_targets as $target ) {
|
177 |
+
$targets[ intval( $target->post_id ) ] = true;
|
178 |
+
}
|
179 |
+
}
|
180 |
+
set_transient( self::TARGETS_CACHE_KEY, $targets );
|
181 |
+
}
|
182 |
+
return $targets;
|
183 |
+
}
|
184 |
|
185 |
+
/**
|
186 |
+
* Returns the _blank target status for the specified post ID
|
187 |
+
*
|
188 |
+
* @param integer $post_id a post ID
|
189 |
+
* @return bool whether it should open in a new tab
|
190 |
+
*/
|
191 |
+
function get_target( $post_id ) {
|
192 |
+
$targets = $this->get_targets();
|
193 |
+
if ( isset( $targets[$post_id] ) )
|
194 |
+
return true;
|
195 |
else
|
|
|
|
|
|
|
|
|
196 |
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
}
|
198 |
|
199 |
/**
|
200 |
* Adds the meta box to the post or page edit screen
|
201 |
+
*
|
202 |
* @param string $page the name of the current page
|
203 |
* @param string $context the current context
|
204 |
*/
|
205 |
function do_meta_boxes( $page, $context ) {
|
206 |
+
// Plugins that use custom post types can use this filter to hide the
|
207 |
+
// PLT UI in their post type.
|
208 |
$plt_post_types = apply_filters( 'page-links-to-post-types', array_keys( get_post_types( array('show_ui' => true ) ) ) );
|
209 |
|
210 |
if ( in_array( $page, $plt_post_types ) && 'advanced' === $context )
|
211 |
+
add_meta_box( 'page-links-to', _x( 'Page Links To', 'Meta box title', 'page-links-to'), array( $this, 'meta_box' ), $page, 'advanced', 'low' );
|
212 |
}
|
213 |
|
214 |
+
/**
|
215 |
+
* Outputs the Page Links To post screen meta box
|
216 |
+
*/
|
217 |
function meta_box() {
|
218 |
+
$post = get_post();
|
219 |
echo '<p>';
|
220 |
+
wp_nonce_field( 'cws_plt_' . $post->ID, '_cws_plt_nonce', false, true );
|
221 |
echo '</p>';
|
222 |
+
$url = get_post_meta( $post->ID, self::LINK_META_KEY, true);
|
223 |
+
if ( ! $url ) {
|
224 |
$linked = false;
|
225 |
$url = 'http://';
|
226 |
} else {
|
228 |
}
|
229 |
?>
|
230 |
<p><?php _e( 'Point this content to:', 'page-links-to' ); ?></p>
|
231 |
+
<p><label><input type="radio" id="cws-links-to-choose-wp" name="cws_links_to_choice" value="wp" <?php checked( !$linked ); ?> /> <?php _e( 'Its normal WordPress URL', 'page-links-to' ); ?></label></p>
|
232 |
+
<p><label><input type="radio" id="cws-links-to-choose-custom" name="cws_links_to_choice" value="custom" <?php checked( $linked ); ?> /> <?php _e( 'A custom URL', 'page-links-to' ); ?></label></p>
|
233 |
+
<div style="webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left: 30px;" id="cws-links-to-custom-section" class="<?php echo ! $linked ? 'hide-if-js' : ''; ?>">
|
234 |
+
<p><input name="cws_links_to" type="text" style="width:75%" id="cws-links-to" value="<?php echo esc_attr( $url ); ?>" /></p>
|
235 |
+
<p><label for="cws-links-to-new-tab"><input type="checkbox" name="cws_links_to_new_tab" id="cws-links-to-new-tab" value="_blank" <?php checked( '_blank', get_post_meta( $post->ID, self::TARGET_META_KEY, true ) ); ?>> <?php _e( 'Open this link in a new tab', 'page-links-to' ); ?></label></p>
|
236 |
</div>
|
237 |
+
<script src="<?php echo trailingslashit( plugin_dir_url( self::FILE ) ) . 'js/page-links-to.js?v=4'; ?>"></script>
|
238 |
<?php
|
239 |
}
|
240 |
|
241 |
/**
|
242 |
* Saves data on post save
|
243 |
+
*
|
244 |
+
* @param int $post_id a post ID
|
245 |
* @return int the post ID that was passed in
|
246 |
*/
|
247 |
+
function save_post( $post_id ) {
|
248 |
+
if ( isset( $_REQUEST['_cws_plt_nonce'] ) && wp_verify_nonce( $_REQUEST['_cws_plt_nonce'], 'cws_plt_' . $post_id ) ) {
|
249 |
+
if ( ( ! isset( $_POST['cws_links_to_choice'] ) || 'custom' == $_POST['cws_links_to_choice'] ) && isset( $_POST['cws_links_to'] ) && strlen( $_POST['cws_links_to'] ) > 0 && $_POST['cws_links_to'] !== 'http://' ) {
|
250 |
+
$url = $this->clean_url( stripslashes( $_POST['cws_links_to'] ) );
|
251 |
+
$this->flush_links_if( $this->set_link( $post_id, $url ) );
|
252 |
+
if ( isset( $_POST['cws_links_to_new_tab'] ) )
|
253 |
+
$this->flush_targets_if( $this->set_link_new_tab( $post_id ) );
|
|
|
|
|
254 |
else
|
255 |
+
$this->flush_targets_if( $this->set_link_same_tab( $post_id ) );
|
256 |
} else {
|
257 |
+
$this->flush_links_if( $this->delete_link( $post_id ) );
|
|
|
|
|
258 |
}
|
259 |
}
|
260 |
+
return $post_id;
|
261 |
+
}
|
262 |
+
|
263 |
+
/**
|
264 |
+
* Cleans up a URL
|
265 |
+
*
|
266 |
+
* @param string $url URL
|
267 |
+
* @return string cleaned up URL
|
268 |
+
*/
|
269 |
+
function clean_url( $url ) {
|
270 |
+
$url = trim( $url );
|
271 |
+
// Starts with 'www.'. Probably a mistake. So add 'http://'.
|
272 |
+
if ( 0 === strpos( $url, 'www.' ) )
|
273 |
+
$url = 'http://' . $url;
|
274 |
+
return $url;
|
275 |
+
}
|
276 |
+
|
277 |
+
/**
|
278 |
+
* Have a post point to a custom URL
|
279 |
+
*
|
280 |
+
* @param int $post_id post ID
|
281 |
+
* @param string $url the URL to point the post to
|
282 |
+
* @return bool whether anything changed
|
283 |
+
*/
|
284 |
+
function set_link( $post_id, $url ) {
|
285 |
+
return $this->flush_links_if( (bool) update_post_meta( $post_id, self::LINK_META_KEY, $url ) );
|
286 |
+
}
|
287 |
+
|
288 |
+
/**
|
289 |
+
* Tell an custom URL post to open in a new tab
|
290 |
+
*
|
291 |
+
* @param int $post_id post ID
|
292 |
+
* @return bool whether anything changed
|
293 |
+
*/
|
294 |
+
function set_link_new_tab( $post_id ) {
|
295 |
+
return $this->flush_targets_if( (bool) update_post_meta( $post_id, self::TARGET_META_KEY, '_blank' ) );
|
296 |
}
|
297 |
|
298 |
/**
|
299 |
+
* Tell an custom URL post to open in the same tab
|
300 |
+
*
|
301 |
+
* @param int $post_id post ID
|
302 |
+
* @return bool whether anything changed
|
303 |
+
*/
|
304 |
+
function set_link_same_tab( $post_id ) {
|
305 |
+
return $this->flush_targets_if( delete_post_meta( $post_id, self::TARGET_META_KEY ) );
|
306 |
+
}
|
307 |
+
|
308 |
+
/**
|
309 |
+
* Discard a custom URL and point a post to its normal URL
|
310 |
+
*
|
311 |
+
* @param int $post_id post ID
|
312 |
+
* @return bool whether the link was deleted
|
313 |
+
*/
|
314 |
+
function delete_link( $post_id ) {
|
315 |
+
$return = $this->flush_links_if( delete_post_meta( $post_id, self::LINK_META_KEY ) );
|
316 |
+
$this->flush_targets_if( delete_post_meta( $post_id, self::TARGET_META_KEY ) );
|
317 |
+
|
318 |
+
// Old, unused data that we can delete on the fly
|
319 |
+
delete_post_meta( $post_id, '_links_to_type' );
|
320 |
+
|
321 |
+
return $return;
|
322 |
+
}
|
323 |
+
|
324 |
+
/**
|
325 |
+
* Flushes the links transient cache if the condition is true
|
326 |
+
*
|
327 |
+
* @param bool $condition whether to proceed with the flush
|
328 |
+
* @return bool whether the flush happened
|
329 |
+
*/
|
330 |
+
function flush_links_if( $condition ) {
|
331 |
+
if ( ! $condition )
|
332 |
+
return false;
|
333 |
+
$this->flush_links_cache();
|
334 |
+
return true;
|
335 |
+
}
|
336 |
+
|
337 |
+
/**
|
338 |
+
* Flushes the targets transient cache if the condition is true
|
339 |
+
*
|
340 |
+
* @param bool $condition whether to proceed with the flush
|
341 |
+
* @return bool whether the flush happened
|
342 |
+
*/
|
343 |
+
function flush_targets_if( $condition ) {
|
344 |
+
if ( ! $condition )
|
345 |
+
return false;
|
346 |
+
$this->flush_targets_cache();
|
347 |
+
return true;
|
348 |
+
}
|
349 |
+
|
350 |
+
/**
|
351 |
+
* Flushes the links transient cache
|
352 |
+
*
|
353 |
+
* @param bool $condition whether to flush the cache
|
354 |
+
* @param string $type which cache to flush
|
355 |
+
* @return bool whether the flush attempt occurred
|
356 |
+
*/
|
357 |
+
function flush_links_cache() {
|
358 |
+
delete_transient( self::LINKS_CACHE_KEY );
|
359 |
+
}
|
360 |
+
|
361 |
+
/**
|
362 |
+
* Flushes the targets transient cache
|
363 |
+
*
|
364 |
+
* @param bool $condition whether to flush the cache
|
365 |
+
* @param string $type which cache to flush
|
366 |
+
* @return bool whether the flush attempt occurred
|
367 |
+
*/
|
368 |
+
function flush_targets_cache() {
|
369 |
+
delete_transient( self::TARGETS_CACHE_KEY );
|
370 |
+
}
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Logs that a target=_blank PLT item has been used, so we know to trigger footer JS
|
374 |
+
*
|
375 |
+
* @param int|WP_Post $post post ID or object
|
376 |
+
*/
|
377 |
+
function log_target( $post ) {
|
378 |
+
$post = get_post( $post );
|
379 |
+
$this->targets_on_this_page[$post->ID] = true;
|
380 |
+
$this->hook( 'wp_footer', 'targets_in_new_window_via_js_footer', 999 );
|
381 |
+
}
|
382 |
+
|
383 |
+
/**
|
384 |
+
* Filter for Post links
|
385 |
+
*
|
386 |
* @param string $link the URL for the post or page
|
387 |
+
* @param int|WP_Post $post post ID or object
|
388 |
* @return string output URL
|
389 |
*/
|
390 |
function link( $link, $post ) {
|
391 |
+
$post = get_post( $post );
|
392 |
|
393 |
+
$meta_link = $this->get_link( $post->ID );
|
|
|
394 |
|
395 |
+
if ( $meta_link ) {
|
396 |
+
$link = esc_url( $meta_link );
|
397 |
+
if ( $this->get_target( $post->ID ) )
|
398 |
+
$this->log_target( $post->ID );
|
399 |
+
}
|
400 |
|
401 |
return $link;
|
402 |
}
|
405 |
* Performs a redirect, if appropriate
|
406 |
*/
|
407 |
function template_redirect() {
|
408 |
+
global $wp_query;
|
409 |
+
|
410 |
+
if ( ! is_singular() )
|
411 |
return;
|
412 |
|
413 |
+
if ( !isset( $wp_query->post_ID ) )
|
414 |
+
return;
|
415 |
|
416 |
+
$link = $this->get_link( $wp_query->post_ID );
|
417 |
|
418 |
+
if ( ! $link )
|
419 |
return;
|
420 |
|
421 |
wp_redirect( $link, 301 );
|
424 |
|
425 |
/**
|
426 |
* Filters the list of pages to alter the links and targets
|
427 |
+
*
|
428 |
* @param string $pages the wp_list_pages() HTML block from WordPress
|
429 |
* @return string the modified HTML block
|
430 |
*/
|
431 |
function wp_list_pages( $pages ) {
|
432 |
$highlight = false;
|
433 |
$links = $this->get_links();
|
|
|
434 |
|
435 |
+
if ( ! $links )
|
436 |
return $pages;
|
437 |
|
438 |
$this_url = ( is_ssl() ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
439 |
$targets = array();
|
440 |
|
441 |
foreach ( (array) $links as $id => $page ) {
|
442 |
+
if ( $this->get_target( $id ) )
|
443 |
+
$targets[$page] = '_blank';
|
444 |
|
445 |
+
if ( str_replace( 'http://www.', 'http://', $this_url ) === str_replace( 'http://www.', 'http://', $page ) || ( is_home() && str_replace( 'http://www.', 'http://', trailingslashit( get_bloginfo( 'url' ) ) ) === str_replace( 'http://www.', 'http://', trailingslashit( $page ) ) ) ) {
|
446 |
$highlight = true;
|
447 |
$current_page = esc_url( $page );
|
448 |
}
|
463 |
return $pages;
|
464 |
}
|
465 |
|
466 |
+
/**
|
467 |
+
* Filters nav menu objects and adds target=_blank to the ones that need it
|
468 |
+
*
|
469 |
+
* @param array $items nav menu items
|
470 |
+
* @return array modified nav menu items
|
471 |
+
*/
|
472 |
+
function wp_nav_menu_objects( $items ) {
|
473 |
$new_items = array();
|
474 |
foreach ( $items as $item ) {
|
475 |
+
if ( $this->get_target( $item->object_id ) )
|
476 |
+
$item->target = '_blank';
|
477 |
$new_items[] = $item;
|
478 |
}
|
479 |
return $new_items;
|
480 |
}
|
481 |
|
482 |
+
/**
|
483 |
+
* Hooks in as a post is being loaded for editing and conditionally adds a notice
|
484 |
+
*/
|
485 |
function load_post() {
|
486 |
if ( isset( $_GET['post'] ) ) {
|
487 |
+
if ( get_post_meta( absint( $_GET['post'] ), self::LINK_META_KEY, true ) ) {
|
488 |
+
$this->hook( 'admin_notices', 'notify_of_external_link' );
|
489 |
}
|
490 |
}
|
491 |
}
|
492 |
|
493 |
+
/**
|
494 |
+
* Outputs a notice that the current post item is pointed to a custom URL
|
495 |
+
*/
|
496 |
function notify_of_external_link() {
|
497 |
+
?><div class="updated"><p><?php _e( '<strong>Note</strong>: This content is pointing to a custom URL. Use the “Page Links To” box to change this behavior.', 'page-links-to' ); ?></p></div><?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
498 |
}
|
499 |
|
500 |
+
/**
|
501 |
+
* Return a JS file as a string
|
502 |
+
*
|
503 |
+
* Takes a plugin-relative path to a CS-produced JS file
|
504 |
+
* and returns its second line (no CS comment line)
|
505 |
+
* @param string $path plugin-relative path to CoffeeScript-produced JS file
|
506 |
+
* @return string the JS string
|
507 |
+
*/
|
508 |
+
function inline_coffeescript( $path ) {
|
509 |
+
$inline_script = file_get_contents( trailingslashit( plugin_dir_path( self::FILE ) ) . $path );
|
510 |
+
$inline_script = explode( "\n", $inline_script );
|
511 |
+
return $inline_script[1];
|
512 |
}
|
513 |
|
514 |
+
/**
|
515 |
+
* Adds inline JS to the footer to handle "open in new tab" links
|
516 |
+
*/
|
517 |
+
function targets_in_new_window_via_js_footer() {
|
518 |
+
$target_ids = $this->targets_on_this_page;
|
519 |
+
$target_urls = array();
|
520 |
+
foreach ( array_keys( $target_ids ) as $id ) {
|
521 |
+
$link = $this->get_link( $id );
|
522 |
+
if ( $link )
|
523 |
+
$target_urls[$link] = true;
|
524 |
+
}
|
525 |
+
$targets = array_keys( $target_urls );
|
526 |
+
if ( $targets ) {
|
527 |
+
?><script>var pltNewTabURLs = <?php echo json_encode( $targets ) . ';' . $this->inline_coffeescript( 'js/new-tab.js' ); ?></script><?php
|
528 |
+
}
|
529 |
+
}
|
530 |
+
|
531 |
+
/**
|
532 |
+
* Adds a GitHub link to the plugin meta
|
533 |
+
*
|
534 |
+
* @param array $links the current array of links
|
535 |
+
* @param string $file the current plugin being processed
|
536 |
+
* @return array the modified array of links
|
537 |
+
*/
|
538 |
+
function plugin_row_meta( $links, $file ) {
|
539 |
+
if ( $file === plugin_basename( self::FILE ) ) {
|
540 |
+
return array_merge(
|
541 |
+
$links,
|
542 |
+
array( '<a href="https://github.com/markjaquith/page-links-to" target="_blank">GitHub</a>' )
|
543 |
+
);
|
544 |
+
}
|
545 |
+
return $links;
|
546 |
+
}
|
547 |
}
|
548 |
|
549 |
+
// Bootstrap everything
|
550 |
new CWS_PageLinksTo;
|
phpunit.xml
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<phpunit
|
2 |
+
bootstrap="tests/bootstrap.php"
|
3 |
+
backupGlobals="false"
|
4 |
+
colors="true"
|
5 |
+
convertErrorsToExceptions="true"
|
6 |
+
convertNoticesToExceptions="true"
|
7 |
+
convertWarningsToExceptions="true"
|
8 |
+
>
|
9 |
+
<testsuites>
|
10 |
+
<testsuite>
|
11 |
+
<directory prefix="test-" suffix=".php">./tests/</directory>
|
12 |
+
</testsuite>
|
13 |
+
</testsuites>
|
14 |
+
</phpunit>
|
readme.txt
CHANGED
@@ -1,10 +1,13 @@
|
|
1 |
=== Page Links To ===
|
|
|
|
|
|
|
2 |
Contributors: markjaquith
|
3 |
Donate link: http://txfx.net/wordpress-plugins/donate
|
4 |
Tags: page, redirect, link, external link, repoint
|
5 |
-
Requires at least: 3.
|
6 |
-
Tested up to: 3.
|
7 |
-
Stable tag: 2.
|
8 |
|
9 |
Lets you make a WordPress page (or other content type) link to an external URL of your choosing, instead of its WordPress URL.
|
10 |
|
@@ -44,9 +47,9 @@ Just use "#" as the link. That won't go anywhere.
|
|
44 |
|
45 |
= Can this be used to repoint categories to an arbitrary URL? =
|
46 |
|
47 |
-
|
48 |
|
49 |
-
= My links are sending me to http://myblog.com/
|
50 |
|
51 |
If you want to link to a full URL, you *must* include the `http://` portion.
|
52 |
|
@@ -56,6 +59,12 @@ Yes. Linking to `/my-photos.php` is a good idea, as it'll still work if you move
|
|
56 |
|
57 |
== Changelog ==
|
58 |
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
= 2.8 =
|
60 |
* Added translations for: Swedish, Hebrew.
|
61 |
|
1 |
=== Page Links To ===
|
2 |
+
|
3 |
+
[![Build Status](https://travis-ci.org/markjaquith/page-links-to.png?branch=master)](https://travis-ci.org/markjaquith/page-links-to)
|
4 |
+
|
5 |
Contributors: markjaquith
|
6 |
Donate link: http://txfx.net/wordpress-plugins/donate
|
7 |
Tags: page, redirect, link, external link, repoint
|
8 |
+
Requires at least: 3.4
|
9 |
+
Tested up to: 3.6
|
10 |
+
Stable tag: 2.8
|
11 |
|
12 |
Lets you make a WordPress page (or other content type) link to an external URL of your choosing, instead of its WordPress URL.
|
13 |
|
47 |
|
48 |
= Can this be used to repoint categories to an arbitrary URL? =
|
49 |
|
50 |
+
Not currently. Please contact me if you're interested in that functionality.
|
51 |
|
52 |
+
= My links are sending me to http://myblog.com/site-i-wanted-to-link-to.com ... why? =
|
53 |
|
54 |
If you want to link to a full URL, you *must* include the `http://` portion.
|
55 |
|
59 |
|
60 |
== Changelog ==
|
61 |
|
62 |
+
= 2.9 =
|
63 |
+
* Respect "open in new tab" setting in more custom situations, like custom loops and widgets.
|
64 |
+
* Add unit tests
|
65 |
+
* Massive code refactoring
|
66 |
+
* Added translations for: Spanish, Catalan, French.
|
67 |
+
|
68 |
= 2.8 =
|
69 |
* Added translations for: Swedish, Hebrew.
|
70 |
|
tests/bootstrap.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once getenv( 'WP_TESTS_DIR' ) . '/includes/functions.php';
|
4 |
+
|
5 |
+
function _manually_load_plugin() {
|
6 |
+
require dirname( __FILE__ ) . '/../page-links-to.php';
|
7 |
+
}
|
8 |
+
tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );
|
9 |
+
|
10 |
+
require getenv( 'WP_TESTS_DIR' ) . '/includes/bootstrap.php';
|
11 |
+
|
12 |
+
class CWS_PLT_TestCase extends WP_UnitTestCase {
|
13 |
+
function plugin() {
|
14 |
+
return CWS_PageLinksTo::$instance;
|
15 |
+
}
|
16 |
+
|
17 |
+
function set_post( $key, $value ) {
|
18 |
+
$_POST[$key] = $_REQUEST[$key] = addslashes( $value );
|
19 |
+
}
|
20 |
+
|
21 |
+
function unset_post( $key ) {
|
22 |
+
unset( $_POST[$key], $_REQUEST[$key] );
|
23 |
+
}
|
24 |
+
}
|
tests/test-admin.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class CWS_PLT_Test_Admin extends CWS_PLT_TestCase {
|
4 |
+
function test_plugin_row_meta() {
|
5 |
+
$metas = apply_filters( 'plugin_row_meta', array( 'one', 'two' ), plugin_basename( CWS_PageLinksTo::FILE ) );
|
6 |
+
$this->assertEquals( 3, count( $metas ) );
|
7 |
+
$this->assertContains( 'GitHub', array_pop( $metas ) );
|
8 |
+
}
|
9 |
+
}
|
tests/test-default-options.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class CWS_PLT_Test_Default_Options extends CWS_PLT_TestCase {
|
4 |
+
function test_schema_option() {
|
5 |
+
$this->assertEquals( 3, get_option( CWS_PageLinksTo::VERSION ) );
|
6 |
+
}
|
7 |
+
}
|
tests/test-filtering.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class CWS_PLT_Test_Filtering extends CWS_PLT_TestCase {
|
4 |
+
function test_get_permalink_filter() {
|
5 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post' ) );
|
6 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
7 |
+
$this->assertEquals( 'http://example.com/', get_permalink( $post_id ) );
|
8 |
+
}
|
9 |
+
|
10 |
+
function test_wp_list_posts_filter() {
|
11 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'page' ) );
|
12 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
13 |
+
$this->assertTrue( $this->plugin()->set_link_new_tab( $post_id ) );
|
14 |
+
ob_start();
|
15 |
+
wp_list_pages();
|
16 |
+
$wp_list_pages = ob_get_clean();
|
17 |
+
$this->assertContains( 'target="_blank"', $wp_list_pages );
|
18 |
+
}
|
19 |
+
|
20 |
+
function test_nav_menu_items_filter() {
|
21 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'page', 'post_status' => 'publish' ) );
|
22 |
+
$post = get_post( $post_id );
|
23 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
24 |
+
$this->assertTrue( $this->plugin()->set_link_new_tab( $post_id ) );
|
25 |
+
|
26 |
+
// Need a user with sufficient permissions because wp_insert_post() is not low level enough — WTF?
|
27 |
+
$user_id = $this->factory->user->create( array( 'role' => 'editor' ) );
|
28 |
+
wp_set_current_user( $user_id );
|
29 |
+
$menu_id = wp_create_nav_menu( 'plt' );
|
30 |
+
$this->assertInternalType( 'int', $menu_id, "Menu creation failed" );
|
31 |
+
$item_id = wp_update_nav_menu_item( $menu_id, 0, array(
|
32 |
+
'menu-item-object-id' => $post_id,
|
33 |
+
'menu-item-object' => $post->post_type,
|
34 |
+
'menu-item-type' => 'post_type',
|
35 |
+
'menu-item-status' => 'publish',
|
36 |
+
));
|
37 |
+
$wp_nav_menu = wp_nav_menu( array( 'echo' => false, 'menu' => $menu_id, 'fallback_cb' => false ) );
|
38 |
+
$this->assertInternalType( 'string', $wp_nav_menu, 'Menu is empty' );
|
39 |
+
$this->assertContains( 'target="_blank"', $wp_nav_menu );
|
40 |
+
}
|
41 |
+
}
|
tests/test-js.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class CWS_PLT_Test_JS extends CWS_PLT_TestCase {
|
4 |
+
function test_footer_js() {
|
5 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post' ) );
|
6 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
7 |
+
$this->assertTrue( $this->plugin()->set_link_new_tab( $post_id ) );
|
8 |
+
$this->assertEquals( 'http://example.com/', get_permalink( $post_id ) );
|
9 |
+
ob_start();
|
10 |
+
$this->plugin()->targets_in_new_window_via_js_footer();
|
11 |
+
$footer_js = ob_get_clean();
|
12 |
+
$this->assertContains( 'example.com', $footer_js );
|
13 |
+
}
|
14 |
+
}
|
tests/test-saving.php
ADDED
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class CWS_PLT_Test_Saving extends CWS_PLT_TestCase {
|
4 |
+
function test_get_links() {
|
5 |
+
$this->assertEquals( array(), $this->plugin()->get_links() );
|
6 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post' ) );
|
7 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
8 |
+
$this->assertEquals( array( $post_id => 'http://example.com/' ), $this->plugin()->get_links() );
|
9 |
+
$this->assertTrue( $this->plugin()->delete_link( $post_id ) );
|
10 |
+
$this->assertEquals( array(), $this->plugin()->get_links() );
|
11 |
+
}
|
12 |
+
|
13 |
+
function test_get_targets() {
|
14 |
+
$this->assertEquals( array(), $this->plugin()->get_targets() );
|
15 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post' ) );
|
16 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
17 |
+
$this->assertTrue( $this->plugin()->set_link_new_tab( $post_id ) );
|
18 |
+
$this->assertEquals( array( $post_id => true ), $this->plugin()->get_targets() );
|
19 |
+
$this->assertTrue( $this->plugin()->set_link_same_tab( $post_id ) );
|
20 |
+
$this->assertEquals( array(), $this->plugin()->get_targets() );
|
21 |
+
}
|
22 |
+
|
23 |
+
function test_setting_and_updating_url() {
|
24 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post' ) );
|
25 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
26 |
+
$this->assertEquals( 'http://example.com/', $this->plugin()->get_link( $post_id ) );
|
27 |
+
// This update changes nothing, so should return false
|
28 |
+
$this->assertFalse( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
29 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/updated' ) );
|
30 |
+
$this->assertEquals( 'http://example.com/updated', $this->plugin()->get_link( $post_id ) );
|
31 |
+
}
|
32 |
+
|
33 |
+
function test_deleting_url() {
|
34 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post' ) );
|
35 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
36 |
+
$this->assertTrue( $this->plugin()->delete_link( $post_id ) );
|
37 |
+
$this->assertFalse( $this->plugin()->get_link( $post_id ) );
|
38 |
+
}
|
39 |
+
|
40 |
+
function test_setting_new_tab() {
|
41 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post' ) );
|
42 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
43 |
+
$this->assertFalse( $this->plugin()->get_target( $post_id ) );
|
44 |
+
$this->assertTrue( $this->plugin()->set_link_new_tab( $post_id ) );
|
45 |
+
$this->assertTrue( $this->plugin()->get_target( $post_id ) );
|
46 |
+
// This update changes nothing, so should return false
|
47 |
+
$this->assertFalse( $this->plugin()->set_link_new_tab( $post_id ) );
|
48 |
+
$this->assertTrue( $this->plugin()->set_link_same_tab( $post_id ) );
|
49 |
+
// This update changes nothing, so should return false
|
50 |
+
$this->assertFalse( $this->plugin()->set_link_same_tab( $post_id ) );
|
51 |
+
$this->assertFalse( $this->plugin()->get_target( $post_id ) );
|
52 |
+
}
|
53 |
+
|
54 |
+
function test_deleting_url_also_deletes_target() {
|
55 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post' ) );
|
56 |
+
$this->assertTrue( $this->plugin()->set_link( $post_id, 'http://example.com/' ) );
|
57 |
+
$this->assertTrue( $this->plugin()->set_link_new_tab( $post_id ) );
|
58 |
+
$this->assertTrue( $this->plugin()->get_target( $post_id ) );
|
59 |
+
$this->assertTrue( $this->plugin()->delete_link( $post_id ) );
|
60 |
+
$this->assertFalse( $this->plugin()->get_target( $post_id ) );
|
61 |
+
}
|
62 |
+
|
63 |
+
function test_updating_post() {
|
64 |
+
$user_id = $this->factory->user->create( array( 'role' => 'editor' ) );
|
65 |
+
wp_set_current_user( $user_id );
|
66 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post', 'post_author' => $user_id ) );
|
67 |
+
|
68 |
+
$this->set_post( '_cws_plt_nonce', wp_create_nonce( 'cws_plt_' . $post_id ) );
|
69 |
+
|
70 |
+
// example.org in same window
|
71 |
+
$this->set_post( 'cws_links_to_choice', 'custom' );
|
72 |
+
$this->set_post( 'cws_links_to', 'http://example.org/' );
|
73 |
+
$this->unset_post( 'cws_links_to_new_tab' );
|
74 |
+
$this->plugin()->save_post( $post_id );
|
75 |
+
$this->assertEquals( 'http://example.org/', $this->plugin()->get_link( $post_id ) );
|
76 |
+
$this->assertFalse( $this->plugin()->get_target( $post_id ) );
|
77 |
+
|
78 |
+
// example.com in new window
|
79 |
+
$this->set_post( 'cws_links_to_choice', 'custom' );
|
80 |
+
$this->set_post( 'cws_links_to', 'http://example.com/' );
|
81 |
+
$this->set_post( 'cws_links_to_new_tab', '_blank' );
|
82 |
+
$this->plugin()->save_post( $post_id );
|
83 |
+
$this->assertEquals( 'http://example.com/', $this->plugin()->get_link( $post_id ) );
|
84 |
+
$this->assertTrue( $this->plugin()->get_target( $post_id ) );
|
85 |
+
|
86 |
+
// WP link selected
|
87 |
+
$this->set_post( 'cws_links_to_choice', 'wp' );
|
88 |
+
$this->set_post( 'cws_links_to', 'http://example.com/' );
|
89 |
+
$this->set_post( 'cws_links_to_new_tab', '_blank' );
|
90 |
+
$this->plugin()->save_post( $post_id );
|
91 |
+
$this->assertFalse( $this->plugin()->get_link( $post_id ) );
|
92 |
+
$this->assertFalse( $this->plugin()->get_target( $post_id ) );
|
93 |
+
|
94 |
+
// No radio selected, but link provided
|
95 |
+
$this->unset_post( 'cws_links_to_choice' );
|
96 |
+
$this->set_post( 'cws_links_to', 'http://example.com/link-no-radio' );
|
97 |
+
$this->set_post( 'cws_links_to_new_tab', '_blank' );
|
98 |
+
$this->plugin()->save_post( $post_id );
|
99 |
+
$this->assertEquals( 'http://example.com/link-no-radio', $this->plugin()->get_link( $post_id ) );
|
100 |
+
$this->assertTrue( $this->plugin()->get_target( $post_id ) );
|
101 |
+
|
102 |
+
// New post
|
103 |
+
$post_id = $this->factory->post->create( array( 'post_type' => 'post', 'post_author' => $user_id ) );
|
104 |
+
|
105 |
+
// Nonce missing
|
106 |
+
$this->unset_post( '_cws_plt_nonce' );
|
107 |
+
$this->set_post( 'cws_links_to_choice', 'custom' );
|
108 |
+
$this->set_post( 'cws_links_to', 'http://example.com/nonce-test' );
|
109 |
+
$this->set_post( 'cws_links_to_new_tab', '_blank' );
|
110 |
+
$this->plugin()->save_post( $post_id );
|
111 |
+
$this->assertFalse( $this->plugin()->get_link( $post_id ) );
|
112 |
+
$this->assertFalse( $this->plugin()->get_target( $post_id ) );
|
113 |
+
|
114 |
+
// Nonce wrong
|
115 |
+
$this->set_post( '_cws_plt_nonce', wp_create_nonce( 'WRONG_INPUT' ) );
|
116 |
+
$this->plugin()->save_post( $post_id );
|
117 |
+
$this->assertFalse( $this->plugin()->get_link( $post_id ) );
|
118 |
+
$this->assertFalse( $this->plugin()->get_target( $post_id ) );
|
119 |
+
}
|
120 |
+
}
|
tests/test-utils.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class CWS_PLT_Test_Utils extends CWS_PLT_TestCase {
|
4 |
+
function test_clean_url() {
|
5 |
+
foreach ( array(
|
6 |
+
'http://example.com/' => 'http://example.com/',
|
7 |
+
' http://example.com/ ' => 'http://example.com/',
|
8 |
+
'www.example.com/' => 'http://www.example.com/',
|
9 |
+
' www.example.com/' => 'http://www.example.com/',
|
10 |
+
) as $in => $out ) {
|
11 |
+
$this->assertEquals( $out, $this->plugin()->clean_url( $in ) );
|
12 |
+
}
|
13 |
+
}
|
14 |
+
|
15 |
+
function test_inline_coffeescript() {
|
16 |
+
$this->assertNotContains( 'CoffeeScript', $this->plugin()->inline_coffeescript( 'js/new-tab.js' ) );
|
17 |
+
}
|
18 |
+
}
|