Quick Page/Post Redirect Plugin - Version 5.0.7

Version Description

  • Added textdomain for future translations. English Complete.
  • Change Quick Redirects page to use ajax to save and edit existing redirects, instead of all redirects in post fields. This is to eliminate the 'max_input_vars' setting in php from stopping large numbers of redirects from saving.
  • Fix Metabox loading issues for custom post types.
  • Added 'redirect' column for post, page and custom post type listing pages.
  • Fixed sanitizing URL on saving of redirects (now will not strip encoded characters and spaces).
  • Optimized CSS styles and JavaScript files for admin.
  • Added Admin Pointers for new features.
  • Added jQuery script to front end pages to better handle New Window/No Follow Functionality.
  • Split out Import / Export feature to make it easier to find.
Download this release

Release Info

Developer prophecy2040
Plugin Icon 128x128 Quick Page/Post Redirect Plugin
Version 5.0.7
Comparing to
See all releases

Code changes from version 5.0.6 to 5.0.7

css/qppr_admin_style.css ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #toplevel_page_redirect-updates .dashicons-external,
2
+ #toplevel_page_redirect-options .dashicons-external { -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); }
3
+ span.qppr_meta_help { display: none; }
4
+ .qppr_meta_help_icon { padding: 0; background: #9ED5FA; display: inline-block; height: 1.15em; width: 1.15em; text-align: center; font-weight: bold; font-size: .95em; line-height: 1.15em; margin: 0 2px; border: 1px solid #4D8ED6; }
5
+ .qppr_meta_help_icon:hover { color: aliceblue; background: #1489D4; }
6
+ .qppr_meta_help_wrap { padding: 0; font-size: 11px; background: #FFF8C8; line-height: 1.15em; }
7
+ div.info { background-color: #dceff8; border-color: #c00; margin: 5px 0 15px; padding: 5px; border: 1px solid #2e92c1; border-radius: 3px; }
8
+ div.info a { color: #2e92c1; }
9
+ .usejqpprmessage { overflow: hidden; }
10
+ .hidepprjqmessage { float: right; font-size: 11px; }
11
+ .delete-qppr { cursor: pointer; text-decoration: none; font-family: dashicons; display: block; }
12
+ .edit-qppr { cursor: pointer; text-decoration: none; font-family: dashicons; display: block; }
13
+ .delete-qppr:hover, .edit-qppr:hover { color: #ff0000; }
14
+ .delete-qppr:before { font-family: dashicons; font-size: 22px; vertical-align: middle; }
15
+ .edit-qppr:before { font-family: dashicons; font-size: 24px; vertical-align: middle; }
16
+ .table-qppr-arr, .table-qppr-nwn, .table-qppr-nfl, .table-qppr-edt, .table-qppr-del { text-align: center; width: 4%; }
17
+ .table-qppr-req, .table-qppr-des { width: 40%; text-align: left;}
18
+ .newdiv div { border-bottom: 1px solid #ccc; margin-bottom: 1%; margin-top: 1%; }
19
+ .qppr-existing:nth-child(even) { background-color: #fff; }
20
+ .qppr-existing:nth-child(odd) { background-color: #ccc; }
21
+ .qppr-existing:nth-child(even):hover { background-color: #F3F3F3; }
22
+ .qppr-existing:nth-child(odd):hover { background-color: #C0C0C0; }
23
+ .qppr-count-row{font-weight:bold;}
24
+ .qppr-posttypes { overflow: hidden; }
25
+ .qppr-ptype { float: left; width: auto; }
26
+ .qpprform label { display: block; padding-left: 15px; font-weight: normal;}
27
+ .qpprform .submit { clear: both; }
28
+ .qpprform span { font-size: .80em; color: #21759B; /* display: inline-block; */ margin-left: 5px;}
29
+ .pprdonate { border: 1px solid #DADADA; font-size: 13px; overflow: hidden; padding: 12px; background-color: #fff; box-sizing: border-box; max-width: 100%;}
30
+ .pprdonate form { display: block;}
31
+ .pprdonate div {text-align: center;}
32
+ .qppr-label{font-size: 18px;text-decoration: underline;}
33
+ .qppr-left{float:left;width:78%;-webkit-box-sizing:-moz-border-box;box-sizing:border-box;box-sizing:border-box;}
34
+ .qppr-sidebar{float:right;width: 22%;-webkit-box-sizing:-moz-border-box;box-sizing:border-box;box-sizing:border-box;}
35
+ .qppr-content{-webkit-box-sizing:-moz-border-box;box-sizing:border-box;box-sizing:border-box;}
36
+ .settings-error { display: inline-block; width: 70%; }
37
+ .ppr-type-name { display: inline-block; margin: 0 25px 0 2px; }
38
+ .ppr-acor { background: #FF0000; display: block; color: #FFFFFF; }
39
+ .ppr-nfor { background: #FFAAAA; display: block; }
40
+ .ppr-nwor { background: #FF9933; display: block; }
41
+ .ppr-rrlor { background: #FFFF66; display: block; }
42
+ .qform-table td { padding: 2px !important; border: 1px solid #cccccc; }
43
+ .qform-table .headrow td { font-weight: bold; }
44
+ .qform-table .onrow td { background-color: #eaeaea; }
45
+ .qform-table .offrow td { background-color: #ffffff; }
46
+ #qppr-edit-row-holder { display: none; }
47
+ #qppr-temp-table-holder { display: none; }
48
+ .editing-redirect > td.editing { display: none; }
49
+ .table-qppr-can > span, .table-qppr-sav > span { font-size: 20px; vertical-align: middle; cursor: pointer; display: block; }
50
+ .table-qppr-can, .table-qppr-sav { text-align: center; }
51
+ .table-qppr-can > span:hover { color: #0000bb; }
52
+ .table-qppr-sav > span:hover { color: #00bb00; }
53
+ .qppr_quick_redirects_wrapper table {width: 100%;}
54
+ td.qppr-saving-row {height: 25px;}
55
+ .qppr-show { display: table-cell; }
56
+ .qppr_quick_redirects_wrapper { height: 100%; overflow: hidden; position: relative; padding: 1%; box-sizing: border-box;}
57
+ #qppr-edit-row-saving {display: none;}
58
+ .clear-both{clear:both;}
59
+ .saving, .saving:before, .saving:after { background: #428BE3; -webkit-animation: load1 1s infinite ease-in-out; animation: load1 1s infinite ease-in-out; width: 1em; /* height: 1em; */ }
60
+ .saving:before, .saving:after { position: absolute; top: 0; content: ''; }
61
+ .saving:before { left: -1.5em; -webkit-animation-delay: -0.32s; animation-delay: -0.32s; }
62
+ .saving { text-indent: -9999em; margin: 0px auto; position: relative; font-size: 4px; -webkit-transform: translateZ(0); -ms-transform: translateZ(0); transform: translateZ(0); -webkit-animation-delay: -0.16s; animation-delay: -0.16s; }
63
+ .saving:after { left: 1.5em; }
64
+ @-webkit-keyframes load1 {
65
+ 0%, 80%, 100% { box-shadow: 0 0 #428BE3; height: 2em;}
66
+ 40% {box-shadow: 0 -2em #428BE3;height: 3em;}
67
+ }
68
+ @keyframes load1 {
69
+ 0%, 80%, 100% {box-shadow: 0 0 #428BE3;height: 2em;}
70
+ 40% {box-shadow: 0 -2em #428BE3;height: 3em;}
71
+ }
72
+ .table-qppr-count,
73
+ .table-qppr-req,
74
+ .table-qppr-arr,
75
+ .table-qppr-des,
76
+ .table-qppr-nwn,
77
+ .table-qppr-nfl,
78
+ .table-qppr-sav,
79
+ .table-qppr-can{padding:4px;}
80
+ .editing-redirect .table-qppr-req,
81
+ .editing-redirect .table-qppr-arr,
82
+ .editing-redirect .table-qppr-des,
83
+ .editing-redirect .table-qppr-nwn,
84
+ .editing-redirect .table-qppr-nfl,
85
+ .editing-redirect .table-qppr-sav,
86
+ .editing-redirect .table-qppr-can{padding:0px;}
87
+ @font-face { font-family: 'qpprfonts'; src: url('../fonts/qpprfonts.eot?uc0jid'); src: url('../fonts/qpprfonts.eot?#iefixuc0jid') format('embedded-opentype'), url('../fonts/qpprfonts.ttf?uc0jid') format('truetype'), url('../fonts/qpprfonts.woff?uc0jid') format('woff'), url('../fonts/qpprfonts.svg?uc0jid#qpprfonts') format('svg'); font-weight: normal; font-style: normal; }
88
+ [class^="qpprfont-"]:before, [class*=" qpprfont-"]:before {font-family: 'qpprfonts';speak: none;font-style: normal;font-weight: normal;font-variant: normal;text-transform: none;line-height: 1;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;}
89
+ .qpprfont-save:before { content: "\e602"; }
90
+ .qpprfont-not:before { content: "\e603"; color: #FF0000; padding-right: 5px;}
91
+ .qpprfont-amazon:before { content: "\e600"; margin-left: -5px;}
92
+ .qpprfont-cancel:before { content: "\e601"; }
93
+ .qpprfont-on:before { content: "\e604"; color: #0F9A0A; padding-right: 5px;}
94
+ .qpprfont-off:before { content: "\e605"; }
95
+ .qpprfont-save { *zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');}
96
+ .qpprfont-not { *zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');}
97
+ .qpprfont-amazon { *zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');}
98
+ .qpprfont-cancel { *zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');}
99
+ .qpprfont-on { *zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');}
100
+ .qpprfont-off { *zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');}
101
+ tr.qppr-duplicate{ background-color: rgb(255, 217, 217) !important;}
102
+ .qppr-duplicate:hover{ background-color: rgb(255, 191, 191) !important;}
103
+ .faq-item{border-bottom:1px solid #CCC;padding-bottom:10px;margin-bottom:10px;}
104
+ .faq-item span.qa{margin-top:0;color: #21759B;display: block;float: left;font-size: 18px;font-weight: bold; margin-left: 0; margin-right: 5px;}
105
+ h3.qa{color: #21759B; font-size: 18px;font-weight: bold;margin: 0 5px 0 0;}
106
+ .qppr-faq-answers.answer{margin: 0 5px 0 0;}
107
+ .faq-item .qa-content p:first-child{margin-top:0;}
108
+ .qppr-faq-links {border-bottom: 1px solid #CCCCCC;list-style-position: inside;margin:10px 0 15px 35px;}
109
+ .qppr-faq-answers{list-style-position: inside;margin:10px 0 15px 35px;}
110
+ .toplink{text-align:left;}
111
+ .qa-content div > code{background: none repeat scroll 0 0 #EFEFEF;border: 1px solid #CCCCCC;display: block;margin-left: 35px;overflow-y: auto;padding: 10px 20px;white-space: nowrap;width: 90%;}
112
+ .form-table tr {vertical-align: top;}
113
+ .qpprform th span {color: #ff0000;font-size: 13px;}
114
+ .form-table th.qppr-no-padding{padding: 0;}
115
+ .form-table th h2 {padding: 0 2% 0 0;}
116
+ .form-table th {width: 30%;padding: 15px 10px 10px 0;}
117
+ .form-table td {padding: 15px 10px;margin-bottom: 0;}
118
+ #usejqpprmessage code {background-color: transparent;color:#ff0000;}
filters-and-hooks.txt ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ You can use the following action and filter hooks with this plugin:
3
+ Remember to change funciton names to your own custom unique names if using the examples.
4
+
5
+ *******************
6
+ * filter: qppr_allowed_protocols
7
+ * related: Quick Redirects and Individual Redirects
8
+ * desc: allowed protocols in the URLs
9
+ * arg1: array of allowed protocols;
10
+ * return: should be an array of allowed protocols
11
+ *******************
12
+ * filter: qppr_filter_quickredirect_append_QS_data
13
+ * related: Quick Redirects Only
14
+ * desc: Querystring dtata to add back to Destination.
15
+ * arg1: current query string data
16
+ * return: sting - any change to querystring data or blank to remove.
17
+ *******************
18
+ * filter: qppr_filter_quickredirect_url
19
+ * related: Quick Redirects Only
20
+ * desc: filter or change the final Destination URL.
21
+ The request can be checked and destination could be modified based on request (or destination)
22
+ * arg1: the destination URL
23
+ * arg2: the matched request URL
24
+ * return: URI - the final destination URL.
25
+ *******************
26
+ * filter: qppr_filter_quickredirect_type
27
+ * related: Quick Redirects Only
28
+ * desc: Redirect type. You can use to change the redirect type .
29
+ * arg1: redirect type (i.e., 301, 302, 307)
30
+ * return string - '301', '302', '307' or 'meta' (default is 301)
31
+ *******************
32
+ * filter: qppr_filter_quickredirect_add_home_link_to_destination_url
33
+ * related: Quick Redirects Only
34
+ * desc: Plugin add the home URL back to relative links before redirect. Use this to turn on or off.
35
+ * arg1: current setting (bool)
36
+ * return: bool - true or false (default is true)
37
+ * examples: add_filter( 'qppr_filter_quickredirect_add_home_link_to_destination_url', '__return_false' );
38
+ * add_filter( 'qppr_filter_quickredirect_add_home_link_to_destination_url', '__return_true' );
39
+ *******************
40
+ * action: qppr_redirect
41
+ * related: Quick Redirects Only
42
+ * desc: Quick Rediects function - use to take over redirect
43
+ * arg1: Redirect URL
44
+ * arg2: Redirect Type
45
+ * return: none
46
+ * example: add_action( 'qppr_redirect', 'some_callback_function', 10, 2 );
47
+ ********************
48
+ * action: qppr_do_redirect
49
+ * related: Individual Redirects Only
50
+ * desc: Page/Post Redirects function - use to take over redirect
51
+ * arg1: Redirect URL
52
+ * arg2: Redirect Type
53
+ * example: add_action('qppr_do_redirect','some_callback_function2',10,2);
54
+ ********************
55
+ * action: ppr_meta_head_hook
56
+ * related: Individual Redirects Only
57
+ * desc: Meta Redirect Action: Used for Meta Redirect Page Headers (so you can add meta tag)
58
+ * arg1: URL site
59
+ * arg2: Meta Redirect Time in Seconds
60
+ * arg3: Meta Message to display
61
+ * example: add_action('ppr_meta_head_hook','override_ppr_metahead',10,3);
62
+ function override_ppr_metahead( $refresh_url = '' ,$refresh_secs = 0, $messages = '' ){
63
+ echo '<meta http-equiv="refresh" content="'.$refresh_secs.'; URL='.$refresh_url.'" />'."\n";
64
+ echo '<div id="ppr_custom_message">'. $messages.'</div>'."\n";
65
+ return;
66
+ }
67
+ ********************
68
+ * filter: ppr_meta_head_hook_filter
69
+ * related: Individual Redirects Only
70
+ * desc: Meta Redirect Filter: Used for Meta Redirect Page Headers (so you can add meta and message, etc.)
71
+ * arg1: Meta Tag (fully generated)
72
+ * arg2: Page HTML Message (wrapped in a <div> tag)
73
+ * example: add_filter( 'ppr_meta_head_hook_filter', 'override_ppr_metahead_new', 10, 2 );
74
+ function override_ppr_metahead_new( $meta_tag = '', $meta_message = '' ){
75
+ $meta = $meta_tag;
76
+ $function = create_function( '$content', 'return \'<div id="ppr_custom_message">sample message override</div>\';' );
77
+ $function2 = create_function( '$title', 'return \'sample message override TITLE\';' );
78
+ add_filter( 'get_content', $function, 100, 1 );
79
+ add_filter( 'get_title', $function2, 100, 1 );
80
+ return $meta;
81
+ }
82
+ */
fonts/qpprfonts.eot ADDED
Binary file
fonts/qpprfonts.svg ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="qpprfonts" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" d="" horiz-adv-x="512" />
10
+ <glyph unicode="&#xe600;" d="M647.457 358.030c-17.211-5.207-31.917-13.384-44.33-24.504-12.295-11.119-18.473-27.477-18.473-49.128 0-17.266 4.531-31.21 13.649-41.684 9.118-10.469 21.593-15.706 37.479-15.706 2.559 0 4.913 0.233 6.766 0.704 1.972 0.499 3.589 0.766 4.913 0.766 20.502 4.531 35.858 16.145 46.274 34.831 9.382 14.090 14.354 27.649 14.795 40.738 0.532 13.062 0.705 27.302 0.705 42.685v16.212c-10.609-0.003-21.308-0.327-31.83-0.945-10.503-0.676-20.502-2.002-29.947-3.97zM563.845 945.955l-269.433-269.441h269.433zM613.184 945.955v-314.98h-318.771v-679.276h739.998v994.257h-421.23zM708.79 466.489c-0.355 10.121-3.382 19.15-9.18 26.978-5.266 7.528-12.061 12.941-20.532 16.205-8.47 3.236-16.828 4.913-25.327 4.913h-6.296c-14.563-1.294-27.829-5.823-39.713-13.473-11.855-7.737-19.505-19.266-23.092-34.624-0.618-3.296-2.030-6.294-4.294-9.088-2.237-2.796-5.177-4.797-9.002-6.147l-79.808 10.116c-3.206 0.647-6.266 2.117-9.295 4.326-3.030 2.237-3.883 5.94-2.678 11.058 4.559 21.151 12.473 39.008 23.74 53.393 11.324 14.443 24.709 26.241 40.214 35.36 15.528 9.15 32.358 15.854 50.568 20.209 18.208 4.324 36.566 7.119 54.951 8.416h16.945c20.325 0 42.094-2.823 65.365-8.416 23.209-5.59 43.358-15.62 60.449-30.034 10.005-8.589 17.502-18.034 22.594-28.092 5.001-10.092 8.382-20.679 10.35-31.712 1.943-11.032 2.913-22.652 2.913-34.803v-160.497c0-18.678 3.237-33.034 9.649-43.186 6.414-10.174 13.651-19.797 21.475-28.914 2.497-3.177 3.764-6.533 3.764-10.092 0-3.498-1.613-6.532-4.733-9.002-8.034-7.087-18.389-15.355-31.124-24.799-12.738-9.442-23.359-17.707-31.83-24.8-5.884-3.675-13.033-4-21.504-0.91-13.384 10.766-22.652 19.179-27.917 25.061l-19.974 23.153c-13.381-12.68-26.296-22.795-38.976-30.388-12.678-7.498-25.682-13.176-39.065-16.915-17.771-3.675-37.625-5.558-59.422-5.558-34.507 0-63.425 9.737-86.778 29.122-23.298 19.416-34.948 48.507-34.948 87.31 0 32.032 8.002 58.799 24.065 80.277 16.061 21.413 37.448 37.507 64.391 48.331 13.826 5.884 28.534 10.385 44.244 13.473 15.679 3.117 32.125 5.679 49.035 7.65 11.236 1.263 21.944 2.262 32.213 2.937 10.235 0.649 19.976 1.649 28.972 2.942v10.741h0.060c-0.003 9.526-0.091 19.325-0.472 29.47zM936.14 100.298c-4.573-3.298-9.3-6.387-14.18-9.018-4.982-2.709-9.682-5.416-14.177-8.252-36.325-19.57-76.204-34.231-119.762-43.939-43.527-9.733-85.731-14.562-126.684-14.562-64.839 0-125.56 10.55-181.942 31.575-56.459 21-106.784 50.201-151.183 87.523-2.555 1.967-3.78 3.783-3.78 5.493 0 1.099 0.383 2.094 1.226 2.94 1.405 1.66 3.092 2.529 5.031 2.529 1.686 0 3.552-0.586 5.491-1.737 47.186-26.747 99.148-47.669 156.065-62.767 56.868-15.125 115.802-22.661 176.681-22.661 38.726 0 78.148 3.449 118.407 10.344 40.211 6.874 80.396 17.474 120.451 31.779 2.785 1.099 5.647 2.12 8.458 2.937 2.785 0.896 5.826 1.967 8.913 3.347 2.787 1.176 5.649 1.457 8.458 0.894 2.783-0.561 4.802-1.788 5.954-3.78 0.765-1.43 1.302-2.988 1.606-4.649 0-3.343-1.608-6.026-5.031-7.993zM1004.399 143.625c0-5.567-1.152-12.465-3.396-20.616-2.174-8.097-5.11-16.322-8.687-24.601-3.552-8.326-8.43-16.526-14.46-24.676-6.181-8.125-13.234-15.049-21.283-20.639-2.937-2.787-5.642-3.656-8.069-2.532-2.325 1.124-3.015 3.375-1.839 6.72l8.046 19.363c3.094 7.893 5.878 15.689 8.584 23.4 2.709 7.716 4.498 14.717 5.263 21.078 0.843 6.31 0.153 10.856-2.094 13.668-3.42 4.495-11.009 6.996-22.787 7.586-2.247 0-4.649 0-7.203 0-9.605 0-19.186-0.408-28.741-1.276-5.108-1.097-9.988-1.661-14.79-1.661-4.725 0-9.118-0.588-13.106-1.713-3.317 0-5.341 1.022-5.876 2.964-0.536 1.97 0.79 4.115 4.189 6.363 8.764 5.621 18.596 10.218 29.582 13.899 9.839 2.195 19.75 3.729 29.586 4.6 6.181 0.536 11.905 0.867 17.345 0.867 3.86 0 7.816-0.153 11.704-0.434 9.372-0.588 17.038-1.559 23.092-2.94 6.027-1.455 10.067-2.985 12.237-4.649 0.536-1.122 1.15-2.604 1.761-4.42s0.946-4.137 0.946-6.923v-3.425z" horiz-adv-x="1325" />
11
+ <glyph unicode="&#xe601;" d="M512 910.222c-251.362 0-455.111-203.749-455.111-455.111s203.749-455.111 455.111-455.111 455.111 203.749 455.111 455.111-203.749 455.111-455.111 455.111zM170.667 455.111c0 73.639 23.666 141.694 63.472 197.527l475.388-475.388c-55.833-39.806-123.888-63.472-197.527-63.472-188.222 0-341.333 153.111-341.333 341.333zM789.861 257.584l-475.388 475.388c55.833 39.806 123.888 63.472 197.527 63.472 188.222 0 341.333-153.111 341.333-341.333 0-73.639-23.666-141.694-63.472-197.527z" />
12
+ <glyph unicode="&#xe602;" d="M960-64h-896c-35.328 0-64 28.672-64 64v896c0 35.328 28.672 64 64 64h768l192-192v-768c0-35.328-28.672-64-64-64zM256 96c0-17.696 14.336-32 32-32h448c17.696 0 32 14.304 32 32v256c0 17.696-14.304 32-32 32h-448c-17.664 0-32-14.304-32-32v-256zM704 800c0 17.696-14.304 32-32 32s-32-14.304-32-32v-96c0-17.696 14.304-32 32-32s32 14.304 32 32v96zM896 736l-96 96h-32v-224c0-17.696-14.304-32-32-32h-448c-17.664 0-32 14.304-32 32v224h-96c-17.664 0-32-14.304-32-32v-704c0-17.696 14.336-32 32-32h32v352c0 17.696 14.336 32 32 32h576c17.696 0 32-14.304 32-32v-352h32c17.696 0 32 14.304 32 32v640z" />
13
+ <glyph unicode="&#xe603;" d="M1023.872 959.776l-874.912-545.152 331.712 0.256-480.544-478.656 958.816 610.24-329.92-0.224 394.848 413.536z" />
14
+ <glyph unicode="&#xe604;" d="M0 438.857q0 74.286 29.143 142t78 116.571 116.571 78 142 29.143h438.857q74.286 0 142-29.143t116.571-78 78-116.571 29.143-142-29.143-142-78-116.571-116.571-78-142-29.143h-438.857q-74.286 0-142 29.143t-116.571 78-78 116.571-29.143 142zM804.571 146.286q59.429 0 113.429 23.143t93.429 62.571 62.571 93.429 23.143 113.429-23.143 113.429-62.571 93.429-93.429 62.571-113.429 23.143-113.429-23.143-93.429-62.571-62.571-93.429-23.143-113.429 23.143-113.429 62.571-93.429 93.429-62.571 113.429-23.143z" horiz-adv-x="1170" />
15
+ <glyph unicode="&#xe605;" d="M658.286 438.857q0 59.429-23.143 113.429t-62.571 93.429-93.429 62.571-113.429 23.143-113.429-23.143-93.429-62.571-62.571-93.429-23.143-113.429 23.143-113.429 62.571-93.429 93.429-62.571 113.429-23.143 113.429 23.143 93.429 62.571 62.571 93.429 23.143 113.429zM1097.143 438.857q0 59.429-23.143 113.429t-62.571 93.429-93.429 62.571-113.429 23.143h-220.571q68-51.429 107.714-128t39.714-164.571-39.714-164.571-107.714-128h220.571q59.429 0 113.429 23.143t93.429 62.571 62.571 93.429 23.143 113.429zM1170.286 438.857q0-74.286-29.143-142t-78-116.571-116.571-78-142-29.143h-438.857q-74.286 0-142 29.143t-116.571 78-78 116.571-29.143 142 29.143 142 78 116.571 116.571 78 142 29.143h438.857q74.286 0 142-29.143t116.571-78 78-116.571 29.143-142z" horiz-adv-x="1170" />
16
+ </font></defs></svg>
fonts/qpprfonts.ttf ADDED
Binary file
fonts/qpprfonts.woff ADDED
Binary file
js/qppr_admin_script.js ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ;(function($){
2
+ $(document).ready(function() {
3
+ $('span.qppr_meta_help').css('display','none');
4
+ $('.inside').delegate('span.qppr_meta_help_wrap', 'hover', function(e){
5
+ var $curdisp = $(this).find('span.qppr_meta_help').css('display');
6
+ if($curdisp == 'none'){
7
+ $(this).find('span.qppr_meta_help').css('display','inline');
8
+ }else{
9
+ $(this).find('span.qppr_meta_help').css('display','none');
10
+ }
11
+ e.preventDefault();
12
+ });
13
+ var mainurl = qpprData.ajaxurl;
14
+ $('#qppr_quick_save_form').on('submit',function(e){
15
+ var obj = $( this );
16
+ var reqs = $('input[name^="quickppr_redirects[request]"');
17
+ var dest = $('input[name^="quickppr_redirects[destination]"');
18
+ var err = false;
19
+ if( reqs[0].value == '' && dest[0].value == '' ){err = true;}
20
+ if( err ){
21
+ e.preventDefault();
22
+ alert(qpprData.error);
23
+ return false;
24
+ }
25
+ return true;
26
+ });
27
+
28
+ $(".delete-qppr").click(function(e){
29
+ e.preventDefault();
30
+ var rowID = $(this).data('rowid');
31
+ var delRow = $('#'+rowID);
32
+ var request = delRow.children('.table-qppr-req').children('.qppr-request').text();
33
+ if( confirm( qpprData.msgDeleteConfirm ) ){
34
+ var remove_qppr_data = {'action' : 'qppr_delete_quick_redirect','request': request,'security': qpprData.security};
35
+ $.post(qpprData.ajaxurl, remove_qppr_data, function(response) {
36
+ delRow.remove();
37
+ }).done(function() {
38
+ });
39
+ }
40
+ });
41
+ $(".edit-qppr").click(function(e){
42
+ e.preventDefault();
43
+ var rowID = $(this).data('rowid');
44
+ var currentRedirect = $('#'+rowID);
45
+ var editRowHolder = $('#qppr-edit-row-holder').children('td');
46
+ $( '#' + rowID + ' td' ).addClass('editing');
47
+ currentRedirect.addClass('editing-redirect');
48
+ editRowHolder.clone().prependTo(currentRedirect);
49
+ currentRedirect.children('.table-qppr-req.cloned').children('.input-qppr-req').attr('value', currentRedirect.children('.table-qppr-req.editing').children('.qppr-request').text());
50
+ currentRedirect.children('.table-qppr-des.cloned').children('.input-qppr-dest').attr('value', currentRedirect.children('.table-qppr-des.editing').children('.qppr-destination').text());
51
+ var newChecked = currentRedirect.children('.table-qppr-nwn.editing').children( '.qppr-newindow' ).text() == 'X' ? true : false ;
52
+ currentRedirect.children('.table-qppr-nwn.cloned').children('.input-qppr-neww').prop( 'checked', newChecked );
53
+ var noChecked = currentRedirect.children('.table-qppr-nfl.editing').children( '.qppr-nofollow' ).text() == 'X' ? true : false ;
54
+ currentRedirect.children('.table-qppr-nfl.cloned').children('.input-qppr-nofo').prop( 'checked', noChecked );
55
+ currentRedirect.children('.table-qppr-sav.cloned').children('.table-qppr-sav span').attr('data-rowid',rowID);
56
+ currentRedirect.children('.table-qppr-can.cloned').children('.table-qppr-can span').attr('data-rowid',rowID);
57
+ });
58
+ $(".qppr_quick_redirects_wrapper").delegate('.table-qppr-sav span.qpprfont-save', 'hover', function(e){
59
+ if( $( '.active-saving' ).length != 0 && !$( this ).parent().parent().hasClass('active-saving'))
60
+ $( this ).css( {'cursor':'no-drop','color':'#ff0000'} );
61
+ });
62
+
63
+ $(".qppr_quick_redirects_wrapper").delegate('.table-qppr-sav span.qpprfont-save', 'click', function(e){
64
+ e.preventDefault();
65
+ var editRow = $('#'+$(this).data('rowid'));
66
+ if( $( '.active-saving' ).length != 0 && !$( this ).parent().parent().hasClass('active-saving'))
67
+ return false;
68
+ var rowID = $(this).data('rowid');
69
+ var request = editRow.children('.table-qppr-req.cloned').children('.input-qppr-req').val();
70
+ var destination = editRow.children('.table-qppr-des.cloned').children('.input-qppr-dest').val();
71
+ var newWin = editRow.children('.table-qppr-nwn.cloned').children('.input-qppr-neww:checked').val();
72
+ var noFoll = editRow.children('.table-qppr-nfl.cloned').children('.input-qppr-nofo:checked').val();
73
+ newWin = (typeof newWin == 'undefined' || newWin == 'undefined') ? 0 : newWin;
74
+ noFoll = (typeof noFoll == 'undefined' || noFoll == 'undefined') ? 0 : noFoll;
75
+ editRow.children('.cloned').remove();
76
+ // do a little checking of the request to make sure is ok.
77
+ var protocols = qpprData.protocols;
78
+ var slash = request.substring(0, 1);
79
+ var hasSlash = slash == '/' ? true : false;
80
+ var protocol = '';
81
+ var protoLen = -1;
82
+ if( !hasSlash ){
83
+ protoLen = request.indexOf(":");
84
+ protocol = request.substring(0, protoLen); // first three of protocol
85
+ }
86
+ if( !hasSlash && $.inArray( protocol, protocols ) === -1 ){
87
+ request = '/' + request;
88
+ }
89
+
90
+ $( '#qppr-edit-row-saving .qppr-saving-row' ).clone().prependTo( '#' + rowID );
91
+ editRow.addClass( 'active-saving' );
92
+ var save_data = {
93
+ 'action' : 'qppr_save_quick_redirect',
94
+ 'row' : rowID.replace('rowpprdel-',''),
95
+ 'request' : request,
96
+ 'destination' : destination,
97
+ 'newwin' : newWin,
98
+ 'nofollow' : noFoll,
99
+ 'security' : qpprData.security
100
+ };
101
+
102
+ $.post(qpprData.ajaxurl, save_data, function(response) {
103
+ var err = 0;
104
+ if( response == 'error' ){
105
+ alert(qpprData.msgErrorSave);
106
+ err = 1;
107
+ }
108
+ if(response == 'duplicate' ){
109
+ alert(qpprData.msgDuplicate);
110
+ var dupRow = '#' + $( ".table-qppr-req:contains(" + request + ")" ).parent('tr').attr('id');
111
+ $( dupRow ).addClass('qppr-duplicate');
112
+ err = 1;
113
+ }
114
+ if( err != 1 ){
115
+ if(noFoll == 1){noFoll = 'X';}else{noFoll = '';}
116
+ if(newWin == 1){newWin = 'X';}else{newWin = '';}
117
+ editRow.children('.table-qppr-req.editing').children('.qppr-request').text(request);
118
+ editRow.children('.table-qppr-des.editing').children('.qppr-destination').text(destination);
119
+ editRow.children('.table-qppr-nfl.editing').children('.qppr-nofollow').text(noFoll);
120
+ editRow.children('.table-qppr-nwn.editing').children('.qppr-newindow').text(newWin);
121
+ }
122
+ editRow.children('td').removeClass('editing');
123
+ editRow.children('.qppr-saving-row').remove();
124
+ }).done(function() {
125
+ editRow.removeClass('editing-redirect active-saving');
126
+ $( '.table-qppr-sav span.qpprfont-save' ).css( {'cursor':'','color':''} );
127
+ });
128
+ });
129
+ $('tr[id^="rowpprdel"]').on('hover',function(){
130
+ $(this).removeClass('qppr-duplicate');
131
+ });
132
+ $(".qppr_quick_redirects_wrapper").delegate('.table-qppr-can span.qpprfont-cancel','click', function(e){
133
+ e.preventDefault();
134
+ var rowID = $('#'+$(this).data('rowid'));
135
+ rowID.children('.cloned').remove();
136
+ rowID.children('td').removeClass('editing');
137
+ rowID.removeClass('editing-redirect');
138
+ });
139
+
140
+ $("#hidepprjqmessage").click(function(e){
141
+ e.preventDefault();
142
+ var pprhidemessage_data = {'action' : 'qppr_pprhidemessage_ajax','pprhidemessage': 1,'scid': qpprData.security};
143
+ $.post(qpprData.ajaxurl, pprhidemessage_data, function(response) {$('#usejqpprmessage').remove();}).done(function() {});
144
+ });
145
+
146
+ $("#hidepprjqmessage2").click(function(e){
147
+ e.preventDefault();
148
+ var pprhidemessage_data = {'action' : 'qppr_pprhidemessage_ajax','pprhidemessage': 2,'scid': qpprData.security};
149
+ $.post(qpprData.ajaxurl, pprhidemessage_data, function(response) {$('#usejqpprmessage2').remove();}).done(function() {});
150
+ });
151
+
152
+ $("#qppr-import-quick-redirects-button").click(function(e){
153
+ e.preventDefault();
154
+ $('#qppr_addto_form').css({'display':'none'});
155
+ if($('#qppr_import_form').css('display')=='block'){
156
+ $('#qppr_import_form').css({'display':'none'});
157
+ }else{
158
+ $('#qppr_import_form').css({'display':'block'});
159
+ }
160
+ });
161
+
162
+ $("#qppr_addto_qr_button").click(function(e){
163
+ $('#qppr_import_form').css({'display':'none'});
164
+ if($('#qppr_addto_form').css('display')=='block'){
165
+ $('#qppr_addto_form').css({'display':'none'});
166
+ }else{
167
+ $('#qppr_addto_form').css({'display':'block'});
168
+ }
169
+ e.preventDefault();
170
+ });
171
+
172
+ $("#import_redirects_add_qppr").click(function(e){
173
+ if($("[name|=qppr_file_add]").attr('value')==''){
174
+ e.preventDefault();
175
+ alert(qpprData.msgSelect);
176
+ return false;
177
+ }
178
+ });
179
+
180
+ $("#import-quick-redrects-file").click(function(e){
181
+ if($("[name|=qppr_file]").attr('value')==''){
182
+ e.preventDefault();
183
+ alert(qpprData.msgSelect);
184
+ return false;
185
+ }
186
+ });
187
+ });
188
+ })(jQuery);
189
+
190
+ function qppr_check_file(fname){
191
+ str = fname.value.toUpperCase();
192
+ suffix = ".TXT";
193
+ if(!(str.indexOf(suffix, str.length - suffix.length) !== -1)){
194
+ alert( qpprData.msgFileType );
195
+ fname.value = '';
196
+ }
197
+ }
198
+
199
+ function qppr_goOnConfirm(message, href) {
200
+ if( confirm( message ) ){
201
+ document.location.href = qpprData.adminURL+href;
202
+ }
203
+ }
js/qppr_frontend_script.js ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ;(function($){
2
+ $(document).ready(function(){
3
+ var newWindowArr = qpprFrontData.linkData;
4
+ var root = qpprFrontData.siteURL;
5
+ var qroot = qpprFrontData.siteURLq;
6
+ $( 'a[href]' ).each( function( ){
7
+ var href = typeof $( this ).attr( 'href' ) !== 'undefined' ? $( this ).attr( 'href' ) : '';
8
+ var linkFound = qppr_in_array( href, newWindowArr );
9
+ if( linkFound !== false ){
10
+ var rel = 'undefined' !== typeof $( this ).attr( 'rel' ) ? $( this ).attr( 'rel' ) : '';
11
+ var tar = 'undefined' !== typeof $( this ).attr( 'target' ) ? $( this ).attr( 'target' ) : '';
12
+ var doNW = false;
13
+ var doNF = false;
14
+ if( linkFound == '1' ){
15
+ doNW = newWindowArr[ href ][0];
16
+ doNF = newWindowArr[ href ][1];
17
+ }else if( linkFound == '2' ){
18
+ doNW = newWindowArr[ href.replace(root,'') ][0];
19
+ doNF = newWindowArr[ href.replace(root,'') ][1];
20
+ }else if( linkFound == '3' ){
21
+ doNW = newWindowArr[ href.replace(qroot,'') ][0];
22
+ doNF = newWindowArr[ href.replace(qroot,'') ][1];
23
+ }
24
+ if( doNW ){
25
+ if( this.target === '' )
26
+ this.target = "_blank";
27
+ }
28
+ if( doNF ){
29
+ if( rel !== '' && rel !== 'nofollow' )
30
+ $( this ).attr( 'rel', rel + ' nofollow');
31
+ else
32
+ $( this ).attr( 'rel', 'nofollow' );
33
+ }
34
+ }
35
+ });
36
+ function qppr_in_array( needle, haystack ) {
37
+ if( 'undefined' !== typeof haystack[needle] ){
38
+ return '1';
39
+ }else if( 'undefined' !== typeof haystack[needle.replace(root,'')]){
40
+ return '2';
41
+ }else if( 'undefined' !== typeof haystack[needle.replace(qroot,'')]){
42
+ return '3';
43
+ }
44
+ return false;
45
+ }
46
+ });
47
+ })(jQuery);
js/qppr_pointers.js ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ;(function($){
2
+ $(document).ready( function($) {
3
+ qppr_open_pointer(0);
4
+ function qppr_open_pointer(i) {
5
+ pointer = qpprPointer.pointers[i];
6
+ options = $.extend( pointer.options, {
7
+ close: function() {
8
+ $.post( ajaxurl, {
9
+ pointer: pointer.pointer_id,
10
+ action: 'dismiss-wp-pointer'
11
+ });
12
+ }
13
+ });
14
+ $(pointer.target).pointer( options ).pointer('open');
15
+ }
16
+ });
17
+ })(jQuery);
lang/quick-pagepost-redirect-plugin-en_US.mo ADDED
Binary file
lang/quick-pagepost-redirect-plugin-en_US.po ADDED
@@ -0,0 +1,903 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Quick Page/Post Redirect Plugin\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: Fri Jun 19 2015 23:42:16 GMT-0400 (Eastern Daylight Time)\n"
6
+ "PO-Revision-Date: Sun Jul 05 2015 18:36:47 GMT-0400 (Eastern Daylight Time)\n"
7
+ "Last-Translator: dfischer <admin@fischercreativemedia.com>\n"
8
+ "Language-Team: \n"
9
+ "Language: English\n"
10
+ "Plural-Forms: nplurals=2; plural=n != 1\n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-Basepath: .\n"
16
+ "X-Poedit-SearchPath-0: ..\n"
17
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
18
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
19
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
20
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
21
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
22
+ "X-Loco-Target-Locale: en_US\n"
23
+ "X-Generator: Loco - https://localise.biz/"
24
+
25
+ #: ../page_post_redirect_plugin.php:209
26
+ msgid "New Layout of Existing Redirects"
27
+ msgstr "New Layout of Existing Redirects"
28
+
29
+ #: ../page_post_redirect_plugin.php:210
30
+ msgid ""
31
+ "The existing <strong>Quick Redirects</strong> are now laid out in a list "
32
+ "format instead of form fields. When you have a lot of Redirects, this helps "
33
+ "elminiate the \"max_input_vars\" configuration issue where redirects were not "
34
+ "saving correctly."
35
+ msgstr ""
36
+ "The existing <strong>Quick Redirects</strong> are now laid out in a list "
37
+ "format instead of form fields. When you have a lot of Redirects, this helps "
38
+ "elminiate the \"max_input_vars\" configuration issue where redirects were not "
39
+ "saving correctly."
40
+
41
+ #: ../page_post_redirect_plugin.php:211
42
+ msgid "To edit an exisitng redirect, click the pencil icon"
43
+ msgstr "To edit an exisitng redirect, click the pencil icon"
44
+
45
+ #: ../page_post_redirect_plugin.php:211
46
+ msgid "and the row will become editable. Click the trash can icon"
47
+ msgstr "and the row will become editable. Click the trash can icon"
48
+
49
+ #: ../page_post_redirect_plugin.php:211
50
+ msgid "and the redirect will be deleted. Click the trash can icon"
51
+ msgstr "and the redirect will be deleted. Click the trash can icon"
52
+
53
+ #: ../page_post_redirect_plugin.php:223
54
+ msgid "New Option to Use jQuery"
55
+ msgstr "New Option to Use jQuery"
56
+
57
+ #: ../page_post_redirect_plugin.php:224
58
+ msgid ""
59
+ "To increase the effectiveness of the plugin's ability to add new window and "
60
+ "nofollow functionality, you can use the jQuery option."
61
+ msgstr ""
62
+ "To increase the effectiveness of the plugin's ability to add new window and "
63
+ "nofollow functionality, you can use the jQuery option."
64
+
65
+ #: ../page_post_redirect_plugin.php:225
66
+ msgid ""
67
+ "This adds JavaScript/jQuery scripting to check the links in the output HTML "
68
+ "of the page and add the correct functionality if needed."
69
+ msgstr ""
70
+ "This adds JavaScript/jQuery scripting to check the links in the output HTML "
71
+ "of the page and add the correct functionality if needed."
72
+
73
+ #: ../page_post_redirect_plugin.php:226
74
+ msgid "If you experience JavaScript/jQuery conflicts, try turning this option off."
75
+ msgstr "If you experience JavaScript/jQuery conflicts, try turning this option off."
76
+
77
+ #: ../page_post_redirect_plugin.php:327
78
+ msgid "Quick Redirects Updated."
79
+ msgstr "Quick Redirects Updated."
80
+
81
+ #: ../page_post_redirect_plugin.php:432
82
+ msgid "Redirect"
83
+ msgstr "Redirect"
84
+
85
+ # Plugin Name
86
+ #: ../page_post_redirect_plugin.php:494
87
+ msgid "Quick Page/Post Redirect"
88
+ msgstr "Quick Page/Post Redirect"
89
+
90
+ #: ../page_post_redirect_plugin.php:505
91
+ msgid ""
92
+ "Redirect could not be saved as a redirect already exists with the same "
93
+ "Request URL."
94
+ msgstr ""
95
+ "Redirect could not be saved as a redirect already exists with the same "
96
+ "Request URL."
97
+
98
+ #: ../page_post_redirect_plugin.php:505
99
+ msgid "Are you sure you want to delete this redirect?"
100
+ msgstr "Are you sure you want to delete this redirect?"
101
+
102
+ # JavaScript message
103
+ #: ../page_post_redirect_plugin.php:505
104
+ msgid "Error Saving Redirect\\nTry refreshing the page and trying again."
105
+ msgstr "Error Saving Redirect\\nTry refreshing the page and trying again."
106
+
107
+ # JavaScript Message
108
+ #: ../page_post_redirect_plugin.php:505
109
+ msgid "File type not allowed,\\nAllowed file type: *.txt"
110
+ msgstr "File type not allowed,\\nAllowed file type: *.txt"
111
+
112
+ #: ../page_post_redirect_plugin.php:505
113
+ msgid "Please add at least one redirect before submitting form"
114
+ msgstr "Please add at least one redirect before submitting form"
115
+
116
+ #: ../page_post_redirect_plugin.php:573
117
+ msgid "Quick Page/Post Redirect FAQs/Help"
118
+ msgstr "Quick Page/Post Redirect FAQs/Help"
119
+
120
+ #: ../page_post_redirect_plugin.php:574
121
+ msgid ""
122
+ "The FAQS are now on a feed that can be updated on the fly. If you have a "
123
+ "question and don't see an answer, please send an email to <a href=\"mailto:"
124
+ "plugins@fischercreativemedia.com\">plugins@fischercreativemedia.com</a> and "
125
+ "ask your question. If it is relevant to the plugin, it will be added to the "
126
+ "FAQs feed so it will show up here. Please be sure to include the plugin you "
127
+ "are asking a question about (Quick Page/Post Redirect Plugin) and any other "
128
+ "information like your WordPress version and examples if the plugin is not "
129
+ "working correctly for you. THANKS!"
130
+ msgstr ""
131
+ "The FAQS are now on a feed that can be updated on the fly. If you have a "
132
+ "question and don't see an answer, please send an email to <a href=\"mailto:"
133
+ "plugins@fischercreativemedia.com\">plugins@fischercreativemedia.com</a> and "
134
+ "ask your question. If it is relevant to the plugin, it will be added to the "
135
+ "FAQs feed so it will show up here. Please be sure to include the plugin you "
136
+ "are asking a question about (Quick Page/Post Redirect Plugin) and any other "
137
+ "information like your WordPress version and examples if the plugin is not "
138
+ "working correctly for you. THANKS!"
139
+
140
+ #: ../page_post_redirect_plugin.php:592
141
+ msgid "Table of Contents"
142
+ msgstr "Table of Contents"
143
+
144
+ #: ../page_post_redirect_plugin.php:596
145
+ msgid "Questions/Answers"
146
+ msgstr "Questions/Answers"
147
+
148
+ #: ../page_post_redirect_plugin.php:606
149
+ msgid "Quick Page Post Redirect Summary"
150
+ msgstr "Quick Page Post Redirect Summary"
151
+
152
+ #: ../page_post_redirect_plugin.php:607
153
+ msgid "This is a summary of Individual &amp; Quick 301 Redirects."
154
+ msgstr "This is a summary of Individual & Quick 301 Redirects."
155
+
156
+ #: ../page_post_redirect_plugin.php:615
157
+ msgid "Summary"
158
+ msgstr "Summary"
159
+
160
+ #: ../page_post_redirect_plugin.php:618
161
+ msgid "Acitve Override is on - All Redirects are OFF!"
162
+ msgstr "Acitve Override is on - All Redirects are OFF!\n"
163
+
164
+ #: ../page_post_redirect_plugin.php:619
165
+ msgid "No Follow Override is on!"
166
+ msgstr "No Follow Override is on!"
167
+
168
+ #: ../page_post_redirect_plugin.php:620
169
+ msgid "New Window Override is on!"
170
+ msgstr "New Window Override is on!"
171
+
172
+ #: ../page_post_redirect_plugin.php:621
173
+ msgid "Rewrite Override is on!"
174
+ msgstr "Rewrite Override is on!"
175
+
176
+ #: ../page_post_redirect_plugin.php:625
177
+ msgid "ID"
178
+ msgstr "ID"
179
+
180
+ #: ../page_post_redirect_plugin.php:626
181
+ msgid "post type"
182
+ msgstr "post type"
183
+
184
+ #: ../page_post_redirect_plugin.php:627
185
+ msgid "active"
186
+ msgstr "active"
187
+
188
+ #: ../page_post_redirect_plugin.php:628
189
+ msgid "no follow"
190
+ msgstr "no follow"
191
+
192
+ #: ../page_post_redirect_plugin.php:629
193
+ msgid "new window"
194
+ msgstr "new window"
195
+
196
+ #: ../page_post_redirect_plugin.php:630
197
+ msgid "type"
198
+ msgstr "type"
199
+
200
+ #: ../page_post_redirect_plugin.php:631
201
+ msgid "rewrite"
202
+ msgstr "rewrite"
203
+
204
+ #: ../page_post_redirect_plugin.php:632
205
+ msgid "original URL"
206
+ msgstr "original URL"
207
+
208
+ #: ../page_post_redirect_plugin.php:633
209
+ msgid "redirect to URL"
210
+ msgstr "redirect to URL"
211
+
212
+ #: ../page_post_redirect_plugin.php:726 ../page_post_redirect_plugin.php:820
213
+ msgid "Quick Redirects Imported & Replaced."
214
+ msgstr "Quick Redirects Imported & Replaced."
215
+
216
+ #: ../page_post_redirect_plugin.php:727 ../page_post_redirect_plugin.php:821
217
+ msgid "Quick Redirects Imported & Added to Existing Redirects."
218
+ msgstr "Quick Redirects Imported & Added to Existing Redirects."
219
+
220
+ #: ../page_post_redirect_plugin.php:730
221
+ msgid "Import/Export Redirects"
222
+ msgstr "Import/Export Redirects"
223
+
224
+ #: ../page_post_redirect_plugin.php:746 ../page_post_redirect_plugin.php:843
225
+ msgid ""
226
+ "If you enjoy or find any of our plugins useful, please donate a few dollars "
227
+ "to help with future development and updates. We thank you in advance."
228
+ msgstr ""
229
+ "If you enjoy or find any of our plugins useful, please donate a few dollars "
230
+ "to help with future development and updates. We thank you in advance."
231
+
232
+ #: ../page_post_redirect_plugin.php:752 ../page_post_redirect_plugin.php:1019
233
+ msgid "Export Redirects"
234
+ msgstr "Export Redirects"
235
+
236
+ #: ../page_post_redirect_plugin.php:753
237
+ msgid ""
238
+ "You should back-up your redirect regularly in case something happens to the "
239
+ "database."
240
+ msgstr ""
241
+ "You should back-up your redirect regularly in case something happens to the "
242
+ "database."
243
+
244
+ #: ../page_post_redirect_plugin.php:754
245
+ msgid ""
246
+ "Please use the below buttons to make a back-up as either encoded "
247
+ "(unreadable) or pipe separated"
248
+ msgstr ""
249
+ "Please use the below buttons to make a back-up as either encoded "
250
+ "(unreadable) or pipe separated"
251
+
252
+ #: ../page_post_redirect_plugin.php:755
253
+ msgid "EXPORT all Quick Redirects (Encoded)"
254
+ msgstr "EXPORT all Quick Redirects (Encoded)"
255
+
256
+ #: ../page_post_redirect_plugin.php:756 ../page_post_redirect_plugin.php:769
257
+ msgid "OR"
258
+ msgstr "OR"
259
+
260
+ #: ../page_post_redirect_plugin.php:757
261
+ msgid "EXPORT all Quick Redirects (PIPE Separated)"
262
+ msgstr "EXPORT all Quick Redirects (PIPE Separated)"
263
+
264
+ #: ../page_post_redirect_plugin.php:764 ../page_post_redirect_plugin.php:1024
265
+ msgid "Import Redirects"
266
+ msgstr "Import Redirects"
267
+
268
+ #: ../page_post_redirect_plugin.php:765
269
+ msgid ""
270
+ "If you want to replace or restore redirects from a file, use the \"Restore\" "
271
+ "option."
272
+ msgstr ""
273
+ "If you want to replace or restore redirects from a file, use the \"Restore\" "
274
+ "option."
275
+
276
+ #: ../page_post_redirect_plugin.php:766
277
+ msgid ""
278
+ "To add new redirects in bulk use the \"Add To\" option - NOTE: to Add To "
279
+ "redirects, the file must be pipe dilimited "
280
+ msgstr ""
281
+ "To add new redirects in bulk use the \"Add To\" option - NOTE: to Add To "
282
+ "redirects, the file must be pipe dilimited "
283
+
284
+ #: ../page_post_redirect_plugin.php:768
285
+ msgid "RESTORE Saved Quick Redirects"
286
+ msgstr "RESTORE Saved Quick Redirects"
287
+
288
+ #: ../page_post_redirect_plugin.php:770
289
+ msgid "ADD TO Quick Redirects"
290
+ msgstr "ADD TO Quick Redirects"
291
+
292
+ #: ../page_post_redirect_plugin.php:774 ../page_post_redirect_plugin.php:795
293
+ msgid "Select Quick Redirects file to import:"
294
+ msgstr "Select Quick Redirects file to import:"
295
+
296
+ #: ../page_post_redirect_plugin.php:785
297
+ msgid ""
298
+ "The import file should be a text file with one rediect per line, PIPE "
299
+ "separated, in this format:"
300
+ msgstr ""
301
+ "The import file should be a text file with one rediect per line, PIPE "
302
+ "separated, in this format:"
303
+
304
+ # these are column titles.
305
+ #: ../page_post_redirect_plugin.php:787
306
+ msgid "redirect|destination|newwindow|nofollow"
307
+ msgstr "redirect|destination|newwindow|nofollow"
308
+
309
+ #: ../page_post_redirect_plugin.php:788
310
+ msgid "for Example:"
311
+ msgstr "for Example:"
312
+
313
+ # translate this to same as source
314
+ #: ../page_post_redirect_plugin.php:790
315
+ msgid "/old-location.htm|http://some.com/new-destination/|0|1"
316
+ msgstr "/old-location.htm|http://some.com/new-destination/|0|1"
317
+
318
+ #: ../page_post_redirect_plugin.php:791
319
+ msgid "/dontate/|http://example.com/destination/|1|1"
320
+ msgstr "/dontate/|http://example.com/destination/|1|1"
321
+
322
+ #: ../page_post_redirect_plugin.php:793
323
+ msgid "IMPORTANT:"
324
+ msgstr "IMPORTANT:"
325
+
326
+ #: ../page_post_redirect_plugin.php:793
327
+ msgid ""
328
+ "Make Sure any destination URLs that have a PIPE in the querystring data are "
329
+ "URL encoded before adding them!"
330
+ msgstr ""
331
+ "Make Sure any destination URLs that have a PIPE in the querystring data are "
332
+ "URL encoded before adding them!"
333
+
334
+ #: ../page_post_redirect_plugin.php:800
335
+ msgid "ADD TO Current Quick Redirects"
336
+ msgstr "ADD TO Current Quick Redirects"
337
+
338
+ #: ../page_post_redirect_plugin.php:818
339
+ msgid "All Quick Redirects deleted from database."
340
+ msgstr "All Quick Redirects deleted from database."
341
+
342
+ #: ../page_post_redirect_plugin.php:819
343
+ msgid "All Regular Redirects deleted from database."
344
+ msgstr "All Regular Redirects deleted from database."
345
+
346
+ #: ../page_post_redirect_plugin.php:825
347
+ msgid "Quick Page Post Redirect Options"
348
+ msgstr "Quick Page Post Redirect Options"
349
+
350
+ #: ../page_post_redirect_plugin.php:854
351
+ msgid "Basic Settings"
352
+ msgstr "Basic Settings"
353
+
354
+ # Custom Post Types text here should match WordPress' name for Custom Post Types.
355
+ #: ../page_post_redirect_plugin.php:857
356
+ msgid "Use with Custom Post Types?"
357
+ msgstr "Use with Custom Post Types?"
358
+
359
+ #: ../page_post_redirect_plugin.php:861
360
+ msgid "Hide"
361
+ msgstr "Hide"
362
+
363
+ #: ../page_post_redirect_plugin.php:861
364
+ msgid "meta box for following Post Types:"
365
+ msgstr "meta box for following Post Types:"
366
+
367
+ #: ../page_post_redirect_plugin.php:883
368
+ msgid "Show Column Headers?"
369
+ msgstr "Show Column Headers?"
370
+
371
+ #: ../page_post_redirect_plugin.php:884
372
+ msgid "Show Columns on list pages for set up redirects."
373
+ msgstr "Show Columns on list pages for set up redirects."
374
+
375
+ #: ../page_post_redirect_plugin.php:887
376
+ msgid "Use jQuery?"
377
+ msgstr "Use jQuery?"
378
+
379
+ #: ../page_post_redirect_plugin.php:888
380
+ msgid ""
381
+ "Increases effectiveness of plugin. If you have a jQuery conflict, try "
382
+ "turning this off."
383
+ msgstr ""
384
+ "Increases effectiveness of plugin. If you have a jQuery conflict, try "
385
+ "turning this off."
386
+
387
+ #: ../page_post_redirect_plugin.php:888
388
+ msgid "Uses jQuery to add the \"New Window\" and \"No Follow\" attributes to links."
389
+ msgstr "Uses jQuery to add the \"New Window\" and \"No Follow\" attributes to links."
390
+
391
+ #: ../page_post_redirect_plugin.php:891
392
+ msgid "Meta Refresh Time (in seconds):"
393
+ msgstr "Meta Refresh Time (in seconds):"
394
+
395
+ #: ../page_post_redirect_plugin.php:892
396
+ msgid "Only needed for Meta Refresh. 0=default (instant)"
397
+ msgstr "Only needed for Meta Refresh. 0=default (instant)"
398
+
399
+ #: ../page_post_redirect_plugin.php:895
400
+ msgid "Meta Refresh Message:"
401
+ msgstr "Meta Refresh Message:"
402
+
403
+ #: ../page_post_redirect_plugin.php:896
404
+ msgid "Default is blank. Message to display while waiting for refresh."
405
+ msgstr "Default is blank. Message to display while waiting for refresh."
406
+
407
+ #: ../page_post_redirect_plugin.php:902
408
+ msgid "Master Override Options"
409
+ msgstr "Master Override Options"
410
+
411
+ #: ../page_post_redirect_plugin.php:902
412
+ msgid ""
413
+ "<strong>NOTE: </strong>The below settings will override all individual "
414
+ "settings."
415
+ msgstr ""
416
+ "<strong>NOTE: </strong>The below settings will override all individual "
417
+ "settings."
418
+
419
+ #: ../page_post_redirect_plugin.php:905
420
+ msgid "Turn OFF all Redirects?"
421
+ msgstr "Turn OFF all Redirects?"
422
+
423
+ #: ../page_post_redirect_plugin.php:906
424
+ msgid "Basically the same as having no redirects set up."
425
+ msgstr "Basically the same as having no redirects set up."
426
+
427
+ # keep code text untranslated.
428
+ #: ../page_post_redirect_plugin.php:909
429
+ msgid "Make ALL Redirects have <code>rel=\"nofollow\"</code>?"
430
+ msgstr "Make ALL Redirects have <code>rel=\"nofollow\"</code>?"
431
+
432
+ #: ../page_post_redirect_plugin.php:910 ../page_post_redirect_plugin.php:914
433
+ msgid "Requires \"use jQuery\" option to work with Quick Redirects."
434
+ msgstr "Requires \"use jQuery\" option to work with Quick Redirects."
435
+
436
+ #: ../page_post_redirect_plugin.php:913
437
+ msgid "Make ALL Redirects open in a New Window?"
438
+ msgstr "Make ALL Redirects open in a New Window?"
439
+
440
+ #: ../page_post_redirect_plugin.php:917
441
+ msgid "Make ALL Redirects this type:"
442
+ msgstr "Make ALL Redirects this type:"
443
+
444
+ #: ../page_post_redirect_plugin.php:919
445
+ msgid "Use Individual Settings"
446
+ msgstr "Use Individual Settings"
447
+
448
+ #: ../page_post_redirect_plugin.php:920
449
+ msgid "Permanant Redirect"
450
+ msgstr "Permanant Redirect"
451
+
452
+ #: ../page_post_redirect_plugin.php:921 ../page_post_redirect_plugin.php:922
453
+ msgid "Temporary Redirect"
454
+ msgstr "Temporary Redirect"
455
+
456
+ #: ../page_post_redirect_plugin.php:923
457
+ msgid "Meta Refresh Redirect"
458
+ msgstr "Meta Refresh Redirect"
459
+
460
+ #: ../page_post_redirect_plugin.php:925
461
+ msgid "(Quick 301 Redirects will always be 301)"
462
+ msgstr "(Quick 301 Redirects will always be 301)"
463
+
464
+ #: ../page_post_redirect_plugin.php:929
465
+ msgid "Make ALL redirects Case Sensitive?"
466
+ msgstr "Make ALL redirects Case Sensitive?"
467
+
468
+ #: ../page_post_redirect_plugin.php:930
469
+ msgid "Makes URLs CaSe SensiTivE - i.e., /somepage/ DOES NOT EQUAL /SoMEpaGe/"
470
+ msgstr "Makes URLs CaSe SensiTivE - i.e., /somepage/ DOES NOT EQUAL /SoMEpaGe/"
471
+
472
+ #: ../page_post_redirect_plugin.php:933
473
+ msgid "Make ALL Redirects go to this URL:"
474
+ msgstr "Make ALL Redirects go to this URL:"
475
+
476
+ #: ../page_post_redirect_plugin.php:934
477
+ msgid "Use full URL including <code>http://</code>."
478
+ msgstr "Use full URL including <code>http://</code>."
479
+
480
+ #: ../page_post_redirect_plugin.php:937
481
+ msgid "Rewrite ALL Redirects URLs to Show in LINK?"
482
+ msgstr "Rewrite ALL Redirects URLs to Show in LINK?"
483
+
484
+ #: ../page_post_redirect_plugin.php:938
485
+ msgid ""
486
+ "Makes link show redirect URL instead of the original URL. Will not work on "
487
+ "Quick Redirects at this time."
488
+ msgstr ""
489
+ "Makes link show redirect URL instead of the original URL. Will not work on "
490
+ "Quick Redirects at this time."
491
+
492
+ #: ../page_post_redirect_plugin.php:944
493
+ msgid "Plugin Clean Up"
494
+ msgstr "Plugin Clean Up"
495
+
496
+ #: ../page_post_redirect_plugin.php:944
497
+ msgid ""
498
+ "<strong>NOTE: </strong>This will DELETE all redirects - so be careful with "
499
+ "this."
500
+ msgstr ""
501
+ "<strong>NOTE: </strong>This will DELETE all redirects - so be careful with "
502
+ "this."
503
+
504
+ #: ../page_post_redirect_plugin.php:947
505
+ msgid "Delete Redirects?"
506
+ msgstr "Delete Redirects?"
507
+
508
+ #: ../page_post_redirect_plugin.php:948
509
+ msgid "Delete All Individual Redirects"
510
+ msgstr "Delete All Individual Redirects"
511
+
512
+ #: ../page_post_redirect_plugin.php:948
513
+ msgid "Are you sure you want to PERMANENTLY Delets ALL Regular Redirects?"
514
+ msgstr "Are you sure you want to PERMANENTLY Delets ALL Regular Redirects?"
515
+
516
+ #: ../page_post_redirect_plugin.php:948
517
+ msgid "Delete all Quick Redirects"
518
+ msgstr "Delete all Quick Redirects"
519
+
520
+ #: ../page_post_redirect_plugin.php:948
521
+ msgid "Are you sure you want to PERMANENTLY Delets ALL Quick Redirects?"
522
+ msgstr "Are you sure you want to PERMANENTLY Delets ALL Quick Redirects?"
523
+
524
+ #: ../page_post_redirect_plugin.php:948
525
+ msgid ""
526
+ "Individual Redirects are redirects set up on individual pages or posts when "
527
+ "in the editing screen. The Quick Redirects are set up on the Quick Redirects "
528
+ "page."
529
+ msgstr ""
530
+ "Individual Redirects are redirects set up on individual pages or posts when "
531
+ "in the editing screen. The Quick Redirects are set up on the Quick Redirects "
532
+ "page."
533
+
534
+ #: ../page_post_redirect_plugin.php:951
535
+ msgid "Save Changes"
536
+ msgstr "Save Changes"
537
+
538
+ #: ../page_post_redirect_plugin.php:991
539
+ msgid "Examples"
540
+ msgstr "Examples"
541
+
542
+ #: ../page_post_redirect_plugin.php:996
543
+ msgid "Troubleshooting"
544
+ msgstr "Troubleshooting"
545
+
546
+ #: ../page_post_redirect_plugin.php:999
547
+ msgid "IMPORTANT TROUBLESHOOTING NOTES:"
548
+ msgstr "IMPORTANT TROUBLESHOOTING NOTES:"
549
+
550
+ #: ../page_post_redirect_plugin.php:1001
551
+ msgid ""
552
+ "At this time the New Window (NW) and No Follow (NF) features will not work "
553
+ "for Quick Redirects."
554
+ msgstr ""
555
+ "At this time the New Window (NW) and No Follow (NF) features will not work "
556
+ "for Quick Redirects."
557
+
558
+ #: ../page_post_redirect_plugin.php:1002
559
+ msgid ""
560
+ "It is recommended that the <b>Request URL</b> be relative to the ROOT "
561
+ "directory and contain the <code>/</code> at the beginning."
562
+ msgstr ""
563
+ "It is recommended that the <b>Request URL</b> be relative to the ROOT "
564
+ "directory and contain the <code>/</code> at the beginning."
565
+
566
+ #: ../page_post_redirect_plugin.php:1003
567
+ msgid ""
568
+ "If you do use the domain name in the Request URL field, make sure it matches "
569
+ "your site's domain style and protocol. For example, if your site uses \"www\" "
570
+ "in front of your domain name, be sure to include it. if your site uses "
571
+ "<code>https://</code>, use it as the protocol. Our best guess is that your "
572
+ "domain and protocol are"
573
+ msgstr ""
574
+ "If you do use the domain name in the Request URL field, make sure it matches "
575
+ "your site's domain style and protocol. For example, if your site uses \"www\" "
576
+ "in front of your domain name, be sure to include it. if your site uses "
577
+ "<code>https://</code>, use it as the protocol. Our best guess is that your "
578
+ "domain and protocol are"
579
+
580
+ #: ../page_post_redirect_plugin.php:1004
581
+ msgid ""
582
+ "If you are having issues with the link not redirecting on a SSL site with "
583
+ "mixed SSL (meaning links can be either SSL or non SSL), try adding two "
584
+ "redirects, one with and one without the SSL protocol."
585
+ msgstr ""
586
+ "If you are having issues with the link not redirecting on a SSL site with "
587
+ "mixed SSL (meaning links can be either SSL or non SSL), try adding two "
588
+ "redirects, one with and one without the SSL protocol."
589
+
590
+ #: ../page_post_redirect_plugin.php:1005
591
+ msgid ""
592
+ "The <b>Destination</b> field can be any valid URL or relative path (from "
593
+ "root), for example"
594
+ msgstr ""
595
+ "The <b>Destination</b> field can be any valid URL or relative path (from "
596
+ "root), for example"
597
+
598
+ #: ../page_post_redirect_plugin.php:1006
599
+ msgid ""
600
+ "In order for NW (open in a new window) or NF (rel=\"nofollow\") options to "
601
+ "work with Quick Redirects, you need to have:"
602
+ msgstr ""
603
+ "In order for NW (open in a new window) or NF (rel=\"nofollow\") options to "
604
+ "work with Quick Redirects, you need to have:"
605
+
606
+ #: ../page_post_redirect_plugin.php:1008
607
+ msgid "\"Use jQuery?\" option selected in the settings page"
608
+ msgstr "\"Use jQuery?\" option selected in the settings page"
609
+
610
+ #: ../page_post_redirect_plugin.php:1009
611
+ msgid ""
612
+ "A link that uses the request url SOMEWHERE in your site page - i.e., in a "
613
+ "menu, content, sidebar, etc."
614
+ msgstr ""
615
+ "A link that uses the request url SOMEWHERE in your site page - i.e., in a "
616
+ "menu, content, sidebar, etc."
617
+
618
+ #: ../page_post_redirect_plugin.php:1010
619
+ msgid ""
620
+ "The open in a new window or nofollow settings will not happen if someone "
621
+ "just types the old link in the URL or if they come from a bookmark or link "
622
+ "outside your site - in essence, there needs to be a link that they click on "
623
+ "in your site so that the jQuery script can add the appropriate "
624
+ "<code>target</code> and <code>rel</code> properties to the link to make it "
625
+ "work."
626
+ msgstr ""
627
+ "The open in a new window or nofollow settings will not happen if someone "
628
+ "just types the old link in the URL or if they come from a bookmark or link "
629
+ "outside your site - in essence, there needs to be a link that they click on "
630
+ "in your site so that the jQuery script can add the appropriate "
631
+ "<code>target</code> and <code>rel</code> properties to the link to make it "
632
+ "work."
633
+
634
+ #: ../page_post_redirect_plugin.php:1020
635
+ msgid "You can export redirects in two formats - Encoded or Delimited."
636
+ msgstr "You can export redirects in two formats - Encoded or Delimited."
637
+
638
+ #: ../page_post_redirect_plugin.php:1033
639
+ msgid "Quick Redirects (301 Redirects)"
640
+ msgstr "Quick Redirects (301 Redirects)"
641
+
642
+ #: ../page_post_redirect_plugin.php:1044
643
+ msgid ""
644
+ "The <code>Use jQuery?</code> option is turned off in the settings.<br/>In "
645
+ "order to use <strong>NW</strong> (open in a new window) or "
646
+ "<strong>NF</strong> (add rel=\"nofollow\") options for Quick Redirects, you "
647
+ "must have it enabled."
648
+ msgstr ""
649
+ "The <code>Use jQuery?</code> option is turned off in the settings.<br/>In "
650
+ "order to use <strong>NW</strong> (open in a new window) or "
651
+ "<strong>NF</strong> (add rel=\"nofollow\") options for Quick Redirects, you "
652
+ "must have it enabled."
653
+
654
+ #: ../page_post_redirect_plugin.php:1045 ../page_post_redirect_plugin.php:1050
655
+ msgid "hide this message"
656
+ msgstr "hide this message"
657
+
658
+ #: ../page_post_redirect_plugin.php:1049
659
+ msgid ""
660
+ "To use the <strong>NW</strong> (open in a new window) <strong>NF</strong> "
661
+ "(nofollow) options, check the appropriate option and update when adding "
662
+ "redirects. Then, any link in the page that has the request URL will be "
663
+ "updated with these options (as long as you have <code>Use jQuery?</code> "
664
+ "enabled in the plugin settings."
665
+ msgstr ""
666
+ "To use the <strong>NW</strong> (open in a new window) <strong>NF</strong> "
667
+ "(nofollow) options, check the appropriate option and update when adding "
668
+ "redirects. Then, any link in the page that has the request URL will be "
669
+ "updated with these options (as long as you have <code>Use jQuery?</code> "
670
+ "enabled in the plugin settings."
671
+
672
+ #: ../page_post_redirect_plugin.php:1053
673
+ msgid ""
674
+ "Quick Redirects are useful when you have links from an old site that now "
675
+ "come up 404 Not Found, and you need to have them redirect to a new location "
676
+ "on the current site - as long as the old site and the current site have the "
677
+ "same domain name. They are also helpful if you have an existing URL that you "
678
+ "need to send some place else and you don't want to create a Page or Post "
679
+ "just to use the individual Page/Post Redirect option."
680
+ msgstr ""
681
+ "Quick Redirects are useful when you have links from an old site that now "
682
+ "come up 404 Not Found, and you need to have them redirect to a new location "
683
+ "on the current site - as long as the old site and the current site have the "
684
+ "same domain name. They are also helpful if you have an existing URL that you "
685
+ "need to send some place else and you don't want to create a Page or Post "
686
+ "just to use the individual Page/Post Redirect option."
687
+
688
+ #: ../page_post_redirect_plugin.php:1054
689
+ msgid ""
690
+ "To add Quick Redirects, put the URL for the redirect in the <strong>Request "
691
+ "URL</strong> field, and the URL it should be redirected to in the "
692
+ "<strong>Destination URL</strong> field. To delete a redirect, click the "
693
+ "trash can at the end of that row. To edit a redirect, click the pencil edit "
694
+ "icon."
695
+ msgstr ""
696
+ "To add Quick Redirects, put the URL for the redirect in the <strong>Request "
697
+ "URL</strong> field, and the URL it should be redirected to in the "
698
+ "<strong>Destination URL</strong> field. To delete a redirect, click the "
699
+ "trash can at the end of that row. To edit a redirect, click the pencil edit "
700
+ "icon."
701
+
702
+ #: ../page_post_redirect_plugin.php:1055
703
+ msgid ""
704
+ "See 'HELP' in the upper right corner, for troubleshooting problems and "
705
+ "example redirects."
706
+ msgstr ""
707
+ "See 'HELP' in the upper right corner, for troubleshooting problems and "
708
+ "example redirects."
709
+
710
+ #: ../page_post_redirect_plugin.php:1061 ../page_post_redirect_plugin.php:1104
711
+ msgid "Add New Redirects"
712
+ msgstr "Add New Redirects"
713
+
714
+ #: ../page_post_redirect_plugin.php:1064 ../page_post_redirect_plugin.php:1113
715
+ msgid "Request URL"
716
+ msgstr "Request URL"
717
+
718
+ #: ../page_post_redirect_plugin.php:1066 ../page_post_redirect_plugin.php:1115
719
+ msgid "Destination URL"
720
+ msgstr "Destination URL"
721
+
722
+ # Stands for 'New Window'
723
+ #: ../page_post_redirect_plugin.php:1067 ../page_post_redirect_plugin.php:1116
724
+ msgid "NW"
725
+ msgstr "NW"
726
+
727
+ # Stands for 'No Follow'
728
+ #: ../page_post_redirect_plugin.php:1068 ../page_post_redirect_plugin.php:1117
729
+ msgid "NF"
730
+ msgstr "NF"
731
+
732
+ #: ../page_post_redirect_plugin.php:1076 ../page_post_redirect_plugin.php:1085 ..
733
+ #: page_post_redirect_plugin.php:1094 ../page_post_redirect_plugin.php:1126
734
+ msgid "open in a New Window"
735
+ msgstr "open in a New Window"
736
+
737
+ #: ../page_post_redirect_plugin.php:1077 ../page_post_redirect_plugin.php:1086 ..
738
+ #: page_post_redirect_plugin.php:1095 ../page_post_redirect_plugin.php:1127
739
+ msgid "add No Follow"
740
+ msgstr "add No Follow"
741
+
742
+ #: ../page_post_redirect_plugin.php:1100
743
+ msgid ""
744
+ "New Window(NW) and NoFollow(NF) functionality not available unless \"Use with "
745
+ "jQuery\" is set in the options."
746
+ msgstr ""
747
+ "New Window(NW) and NoFollow(NF) functionality not available unless \"Use with "
748
+ "jQuery\" is set in the options."
749
+
750
+ #: ../page_post_redirect_plugin.php:1110
751
+ msgid "Existing Redirects"
752
+ msgstr "Existing Redirects"
753
+
754
+ #: ../page_post_redirect_plugin.php:1128
755
+ msgid "Save"
756
+ msgstr "Save"
757
+
758
+ #: ../page_post_redirect_plugin.php:1129
759
+ msgid "Cancel"
760
+ msgstr "Cancel"
761
+
762
+ #: ../page_post_redirect_plugin.php:1172
763
+ msgid "Edit"
764
+ msgstr "Edit"
765
+
766
+ #: ../page_post_redirect_plugin.php:1173
767
+ msgid "Delete"
768
+ msgstr "Delete"
769
+
770
+ #: ../page_post_redirect_plugin.php:1325 ../page_post_redirect_plugin.php:1328
771
+ msgid "This option is not available at this time."
772
+ msgstr "This option is not available at this time."
773
+
774
+ #: ../page_post_redirect_plugin.php:1325
775
+ msgid "Quick Page/Post Redirect Plugin - Export"
776
+ msgstr "Quick Page/Post Redirect Plugin - Export"
777
+
778
+ #: ../page_post_redirect_plugin.php:1328
779
+ msgid "Quick Page/Post Redirect Plugin - Import"
780
+ msgstr "Quick Page/Post Redirect Plugin - Import"
781
+
782
+ #: ../page_post_redirect_plugin.php:1370
783
+ msgid ""
784
+ "An error occured during the file upload. Please fix your server "
785
+ "configuration and retry."
786
+ msgstr ""
787
+ "An error occured during the file upload. Please fix your server "
788
+ "configuration and retry."
789
+
790
+ #: ../page_post_redirect_plugin.php:1370 ../page_post_redirect_plugin.php:1432
791
+ msgid "SERVER ERROR - Could Not Load"
792
+ msgstr "SERVER ERROR - Could Not Load"
793
+
794
+ #: ../page_post_redirect_plugin.php:1412 ../page_post_redirect_plugin.php:1418
795
+ msgid ""
796
+ "This does not look like a Quick Page Post Redirect file - it is possibly "
797
+ "damaged or corrupt."
798
+ msgstr ""
799
+ "This does not look like a Quick Page Post Redirect file - it is possibly "
800
+ "damaged or corrupt."
801
+
802
+ #: ../page_post_redirect_plugin.php:1412 ../page_post_redirect_plugin.php:1418 ..
803
+ #: page_post_redirect_plugin.php:1446
804
+ msgid "ERROR - Not a valid File"
805
+ msgstr "ERROR - Not a valid File"
806
+
807
+ #: ../page_post_redirect_plugin.php:1432
808
+ msgid ""
809
+ "An error occured during the file upload. It might me that the file is too "
810
+ "large or you do not have the premissions to write to the temporary upload "
811
+ "directory. Please fix your server configuration and retry."
812
+ msgstr ""
813
+ "An error occured during the file upload. It might me that the file is too "
814
+ "large or you do not have the premissions to write to the temporary upload "
815
+ "directory. Please fix your server configuration and retry."
816
+
817
+ #: ../page_post_redirect_plugin.php:1446
818
+ msgid ""
819
+ "This does not look like the file is in the correct format - it is possibly "
820
+ "damaged or corrupt.<br/>Be sure the redirects are 1 per line and the "
821
+ "redirect and destination are seperated by a PIPE (|), COMMA (,) or a TAB."
822
+ msgstr ""
823
+ "This does not look like the file is in the correct format - it is possibly "
824
+ "damaged or corrupt.<br/>Be sure the redirects are 1 per line and the "
825
+ "redirect and destination are seperated by a PIPE (|), COMMA (,) or a TAB."
826
+
827
+ #: ../page_post_redirect_plugin.php:1481
828
+ msgid ""
829
+ "It does not look like there are any valid items to import - check the file "
830
+ "and try again."
831
+ msgstr ""
832
+ "It does not look like there are any valid items to import - check the file "
833
+ "and try again."
834
+
835
+ #: ../page_post_redirect_plugin.php:1481
836
+ msgid "ERROR - No Valid items to add."
837
+ msgstr "ERROR - No Valid items to add."
838
+
839
+ #: ../page_post_redirect_plugin.php:1527 ../page_post_redirect_plugin.php:1535
840
+ msgid "Donate"
841
+ msgstr "Donate"
842
+
843
+ #: ../page_post_redirect_plugin.php:1533 ../page_post_redirect_plugin.php:1588
844
+ msgid "Quick Redirects"
845
+ msgstr "Quick Redirects"
846
+
847
+ #: ../page_post_redirect_plugin.php:1534
848
+ msgid "FAQ"
849
+ msgstr "FAQ"
850
+
851
+ #: ../page_post_redirect_plugin.php:1553
852
+ msgid "Make Redirect <strong>Active</strong>."
853
+ msgstr "Make Redirect <strong>Active</strong>."
854
+
855
+ #: ../page_post_redirect_plugin.php:1554
856
+ msgid "Open redirect link in a <strong>new window.</strong>"
857
+ msgstr "Open redirect link in a <strong>new window.</strong>"
858
+
859
+ #: ../page_post_redirect_plugin.php:1555
860
+ msgid "Add <strong>rel=\"nofollow\"</strong> to redirect link."
861
+ msgstr "Add <strong>rel=\"nofollow\"</strong> to redirect link."
862
+
863
+ #: ../page_post_redirect_plugin.php:1556
864
+ msgid "<strong>Show</strong> the Redirect URL instead of original URL."
865
+ msgstr "<strong>Show</strong> the Redirect URL instead of original URL."
866
+
867
+ #: ../page_post_redirect_plugin.php:1558
868
+ msgid "Redirect URL:"
869
+ msgstr "Redirect URL:"
870
+
871
+ #: ../page_post_redirect_plugin.php:1560
872
+ msgid "Type of Redirect:"
873
+ msgstr "Type of Redirect:"
874
+
875
+ #: ../page_post_redirect_plugin.php:1582
876
+ msgid "Permanent"
877
+ msgstr "Permanent"
878
+
879
+ #: ../page_post_redirect_plugin.php:1583 ../page_post_redirect_plugin.php:1584
880
+ msgid "Temporary"
881
+ msgstr "Temporary"
882
+
883
+ #: ../page_post_redirect_plugin.php:1585
884
+ msgid "Meta Redirect"
885
+ msgstr "Meta Redirect"
886
+
887
+ #: ../page_post_redirect_plugin.php:1586
888
+ msgid "Default is 302 (Temporary Redirect)."
889
+ msgstr "Default is 302 (Temporary Redirect)."
890
+
891
+ #: ../page_post_redirect_plugin.php:1588
892
+ msgid ""
893
+ "<strong>NOTE:</strong> For a Page or Post (or Custom Post) Redirect to work, "
894
+ "it may need to be published first and then saved again as a Draft. If you do "
895
+ "not already have a page/post created you can add a 'Quick' redirect using the"
896
+ msgstr ""
897
+ "<strong>NOTE:</strong> For a Page or Post (or Custom Post) Redirect to work, "
898
+ "it may need to be published first and then saved again as a Draft. If you do "
899
+ "not already have a page/post created you can add a 'Quick' redirect using the"
900
+
901
+ #: ../page_post_redirect_plugin.php:1588
902
+ msgid "method."
903
+ msgstr "method."
lang/quick-pagepost-redirect-plugin-es_MX.mo ADDED
Binary file
lang/quick-pagepost-redirect-plugin-es_MX.po ADDED
@@ -0,0 +1,828 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Quick Page/Post Redirect Plugin\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: Fri Jun 19 2015 23:42:16 GMT-0400 (Eastern Daylight Time)\n"
6
+ "PO-Revision-Date: Sun Jul 05 2015 18:36:58 GMT-0400 (Eastern Daylight Time)\n"
7
+ "Last-Translator: dfischer <admin@fischercreativemedia.com>\n"
8
+ "Language-Team: \n"
9
+ "Language: Spanish (Mexico)\n"
10
+ "Plural-Forms: nplurals=2; plural=n != 1\n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-Basepath: .\n"
16
+ "X-Poedit-SearchPath-0: ..\n"
17
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
18
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
19
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
20
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
21
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
22
+ "X-Loco-Target-Locale: es_MX\n"
23
+ "X-Generator: Loco - https://localise.biz/"
24
+
25
+ #: ../page_post_redirect_plugin.php:209
26
+ msgid "New Layout of Existing Redirects"
27
+ msgstr ""
28
+
29
+ #: ../page_post_redirect_plugin.php:210
30
+ msgid ""
31
+ "The existing <strong>Quick Redirects</strong> are now laid out in a list "
32
+ "format instead of form fields. When you have a lot of Redirects, this helps "
33
+ "elminiate the \"max_input_vars\" configuration issue where redirects were not "
34
+ "saving correctly."
35
+ msgstr ""
36
+
37
+ #: ../page_post_redirect_plugin.php:211
38
+ msgid "To edit an exisitng redirect, click the pencil icon"
39
+ msgstr ""
40
+
41
+ #: ../page_post_redirect_plugin.php:211
42
+ msgid "and the row will become editable. Click the trash can icon"
43
+ msgstr ""
44
+
45
+ #: ../page_post_redirect_plugin.php:211
46
+ msgid "and the redirect will be deleted. Click the trash can icon"
47
+ msgstr ""
48
+
49
+ #: ../page_post_redirect_plugin.php:223
50
+ msgid "New Option to Use jQuery"
51
+ msgstr ""
52
+
53
+ #: ../page_post_redirect_plugin.php:224
54
+ msgid ""
55
+ "To increase the effectiveness of the plugin's ability to add new window and "
56
+ "nofollow functionality, you can use the jQuery option."
57
+ msgstr ""
58
+
59
+ #: ../page_post_redirect_plugin.php:225
60
+ msgid ""
61
+ "This adds JavaScript/jQuery scripting to check the links in the output HTML "
62
+ "of the page and add the correct functionality if needed."
63
+ msgstr ""
64
+
65
+ #: ../page_post_redirect_plugin.php:226
66
+ msgid "If you experience JavaScript/jQuery conflicts, try turning this option off."
67
+ msgstr ""
68
+
69
+ #: ../page_post_redirect_plugin.php:327
70
+ msgid "Quick Redirects Updated."
71
+ msgstr "Redirecciones Quick Actualización.\n"
72
+
73
+ #: ../page_post_redirect_plugin.php:432
74
+ msgid "Redirect"
75
+ msgstr "Redirigir"
76
+
77
+ # Plugin Name
78
+ #: ../page_post_redirect_plugin.php:494
79
+ msgid "Quick Page/Post Redirect"
80
+ msgstr ""
81
+
82
+ #: ../page_post_redirect_plugin.php:505
83
+ msgid ""
84
+ "Redirect could not be saved as a redirect already exists with the same "
85
+ "Request URL."
86
+ msgstr ""
87
+
88
+ #: ../page_post_redirect_plugin.php:505
89
+ msgid "Are you sure you want to delete this redirect?"
90
+ msgstr ""
91
+
92
+ # JavaScript message
93
+ #: ../page_post_redirect_plugin.php:505
94
+ msgid "Error Saving Redirect\\nTry refreshing the page and trying again."
95
+ msgstr ""
96
+
97
+ # JavaScript Message
98
+ #: ../page_post_redirect_plugin.php:505
99
+ msgid "File type not allowed,\\nAllowed file type: *.txt"
100
+ msgstr ""
101
+
102
+ #: ../page_post_redirect_plugin.php:505
103
+ msgid "Please add at least one redirect before submitting form"
104
+ msgstr ""
105
+
106
+ #: ../page_post_redirect_plugin.php:573
107
+ msgid "Quick Page/Post Redirect FAQs/Help"
108
+ msgstr ""
109
+ "Quick Page/Post Redirect \n"
110
+ "Preguntas Frecuentes/Ayuda"
111
+
112
+ #: ../page_post_redirect_plugin.php:574
113
+ msgid ""
114
+ "The FAQS are now on a feed that can be updated on the fly. If you have a "
115
+ "question and don't see an answer, please send an email to <a href=\"mailto:"
116
+ "plugins@fischercreativemedia.com\">plugins@fischercreativemedia.com</a> and "
117
+ "ask your question. If it is relevant to the plugin, it will be added to the "
118
+ "FAQs feed so it will show up here. Please be sure to include the plugin you "
119
+ "are asking a question about (Quick Page/Post Redirect Plugin) and any other "
120
+ "information like your WordPress version and examples if the plugin is not "
121
+ "working correctly for you. THANKS!"
122
+ msgstr ""
123
+
124
+ #: ../page_post_redirect_plugin.php:592
125
+ msgid "Table of Contents"
126
+ msgstr ""
127
+
128
+ #: ../page_post_redirect_plugin.php:596
129
+ msgid "Questions/Answers"
130
+ msgstr ""
131
+
132
+ #: ../page_post_redirect_plugin.php:606
133
+ msgid "Quick Page Post Redirect Summary"
134
+ msgstr ""
135
+
136
+ #: ../page_post_redirect_plugin.php:607
137
+ msgid "This is a summary of Individual &amp; Quick 301 Redirects."
138
+ msgstr ""
139
+
140
+ #: ../page_post_redirect_plugin.php:615
141
+ msgid "Summary"
142
+ msgstr ""
143
+
144
+ #: ../page_post_redirect_plugin.php:618
145
+ msgid "Acitve Override is on - All Redirects are OFF!"
146
+ msgstr ""
147
+
148
+ #: ../page_post_redirect_plugin.php:619
149
+ msgid "No Follow Override is on!"
150
+ msgstr ""
151
+
152
+ #: ../page_post_redirect_plugin.php:620
153
+ msgid "New Window Override is on!"
154
+ msgstr ""
155
+
156
+ #: ../page_post_redirect_plugin.php:621
157
+ msgid "Rewrite Override is on!"
158
+ msgstr ""
159
+
160
+ #: ../page_post_redirect_plugin.php:625
161
+ msgid "ID"
162
+ msgstr ""
163
+
164
+ #: ../page_post_redirect_plugin.php:626
165
+ msgid "post type"
166
+ msgstr ""
167
+
168
+ #: ../page_post_redirect_plugin.php:627
169
+ msgid "active"
170
+ msgstr ""
171
+
172
+ #: ../page_post_redirect_plugin.php:628
173
+ msgid "no follow"
174
+ msgstr ""
175
+
176
+ #: ../page_post_redirect_plugin.php:629
177
+ msgid "new window"
178
+ msgstr ""
179
+
180
+ #: ../page_post_redirect_plugin.php:630
181
+ msgid "type"
182
+ msgstr ""
183
+
184
+ #: ../page_post_redirect_plugin.php:631
185
+ msgid "rewrite"
186
+ msgstr ""
187
+
188
+ #: ../page_post_redirect_plugin.php:632
189
+ msgid "original URL"
190
+ msgstr ""
191
+
192
+ #: ../page_post_redirect_plugin.php:633
193
+ msgid "redirect to URL"
194
+ msgstr ""
195
+
196
+ #: ../page_post_redirect_plugin.php:726 ../page_post_redirect_plugin.php:820
197
+ msgid "Quick Redirects Imported & Replaced."
198
+ msgstr ""
199
+
200
+ #: ../page_post_redirect_plugin.php:727 ../page_post_redirect_plugin.php:821
201
+ msgid "Quick Redirects Imported & Added to Existing Redirects."
202
+ msgstr ""
203
+
204
+ #: ../page_post_redirect_plugin.php:730
205
+ msgid "Import/Export Redirects"
206
+ msgstr ""
207
+
208
+ #: ../page_post_redirect_plugin.php:746 ../page_post_redirect_plugin.php:843
209
+ msgid ""
210
+ "If you enjoy or find any of our plugins useful, please donate a few dollars "
211
+ "to help with future development and updates. We thank you in advance."
212
+ msgstr ""
213
+
214
+ #: ../page_post_redirect_plugin.php:752 ../page_post_redirect_plugin.php:1019
215
+ msgid "Export Redirects"
216
+ msgstr ""
217
+
218
+ #: ../page_post_redirect_plugin.php:753
219
+ msgid ""
220
+ "You should back-up your redirect regularly in case something happens to the "
221
+ "database."
222
+ msgstr ""
223
+
224
+ #: ../page_post_redirect_plugin.php:754
225
+ msgid ""
226
+ "Please use the below buttons to make a back-up as either encoded "
227
+ "(unreadable) or pipe separated"
228
+ msgstr ""
229
+
230
+ #: ../page_post_redirect_plugin.php:755
231
+ msgid "EXPORT all Quick Redirects (Encoded)"
232
+ msgstr ""
233
+
234
+ #: ../page_post_redirect_plugin.php:756 ../page_post_redirect_plugin.php:769
235
+ msgid "OR"
236
+ msgstr ""
237
+
238
+ #: ../page_post_redirect_plugin.php:757
239
+ msgid "EXPORT all Quick Redirects (PIPE Separated)"
240
+ msgstr ""
241
+
242
+ #: ../page_post_redirect_plugin.php:764 ../page_post_redirect_plugin.php:1024
243
+ msgid "Import Redirects"
244
+ msgstr ""
245
+
246
+ #: ../page_post_redirect_plugin.php:765
247
+ msgid ""
248
+ "If you want to replace or restore redirects from a file, use the \"Restore\" "
249
+ "option."
250
+ msgstr ""
251
+
252
+ #: ../page_post_redirect_plugin.php:766
253
+ msgid ""
254
+ "To add new redirects in bulk use the \"Add To\" option - NOTE: to Add To "
255
+ "redirects, the file must be pipe dilimited "
256
+ msgstr ""
257
+
258
+ #: ../page_post_redirect_plugin.php:768
259
+ msgid "RESTORE Saved Quick Redirects"
260
+ msgstr ""
261
+
262
+ #: ../page_post_redirect_plugin.php:770
263
+ msgid "ADD TO Quick Redirects"
264
+ msgstr ""
265
+
266
+ #: ../page_post_redirect_plugin.php:774 ../page_post_redirect_plugin.php:795
267
+ msgid "Select Quick Redirects file to import:"
268
+ msgstr ""
269
+
270
+ #: ../page_post_redirect_plugin.php:785
271
+ msgid ""
272
+ "The import file should be a text file with one rediect per line, PIPE "
273
+ "separated, in this format:"
274
+ msgstr ""
275
+
276
+ # these are column titles.
277
+ #: ../page_post_redirect_plugin.php:787
278
+ msgid "redirect|destination|newwindow|nofollow"
279
+ msgstr ""
280
+
281
+ #: ../page_post_redirect_plugin.php:788
282
+ msgid "for Example:"
283
+ msgstr ""
284
+
285
+ # translate this to same as source
286
+ #: ../page_post_redirect_plugin.php:790
287
+ msgid "/old-location.htm|http://some.com/new-destination/|0|1"
288
+ msgstr ""
289
+
290
+ #: ../page_post_redirect_plugin.php:791
291
+ msgid "/dontate/|http://example.com/destination/|1|1"
292
+ msgstr ""
293
+
294
+ #: ../page_post_redirect_plugin.php:793
295
+ msgid "IMPORTANT:"
296
+ msgstr ""
297
+
298
+ #: ../page_post_redirect_plugin.php:793
299
+ msgid ""
300
+ "Make Sure any destination URLs that have a PIPE in the querystring data are "
301
+ "URL encoded before adding them!"
302
+ msgstr ""
303
+
304
+ #: ../page_post_redirect_plugin.php:800
305
+ msgid "ADD TO Current Quick Redirects"
306
+ msgstr ""
307
+
308
+ #: ../page_post_redirect_plugin.php:818
309
+ msgid "All Quick Redirects deleted from database."
310
+ msgstr ""
311
+
312
+ #: ../page_post_redirect_plugin.php:819
313
+ msgid "All Regular Redirects deleted from database."
314
+ msgstr ""
315
+
316
+ #: ../page_post_redirect_plugin.php:825
317
+ msgid "Quick Page Post Redirect Options"
318
+ msgstr ""
319
+
320
+ #: ../page_post_redirect_plugin.php:854
321
+ msgid "Basic Settings"
322
+ msgstr ""
323
+
324
+ # Custom Post Types text here should match WordPress' name for Custom Post Types.
325
+ #: ../page_post_redirect_plugin.php:857
326
+ msgid "Use with Custom Post Types?"
327
+ msgstr ""
328
+
329
+ #: ../page_post_redirect_plugin.php:861
330
+ msgid "Hide"
331
+ msgstr ""
332
+
333
+ #: ../page_post_redirect_plugin.php:861
334
+ msgid "meta box for following Post Types:"
335
+ msgstr ""
336
+
337
+ #: ../page_post_redirect_plugin.php:883
338
+ msgid "Show Column Headers?"
339
+ msgstr ""
340
+
341
+ #: ../page_post_redirect_plugin.php:884
342
+ msgid "Show Columns on list pages for set up redirects."
343
+ msgstr ""
344
+
345
+ #: ../page_post_redirect_plugin.php:887
346
+ msgid "Use jQuery?"
347
+ msgstr ""
348
+
349
+ #: ../page_post_redirect_plugin.php:888
350
+ msgid ""
351
+ "Increases effectiveness of plugin. If you have a jQuery conflict, try "
352
+ "turning this off."
353
+ msgstr ""
354
+
355
+ #: ../page_post_redirect_plugin.php:888
356
+ msgid "Uses jQuery to add the \"New Window\" and \"No Follow\" attributes to links."
357
+ msgstr ""
358
+
359
+ #: ../page_post_redirect_plugin.php:891
360
+ msgid "Meta Refresh Time (in seconds):"
361
+ msgstr ""
362
+
363
+ #: ../page_post_redirect_plugin.php:892
364
+ msgid "Only needed for Meta Refresh. 0=default (instant)"
365
+ msgstr ""
366
+
367
+ #: ../page_post_redirect_plugin.php:895
368
+ msgid "Meta Refresh Message:"
369
+ msgstr ""
370
+
371
+ #: ../page_post_redirect_plugin.php:896
372
+ msgid "Default is blank. Message to display while waiting for refresh."
373
+ msgstr ""
374
+
375
+ #: ../page_post_redirect_plugin.php:902
376
+ msgid "Master Override Options"
377
+ msgstr ""
378
+
379
+ #: ../page_post_redirect_plugin.php:902
380
+ msgid ""
381
+ "<strong>NOTE: </strong>The below settings will override all individual "
382
+ "settings."
383
+ msgstr ""
384
+
385
+ #: ../page_post_redirect_plugin.php:905
386
+ msgid "Turn OFF all Redirects?"
387
+ msgstr ""
388
+
389
+ #: ../page_post_redirect_plugin.php:906
390
+ msgid "Basically the same as having no redirects set up."
391
+ msgstr ""
392
+
393
+ # keep code text untranslated.
394
+ #: ../page_post_redirect_plugin.php:909
395
+ msgid "Make ALL Redirects have <code>rel=\"nofollow\"</code>?"
396
+ msgstr ""
397
+
398
+ #: ../page_post_redirect_plugin.php:910 ../page_post_redirect_plugin.php:914
399
+ msgid "Requires \"use jQuery\" option to work with Quick Redirects."
400
+ msgstr ""
401
+
402
+ #: ../page_post_redirect_plugin.php:913
403
+ msgid "Make ALL Redirects open in a New Window?"
404
+ msgstr ""
405
+
406
+ #: ../page_post_redirect_plugin.php:917
407
+ msgid "Make ALL Redirects this type:"
408
+ msgstr ""
409
+
410
+ #: ../page_post_redirect_plugin.php:919
411
+ msgid "Use Individual Settings"
412
+ msgstr ""
413
+
414
+ #: ../page_post_redirect_plugin.php:920
415
+ msgid "Permanant Redirect"
416
+ msgstr ""
417
+
418
+ #: ../page_post_redirect_plugin.php:921 ../page_post_redirect_plugin.php:922
419
+ msgid "Temporary Redirect"
420
+ msgstr ""
421
+
422
+ #: ../page_post_redirect_plugin.php:923
423
+ msgid "Meta Refresh Redirect"
424
+ msgstr ""
425
+
426
+ #: ../page_post_redirect_plugin.php:925
427
+ msgid "(Quick 301 Redirects will always be 301)"
428
+ msgstr ""
429
+
430
+ #: ../page_post_redirect_plugin.php:929
431
+ msgid "Make ALL redirects Case Sensitive?"
432
+ msgstr ""
433
+
434
+ #: ../page_post_redirect_plugin.php:930
435
+ msgid "Makes URLs CaSe SensiTivE - i.e., /somepage/ DOES NOT EQUAL /SoMEpaGe/"
436
+ msgstr ""
437
+
438
+ #: ../page_post_redirect_plugin.php:933
439
+ msgid "Make ALL Redirects go to this URL:"
440
+ msgstr ""
441
+
442
+ #: ../page_post_redirect_plugin.php:934
443
+ msgid "Use full URL including <code>http://</code>."
444
+ msgstr ""
445
+
446
+ #: ../page_post_redirect_plugin.php:937
447
+ msgid "Rewrite ALL Redirects URLs to Show in LINK?"
448
+ msgstr ""
449
+
450
+ #: ../page_post_redirect_plugin.php:938
451
+ msgid ""
452
+ "Makes link show redirect URL instead of the original URL. Will not work on "
453
+ "Quick Redirects at this time."
454
+ msgstr ""
455
+
456
+ #: ../page_post_redirect_plugin.php:944
457
+ msgid "Plugin Clean Up"
458
+ msgstr ""
459
+
460
+ #: ../page_post_redirect_plugin.php:944
461
+ msgid ""
462
+ "<strong>NOTE: </strong>This will DELETE all redirects - so be careful with "
463
+ "this."
464
+ msgstr ""
465
+
466
+ #: ../page_post_redirect_plugin.php:947
467
+ msgid "Delete Redirects?"
468
+ msgstr ""
469
+
470
+ #: ../page_post_redirect_plugin.php:948
471
+ msgid "Delete All Individual Redirects"
472
+ msgstr ""
473
+
474
+ #: ../page_post_redirect_plugin.php:948
475
+ msgid "Are you sure you want to PERMANENTLY Delets ALL Regular Redirects?"
476
+ msgstr ""
477
+
478
+ #: ../page_post_redirect_plugin.php:948
479
+ msgid "Delete all Quick Redirects"
480
+ msgstr ""
481
+
482
+ #: ../page_post_redirect_plugin.php:948
483
+ msgid "Are you sure you want to PERMANENTLY Delets ALL Quick Redirects?"
484
+ msgstr ""
485
+
486
+ #: ../page_post_redirect_plugin.php:948
487
+ msgid ""
488
+ "Individual Redirects are redirects set up on individual pages or posts when "
489
+ "in the editing screen. The Quick Redirects are set up on the Quick Redirects "
490
+ "page."
491
+ msgstr ""
492
+
493
+ #: ../page_post_redirect_plugin.php:951
494
+ msgid "Save Changes"
495
+ msgstr "Guardar Cambios"
496
+
497
+ #: ../page_post_redirect_plugin.php:991
498
+ msgid "Examples"
499
+ msgstr ""
500
+
501
+ #: ../page_post_redirect_plugin.php:996
502
+ msgid "Troubleshooting"
503
+ msgstr "Solución De Problemas"
504
+
505
+ #: ../page_post_redirect_plugin.php:999
506
+ msgid "IMPORTANT TROUBLESHOOTING NOTES:"
507
+ msgstr "NOTAS IMPORTANTES PROBLEMAS:"
508
+
509
+ #: ../page_post_redirect_plugin.php:1001
510
+ msgid ""
511
+ "At this time the New Window (NW) and No Follow (NF) features will not work "
512
+ "for Quick Redirects."
513
+ msgstr ""
514
+ "En este momento la ventana Nuevo (NW) y no seguir (NF) características no "
515
+ "funcionarán para redirecciones rápidos."
516
+
517
+ #: ../page_post_redirect_plugin.php:1002
518
+ msgid ""
519
+ "It is recommended that the <b>Request URL</b> be relative to the ROOT "
520
+ "directory and contain the <code>/</code> at the beginning."
521
+ msgstr ""
522
+ "Se recomienda que el <b> Solicitud URL </ b> ser relativa al directorio raíz "
523
+ "y contendrá el <code> / </ code> al principio."
524
+
525
+ #: ../page_post_redirect_plugin.php:1003
526
+ msgid ""
527
+ "If you do use the domain name in the Request URL field, make sure it matches "
528
+ "your site's domain style and protocol. For example, if your site uses \"www\" "
529
+ "in front of your domain name, be sure to include it. if your site uses "
530
+ "<code>https://</code>, use it as the protocol. Our best guess is that your "
531
+ "domain and protocol are"
532
+ msgstr ""
533
+ "Si utiliza el nombre de dominio en el campo URL de solicitud, asegúrese de "
534
+ "que coincide con el estilo de dominio de su sitio y el protocolo. Por "
535
+ "ejemplo, si su sitio utiliza \"www\" delante de su nombre de dominio, "
536
+ "asegúrese de incluirlo. si su sitio utiliza <code>https: //</ code>, lo "
537
+ "utilizan como protocolo. Nuestra mejor estimación es que su dominio y "
538
+ "protocolo son"
539
+
540
+ #: ../page_post_redirect_plugin.php:1004
541
+ msgid ""
542
+ "If you are having issues with the link not redirecting on a SSL site with "
543
+ "mixed SSL (meaning links can be either SSL or non SSL), try adding two "
544
+ "redirects, one with and one without the SSL protocol."
545
+ msgstr ""
546
+ "If you are having issues with the link not redirecting on a SSL site with "
547
+ "mixed SSL (meaning links can be either SSL or non SSL), try adding two "
548
+ "redirects, one with and one without the SSL protocol."
549
+
550
+ #: ../page_post_redirect_plugin.php:1005
551
+ msgid ""
552
+ "The <b>Destination</b> field can be any valid URL or relative path (from "
553
+ "root), for example"
554
+ msgstr ""
555
+ "El <b> Destino </ b> puede ser cualquier URL válida o ruta relativa (de "
556
+ "raíz), por ejemplo"
557
+
558
+ #: ../page_post_redirect_plugin.php:1006
559
+ msgid ""
560
+ "In order for NW (open in a new window) or NF (rel=\"nofollow\") options to "
561
+ "work with Quick Redirects, you need to have:"
562
+ msgstr ""
563
+
564
+ #: ../page_post_redirect_plugin.php:1008
565
+ msgid "\"Use jQuery?\" option selected in the settings page"
566
+ msgstr ""
567
+
568
+ #: ../page_post_redirect_plugin.php:1009
569
+ msgid ""
570
+ "A link that uses the request url SOMEWHERE in your site page - i.e., in a "
571
+ "menu, content, sidebar, etc."
572
+ msgstr ""
573
+
574
+ #: ../page_post_redirect_plugin.php:1010
575
+ msgid ""
576
+ "The open in a new window or nofollow settings will not happen if someone "
577
+ "just types the old link in the URL or if they come from a bookmark or link "
578
+ "outside your site - in essence, there needs to be a link that they click on "
579
+ "in your site so that the jQuery script can add the appropriate "
580
+ "<code>target</code> and <code>rel</code> properties to the link to make it "
581
+ "work."
582
+ msgstr ""
583
+
584
+ #: ../page_post_redirect_plugin.php:1020
585
+ msgid "You can export redirects in two formats - Encoded or Delimited."
586
+ msgstr ""
587
+
588
+ #: ../page_post_redirect_plugin.php:1033
589
+ msgid "Quick Redirects (301 Redirects)"
590
+ msgstr "Redirecciones Rápida (301 redirecciones)"
591
+
592
+ #: ../page_post_redirect_plugin.php:1044
593
+ msgid ""
594
+ "The <code>Use jQuery?</code> option is turned off in the settings.<br/>In "
595
+ "order to use <strong>NW</strong> (open in a new window) or "
596
+ "<strong>NF</strong> (add rel=\"nofollow\") options for Quick Redirects, you "
597
+ "must have it enabled."
598
+ msgstr ""
599
+
600
+ #: ../page_post_redirect_plugin.php:1045 ../page_post_redirect_plugin.php:1050
601
+ msgid "hide this message"
602
+ msgstr ""
603
+
604
+ #: ../page_post_redirect_plugin.php:1049
605
+ msgid ""
606
+ "To use the <strong>NW</strong> (open in a new window) <strong>NF</strong> "
607
+ "(nofollow) options, check the appropriate option and update when adding "
608
+ "redirects. Then, any link in the page that has the request URL will be "
609
+ "updated with these options (as long as you have <code>Use jQuery?</code> "
610
+ "enabled in the plugin settings."
611
+ msgstr ""
612
+
613
+ #: ../page_post_redirect_plugin.php:1053
614
+ msgid ""
615
+ "Quick Redirects are useful when you have links from an old site that now "
616
+ "come up 404 Not Found, and you need to have them redirect to a new location "
617
+ "on the current site - as long as the old site and the current site have the "
618
+ "same domain name. They are also helpful if you have an existing URL that you "
619
+ "need to send some place else and you don't want to create a Page or Post "
620
+ "just to use the individual Page/Post Redirect option."
621
+ msgstr ""
622
+ "Redirecciones rápidos son útiles cuando se tiene enlaces de un sitio antiguo "
623
+ "que ahora se presentan 404 Not Found, y hay que tenerlos redirigen a una "
624
+ "nueva ubicación en el sitio actual - siempre y cuando el antiguo sitio y el "
625
+ "sitio actual tiene el mismo dominio nombre. También son útiles si usted "
626
+ "tiene una URL existente que usted necesita enviar a otro lugar y no desea "
627
+ "crear una página o post sólo para utilizar la página de opción individual / "
628
+ "Publicar Remitir."
629
+
630
+ #: ../page_post_redirect_plugin.php:1054
631
+ msgid ""
632
+ "To add Quick Redirects, put the URL for the redirect in the <strong>Request "
633
+ "URL</strong> field, and the URL it should be redirected to in the "
634
+ "<strong>Destination URL</strong> field. To delete a redirect, click the "
635
+ "trash can at the end of that row. To edit a redirect, click the pencil edit "
636
+ "icon."
637
+ msgstr ""
638
+ "Para agregar redirecciones rápidos, poner la dirección URL de la redirección "
639
+ "en el <strong> Solicitud URL </ strong> y la dirección URL debe redirigido a "
640
+ "la <strong> URL de destino </ strong>. Para borrar una redirección, haga "
641
+ "clic en el bote de basura al final de la fila. Para editar una redirección, "
642
+ "haga clic en el icono del lápiz de edición."
643
+
644
+ #: ../page_post_redirect_plugin.php:1055
645
+ msgid ""
646
+ "See 'HELP' in the upper right corner, for troubleshooting problems and "
647
+ "example redirects."
648
+ msgstr ""
649
+ "Ver 'HELP' en la esquina superior derecha, para la resolución de problemas y "
650
+ "el ejemplo redirecciones."
651
+
652
+ #: ../page_post_redirect_plugin.php:1061 ../page_post_redirect_plugin.php:1104
653
+ msgid "Add New Redirects"
654
+ msgstr "Añadir nuevas redirecciones"
655
+
656
+ #: ../page_post_redirect_plugin.php:1064 ../page_post_redirect_plugin.php:1113
657
+ msgid "Request URL"
658
+ msgstr "Solicitud URL"
659
+
660
+ #: ../page_post_redirect_plugin.php:1066 ../page_post_redirect_plugin.php:1115
661
+ msgid "Destination URL"
662
+ msgstr "Destination URL"
663
+
664
+ # Stands for 'New Window'
665
+ #: ../page_post_redirect_plugin.php:1067 ../page_post_redirect_plugin.php:1116
666
+ msgid "NW"
667
+ msgstr "NW"
668
+
669
+ # Stands for 'No Follow'
670
+ #: ../page_post_redirect_plugin.php:1068 ../page_post_redirect_plugin.php:1117
671
+ msgid "NF"
672
+ msgstr "NF"
673
+
674
+ #: ../page_post_redirect_plugin.php:1076 ../page_post_redirect_plugin.php:1085 ..
675
+ #: page_post_redirect_plugin.php:1094 ../page_post_redirect_plugin.php:1126
676
+ msgid "open in a New Window"
677
+ msgstr "se abre en una nueva ventana"
678
+
679
+ #: ../page_post_redirect_plugin.php:1077 ../page_post_redirect_plugin.php:1086 ..
680
+ #: page_post_redirect_plugin.php:1095 ../page_post_redirect_plugin.php:1127
681
+ msgid "add No Follow"
682
+ msgstr "Sin añadir Siga"
683
+
684
+ #: ../page_post_redirect_plugin.php:1100
685
+ msgid ""
686
+ "New Window(NW) and NoFollow(NF) functionality not available unless \"Use with "
687
+ "jQuery\" is set in the options."
688
+ msgstr ""
689
+
690
+ #: ../page_post_redirect_plugin.php:1110
691
+ msgid "Existing Redirects"
692
+ msgstr "Redirecciones existentes"
693
+
694
+ #: ../page_post_redirect_plugin.php:1128
695
+ msgid "Save"
696
+ msgstr "Guardar"
697
+
698
+ #: ../page_post_redirect_plugin.php:1129
699
+ msgid "Cancel"
700
+ msgstr "Cancelar"
701
+
702
+ #: ../page_post_redirect_plugin.php:1172
703
+ msgid "Edit"
704
+ msgstr "Editar"
705
+
706
+ #: ../page_post_redirect_plugin.php:1173
707
+ msgid "Delete"
708
+ msgstr "Dorrar"
709
+
710
+ #: ../page_post_redirect_plugin.php:1325 ../page_post_redirect_plugin.php:1328
711
+ msgid "This option is not available at this time."
712
+ msgstr ""
713
+
714
+ #: ../page_post_redirect_plugin.php:1325
715
+ msgid "Quick Page/Post Redirect Plugin - Export"
716
+ msgstr ""
717
+
718
+ #: ../page_post_redirect_plugin.php:1328
719
+ msgid "Quick Page/Post Redirect Plugin - Import"
720
+ msgstr ""
721
+
722
+ #: ../page_post_redirect_plugin.php:1370
723
+ msgid ""
724
+ "An error occured during the file upload. Please fix your server "
725
+ "configuration and retry."
726
+ msgstr ""
727
+
728
+ #: ../page_post_redirect_plugin.php:1370 ../page_post_redirect_plugin.php:1432
729
+ msgid "SERVER ERROR - Could Not Load"
730
+ msgstr ""
731
+
732
+ #: ../page_post_redirect_plugin.php:1412 ../page_post_redirect_plugin.php:1418
733
+ msgid ""
734
+ "This does not look like a Quick Page Post Redirect file - it is possibly "
735
+ "damaged or corrupt."
736
+ msgstr ""
737
+
738
+ #: ../page_post_redirect_plugin.php:1412 ../page_post_redirect_plugin.php:1418 ..
739
+ #: page_post_redirect_plugin.php:1446
740
+ msgid "ERROR - Not a valid File"
741
+ msgstr ""
742
+
743
+ #: ../page_post_redirect_plugin.php:1432
744
+ msgid ""
745
+ "An error occured during the file upload. It might me that the file is too "
746
+ "large or you do not have the premissions to write to the temporary upload "
747
+ "directory. Please fix your server configuration and retry."
748
+ msgstr ""
749
+
750
+ #: ../page_post_redirect_plugin.php:1446
751
+ msgid ""
752
+ "This does not look like the file is in the correct format - it is possibly "
753
+ "damaged or corrupt.<br/>Be sure the redirects are 1 per line and the "
754
+ "redirect and destination are seperated by a PIPE (|), COMMA (,) or a TAB."
755
+ msgstr ""
756
+
757
+ #: ../page_post_redirect_plugin.php:1481
758
+ msgid ""
759
+ "It does not look like there are any valid items to import - check the file "
760
+ "and try again."
761
+ msgstr ""
762
+
763
+ #: ../page_post_redirect_plugin.php:1481
764
+ msgid "ERROR - No Valid items to add."
765
+ msgstr ""
766
+
767
+ #: ../page_post_redirect_plugin.php:1527 ../page_post_redirect_plugin.php:1535
768
+ msgid "Donate"
769
+ msgstr ""
770
+
771
+ #: ../page_post_redirect_plugin.php:1533 ../page_post_redirect_plugin.php:1588
772
+ msgid "Quick Redirects"
773
+ msgstr ""
774
+
775
+ #: ../page_post_redirect_plugin.php:1534
776
+ msgid "FAQ"
777
+ msgstr ""
778
+
779
+ #: ../page_post_redirect_plugin.php:1553
780
+ msgid "Make Redirect <strong>Active</strong>."
781
+ msgstr ""
782
+
783
+ #: ../page_post_redirect_plugin.php:1554
784
+ msgid "Open redirect link in a <strong>new window.</strong>"
785
+ msgstr ""
786
+
787
+ #: ../page_post_redirect_plugin.php:1555
788
+ msgid "Add <strong>rel=\"nofollow\"</strong> to redirect link."
789
+ msgstr ""
790
+
791
+ #: ../page_post_redirect_plugin.php:1556
792
+ msgid "<strong>Show</strong> the Redirect URL instead of original URL."
793
+ msgstr ""
794
+
795
+ #: ../page_post_redirect_plugin.php:1558
796
+ msgid "Redirect URL:"
797
+ msgstr ""
798
+
799
+ #: ../page_post_redirect_plugin.php:1560
800
+ msgid "Type of Redirect:"
801
+ msgstr ""
802
+
803
+ #: ../page_post_redirect_plugin.php:1582
804
+ msgid "Permanent"
805
+ msgstr ""
806
+
807
+ #: ../page_post_redirect_plugin.php:1583 ../page_post_redirect_plugin.php:1584
808
+ msgid "Temporary"
809
+ msgstr ""
810
+
811
+ #: ../page_post_redirect_plugin.php:1585
812
+ msgid "Meta Redirect"
813
+ msgstr ""
814
+
815
+ #: ../page_post_redirect_plugin.php:1586
816
+ msgid "Default is 302 (Temporary Redirect)."
817
+ msgstr ""
818
+
819
+ #: ../page_post_redirect_plugin.php:1588
820
+ msgid ""
821
+ "<strong>NOTE:</strong> For a Page or Post (or Custom Post) Redirect to work, "
822
+ "it may need to be published first and then saved again as a Draft. If you do "
823
+ "not already have a page/post created you can add a 'Quick' redirect using the"
824
+ msgstr ""
825
+
826
+ #: ../page_post_redirect_plugin.php:1588
827
+ msgid "method."
828
+ msgstr ""
lang/quick-pagepost-redirect-plugin.pot ADDED
@@ -0,0 +1,800 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Loco Gettext template
2
+ #, fuzzy
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Quick Page/Post Redirect Plugin\n"
6
+ "Report-Msgid-Bugs-To: \n"
7
+ "POT-Creation-Date: Fri Jun 19 2015 23:42:16 GMT-0400 (Eastern Daylight Time)\n"
8
+ "POT-Revision-Date: Sun Jul 05 2015 18:36:11 GMT-0400 (Eastern Daylight Time)\n"
9
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
10
+ "Last-Translator: dfischer <admin2@fischercreativemedia.com>\n"
11
+ "Language-Team: \n"
12
+ "Language: \n"
13
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "X-Poedit-SourceCharset: UTF-8\n"
18
+ "X-Poedit-Basepath: .\n"
19
+ "X-Poedit-SearchPath-0: ..\n"
20
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
21
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
22
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
23
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
24
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
25
+ "X-Loco-Target-Locale: en_US\n"
26
+ "X-Generator: Loco - https://localise.biz/"
27
+
28
+ #: ../page_post_redirect_plugin.php:209
29
+ msgid "New Layout of Existing Redirects"
30
+ msgstr ""
31
+
32
+ #: ../page_post_redirect_plugin.php:210
33
+ msgid ""
34
+ "The existing <strong>Quick Redirects</strong> are now laid out in a list "
35
+ "format instead of form fields. When you have a lot of Redirects, this helps "
36
+ "elminiate the \"max_input_vars\" configuration issue where redirects were not "
37
+ "saving correctly."
38
+ msgstr ""
39
+
40
+ #: ../page_post_redirect_plugin.php:211
41
+ msgid "To edit an exisitng redirect, click the pencil icon"
42
+ msgstr ""
43
+
44
+ #: ../page_post_redirect_plugin.php:211
45
+ msgid "and the row will become editable. Click the trash can icon"
46
+ msgstr ""
47
+
48
+ #: ../page_post_redirect_plugin.php:211
49
+ msgid "and the redirect will be deleted. Click the trash can icon"
50
+ msgstr ""
51
+
52
+ #: ../page_post_redirect_plugin.php:223
53
+ msgid "New Option to Use jQuery"
54
+ msgstr ""
55
+
56
+ #: ../page_post_redirect_plugin.php:224
57
+ msgid ""
58
+ "To increase the effectiveness of the plugin's ability to add new window and "
59
+ "nofollow functionality, you can use the jQuery option."
60
+ msgstr ""
61
+
62
+ #: ../page_post_redirect_plugin.php:225
63
+ msgid ""
64
+ "This adds JavaScript/jQuery scripting to check the links in the output HTML "
65
+ "of the page and add the correct functionality if needed."
66
+ msgstr ""
67
+
68
+ #: ../page_post_redirect_plugin.php:226
69
+ msgid "If you experience JavaScript/jQuery conflicts, try turning this option off."
70
+ msgstr ""
71
+
72
+ #: ../page_post_redirect_plugin.php:327
73
+ msgid "Quick Redirects Updated."
74
+ msgstr ""
75
+
76
+ #: ../page_post_redirect_plugin.php:432
77
+ msgid "Redirect"
78
+ msgstr ""
79
+
80
+ # Plugin Name
81
+ #: ../page_post_redirect_plugin.php:494
82
+ msgid "Quick Page/Post Redirect"
83
+ msgstr ""
84
+
85
+ #: ../page_post_redirect_plugin.php:505
86
+ msgid ""
87
+ "Redirect could not be saved as a redirect already exists with the same "
88
+ "Request URL."
89
+ msgstr ""
90
+
91
+ #: ../page_post_redirect_plugin.php:505
92
+ msgid "Are you sure you want to delete this redirect?"
93
+ msgstr ""
94
+
95
+ # JavaScript message
96
+ #: ../page_post_redirect_plugin.php:505
97
+ msgid "Error Saving Redirect\\nTry refreshing the page and trying again."
98
+ msgstr ""
99
+
100
+ # JavaScript Message
101
+ #: ../page_post_redirect_plugin.php:505
102
+ msgid "File type not allowed,\\nAllowed file type: *.txt"
103
+ msgstr ""
104
+
105
+ #: ../page_post_redirect_plugin.php:505
106
+ msgid "Please add at least one redirect before submitting form"
107
+ msgstr ""
108
+
109
+ #: ../page_post_redirect_plugin.php:573
110
+ msgid "Quick Page/Post Redirect FAQs/Help"
111
+ msgstr ""
112
+
113
+ #: ../page_post_redirect_plugin.php:574
114
+ msgid ""
115
+ "The FAQS are now on a feed that can be updated on the fly. If you have a "
116
+ "question and don't see an answer, please send an email to <a href=\"mailto:"
117
+ "plugins@fischercreativemedia.com\">plugins@fischercreativemedia.com</a> and "
118
+ "ask your question. If it is relevant to the plugin, it will be added to the "
119
+ "FAQs feed so it will show up here. Please be sure to include the plugin you "
120
+ "are asking a question about (Quick Page/Post Redirect Plugin) and any other "
121
+ "information like your WordPress version and examples if the plugin is not "
122
+ "working correctly for you. THANKS!"
123
+ msgstr ""
124
+
125
+ #: ../page_post_redirect_plugin.php:592
126
+ msgid "Table of Contents"
127
+ msgstr ""
128
+
129
+ #: ../page_post_redirect_plugin.php:596
130
+ msgid "Questions/Answers"
131
+ msgstr ""
132
+
133
+ #: ../page_post_redirect_plugin.php:606
134
+ msgid "Quick Page Post Redirect Summary"
135
+ msgstr ""
136
+
137
+ #: ../page_post_redirect_plugin.php:607
138
+ msgid "This is a summary of Individual &amp; Quick 301 Redirects."
139
+ msgstr ""
140
+
141
+ #: ../page_post_redirect_plugin.php:615
142
+ msgid "Summary"
143
+ msgstr ""
144
+
145
+ #: ../page_post_redirect_plugin.php:618
146
+ msgid "Acitve Override is on - All Redirects are OFF!"
147
+ msgstr ""
148
+
149
+ #: ../page_post_redirect_plugin.php:619
150
+ msgid "No Follow Override is on!"
151
+ msgstr ""
152
+
153
+ #: ../page_post_redirect_plugin.php:620
154
+ msgid "New Window Override is on!"
155
+ msgstr ""
156
+
157
+ #: ../page_post_redirect_plugin.php:621
158
+ msgid "Rewrite Override is on!"
159
+ msgstr ""
160
+
161
+ #: ../page_post_redirect_plugin.php:625
162
+ msgid "ID"
163
+ msgstr ""
164
+
165
+ #: ../page_post_redirect_plugin.php:626
166
+ msgid "post type"
167
+ msgstr ""
168
+
169
+ #: ../page_post_redirect_plugin.php:627
170
+ msgid "active"
171
+ msgstr ""
172
+
173
+ #: ../page_post_redirect_plugin.php:628
174
+ msgid "no follow"
175
+ msgstr ""
176
+
177
+ #: ../page_post_redirect_plugin.php:629
178
+ msgid "new window"
179
+ msgstr ""
180
+
181
+ #: ../page_post_redirect_plugin.php:630
182
+ msgid "type"
183
+ msgstr ""
184
+
185
+ #: ../page_post_redirect_plugin.php:631
186
+ msgid "rewrite"
187
+ msgstr ""
188
+
189
+ #: ../page_post_redirect_plugin.php:632
190
+ msgid "original URL"
191
+ msgstr ""
192
+
193
+ #: ../page_post_redirect_plugin.php:633
194
+ msgid "redirect to URL"
195
+ msgstr ""
196
+
197
+ #: ../page_post_redirect_plugin.php:726 ../page_post_redirect_plugin.php:820
198
+ msgid "Quick Redirects Imported & Replaced."
199
+ msgstr ""
200
+
201
+ #: ../page_post_redirect_plugin.php:727 ../page_post_redirect_plugin.php:821
202
+ msgid "Quick Redirects Imported & Added to Existing Redirects."
203
+ msgstr ""
204
+
205
+ #: ../page_post_redirect_plugin.php:730
206
+ msgid "Import/Export Redirects"
207
+ msgstr ""
208
+
209
+ #: ../page_post_redirect_plugin.php:746 ../page_post_redirect_plugin.php:843
210
+ msgid ""
211
+ "If you enjoy or find any of our plugins useful, please donate a few dollars "
212
+ "to help with future development and updates. We thank you in advance."
213
+ msgstr ""
214
+
215
+ #: ../page_post_redirect_plugin.php:752 ../page_post_redirect_plugin.php:1019
216
+ msgid "Export Redirects"
217
+ msgstr ""
218
+
219
+ #: ../page_post_redirect_plugin.php:753
220
+ msgid ""
221
+ "You should back-up your redirect regularly in case something happens to the "
222
+ "database."
223
+ msgstr ""
224
+
225
+ #: ../page_post_redirect_plugin.php:754
226
+ msgid ""
227
+ "Please use the below buttons to make a back-up as either encoded "
228
+ "(unreadable) or pipe separated"
229
+ msgstr ""
230
+
231
+ #: ../page_post_redirect_plugin.php:755
232
+ msgid "EXPORT all Quick Redirects (Encoded)"
233
+ msgstr ""
234
+
235
+ #: ../page_post_redirect_plugin.php:756 ../page_post_redirect_plugin.php:769
236
+ msgid "OR"
237
+ msgstr ""
238
+
239
+ #: ../page_post_redirect_plugin.php:757
240
+ msgid "EXPORT all Quick Redirects (PIPE Separated)"
241
+ msgstr ""
242
+
243
+ #: ../page_post_redirect_plugin.php:764 ../page_post_redirect_plugin.php:1024
244
+ msgid "Import Redirects"
245
+ msgstr ""
246
+
247
+ #: ../page_post_redirect_plugin.php:765
248
+ msgid ""
249
+ "If you want to replace or restore redirects from a file, use the \"Restore\" "
250
+ "option."
251
+ msgstr ""
252
+
253
+ #: ../page_post_redirect_plugin.php:766
254
+ msgid ""
255
+ "To add new redirects in bulk use the \"Add To\" option - NOTE: to Add To "
256
+ "redirects, the file must be pipe dilimited "
257
+ msgstr ""
258
+
259
+ #: ../page_post_redirect_plugin.php:768
260
+ msgid "RESTORE Saved Quick Redirects"
261
+ msgstr ""
262
+
263
+ #: ../page_post_redirect_plugin.php:770
264
+ msgid "ADD TO Quick Redirects"
265
+ msgstr ""
266
+
267
+ #: ../page_post_redirect_plugin.php:774 ../page_post_redirect_plugin.php:795
268
+ msgid "Select Quick Redirects file to import:"
269
+ msgstr ""
270
+
271
+ #: ../page_post_redirect_plugin.php:785
272
+ msgid ""
273
+ "The import file should be a text file with one rediect per line, PIPE "
274
+ "separated, in this format:"
275
+ msgstr ""
276
+
277
+ # these are column titles.
278
+ #: ../page_post_redirect_plugin.php:787
279
+ msgid "redirect|destination|newwindow|nofollow"
280
+ msgstr ""
281
+
282
+ #: ../page_post_redirect_plugin.php:788
283
+ msgid "for Example:"
284
+ msgstr ""
285
+
286
+ # translate this to same as source
287
+ #: ../page_post_redirect_plugin.php:790
288
+ msgid "/old-location.htm|http://some.com/new-destination/|0|1"
289
+ msgstr ""
290
+
291
+ #: ../page_post_redirect_plugin.php:791
292
+ msgid "/dontate/|http://example.com/destination/|1|1"
293
+ msgstr ""
294
+
295
+ #: ../page_post_redirect_plugin.php:793
296
+ msgid "IMPORTANT:"
297
+ msgstr ""
298
+
299
+ #: ../page_post_redirect_plugin.php:793
300
+ msgid ""
301
+ "Make Sure any destination URLs that have a PIPE in the querystring data are "
302
+ "URL encoded before adding them!"
303
+ msgstr ""
304
+
305
+ #: ../page_post_redirect_plugin.php:800
306
+ msgid "ADD TO Current Quick Redirects"
307
+ msgstr ""
308
+
309
+ #: ../page_post_redirect_plugin.php:818
310
+ msgid "All Quick Redirects deleted from database."
311
+ msgstr ""
312
+
313
+ #: ../page_post_redirect_plugin.php:819
314
+ msgid "All Regular Redirects deleted from database."
315
+ msgstr ""
316
+
317
+ #: ../page_post_redirect_plugin.php:825
318
+ msgid "Quick Page Post Redirect Options"
319
+ msgstr ""
320
+
321
+ #: ../page_post_redirect_plugin.php:854
322
+ msgid "Basic Settings"
323
+ msgstr ""
324
+
325
+ # Custom Post Types text here should match WordPress' name for Custom Post Types.
326
+ #: ../page_post_redirect_plugin.php:857
327
+ msgid "Use with Custom Post Types?"
328
+ msgstr ""
329
+
330
+ #: ../page_post_redirect_plugin.php:861
331
+ msgid "Hide"
332
+ msgstr ""
333
+
334
+ #: ../page_post_redirect_plugin.php:861
335
+ msgid "meta box for following Post Types:"
336
+ msgstr ""
337
+
338
+ #: ../page_post_redirect_plugin.php:883
339
+ msgid "Show Column Headers?"
340
+ msgstr ""
341
+
342
+ #: ../page_post_redirect_plugin.php:884
343
+ msgid "Show Columns on list pages for set up redirects."
344
+ msgstr ""
345
+
346
+ #: ../page_post_redirect_plugin.php:887
347
+ msgid "Use jQuery?"
348
+ msgstr ""
349
+
350
+ #: ../page_post_redirect_plugin.php:888
351
+ msgid ""
352
+ "Increases effectiveness of plugin. If you have a jQuery conflict, try "
353
+ "turning this off."
354
+ msgstr ""
355
+
356
+ #: ../page_post_redirect_plugin.php:888
357
+ msgid "Uses jQuery to add the \"New Window\" and \"No Follow\" attributes to links."
358
+ msgstr ""
359
+
360
+ #: ../page_post_redirect_plugin.php:891
361
+ msgid "Meta Refresh Time (in seconds):"
362
+ msgstr ""
363
+
364
+ #: ../page_post_redirect_plugin.php:892
365
+ msgid "Only needed for Meta Refresh. 0=default (instant)"
366
+ msgstr ""
367
+
368
+ #: ../page_post_redirect_plugin.php:895
369
+ msgid "Meta Refresh Message:"
370
+ msgstr ""
371
+
372
+ #: ../page_post_redirect_plugin.php:896
373
+ msgid "Default is blank. Message to display while waiting for refresh."
374
+ msgstr ""
375
+
376
+ #: ../page_post_redirect_plugin.php:902
377
+ msgid "Master Override Options"
378
+ msgstr ""
379
+
380
+ #: ../page_post_redirect_plugin.php:902
381
+ msgid ""
382
+ "<strong>NOTE: </strong>The below settings will override all individual "
383
+ "settings."
384
+ msgstr ""
385
+
386
+ #: ../page_post_redirect_plugin.php:905
387
+ msgid "Turn OFF all Redirects?"
388
+ msgstr ""
389
+
390
+ #: ../page_post_redirect_plugin.php:906
391
+ msgid "Basically the same as having no redirects set up."
392
+ msgstr ""
393
+
394
+ # keep code text untranslated.
395
+ #: ../page_post_redirect_plugin.php:909
396
+ msgid "Make ALL Redirects have <code>rel=\"nofollow\"</code>?"
397
+ msgstr ""
398
+
399
+ #: ../page_post_redirect_plugin.php:910 ../page_post_redirect_plugin.php:914
400
+ msgid "Requires \"use jQuery\" option to work with Quick Redirects."
401
+ msgstr ""
402
+
403
+ #: ../page_post_redirect_plugin.php:913
404
+ msgid "Make ALL Redirects open in a New Window?"
405
+ msgstr ""
406
+
407
+ #: ../page_post_redirect_plugin.php:917
408
+ msgid "Make ALL Redirects this type:"
409
+ msgstr ""
410
+
411
+ #: ../page_post_redirect_plugin.php:919
412
+ msgid "Use Individual Settings"
413
+ msgstr ""
414
+
415
+ #: ../page_post_redirect_plugin.php:920
416
+ msgid "Permanant Redirect"
417
+ msgstr ""
418
+
419
+ #: ../page_post_redirect_plugin.php:921 ../page_post_redirect_plugin.php:922
420
+ msgid "Temporary Redirect"
421
+ msgstr ""
422
+
423
+ #: ../page_post_redirect_plugin.php:923
424
+ msgid "Meta Refresh Redirect"
425
+ msgstr ""
426
+
427
+ #: ../page_post_redirect_plugin.php:925
428
+ msgid "(Quick 301 Redirects will always be 301)"
429
+ msgstr ""
430
+
431
+ #: ../page_post_redirect_plugin.php:929
432
+ msgid "Make ALL redirects Case Sensitive?"
433
+ msgstr ""
434
+
435
+ #: ../page_post_redirect_plugin.php:930
436
+ msgid "Makes URLs CaSe SensiTivE - i.e., /somepage/ DOES NOT EQUAL /SoMEpaGe/"
437
+ msgstr ""
438
+
439
+ #: ../page_post_redirect_plugin.php:933
440
+ msgid "Make ALL Redirects go to this URL:"
441
+ msgstr ""
442
+
443
+ #: ../page_post_redirect_plugin.php:934
444
+ msgid "Use full URL including <code>http://</code>."
445
+ msgstr ""
446
+
447
+ #: ../page_post_redirect_plugin.php:937
448
+ msgid "Rewrite ALL Redirects URLs to Show in LINK?"
449
+ msgstr ""
450
+
451
+ #: ../page_post_redirect_plugin.php:938
452
+ msgid ""
453
+ "Makes link show redirect URL instead of the original URL. Will not work on "
454
+ "Quick Redirects at this time."
455
+ msgstr ""
456
+
457
+ #: ../page_post_redirect_plugin.php:944
458
+ msgid "Plugin Clean Up"
459
+ msgstr ""
460
+
461
+ #: ../page_post_redirect_plugin.php:944
462
+ msgid ""
463
+ "<strong>NOTE: </strong>This will DELETE all redirects - so be careful with "
464
+ "this."
465
+ msgstr ""
466
+
467
+ #: ../page_post_redirect_plugin.php:947
468
+ msgid "Delete Redirects?"
469
+ msgstr ""
470
+
471
+ #: ../page_post_redirect_plugin.php:948
472
+ msgid "Delete All Individual Redirects"
473
+ msgstr ""
474
+
475
+ #: ../page_post_redirect_plugin.php:948
476
+ msgid "Are you sure you want to PERMANENTLY Delets ALL Regular Redirects?"
477
+ msgstr ""
478
+
479
+ #: ../page_post_redirect_plugin.php:948
480
+ msgid "Delete all Quick Redirects"
481
+ msgstr ""
482
+
483
+ #: ../page_post_redirect_plugin.php:948
484
+ msgid "Are you sure you want to PERMANENTLY Delets ALL Quick Redirects?"
485
+ msgstr ""
486
+
487
+ #: ../page_post_redirect_plugin.php:948
488
+ msgid ""
489
+ "Individual Redirects are redirects set up on individual pages or posts when "
490
+ "in the editing screen. The Quick Redirects are set up on the Quick Redirects "
491
+ "page."
492
+ msgstr ""
493
+
494
+ #: ../page_post_redirect_plugin.php:951
495
+ msgid "Save Changes"
496
+ msgstr ""
497
+
498
+ #: ../page_post_redirect_plugin.php:991
499
+ msgid "Examples"
500
+ msgstr ""
501
+
502
+ #: ../page_post_redirect_plugin.php:996
503
+ msgid "Troubleshooting"
504
+ msgstr ""
505
+
506
+ #: ../page_post_redirect_plugin.php:999
507
+ msgid "IMPORTANT TROUBLESHOOTING NOTES:"
508
+ msgstr ""
509
+
510
+ #: ../page_post_redirect_plugin.php:1001
511
+ msgid ""
512
+ "At this time the New Window (NW) and No Follow (NF) features will not work "
513
+ "for Quick Redirects."
514
+ msgstr ""
515
+
516
+ #: ../page_post_redirect_plugin.php:1002
517
+ msgid ""
518
+ "It is recommended that the <b>Request URL</b> be relative to the ROOT "
519
+ "directory and contain the <code>/</code> at the beginning."
520
+ msgstr ""
521
+
522
+ #: ../page_post_redirect_plugin.php:1003
523
+ msgid ""
524
+ "If you do use the domain name in the Request URL field, make sure it matches "
525
+ "your site's domain style and protocol. For example, if your site uses \"www\" "
526
+ "in front of your domain name, be sure to include it. if your site uses "
527
+ "<code>https://</code>, use it as the protocol. Our best guess is that your "
528
+ "domain and protocol are"
529
+ msgstr ""
530
+
531
+ #: ../page_post_redirect_plugin.php:1004
532
+ msgid ""
533
+ "If you are having issues with the link not redirecting on a SSL site with "
534
+ "mixed SSL (meaning links can be either SSL or non SSL), try adding two "
535
+ "redirects, one with and one without the SSL protocol."
536
+ msgstr ""
537
+
538
+ #: ../page_post_redirect_plugin.php:1005
539
+ msgid ""
540
+ "The <b>Destination</b> field can be any valid URL or relative path (from "
541
+ "root), for example"
542
+ msgstr ""
543
+
544
+ #: ../page_post_redirect_plugin.php:1006
545
+ msgid ""
546
+ "In order for NW (open in a new window) or NF (rel=\"nofollow\") options to "
547
+ "work with Quick Redirects, you need to have:"
548
+ msgstr ""
549
+
550
+ #: ../page_post_redirect_plugin.php:1008
551
+ msgid "\"Use jQuery?\" option selected in the settings page"
552
+ msgstr ""
553
+
554
+ #: ../page_post_redirect_plugin.php:1009
555
+ msgid ""
556
+ "A link that uses the request url SOMEWHERE in your site page - i.e., in a "
557
+ "menu, content, sidebar, etc."
558
+ msgstr ""
559
+
560
+ #: ../page_post_redirect_plugin.php:1010
561
+ msgid ""
562
+ "The open in a new window or nofollow settings will not happen if someone "
563
+ "just types the old link in the URL or if they come from a bookmark or link "
564
+ "outside your site - in essence, there needs to be a link that they click on "
565
+ "in your site so that the jQuery script can add the appropriate "
566
+ "<code>target</code> and <code>rel</code> properties to the link to make it "
567
+ "work."
568
+ msgstr ""
569
+
570
+ #: ../page_post_redirect_plugin.php:1020
571
+ msgid "You can export redirects in two formats - Encoded or Delimited."
572
+ msgstr ""
573
+
574
+ #: ../page_post_redirect_plugin.php:1033
575
+ msgid "Quick Redirects (301 Redirects)"
576
+ msgstr ""
577
+
578
+ #: ../page_post_redirect_plugin.php:1044
579
+ msgid ""
580
+ "The <code>Use jQuery?</code> option is turned off in the settings.<br/>In "
581
+ "order to use <strong>NW</strong> (open in a new window) or "
582
+ "<strong>NF</strong> (add rel=\"nofollow\") options for Quick Redirects, you "
583
+ "must have it enabled."
584
+ msgstr ""
585
+
586
+ #: ../page_post_redirect_plugin.php:1045 ../page_post_redirect_plugin.php:1050
587
+ msgid "hide this message"
588
+ msgstr ""
589
+
590
+ #: ../page_post_redirect_plugin.php:1049
591
+ msgid ""
592
+ "To use the <strong>NW</strong> (open in a new window) <strong>NF</strong> "
593
+ "(nofollow) options, check the appropriate option and update when adding "
594
+ "redirects. Then, any link in the page that has the request URL will be "
595
+ "updated with these options (as long as you have <code>Use jQuery?</code> "
596
+ "enabled in the plugin settings."
597
+ msgstr ""
598
+
599
+ #: ../page_post_redirect_plugin.php:1053
600
+ msgid ""
601
+ "Quick Redirects are useful when you have links from an old site that now "
602
+ "come up 404 Not Found, and you need to have them redirect to a new location "
603
+ "on the current site - as long as the old site and the current site have the "
604
+ "same domain name. They are also helpful if you have an existing URL that you "
605
+ "need to send some place else and you don't want to create a Page or Post "
606
+ "just to use the individual Page/Post Redirect option."
607
+ msgstr ""
608
+
609
+ #: ../page_post_redirect_plugin.php:1054
610
+ msgid ""
611
+ "To add Quick Redirects, put the URL for the redirect in the <strong>Request "
612
+ "URL</strong> field, and the URL it should be redirected to in the "
613
+ "<strong>Destination URL</strong> field. To delete a redirect, click the "
614
+ "trash can at the end of that row. To edit a redirect, click the pencil edit "
615
+ "icon."
616
+ msgstr ""
617
+
618
+ #: ../page_post_redirect_plugin.php:1055
619
+ msgid ""
620
+ "See 'HELP' in the upper right corner, for troubleshooting problems and "
621
+ "example redirects."
622
+ msgstr ""
623
+
624
+ #: ../page_post_redirect_plugin.php:1061 ../page_post_redirect_plugin.php:1104
625
+ msgid "Add New Redirects"
626
+ msgstr ""
627
+
628
+ #: ../page_post_redirect_plugin.php:1064 ../page_post_redirect_plugin.php:1113
629
+ msgid "Request URL"
630
+ msgstr ""
631
+
632
+ #: ../page_post_redirect_plugin.php:1066 ../page_post_redirect_plugin.php:1115
633
+ msgid "Destination URL"
634
+ msgstr ""
635
+
636
+ # Stands for 'New Window'
637
+ #: ../page_post_redirect_plugin.php:1067 ../page_post_redirect_plugin.php:1116
638
+ msgid "NW"
639
+ msgstr ""
640
+
641
+ # Stands for 'No Follow'
642
+ #: ../page_post_redirect_plugin.php:1068 ../page_post_redirect_plugin.php:1117
643
+ msgid "NF"
644
+ msgstr ""
645
+
646
+ #: ../page_post_redirect_plugin.php:1076 ../page_post_redirect_plugin.php:1085 ..
647
+ #: /page_post_redirect_plugin.php:1094 ../page_post_redirect_plugin.php:1126
648
+ msgid "open in a New Window"
649
+ msgstr ""
650
+
651
+ #: ../page_post_redirect_plugin.php:1077 ../page_post_redirect_plugin.php:1086 ..
652
+ #: /page_post_redirect_plugin.php:1095 ../page_post_redirect_plugin.php:1127
653
+ msgid "add No Follow"
654
+ msgstr ""
655
+
656
+ #: ../page_post_redirect_plugin.php:1100
657
+ msgid ""
658
+ "New Window(NW) and NoFollow(NF) functionality not available unless \"Use with "
659
+ "jQuery\" is set in the options."
660
+ msgstr ""
661
+
662
+ #: ../page_post_redirect_plugin.php:1110
663
+ msgid "Existing Redirects"
664
+ msgstr ""
665
+
666
+ #: ../page_post_redirect_plugin.php:1128
667
+ msgid "Save"
668
+ msgstr ""
669
+
670
+ #: ../page_post_redirect_plugin.php:1129
671
+ msgid "Cancel"
672
+ msgstr ""
673
+
674
+ #: ../page_post_redirect_plugin.php:1172
675
+ msgid "Edit"
676
+ msgstr ""
677
+
678
+ #: ../page_post_redirect_plugin.php:1173
679
+ msgid "Delete"
680
+ msgstr ""
681
+
682
+ #: ../page_post_redirect_plugin.php:1325 ../page_post_redirect_plugin.php:1328
683
+ msgid "This option is not available at this time."
684
+ msgstr ""
685
+
686
+ #: ../page_post_redirect_plugin.php:1325
687
+ msgid "Quick Page/Post Redirect Plugin - Export"
688
+ msgstr ""
689
+
690
+ #: ../page_post_redirect_plugin.php:1328
691
+ msgid "Quick Page/Post Redirect Plugin - Import"
692
+ msgstr ""
693
+
694
+ #: ../page_post_redirect_plugin.php:1370
695
+ msgid ""
696
+ "An error occured during the file upload. Please fix your server "
697
+ "configuration and retry."
698
+ msgstr ""
699
+
700
+ #: ../page_post_redirect_plugin.php:1370 ../page_post_redirect_plugin.php:1432
701
+ msgid "SERVER ERROR - Could Not Load"
702
+ msgstr ""
703
+
704
+ #: ../page_post_redirect_plugin.php:1412 ../page_post_redirect_plugin.php:1418
705
+ msgid ""
706
+ "This does not look like a Quick Page Post Redirect file - it is possibly "
707
+ "damaged or corrupt."
708
+ msgstr ""
709
+
710
+ #: ../page_post_redirect_plugin.php:1412 ../page_post_redirect_plugin.php:1418 ..
711
+ #: /page_post_redirect_plugin.php:1446
712
+ msgid "ERROR - Not a valid File"
713
+ msgstr ""
714
+
715
+ #: ../page_post_redirect_plugin.php:1432
716
+ msgid ""
717
+ "An error occured during the file upload. It might me that the file is too "
718
+ "large or you do not have the premissions to write to the temporary upload "
719
+ "directory. Please fix your server configuration and retry."
720
+ msgstr ""
721
+
722
+ #: ../page_post_redirect_plugin.php:1446
723
+ msgid ""
724
+ "This does not look like the file is in the correct format - it is possibly "
725
+ "damaged or corrupt.<br/>Be sure the redirects are 1 per line and the "
726
+ "redirect and destination are seperated by a PIPE (|), COMMA (,) or a TAB."
727
+ msgstr ""
728
+
729
+ #: ../page_post_redirect_plugin.php:1481
730
+ msgid ""
731
+ "It does not look like there are any valid items to import - check the file "
732
+ "and try again."
733
+ msgstr ""
734
+
735
+ #: ../page_post_redirect_plugin.php:1481
736
+ msgid "ERROR - No Valid items to add."
737
+ msgstr ""
738
+
739
+ #: ../page_post_redirect_plugin.php:1527 ../page_post_redirect_plugin.php:1535
740
+ msgid "Donate"
741
+ msgstr ""
742
+
743
+ #: ../page_post_redirect_plugin.php:1533 ../page_post_redirect_plugin.php:1588
744
+ msgid "Quick Redirects"
745
+ msgstr ""
746
+
747
+ #: ../page_post_redirect_plugin.php:1534
748
+ msgid "FAQ"
749
+ msgstr ""
750
+
751
+ #: ../page_post_redirect_plugin.php:1553
752
+ msgid "Make Redirect <strong>Active</strong>."
753
+ msgstr ""
754
+
755
+ #: ../page_post_redirect_plugin.php:1554
756
+ msgid "Open redirect link in a <strong>new window.</strong>"
757
+ msgstr ""
758
+
759
+ #: ../page_post_redirect_plugin.php:1555
760
+ msgid "Add <strong>rel=\"nofollow\"</strong> to redirect link."
761
+ msgstr ""
762
+
763
+ #: ../page_post_redirect_plugin.php:1556
764
+ msgid "<strong>Show</strong> the Redirect URL instead of original URL."
765
+ msgstr ""
766
+
767
+ #: ../page_post_redirect_plugin.php:1558
768
+ msgid "Redirect URL:"
769
+ msgstr ""
770
+
771
+ #: ../page_post_redirect_plugin.php:1560
772
+ msgid "Type of Redirect:"
773
+ msgstr ""
774
+
775
+ #: ../page_post_redirect_plugin.php:1582
776
+ msgid "Permanent"
777
+ msgstr ""
778
+
779
+ #: ../page_post_redirect_plugin.php:1583 ../page_post_redirect_plugin.php:1584
780
+ msgid "Temporary"
781
+ msgstr ""
782
+
783
+ #: ../page_post_redirect_plugin.php:1585
784
+ msgid "Meta Redirect"
785
+ msgstr ""
786
+
787
+ #: ../page_post_redirect_plugin.php:1586
788
+ msgid "Default is 302 (Temporary Redirect)."
789
+ msgstr ""
790
+
791
+ #: ../page_post_redirect_plugin.php:1588
792
+ msgid ""
793
+ "<strong>NOTE:</strong> For a Page or Post (or Custom Post) Redirect to work, "
794
+ "it may need to be published first and then saved again as a Draft. If you do "
795
+ "not already have a page/post created you can add a 'Quick' redirect using the"
796
+ msgstr ""
797
+
798
+ #: ../page_post_redirect_plugin.php:1588
799
+ msgid "method."
800
+ msgstr ""
page_post_redirect_plugin.php CHANGED
@@ -6,11 +6,13 @@ Description: Redirect Pages, Posts or Custom Post Types to another location quic
6
  Author: Don Fischer
7
  Author URI: http://www.fischercreativemedia.com/
8
  Donate link: http://www.fischercreativemedia.com/donations/
9
- Version: 5.0.6
 
 
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
13
- * Copyright (C) 2009-2014 Donald J. Fischer <dfischer [at] fischercreativemedia [dot] com>
14
  *
15
  * This program is free software; you can redistribute it and/or
16
  * modify it under the terms of the [GNU General Public License](http://wordpress.org/about/gpl/)
@@ -26,63 +28,19 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
26
  * along with this program; if not, see [GNU General Public Licenses](http://www.gnu.org/licenses/),
27
  * or write to the Free Software Foundation, Inc., 51 Franklin Street,
28
  * Fifth Floor, Boston, MA 02110-1301, USA.
29
-
30
- ==========
31
- You can use the following action hooks with this plugin:
32
-
33
- *** Quick Rediects function: use to take over redirect
34
- add_action('qppr_redirect','some_callback_function',10,2);
35
- arg 1. is Redirect URL
36
- arg 2. is Redirect Type
37
- *******************************
38
-
39
- *** Page/Post Redirects function: use to take over redirect
40
- add_action('qppr_do_redirect','some_callback_function2',10,2);
41
- arg 1. is Redirect URL
42
- arg 2. is Redirect Type
43
- *******************************
44
-
45
- *** Meta Redirect Action: Used for Meta Redirect Page Headers (so you can add meta tag)
46
- add_action('ppr_meta_head_hook','some_callback',10,3);
47
- arg 1. URL site
48
- arg 2. Meta Redirect Time in Seconds
49
- arg 3. Meta Message to display
50
- Example:
51
- add_action('ppr_meta_head_hook','override_ppr_metahead',10,3);
52
- function override_ppr_metahead($refresh_url='',$refresh_secs=0,$messages=''){
53
- echo '<meta http-equiv="refresh" content="'.$refresh_secs.'; URL='.$refresh_url.'" />'."\n";
54
- echo '<div id="ppr_custom_message">'. $messages.'</div>'."\n";
55
- return;
56
- }
57
- *******************************
58
-
59
- *** Meta Redirect Filter: Used for Meta Redirect Page Headers (so you can add meta and message, etc.)
60
- add_filter('ppr_meta_head_hook_filter','some_callback2',10,2);
61
- arg 1. Meta Tag (fully generated)
62
- arg 2. Page HTML Message (wrapped in a <div> tag)
63
- Example:
64
- add_filter('ppr_meta_head_hook_filter','override_ppr_metahead_new');
65
- function override_ppr_metahead_new($meta_tag='',$meta_message=''){
66
- $meta = $meta_tag;
67
- $function = create_function('$content', 'return \'<div id="ppr_custom_message">sample message override</div>\';');
68
- $function2 = create_function('$title', 'return \'sample message override TITLE\';');
69
- add_filter('get_content',$function,100,1);
70
- add_filter('get_title',$function2,100,1);
71
- return $meta;
72
- }
73
- *******************************
74
  */
 
75
  global $newqppr, $redirect_plugin;
76
  start_ppr_class();
77
- if (!function_exists('esc_attr')) { // For WordPress < 2.8 function compatibility
78
- function esc_attr($attr){return attribute_escape( $attr );}
79
- function esc_url($url){return clean_url( $url );}
80
- }
81
 
82
  //=======================================
83
- // Main Redirect Class.
84
  //=======================================
85
  class quick_page_post_reds {
 
86
  public $ppr_nofollow;
87
  public $ppr_newindow;
88
  public $ppr_url;
@@ -108,26 +66,25 @@ class quick_page_post_reds {
108
  public $pprmeta_seconds;
109
  public $pprmeta_message;
110
  public $quickppr_redirectsmeta;
111
- public $quickppr_jquerycache;
112
  public $pproverride_casesensitive;
113
  public $ppruse_jquery;
114
  public $pprptypes_ok;
115
 
116
  function __construct() {
117
- $this->ppr_curr_version = '5.0.6';
118
  $this->ppr_nofollow = array();
119
  $this->ppr_newindow = array();
120
  $this->ppr_url = array();
121
  $this->ppr_url_rewrite = array();
122
  $this->thepprversion = get_option( 'ppr_version');
123
  $this->thepprmeta = get_option( 'ppr_meta_clean');
124
- $this->quickppr_redirects = get_option( 'quickppr_redirects');
125
- $this->quickppr_redirectsmeta = get_option('quickppr_redirects_meta');
126
  $this->homelink = get_option( 'home');
127
  $this->pproverride_nofollow = get_option( 'ppr_override-nofollow' );
128
  $this->pproverride_newwin = get_option( 'ppr_override-newwindow' );
129
  $this->ppruse_jquery = get_option( 'ppr_use-jquery' );
130
- $this->pprptypes_ok = array();
131
  $this->pproverride_type = get_option( 'ppr_override-redirect-type' );
132
  $this->pproverride_active = get_option( 'ppr_override-active' );
133
  $this->pproverride_URL = get_option( 'ppr_override-URL' );
@@ -138,58 +95,410 @@ class quick_page_post_reds {
138
  $this->adminlink = admin_url('/', 'admin');
139
  $this->fcmlink = 'http://www.fischercreativemedia.com/plugins';
140
  $this->ppr_metaurl = '';
141
- $this->quickppr_jquerycache = ''; //get_option( 'qppr_jQuery_cache' );
142
  $this->updatemsg = '';
 
143
  if($this->pprmeta_seconds==''){$this->pprmeta_seconds='0';}
144
 
145
  //these are for all the time - even if there are overrides
146
- add_action( 'init', array( $this,'ppr_init_check_version'), 1 ); // checks version of plugin in DB and updates if needed.
147
- add_action( 'init', array( $this,'ppr_parse_request_new') ); // parse query vars
148
- add_action( 'save_post', array( $this,'ppr_save_metadata'), 11, 2 ); // save the custom fields
149
- add_action( 'wp', array( $this, 'ppr_parse_request') ); // parse query vars
150
- add_action( 'admin_menu', array( $this,'ppr_add_menu' ) ); // add the menu items needed
151
- add_action( 'admin_menu', array( $this,'ppr_add_metabox' ) ); // add the metaboxes where needed
152
- add_action( 'plugin_action_links_' . plugin_basename(__FILE__), array($this,'ppr_filter_plugin_actions') );
153
- add_filter( 'query_vars', array( $this,'ppr_queryhook' ) );
154
- add_filter( 'plugin_row_meta', array( $this,'ppr_filter_plugin_links' ), 10, 2 );
155
- add_action( 'admin_enqueue_scripts' , array( $this,'qppr_admin_scripts' ) );
156
- //add_filter( 'wp_feed_cache_transient_lifetime',array($this,'ppr_wp_feed_options',10, 2));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
 
158
- if( $this->pproverride_active!='1' && !is_admin() ){ // don't run these if override active is set
159
- add_action( 'init', array( $this, 'redirect' ), 1 ); // add the 301 redirect action, high priority
160
- add_action( 'init', array( $this, 'redirect_post_type' ), 1 ); // add the normal redirect action, high priority
161
- add_action( 'template_redirect', array( $this, 'ppr_do_redirect' ), 1, 2); // do the redirects
162
- add_filter( 'wp_get_nav_menu_items', array( $this, 'ppr_new_nav_menu_fix' ), 1, 1 );
163
- add_filter( 'wp_list_pages', array( $this, 'ppr_fix_targetsandrels' ) );
164
- add_filter( 'page_link', array( $this, 'ppr_filter_page_links' ), 20, 2 );
165
- add_filter( 'post_link', array( $this, 'ppr_filter_page_links'), 20, 2 );
166
- add_filter( 'post_type_link', array( $this, 'ppr_filter_page_links' ), 20, 2 );
167
- add_filter( 'get_permalink', array( $this, 'ppr_filter_links' ), 20, 2 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  }
169
- add_action('admin_init', array($this,'save_quick_redirects_fields'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  }
171
  function save_quick_redirects_fields(){
172
  if( isset( $_POST['submit_301'] ) ) {
173
- if(check_admin_referer( 'add_qppr_redirects' )){
174
- $this->quickppr_redirects = $this->save_redirects( $_POST['quickppr_redirects'] );
175
- $this->updatemsg ='Quick Redirects Updated.';
176
  }
177
  } //if submitted and verified, process the data
178
  }
179
- function ppr_add_menu(){
180
- add_menu_page( 'Redirect Options', 'Redirect Options', 'administrator', 'redirect-options', array($this,'ppr_settings_page'),plugins_url( 'settings-16-icon.png' , __FILE__));
181
- add_submenu_page( 'redirect-options', 'Quick Redirects', 'Quick Redirects', 'manage_options', 'redirect-updates', array($this,'ppr_options_page') );
182
- add_submenu_page( 'redirect-options', 'Redirect Summary', 'Redirect Summary', 'manage_options', 'redirect-summary', array($this,'ppr_summary_page') );
183
- add_submenu_page( 'redirect-options', 'FAQs/Help', 'FAQs/Help', 'manage_options', 'redirect-faqs', array($this,'ppr_faq_page') );
184
- add_action( 'admin_init', array($this,'register_pprsettings') );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  function qppr_admin_scripts($hook){
187
- if(in_array($hook, array('edit.php','post.php'))){
188
- wp_enqueue_script( 'qppr_admin_meta_script', plugins_url('/qppr_admin_script.js', __FILE__ ) , array('jquery'),'5.0.6');
189
- wp_enqueue_style( 'qppr_admin_meta_style', plugins_url('/qppr_admin_style.css', __FILE__ ) , null ,'5.0.6' );
 
 
 
190
  }
191
  return;
192
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  function register_pprsettings() {
194
  register_setting( 'ppr-settings-group', 'ppr_use-custom-post-types' );
195
  register_setting( 'ppr-settings-group', 'ppr_override-nofollow' );
@@ -203,12 +512,13 @@ class quick_page_post_reds {
203
  register_setting( 'ppr-settings-group', 'ppr_use-jquery' );
204
  register_setting( 'ppr-settings-group', 'ppr_qpprptypeok' );
205
  register_setting( 'ppr-settings-group', 'ppr_override-casesensitive' );
 
206
  }
207
-
208
- function ppr_wp_feed_options($cache,$url){
209
- if($url == "http://www.fischercreativemedia.com/?feed=qppr_faqs"){
 
210
  $cache = '1';
211
- }
212
  return $cache;
213
  }
214
 
@@ -216,27 +526,16 @@ class quick_page_post_reds {
216
  include_once(ABSPATH . WPINC . '/feed.php');
217
  echo '
218
  <div class="wrap">
219
- <style type="text/css">
220
- .faq-item{border-bottom:1px solid #CCC;padding-bottom:10px;margin-bottom:10px;}
221
- .faq-item span.qa{color: #21759B;display: block;float: left;font-family: serif;font-size: 17px;font-weight: bold;margin-left: 0;margin-right: 5px;}
222
- h3.qa{color: #21759B;margin:0px 0px 10px 0;font-family: serif;font-size: 17px;font-weight: bold;}
223
- .faq-item .qa-content p:first-child{margin-top:0;}
224
- .qppr-faq-links {border-bottom: 1px solid #CCCCCC;list-style-position: inside;margin:10px 0 15px 35px;}
225
- .qppr-faq-answers{list-style-position: inside;margin:10px 0 15px 35px;}
226
- .toplink{text-align:left;}
227
- .qa-content div > code{background: none repeat scroll 0 0 #EFEFEF;border: 1px solid #CCCCCC;display: block;margin-left: 35px;overflow-y: auto;padding: 10px 20px;white-space: nowrap;width: 90%;}
228
- </style>
229
- <div class="icon32" style="background: url('. plugins_url( "settings-icon.png" , __FILE__ ) . ') no-repeat transparent;"><br/></div>
230
- <h2>Quick Page/Post Redirect FAQs/Help</h2>
231
- <div align="left"><p>The FAQS are now on a feed that can be updated on the fly. If you have a question and don\'t see an answer, please send an email to <a href="mailto:plugins@fischercreativemedia.com">plugins@fischercreativemedia.com</a> and ask your question. If it is relevant to the plugin, it will be added to the FAQs feed so it will show up here. Please be sure to include the plugin you are asking a question about (Quick Page/Post Redirect Plugin) and any other information like your WordPress version and examples if the plugin is not working correctly for you. THANKS!</p>
232
  <hr noshade color="#C0C0C0" size="1" />
233
  ';
234
- $rss = fetch_feed('http://www.fischercreativemedia.com/?feed=qppr_faqs');
235
  $linkfaq = array();
236
  $linkcontent = array();
237
  if (!is_wp_error( $rss ) ) :
238
- $maxitems = $rss->get_item_quantity(100);
239
- $rss_items = $rss->get_items(0, $maxitems);
240
  endif;
241
  $aqr = 0;
242
  if ($maxitems != 0){
@@ -246,57 +545,50 @@ class quick_page_post_reds {
246
  $linkcontent[] = '<li class="faq-item"><a name="faq-'.$aqr.'"></a><h3 class="qa"><span class="qa">Q. </span>'.esc_html( $item->get_title() ).'</h3><div class="qa-content"><span class="qa answer">A. </span>'.$item->get_content().'</div><div class="toplink"><a href="#faq-top">top &uarr;</a></li>';
247
  endforeach;
248
  }
249
- echo '<a name="faq-top"></a><h2>Table of Contents</h2>';
250
  echo '<ol class="qppr-faq-links">';
251
- echo implode("\n",$linkfaq);
252
  echo '</ol>';
253
- echo '<h2>Questions/Answers</h2>';
254
  echo '<ul class="qppr-faq-answers">';
255
- echo implode("\n",$linkcontent);
256
  echo '</ul>';
257
  echo '
258
  </div>
259
  </div>';
260
  }
261
  function ppr_summary_page() {?>
262
- <div class="wrap">
263
- <style type="text/css">
264
- .ppr-acor{background:#FF0000;display:block;color:#FFFFFF;}
265
- .ppr-nfor{background:#FFAAAA;display:block;}
266
- .ppr-nwor{background:#FF9933;display:block;}
267
- .ppr-rrlor{background:#FFFF66;display:block;}
268
- .pprdonate{padding:5px;border:1px solid #dadada;font-family:tahoma, arial, helvetica, sans-serif;font-size:12px;float:right;position:absolute;top:25px;right:5px;width:250px;text-align:center;}
269
- .qform-table td{padding:2px !important;border:1px solid #cccccc;}
270
- .qform-table .headrow td{font-weight:bold;}
271
- .qform-table .onrow td{background-color:#eaeaea;}
272
- .qform-table .offrow td{background-color:#ffffff;}</style>
273
- <div class="icon32" style="<?php echo 'background: url('.plugins_url( 'settings-icon.png' , __FILE__ ).') no-repeat transparent;';?>"><br></div>
274
- <h2>Quick Page Post Redirect Summary</h2>
275
- <p>This is a summary of Individual &amp; Quick 301 Redirects.</p><br/>
276
- <?php if($this->updatemsg!=''){?><div class="updated settings-error" id="setting-error-settings_updated"><p><strong><?php echo $this->updatemsg;?></strong></p></div><?php } ?>
277
- <?php $this->updatemsg ='';?>
278
- <h2 style="font-size:20px;">Summary</h2>
279
- <div align="left">
280
- <?php
281
- if($this->pproverride_active =='1'){echo '<div class="ppr-acor" style="margin:1px 0;width: 250px;font-weight: bold;padding: 2px;">Acitve Override is on - All Redirects are OFF!</div>';}
282
- if($this->pproverride_nofollow =='1'){echo '<div class="ppr-nfor" style="margin:1px 0;width: 200px;font-weight: bold;padding: 2px;">No Follow Override is on!</div>';}
283
- if($this->pproverride_newwin =='1'){echo '<div class="ppr-nwor" style="margin:1px 0;width: 200px;font-weight: bold;padding: 2px;">New Window Override is on!</div>';}
284
- if($this->pproverride_rewrite =='1'){echo '<div class="ppr-rrlor" style="margin:1px 0;width: 200px;font-weight: bold;padding: 2px;">Rewrite Override is on!</div>';}
285
  ?>
286
- <table class="form-table qform-table" width="100%">
287
- <tr valign="top" class="headrow">
288
- <td width="50" align="left">ID</td>
289
- <td width="75" align="left">post type</td>
290
- <td width="65" align="center">active</td>
291
- <td width="65" align="center">no follow</td>
292
- <td width="65" align="center">new win</td>
293
- <td width="60" align="center">type</td>
294
- <td width="50" align="center">rewrite</td>
295
- <td align="left">original URL</td>
296
- <td align="left">redirect to URL</td>
297
-
298
- </tr>
299
- <?php
300
  $tempReportArray = array();
301
  $tempa = array();
302
  $tempQTReportArray = array();
@@ -307,10 +599,10 @@ class quick_page_post_reds {
307
  $qr_newwindow = $this->quickppr_redirectsmeta[$key]['newwindow'];
308
  if($qr_nofollow ==''){$qr_nofollow = '0';}
309
  if($qr_newwindow ==''){$qr_newwindow = '0';}
310
- if($this->pproverride_nofollow == '1'){$qr_nofollow = '<span class="ppr-nfor">1</span>';}
311
- if($this->pproverride_newwin == '1'){$qr_newwindow= '<span class="ppr-nwor">1</span>';}
312
- if($this->pproverride_rewrite == '1'){$qrtrewrit= '<span class="ppr-rrlor">1</span>';$qrtredURL = '<span class="ppr-rrlor">'.$this->pproverride_URL.'</span>';}else{$qrtrewrit = 'N/A';$qrtredURL =$redir;}
313
- if($this->pproverride_active =='1'){$qrtactive = '<span class="ppr-acor">0</span>';}else{$qrtactive= 1;}
314
 
315
  $tempReportArray[] = array(
316
  '_pprredirect_active' => $qrtactive,
@@ -326,7 +618,7 @@ class quick_page_post_reds {
326
  }
327
  }
328
  if(!empty($this->ppr_all_redir_array)){
329
- foreach($this->ppr_all_redir_array as $key=>$result){
330
  $tempa['id']= $key;
331
  $tempa['post_type'] = get_post_type( $key );
332
  if(count($result)>0){
@@ -364,344 +656,477 @@ class quick_page_post_reds {
364
  }
365
  if($pclass == 'offrow'){$pclass = 'onrow';}else{$pclass = 'offrow';}
366
  if($tredURL == 'http://www.example.com' || $tredURL == '<span class="ppr-rrlor">http://www.example.com</span>'){$tredURL='<strong>N/A - redirection will not occur</strong>';}
367
- ?>
368
- <tr valign="top" class="<?php echo $pclass;?>">
369
- <td width="50" align="left"><?php echo $tpostid;?></td>
370
- <td width="75" align="left"><?php echo $tpotype;?></td>
371
- <td width="65" align="center"><?php echo $tactive;?></td>
372
- <td width="65" align="center"><?php echo $tnofoll;?></td>
373
- <td width="65" align="center"><?php echo $tnewwin;?></td>
374
- <td width="60" align="center"><?php echo $tretype;?></td>
375
- <td width="50" align="center"><?php echo $trewrit;?></td>
376
- <td align="left"><?php echo $toriurl;?></td>
377
- <td align="left"><?php echo $tredURL;?></td>
378
- </tr>
379
- <?php }
380
  }
381
  ?>
382
- </table>
383
- </div>
384
- </div>
385
- <?php
386
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
387
 
388
  function ppr_settings_page() {
389
  if(isset($_GET['update'])){
390
- if($_GET['update']=='3'){$this->updatemsg ='All Quick Redirects deleted from database.';}
391
- if($_GET['update']=='2'){$this->updatemsg ='All Regular Redirects deleted from database.';}
392
- if($_GET['update']=='4'){$this->updatemsg ='Quick Redirects Imported & Replaced.';}
393
- if($_GET['update']=='5'){$this->updatemsg ='Quick Redirects Imported & Added to Existing Redirects.';}
394
  }
395
  ?>
396
- <div class="wrap" style="position:relative;">
397
- <style type="text/css">
398
- .qppr-posttypes{overflow: hidden;}
399
- .qppr-ptype{float: left; width: auto;}
400
- .qpprform label {float:left;display:block;width:290px;margin-left:15px;}
401
- .qpprform .submit{clear:both;}
402
- .qpprform span{font-size:11px;color:#21759B;display:inline-block;margin-left:15px;}
403
- .pprdonate{border: 1px solid #DADADA;font-family: tahoma,arial,helvetica,sans-serif;font-size: 12px;overflow: hidden;padding: 5px;position: absolute;right: 0;text-align: center;top: 0;width: 160px;}
404
- .pprdonate form{display:block;}
405
- .settings-error{display:inline-block;width:70%;}
406
- .ppr-type-name{display:inline-block;margin:0 25px 0 2px;}
407
- </style>
408
- <script type="text/javascript">
409
- jQuery(document).ready(function() {
410
- jQuery("#qppr_import_qr_button").click(function(event){
411
- jQuery('#qppr_addto_form').css({'display':'none'});
412
- if(jQuery('#qppr_import_form').css('display')=='block'){
413
- jQuery('#qppr_import_form').css({'display':'none'});
414
- }else{
415
- jQuery('#qppr_import_form').css({'display':'block'});
416
- }
417
- event.preventDefault();
418
- });
419
- jQuery("#qppr_addto_qr_button").click(function(event){
420
- jQuery('#qppr_import_form').css({'display':'none'});
421
- if(jQuery('#qppr_addto_form').css('display')=='block'){
422
- jQuery('#qppr_addto_form').css({'display':'none'});
423
- }else{
424
- jQuery('#qppr_addto_form').css({'display':'block'});
425
- }
426
- event.preventDefault();
427
- });
428
- jQuery("#import_redirects_add_qppr").click(function(event){
429
- if(jQuery("[name|=qppr_file_add]").attr('value')==''){
430
- alert('select a file');
431
- event.preventDefault();
432
- return false;
433
- }
434
- });
435
- jQuery("#import_redirects_qppr").click(function(event){
436
- if(jQuery("[name|=qppr_file]").attr('value')==''){
437
- alert('select a file');
438
- event.preventDefault();
439
- return false;
440
- }
441
- });
442
- });
443
- function check_file(fname){
444
- str = fname.value.toUpperCase();
445
- suffix = ".TXT";
446
- if(!(str.indexOf(suffix, str.length - suffix.length) !== -1)){
447
- alert('File type not allowed,\nAllowed file: *.txt');
448
- fname.value = '';
449
- }
450
- }
451
- //function goOnConfirm(message, href) {if (confirm(message)) document.location.href = '/wp-admin/admin.php'+href;}
452
- function goOnConfirm(message, href) {if (confirm(message)) document.location.href = '<?php echo admin_url("admin.php"); ?>'+href;}
453
-
454
- </script>
455
- <div class="icon32" style="<?php echo 'background: url('.plugins_url( 'settings-icon.png' , __FILE__ ).') no-repeat transparent;';?>"><br></div>
456
- <h2>Quick Page Post Redirect Options & Settings</h2>
457
- <?php if($this->updatemsg!=''){?><div class="updated" id="setting-error-settings_updated"><p><strong><?php echo $this->updatemsg;?></strong></p></div><?php } ?>
458
- <?php $this->updatemsg ='';//reset message;?>
459
- <div class="pprdonate">
460
- <div style="overflow: hidden; width: 161px; text-align: center;">
461
- <div style="overflow: hidden; width: 161px; text-align: center; float: left;"><form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input name="cmd" value="_s-xclick" type="hidden"/><input name="hosted_button_id" value="8274582" type="hidden"/><input alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" type="image"> <img src="https://www.paypal.com/en_US/i/scr/pixel.gif" alt="" border="0" height="1" width="1"></form></div>
462
- If you enjoy or find any of our plugins useful, please donate a few dollars to help with future development and updates. We thank you in advance.</div>
463
- </div>
464
-
465
- <div align="left">
466
- <table style="border-collapse: collapse" class="form-table">
467
- <tr valign="top">
468
- <td><h2 style="font-size:20px;">Import/Export</h2></td>
469
- </tr>
470
- <tr valign="top">
471
- <td><label>Export Redirects </label><input class="button-secondary qppr_export_qr" type="button" name="qppr_export_qr" value="EXPORT all Quick Redirects (Encoded)" onclick="document.location='<?php echo wp_nonce_url( admin_url('admin.php?page=redirect-options&ftype=encoded').'&action=export_redirects_qppr', 'export-redirects-qppr'); ?>';" /> OR <input class="button-secondary qppr_export_qr" type="button" name="qppr_export_qr" value="EXPORT all Quick Redirects (PIPE Separated)" onclick="document.location='<?php echo wp_nonce_url( admin_url('admin.php?page=redirect-options').'&action=export_redirects_qppr&ftype=pipe', 'export-redirects-qppr'); ?>';" /></td>
472
- </tr>
473
- <tr valign="top">
474
- <td>
475
- <label>Import Redirects </label>
476
- <input class="button-secondary qppr_import_qr" type="button" id="qppr_import_qr_button" name="qppr_import_qr" value="RESTORE Saved Quick Redirects" /> OR <input class="button-secondary qppr_addto_qr" type="button" id="qppr_addto_qr_button" name="qppr_addto_qr" value="ADD TO Quick Redirects" />
477
- <div id="qppr_import_form" class="hide-if-js">
478
- <form action="<?php echo admin_url('admin.php?page=redirect-options'); ?>" method="post" enctype="multipart/form-data">
479
- <p style="margin:1em 0;"><label>Select Quick Redirects file to import:</label> <input type="file" name="qppr_file" onchange="check_file(this);" /></p>
480
- <p class="submit"><?php wp_nonce_field( 'import_redirects_qppr' ); ?><input class="button-primary" type="submit" id="import_redirects_qppr" name="import_redirects_qppr" value="IMPORT & REPLACE Current Quick Redirects" /></p>
481
- </form>
482
- </div>
483
- <div id="qppr_addto_form" class="hide-if-js">
484
- <form action="<?php echo admin_url('admin.php?page=redirect-options'); ?>" method="post" enctype="multipart/form-data">
485
- <p style="margin:.5em 0 1em 1em;color:#444;">
486
- The import file should be a text file with one rediect per line, PIPE separated, in this format:<br/><code>redirect|destination|newwindow|nofollow</code><br/>for Example:<br/>
487
- <code>/old-location.htm|http://some.com/new-destination/|0|1<br/>/dontate/|http://example.com/destination/|1|1</code><br/><br/>
488
- <strong>IMPORTANT:</strong> Make Sure any destinations that might have a PIPE in the querystring data are URL encoded!<br/><br/>
489
- <label>Select Quick Redirects file to import:</label> <input type="file" name="qppr_file_add" onchange="check_file(this);" />
490
- </p>
491
- <p class="submit">
492
- <?php wp_nonce_field( 'import_redirects_add_qppr' ); ?><input class="button-primary" type="submit" id="import_redirects_add_qppr" name="import_redirects_add_qppr" value="ADD TO Current Quick Redirects" />
493
- </p>
494
  </form>
495
  </div>
496
-
497
- </td>
498
- </tr>
499
- <tr valign="top">
500
- <td>
501
- <hr noshade color="#EAEAEA" size="1">
502
- </td>
503
- </tr>
504
- </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
505
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
506
 
507
- <form method="post" action="options.php" class="qpprform">
508
- <?php settings_fields( 'ppr-settings-group' ); ?>
509
- <table class="form-table">
510
- <tr valign="top">
511
- <td><h2 style="font-size:20px;">Basic Settings</h2></td>
512
- </tr>
513
- <tr valign="top">
514
- <td><label>Use with Custom Post Types?</label> <input type="checkbox" name="ppr_use-custom-post-types" value="1"<?php if(get_option('ppr_use-custom-post-types')=='1'){echo ' checked="checked" ';} ?>/>
515
- <?php
516
- $ptypes = get_post_types();
517
- $ptypesok = $this->pprptypes_ok;
518
- if(!is_array($ptypesok)){$ptypesok = get_option( 'ppr_qpprptypeok' );}
519
- if(!is_array($ptypesok)){$ptypesok = array();}
520
- $ptypeHTML = '<div class="qppr-posttypes">';
521
- foreach($ptypes as $ptype){
522
- if($ptype != 'nav_menu_item' && $ptype != 'attachment' && $ptype != 'revision'){
523
- if(in_array($ptype,$ptypesok)){
524
- $ptypecheck = ' checked="checked"';
525
- }else{
526
- $ptypecheck = '';
527
- }
528
- $ptypeHTML .= '<div class="qppr-ptype"><input class="qppr-ptypecb" type="checkbox" name="ppr_qpprptypeok[]" value="'.$ptype.'"'.$ptypecheck.' /> <div class="ppr-type-name">'.$ptype.'</div></div>';
529
- }
530
- }
531
- $ptypeHTML .= '</div>';
532
- ?>
533
- </td>
534
- </tr>
535
- <tr valign="top">
536
- <td><label><span style="color:#FF0000;font-weight:bold;font-size:100%;margin-left:0px;">Hide</span> meta box for following Post Types:</label><?php echo $ptypeHTML;?></td>
537
- </tr>
538
- <!--tr valign="top">
539
- <td><label>Use with jQuery? <i><font size="2" color="#FF0000">(unavailable at this time)</font></i></label> <input type="checkbox" name="ppr_use-jquery" value="1"<?php if(get_option('ppr_use-jquery')=='1'){echo ' checked="checked" ';} ?>/> <input type="checkbox" name="ppr_use-jquery" value="0" disabled /><span>disabled in current version<!--Increases effectiveness of plugin. If you have a jQuery conflict, try turning this off.></span></td>
540
- </tr-->
541
- <tr valign="top">
542
- <td><label>Meta Refresh Time (in seconds):</label> <input type="text" size="5" name="ppr_meta-seconds" value="<?php echo get_option('ppr_meta-seconds');?>" /> <span>Only needed for Meta Refresh. 0=default (instant)</span></td>
543
- </tr>
544
- <tr valign="top">
545
- <td><label>Meta Refresh Message:</label> <input type="text" size="25" name="ppr_meta-message" value="<?php echo get_option('ppr_meta-message');?>" /> <span>Default is blank. Message to display while waiting for refresh.</span></td>
546
- </tr>
547
- <tr valign="top">
548
- <td><h2 style="font-size:20px;">Master Override Options</h2><b>NOTE: </b>These will override all individual settings.</td>
549
- </tr>
550
- <tr valign="top">
551
- <td><label>Turn OFF all Redirects? </label><input type="checkbox" name="ppr_override-active" value="1"<?php if(get_option('ppr_override-active')=='1'){echo ' checked="checked" ';} ?>/> <span>Includes Quick 301 Redirects when "use with jQuery" is also selected.</span></td>
552
- </tr>
553
- <tr valign="top">
554
- <td><label>Make ALL Redirects have <code>rel="nofollow"</code>? </label><input type="checkbox" name="ppr_override-nofollow" value="1"<?php if(get_option('ppr_override-nofollow')=='1'){echo ' checked="checked" ';} ?>/> <span>Will not work on Quick Redirects at this time.<!--Includes Quick 301 Redirects when "use with jQuery" is also selected.--></span></td>
555
- </tr>
556
- <tr valign="top">
557
- <td><label>Make ALL Redirects open in a New Window? </label><input type="checkbox" name="ppr_override-newwindow" value="1"<?php if(get_option('ppr_override-newwindow')=='1'){echo ' checked="checked" ';} ?>/> <span>Will not work on Quick Redirects at this time.<!--Includes Quick 301 Redirects when "use with jQuery" is also selected.--></span></td>
558
- </tr>
559
- <tr valign="top">
560
- <td><label>Make ALL Redirects this type: </label>
561
- <select name="ppr_override-redirect-type">
562
- <option value="0">Use Individual Settings</option>
563
- <option value="301" <?php if( get_option('ppr_override-redirect-type')=='301') {echo ' selected="selected" ';} ?>>301 Permanant Redirect</option>
564
- <option value="302" <?php if( get_option('ppr_override-redirect-type')=='302') {echo ' selected="selected" ';} ?>>302 Temporary Redirect</option>
565
- <option value="307" <?php if( get_option('ppr_override-redirect-type')=='307') {echo ' selected="selected" ';} ?>>307 Temporary Redirect</option>
566
- <option value="meta" <?php if(get_option('ppr_override-redirect-type')=='meta'){echo ' selected="selected" ';} ?>>Meta Refresh Redirect</option>
567
- </select>
568
- <span> (Quick 301 Redirects will always be 301)</span></td>
569
- </tr>
570
- <tr valign="top">
571
- <td><label>Make ALL redirects Case Sensitive? </label><input type="checkbox" name="ppr_override-casesensitive" value="1"<?php if(get_option('ppr_override-casesensitive')=='1'){echo ' checked="checked" ';} ?>/> <span> Makes URLs CaSe SensiTivE - i.e., /somepage/ DOES NOT EQUAL /SoMEpaGe/</span></td>
572
- </tr>
573
- <tr valign="top">
574
- <td><label>Make ALL Redirects go to this URL: </label><input type="text" size="50" name="ppr_override-URL" value="<?php echo get_option('ppr_override-URL'); ?>"/> <span>Use full URL including <code>http://</code>.</span></td>
575
- </tr>
576
- <tr valign="top">
577
- <td><label>Rewrite ALL Redirects URLs to Show in LINK? </label><input type="checkbox" name="ppr_override-rewrite" value="1"<?php if(get_option('ppr_override-rewrite')=='1'){echo ' checked="checked" ';} ?>/> <span>Makes link show redirect URL instead of the original URL. Will not work on Quick Redirects at this time.<!--ONLY includes Quick 301 Redirects when "use with jQuery" is also selected.--></span></td>
578
- </tr>
579
- <tr valign="top">
580
- <td><h2 style="font-size:20px;">Plugin Clean Up</h2><b>NOTE: </b>This will DELETE all redirects - so be careful with this.</td>
581
- </tr>
582
- <tr valign="top">
583
- <td><label>Delete Redirects? </label><input class="button-secondary qppr_delete_reg" type="button" name="qppr_delete_reg" value="Delete all Page/Post Redirects" onclick="goOnConfirm('Are you sure you want to PERMANENTLY Delets ALL Regular Redirects?' , '?page=redirect-options&qppr_delete_reg=1');" /> <input class="button-secondary qppr_delete_qr" type="button" name="qppr_delete_qr" value="Delete all Quick Redirects" onclick="goOnConfirm('Are you sure you want to PERMANENTLY Delets ALL Quick Redirects?' , '?page=redirect-options&qppr_delete_qr=1');" /></td>
584
- </tr>
585
- </table>
586
- <p class="submit"><input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
587
- </form>
588
- </div>
589
- <?php }
590
-
591
  function ppr_options_page(){
592
- //generate the options page in the wordpress admin
593
- //$tohash = $this->homelink.'/';
594
- $tohash = site_url('/', 'admin');
595
  ?>
596
- <div class="wrap">
597
- <div class="icon32" style="<?php echo 'background: url('.plugins_url( 'settings-icon.png' , __FILE__ ).') no-repeat transparent;';?>"><br></div>
598
- <script type="text/javascript">jQuery(document).ready(function() { var mainurl = '<?php echo site_url('/', 'admin') ;?>'; jQuery(".delete-qppr").click(function(){ var thepprdel = jQuery(this).attr('id'); if(confirm('Are you sure you want to delete this redirect?')){ jQuery.ajax({ url: mainurl,data : "pprd="+thepprdel+"&scid=<?php echo md5($tohash);?>", success: function(data, textStatus){ jQuery('#row'+thepprdel).remove(); }, complete: function(){ jQuery(".pprnewwin").each(function (i) { jQuery(this).attr('name','quickppr_redirects[newwindow]['+jQuery(".pprnewwin").index(this)+']'); }); jQuery(".pprnofoll").each(function (i) { jQuery(this).attr('name','quickppr_redirects[nofollow]['+jQuery(".pprnofoll").index(this)+']'); }); } }); return false; }else{ return false; } }); jQuery("#hidepprjqmessage").click(function(){ jQuery.ajax({ url: mainurl,data : "pprhidemessage=1", success: function(data){ jQuery('#usejqpprmessage').remove(); } }); return false; }); jQuery("#hidepprjqmessage2").click(function(){ jQuery.ajax({ url: mainurl,data : "pprhidemessage=2", success: function(data){ jQuery('#usejqpprmessage2').remove(); } }); return false; }); });</script>
599
- <style type="text/css">div.info{background-color:#dceff8;border-color:#c00;margin: 5px 0 15px;padding: 5px;border:1px solid #2e92c1;border-radius: 3px;}div.info a{color:#2e92c1;}.usejqpprmessage{overflow:hidden;}.hidepprjqmessage{float:right;font-size:11px;}.delete-qppr{border: 1px solid #FFBBBB;display: inline-block;font-weight: bold;padding: 0 5px;text-decoration: none;text-transform: uppercase;}</style>
600
- <h2>Quick 301 Redirects</h2>
601
- <?php if($this->updatemsg!=''){?><div class="updated settings-error" id="setting-error-settings_updated"><p><strong><?php echo $this->updatemsg;?></strong></p></div><?php } ?>
602
- <?php $this->updatemsg ='';//reset message;?>
603
- <?php $isJQueryOn = get_option('ppr_use-jquery');$isJQueryMsgHidden = get_option('qppr_jQuery_hide_message');$isJQueryMsgHidden2 = get_option('qppr_jQuery_hide_message2');?>
604
- <!--
605
- <?php if($isJQueryOn == '' && ($isJQueryMsgHidden =='' || $isJQueryMsgHidden =='0')){?>
606
- <div class="usejqpprmessage error below-h2" id="usejqpprmessage"><code>Use with jQuery</code> option is turned off in plugin settings.<br/>In order to use NW (open in a new window) or NF (add rel="nofollow") options for Quick Redirects, you must have it enabled.<br/>
607
- <div class="hidepprjqmessage" style=""><a href="javascript:void(0);" id="hidepprjqmessage">hide this message</a></div></div>
 
 
 
608
  <?php }elseif($isJQueryMsgHidden2 !='1'){ ?>
609
- <div class="usejqpprmessage info below-h2" id="usejqpprmessage2">The <b>NW </b>(open in a new window)<b> NF</b> (nofollow) options are new for this version.<br/>To use them, just click the appropriate option and update. Then, any link in the page that has the request URL will be updated with these options (as long as you have <code>use with jQuery</code> enabled in the plugin settings.
610
- <div class="hidepprjqmessage" style=""><a href="javascript:void(0);" id="hidepprjqmessage2">hide this message</a></div></div>
611
- <?php }else{ ?>
612
- <br/>
613
  <?php }?>
614
- -->This section is useful if you have links from an old site and need to have them redirect to a new location on the current site, or if you have an existing URL that you need to send some place else and you don't want to have a Page or Post created to use the other Page/Post Redirect option.
615
- To add these additional 301 redirects, put the URL you want to redirect into the Request field and the place it should redirect to in the Destination field. To delete a redirect, click the 'x' next to the Destination Field.
616
- <!--If you want the redirect to open in a new window or to add rel=nofollow to the link, select the NW (new Window) or NF (no Follow) boxes next to the appropriate redirect (must enable 'use jQuery' in settings for this to work).-->
617
- <br/>
618
- <br/><b style="color:red;">IMPORTANT TROUBLE SHOOTING NOTES:</b>
619
- <ol style="margin-top:5px;">
620
- <li style="color:#214070;margin-left:15px;list-style-type:disc;">Until some jQuery issues are resolved, the New Window and No Follow features will not work for Quick Redirects.</li>
621
- <li style="color:#214070;margin-left:15px;list-style-type:disc;">The <b>Request</b> field should be relative to the ROOT directory and contain the <code>/</code> at the beginning.</li>
622
- <li style="color:#214070;margin-left:15px;list-style-type:disc;">The <b>Destination</b> field can be any valid URL or relative path (from root).</li>
623
- <!--li style="color:#214070;margin-left:25px;list-style-type:disc;">In order for NW (open in a new window) or NF (rel=&quot;nofollow&quot;) options to work with Quick Redirects, you need to have:
624
- <ol>
625
- <li>&quot;Use with jQuery&quot; option selected in the settings page</li>
626
- <li>A link that uses the request url SOMEWHERE in your site page - i.e., in a menu, content, sidebar, etc. </li>
627
- <li>The open in a new window or nofollow settings will not happen if someone just types the old link in the URL or if that come from a bookmark or link outside your site - in essence, there needs to be a link that they click on in your site so that the jQuery script can add the appropriate <code>target</code> and <code>rel</code> properties to the link to make it work.</li>
628
- </ol>
629
- </li-->
630
-
631
- </ol>
632
- <form method="post" action="admin.php?page=redirect-updates">
633
- <?php wp_nonce_field( 'add_qppr_redirects' ); ?>
634
- <table>
635
  <tr>
636
- <th align="left">Request</th>
637
- <th align="left">Destination</th>
638
- <th align="left">NW</th>
639
- <th align="left">NF</th>
640
- <th align="left">Delete</th>
641
  </tr>
642
  <tr>
643
- <td><small>example: <code>/about.htm</code> or <code>/directory/landing/</code></small></td>
644
- <td><small>example: <code><?php echo $this->homelink; ?>/about/</code></small></td>
645
- <td>&nbsp;</td>
 
 
 
 
646
  </tr>
647
- <?php echo $this->expand_redirects(); ?>
648
  <tr>
649
- <td><input type="text" name="quickppr_redirects[request][]" value="" style="width:27em" />&nbsp;&raquo;&nbsp;</td>
650
- <td><input type="text" name="quickppr_redirects[destination][]" value="" style="width:27em;" /></td>
651
- <td align="center"><input class="pprnewwin" type="checkbox" name="quickppr_redirects[newwindow][<?php if(count($this->quickppr_redirects)==0){echo '0';}else{echo (count($this->quickppr_redirects));}?>]" value="1" title="open in a New Window" /></td>
652
- <td align="center"><input class="pprnofoll" type="checkbox" name="quickppr_redirects[nofollow][<?php if(count($this->quickppr_redirects)==0){echo '0';}else{echo (count($this->quickppr_redirects));}?>]" value="1" title="add No Follow" /></td>
653
- <td align="center"></td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
654
  </tr>
655
  </table>
656
-
657
- <p class="submit">
658
- <input type="submit" name="submit_301" class="button-primary" value="<?php _e('Save Changes') ?>" />
659
- </p>
660
- </form>
661
  </div>
662
-
663
- <?php
 
 
664
  }
665
 
666
- function save_redirects($data){
667
- // Save the redirects from the options page to the database
668
- $redirects = array();
669
- $redirectsmeta = array();
670
- for($i = 0; $i < sizeof($data['request']); ++$i) {
671
- $request = sanitize_text_field(trim($data['request'][$i]));
672
- $destination = sanitize_text_field(trim($data['destination'][$i]));
673
- $newwin = sanitize_text_field(trim($data['newwindow'][$i]));
674
- $nofoll = sanitize_text_field(trim($data['nofollow'][$i]));
675
- if(strpos($request,'/',0) !== 0 && strpos($request,'http',0) !== 0){$request = '/'.$request;} // adds root marker to front if not there
676
- if((strpos($request,'.') === false && strpos($request,'?') === false) && strpos($request,'/',strlen($request)-1) === false){$request = $request.'/';} // adds end folder marker if not a file end
677
- if (($request == '' || $request == '/') && $destination == '') { continue;} elseif($request != '' && $request != '/' && $destination == '' ){$redirects[$request] = $this->homelink.'/';}else { $redirects[$request] = $destination; }
678
- $redirectsmeta[$request]['newwindow'] = ($newwin == '1' || $newwin =='0') ? $newwin : '0' ;
679
- $redirectsmeta[$request]['nofollow'] = ($nofoll == '1' || $nofoll == '0') ? $nofoll : '0' ;
680
- }
681
- update_option('quickppr_redirects', sanitize_option('quickppr_redirects',$redirects));
682
- update_option('quickppr_redirects_meta', sanitize_option('quickppr_redirects_meta',$redirectsmeta));
683
- $this->quickppr_redirectsmeta = get_option('quickppr_redirects_meta');
684
- $this->quickppr_redirects = get_option('quickppr_redirects');
685
- return $redirects;
686
- }
687
-
688
  function expand_redirects(){
689
  //utility function to return the current list of redirects as form fields
690
  $output = '';
691
  if (!empty($this->quickppr_redirects)) {
692
- $ww=1;
693
  foreach ($this->quickppr_redirects as $request => $destination) {
694
- $newWindow = $this->quickppr_redirectsmeta[$request]['newwindow'];
695
- $noFollow = $this->quickppr_redirectsmeta[$request]['nofollow'];
696
- if($newWindow == '1'){$newChecked = ' checked="checked"';}else{$newChecked = '';}
697
- if($noFollow == '1'){$noChecked = ' checked="checked"';}else{$noChecked = '';}
 
 
 
 
 
 
 
 
 
 
 
 
698
  $output .= '
699
- <tr id="rowpprdel-'.$ww.'">
700
- <td><input type="text" name="quickppr_redirects[request][]" value="'.esc_attr($request).'" style="width:27em" />&nbsp;&raquo;&nbsp;</td>
701
- <td><input type="text" name="quickppr_redirects[destination][]" value="'.esc_attr($destination).'" style="width:27em;" /></td>
702
- <td align="center"><input class="pprnewwin" type="checkbox" name="quickppr_redirects[newwindow]['.($ww - 1).']" value="1"'.$newChecked.' title="open in a New Window" /></td>
703
- <td align="center"><input class="pprnofoll" type="checkbox" name="quickppr_redirects[nofollow]['.($ww - 1).']" value="1"'.$noChecked.' title="add No Follow" /></td>
704
- <td align="center">&nbsp;&nbsp;<a href="javascript:void();" id="pprdel-'.$ww.'" class="delete-qppr">X</a>&nbsp;</td>
 
 
 
705
  </tr>
706
  ';
707
  $ww++;
@@ -717,34 +1142,39 @@ class quick_page_post_reds {
717
  }else{
718
  $id = $post;
719
  }
720
- $newCheck = $this->ppr_all_redir_array;
721
- if(!is_array($newCheck)){$newCheck = array();}
722
- if(array_key_exists($id, $newCheck)){
723
  $matchedID = $newCheck[$id];
724
  if($matchedID['_pprredirect_rewritelink'] == '1' || $this->pproverride_rewrite =='1'){ // if rewrite link is checked or override is set
725
- if($this->pproverride_URL ==''){$newURL = $matchedID['_pprredirect_url'];}else{$newURL = $this->pproverride_URL;} // check override
726
- if(strpos($newURL,$this->homelink)>=0 || strpos($newURL,'www.')>=0 || strpos($newURL,'http://')>=0 || strpos($newURL,'https://')>=0){
 
 
 
 
727
  $link = esc_url( $newURL );
728
  }else{
729
  $link = esc_url( $this->homelink.'/'. $newURL );
730
  }
731
  }
732
  }
733
-
734
  return $link;
735
  }
 
736
  function ppr_filter_page_links ($link, $post) {
737
- if(isset($post->ID)){
738
- $id = $post->ID;
739
- }else{
740
- $id = $post;
741
  }
742
- $newCheck = $this->ppr_all_redir_array;
743
- if(!is_array($newCheck)){$newCheck = array();}
744
- if(array_key_exists($id, $newCheck)){
745
  $matchedID = $newCheck[$id];
746
  if($matchedID['_pprredirect_rewritelink'] == '1' || $this->pproverride_rewrite =='1'){ // if rewrite link is checked
747
- if($this->pproverride_URL ==''){$newURL = $matchedID['_pprredirect_url'];}else{$newURL = $this->pproverride_URL;} // check override
 
 
 
 
748
  if(strpos($newURL,$this->homelink)>=0 || strpos($newURL,'www.')>=0 || strpos($newURL,'http://')>=0 || strpos($newURL,'https://')>=0){
749
  $link = esc_url( $newURL );
750
  }else{
@@ -752,48 +1182,24 @@ class quick_page_post_reds {
752
  }
753
  }
754
  }
755
-
756
  return $link;
757
  }
758
 
759
-
760
- function ppr_add_metabox(){
761
- if( function_exists( 'add_meta_box' ) ) {
762
- $usetypes = get_option('ppr_use-custom-post-types')!= '' ? get_option('ppr_use-custom-post-types') : '0';
763
- if($usetypes == '1'){
764
- $post_types_temp = get_post_types();
765
- if(count($post_types_temp)==0){
766
- $post_types_temp = array('page' => 'page','post' => 'post','attachment' => 'attachment','nav_menu_item' => 'nav_menu_item');
767
- }
768
- }else{
769
- $post_types_temp = array('page' => 'page','post' => 'post'/*,'attachment' => 'attachment','nav_menu_item' => 'nav_menu_item'*/);
770
- }
771
- unset($post_types_temp['revision']); //remove revions from array if present as they are not needed.
772
- unset($post_types_temp['attachment']); //remove from array if present as they are not needed.
773
- unset($post_types_temp['nav_menu_item']); //remove from array if present as they are not needed.
774
- $ptypesok = $this->pprptypes_ok;
775
- if($ptypesok==''){$ptypesok = array();}
776
- if(!is_array($ptypesok)){$ptypesok = array();}
777
- foreach($post_types_temp as $type){
778
- if(!in_array($type,$ptypesok)){
779
- add_meta_box( 'edit-box-ppr', 'Quick Page/Post Redirect', array($this,'edit_box_ppr_1'), $type, 'normal', 'high' );
780
- }
781
- }
782
- }
783
- }
784
-
785
  function get_main_array(){
786
  global $wpdb;
787
- $theArray = array();
 
 
 
788
  $theArrayNW = array();
789
  $theArrayNF = array();
790
- $theqsl = "SELECT * FROM $wpdb->postmeta a, $wpdb->posts b WHERE a.`post_id`=b.`ID` AND b.`post_status`!='trash' AND (a.`meta_key` = '_pprredirect_active' OR a.`meta_key` = '_pprredirect_rewritelink' OR a.`meta_key` = '_pprredirect_newwindow' OR a.`meta_key` = '_pprredirect_relnofollow' OR a.`meta_key` = '_pprredirect_type' OR a.`meta_key` = '_pprredirect_url') ORDER BY a.`post_id` ASC;";
791
- $thetemp = $wpdb->get_results($theqsl);
792
- if(count($thetemp)>0){
793
- foreach($thetemp as $key){
794
  $theArray[$key->post_id][$key->meta_key] = $key->meta_value;
795
  }
796
- foreach($thetemp as $key){
797
  // defaults
798
  if(!isset($theArray[$key->post_id]['_pprredirect_rewritelink'])){$theArray[$key->post_id]['_pprredirect_rewritelink'] = 0;}
799
  if(!isset($theArray[$key->post_id]['_pprredirect_url'])){$theArray[$key->post_id]['_pprredirect_url'] = '';}
@@ -801,19 +1207,16 @@ class quick_page_post_reds {
801
  if(!isset($theArray[$key->post_id]['_pprredirect_relnofollow'])){$theArray[$key->post_id]['_pprredirect_relnofollow'] = 0;}
802
  if(!isset($theArray[$key->post_id]['_pprredirect_newwindow'] )) {$theArray[$key->post_id]['_pprredirect_newwindow'] = 0;}
803
  if(!isset($theArray[$key->post_id]['_pprredirect_active'] )){$theArray[$key->post_id]['_pprredirect_active'] = 0;}
804
-
805
  if($theArray[$key->post_id]['_pprredirect_newwindow']!= '0' || $this->pproverride_newwin =='1'){
806
  $theArrayNW[$key->post_id] = get_permalink($key->ID);
807
  }
808
-
809
  if($theArray[$key->post_id]['_pprredirect_relnofollow']!= '0' || $this->pproverride_nofollow =='1'){
810
  $theArrayNF[$key->post_id] = get_permalink($key->ID);
811
  }
812
  }
813
-
814
  }
815
  $this->ppr_newwindow = $theArrayNW;
816
- $this->ppr_nofollow = $theArrayNF;
817
  return $theArray;
818
  }
819
 
@@ -826,11 +1229,19 @@ class quick_page_post_reds {
826
  $themsgmsg = '';
827
  $hook_name = 'ppr_meta_head_hook';
828
  // check URL override
829
- if($this->pproverride_URL !=''){$urlsite = $this->pproverride_URL;} else {$urlsite = $this->ppr_metaurl;}
 
 
 
 
830
  $this->pproverride_URL = ''; //reset
831
- if($this->pprmeta_seconds==''){$this->pprmeta_seconds='0';}
 
 
832
  $themsgmeta = '<meta http-equiv="refresh" content="'.$this->pprmeta_seconds.'; URL='.$urlsite.'" />'."\n";
833
- if($this->pprmeta_message!='' && $this->pprmeta_seconds!='0'){$themsgmsg = '<div style="margin-top:20px;text-align:center;">'.$this->pprmeta_message.'</div>'."\n";}
 
 
834
  if( has_action($hook_name)){
835
  do_action( $hook_name,$urlsite,$this->pprmeta_seconds,$this->pprmeta_message);
836
  return;
@@ -846,225 +1257,218 @@ class quick_page_post_reds {
846
  }
847
 
848
  function ppr_queryhook($vars) {
849
- $vars[] = 'pprd';
850
- $vars[] = 'scid';
851
- $vars[] = 'pprjq';
852
- $vars[] = 'ver';
853
- $vars[] = 'pprhidemessage';
854
- $vars[] = 'qppr_delete_reg';
855
- $vars[] = 'qppr_delete_qr';
856
- $vars[] = 'ftype';
857
  return $vars;
858
  }
859
  function ppr_parse_request_new($wp) {
860
  global $wp, $wpdb;
861
- if(is_admin() && (isset($_GET['qppr_delete_reg']) || isset($_GET['qppr_delete_qr']))){
862
- if( $_GET['qppr_delete_reg'] =='1'){
 
 
863
  global $wpdb;
864
- $wpdb->query("DELETE FROM $wpdb->postmeta WHERE `meta_key` = '_pprredirect_active' OR `meta_key` = '_pprredirect_rewritelink' OR `meta_key` = '_pprredirect_newwindow' OR `meta_key` = '_pprredirect_relnofollow' OR `meta_key` = '_pprredirect_type' OR `meta_key` = '_pprredirect_url';");
865
- //wp_redirect('admin.php?page=redirect-options&update=2&settings-updated=true',200);
866
- wp_redirect(admin_url('admin.php?page=redirect-options&update=2&settings-updated=true'));
867
  exit;
868
- }elseif($_GET['qppr_delete_qr'] =='1'){
869
- delete_option('quickppr_redirects');
870
- delete_option('quickppr_redirects_meta');
871
- //wp_redirect('admin.php?page=redirect-options&update=3&settings-updated=true',200);
872
- wp_redirect(admin_url('admin.php?page=redirect-options&update=3&settings-updated=true'));
873
  exit;
874
- }elseif($_GET['qppr_export_qr'] =='1'){
875
- wp_die('This option is not available at this time.','Quick Page/Post Redirect Plugin - Export',array('back_link'=>true));
876
  exit;
877
- }elseif($_GET['qppr_import_qr'] =='1'){
878
- wp_die('This option is not available at this time.','Quick Page/Post Redirect Plugin - Import',array('back_link'=>true));
879
  exit;
880
  }
881
- }elseif ( isset($_GET['action']) && $_GET['action'] == 'export_redirects_qppr' ) {
882
  $newQPPR_Array = array();
883
- check_admin_referer('export-redirects-qppr');
884
- $type = (isset($_GET['ftype']) && ($_GET['ftype']=='encoded' || $_GET['ftype'] =='pipe')) ? $wpdb->escape($_GET['ftype']) : 'pipe' ; // can be 'encoded' or 'pipe';
885
  header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
886
  header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
887
  header( 'Cache-Control: no-store, no-cache, must-revalidate' );
888
  header( 'Cache-Control: post-check=0, pre-check=0', false );
889
  header( 'Pragma: no-cache' );
890
- header("Content-Type: application/force-download");
891
- header("Content-Type: application/octet-stream");
892
- header("Content-Type: application/download");
893
- header("Content-Disposition: attachment; filename=qppr-quick-redirects-export-".date('U').".txt;");
894
- $newQPPR_Array['quickppr_redirects'] = get_option('quickppr_redirects');
895
- $newQPPR_Array['quickppr_redirects_meta'] = get_option('quickppr_redirects_meta');
896
- if($type == 'encoded'){
897
- die('QUICKPAGEPOSTREDIRECT'.base64_encode(serialize($newQPPR_Array)));
898
  }else{
899
- if(is_array($newQPPR_Array)){
900
  $qpprs = $newQPPR_Array['quickppr_redirects'];
901
  $qpprm = $newQPPR_Array['quickppr_redirects_meta'];
902
  foreach($qpprs as $key=>$val){
903
- $nw = (isset($qpprm[$key]['newwindow']) && $qpprm[$key]['newwindow']=='1') ? $qpprm[$key]['newwindow'] : '0' ;
904
- $nf = (isset($qpprm[$key]['nofollow']) && $qpprm[$key]['nofollow'] == '1') ? $qpprm[$key]['nofollow'] : '0' ;
905
- $temps = str_replace('|','%7C',$key).'|'.str_replace('|','%7C',$val).'|'.$nw.'|'.$nf;
906
  if($temps!='|||'){
907
  $newline[] = $temps;
908
  }
909
  }
910
- $newfile = implode("\r\n",$newline);
911
  }else{
912
- $newfile = $newtext;
913
  }
914
- die($newfile);
915
  }
916
  exit;
917
- } elseif( isset($_POST['import_redirects_qppr']) && isset($_FILES['qppr_file']) ) {
918
- check_admin_referer( 'import_redirects_qppr' );
919
  if ( $_FILES['qppr_file']['error'] > 0 ) {
920
- wp_die('An error occured during the file upload. Please fix your server configuration and retry.', 'SERVER ERROR - Could Not Load',array('response'=>'200','back_link'=>'1'));
921
  exit;
922
  } else {
923
  $config_file = file_get_contents( $_FILES['qppr_file']['tmp_name'] );
924
  if ( substr($config_file, 0, strlen('QUICKPAGEPOSTREDIRECT')) !== 'QUICKPAGEPOSTREDIRECT' ) {
925
  if(strpos($config_file,'|') !== false){
926
- $text = explode("\r\n",$config_file);
 
 
 
 
 
 
 
 
 
927
  $newfile1 = array();
928
- if(is_array($text)){
929
- foreach($text as $nl){
930
- if($nl!=''){
931
- $elem = explode('|',$nl);
932
- $newfile1['quickppr_redirects'][sanitize_text_field($elem[0])] = sanitize_text_field($elem[1]);
933
- $nw = isset($elem[2]) && $elem[2] == '1' ? '1' : '';
934
- $nf = isset($elem[3]) && $elem[3] == '1' ? '1' : '';
935
- $newfile1['quickppr_redirects_meta'][$elem[0]]['newwindow'] = $nw;
936
- $newfile1['quickppr_redirects_meta'][$elem[0]]['newwindow'] = $nf;
 
 
937
  }
938
  }
939
- if(is_array($newfile1)){
940
- if(isset($newfile1['quickppr_redirects'])){update_option('quickppr_redirects', $newfile1['quickppr_redirects']);}
941
- if(isset($newfile1['quickppr_redirects_meta'])){update_option('quickppr_redirects_meta', $newfile1['quickppr_redirects_meta']);}
 
 
 
 
942
  }
943
  }
944
- wp_redirect(admin_url('admin.php?page=redirect-options&update=4'),302);
 
945
  }else{
946
- wp_die('This does not look like a Quick Page Post Redirect config file - it is possibly damaged or corrupt.', 'ERROR - Not a valid File',array('response'=>'200','back_link'=>'1'));
947
  exit;
948
  }
949
  } else {
950
  $config_file = unserialize(base64_decode(substr($config_file, strlen('QUICKPAGEPOSTREDIRECT'))));
951
- if ( !is_array($config_file) ) {
952
- wp_die('This does not look like a Quick Page Post Redirect config file - it is possibly damaged or corrupt.', 'ERROR - Not a valid File',array('response'=>'200','back_link'=>'1'));
953
  exit;
954
  } else {
955
  $newQPPRRedirects = $config_file['quickppr_redirects'];
956
  $newQPPRMeta = $config_file['quickppr_redirects_meta'];
957
  update_option('quickppr_redirects', $newQPPRRedirects);
958
  update_option('quickppr_redirects_meta', $newQPPRMeta);
959
- wp_redirect(admin_url('admin.php?page=redirect-options&update=4'),302);
960
  }
961
  }
962
  }
963
  } elseif( isset($_POST['import_redirects_add_qppr']) && isset($_FILES['qppr_file_add']) ) {
964
  check_admin_referer( 'import_redirects_add_qppr' );
965
  if ( $_FILES['qppr_file_add']['error'] > 0 ) {
966
- wp_die('An error occured during the file upload. Please fix your server configuration and retry.', 'SERVER ERROR - Could Not Load',array('response'=>'200','back_link'=>'1'));
967
  exit;
968
  } else {
969
  $config_file = file_get_contents( $_FILES['qppr_file_add']['tmp_name'] );
970
- if ( strpos($config_file,'|') === false ) {
971
- wp_die('This does not look like the file is in the correct format - it is possibly damaged or corrupt.<br/>be sure the redirects are 1 per line and the redirect and destination are seperated by a PIPE (|).<br/>Example:<br/><br/><code>redirect|destination</code>', 'ERROR - Not a valid File',array('response'=>'200','back_link'=>'1'));
 
 
 
 
 
 
 
 
 
972
  exit;
973
  } else {
974
  $tempArr = array();
975
  $tempMArr = array();
976
- $QR_Array = explode("\n",$config_file);
977
- if(!empty($QR_Array) && is_array($QR_Array)):
978
- foreach($QR_Array as $qrtoadd):
979
- if($qrtoadd != '' && strpos($qrtoadd,'|') !== false){
980
- $item = explode('|',str_replace(array("\r","\n"), array('',''),$qrtoadd));
981
- if(is_array($item) && !empty($item)){
982
- $tempArr[sanitize_text_field($item[0])] = sanitize_text_field($item[1]);
983
- if(isset( $item[2]) || isset( $item[3])){
984
- $newwin = (isset($item[2]) && ($item[2] != '' && $item[2] != '0')) ? 1 : '';
985
- $nofoll = (isset($item[3]) && ($item[3] != '' && $item[3] != '0')) ? 1 : '';
986
- $tempMArr[$item[0]]['newwindow'] = $newwin;
987
- $tempMArr[$item[0]]['nofollow'] = $nofoll;
988
- }else{
989
- $tempMArr[$item[0]]['newwindow'] = '';
990
- $tempMArr[$item[0]]['nofollow'] = '';
991
- }
992
  }
993
  }
994
  endforeach;
995
- if(!empty($tempArr)){
996
- $temp = get_option('quickppr_redirects');
997
- $currQRs = ($temp !='' && is_array($temp)) ? $temp : array();
998
- $resultQR = array_merge($currQRs, $tempArr);
999
- update_option('quickppr_redirects',$resultQR);
1000
- }
1001
- if(!empty($tempMArr)){
1002
- $temp = get_option('quickppr_redirects_meta');
1003
- $currQRM = ($temp !='' && is_array($temp)) ? $temp : array();
1004
- $resultQRM = array_merge($currQRM, $tempMArr);
1005
- update_option('quickppr_redirects_meta',$resultQRM);
1006
  }
1007
- wp_redirect(admin_url('admin.php?page=redirect-options&update=5'),302);
1008
  exit;
1009
  else:
1010
- wp_die('Does not look like there are any valid items to import - check the file and try again.', 'ERROR - No Valid items to add.',array('response'=>'200','back_link'=>'1'));
1011
  exit;
1012
  endif;
1013
  }
1014
  }
1015
  } return;
1016
  }
1017
- function ppr_parse_request($wp) {
1018
- global $wp;
1019
- if(array_key_exists('pprd', $wp->query_vars) && array_key_exists('scid', $wp->query_vars)){
1020
- $tohash = get_bloginfo('url').'/';
1021
- if( $wp->query_vars['pprd'] !='' && $wp->query_vars['scid'] == md5($tohash)){
1022
- $theDel = str_replace('pprdel-','',$wp->query_vars['pprd']);
1023
- $redirects = get_option('quickppr_redirects');
1024
- $redirectsmeta = get_option('quickppr_redirects_meta');
1025
- if (!empty($redirects)) {
1026
- $ww=1;
1027
- foreach ($redirects as $request => $destination) {
1028
- if($ww != (int)$theDel){
1029
- $quickppr_redirects[$request] = $destination;
1030
- $quickppr_redirectsmeta[$request] = $redirectsmeta[$request];
1031
- }
1032
- $ww++;
1033
- }
1034
- } // end if
1035
- update_option('quickppr_redirects',$quickppr_redirects);
1036
- update_option('quickppr_redirects_meta',$quickppr_redirectsmeta);
1037
- echo 1;
1038
- exit;
1039
- }else{
1040
- echo 0;
1041
- exit;
1042
- }
1043
- }elseif(array_key_exists('pprhidemessage', $wp->query_vars)){
1044
- if( $wp->query_vars['pprhidemessage'] =='1'){
1045
- update_option('qppr_jQuery_hide_message','1');
1046
- echo '1';
1047
- exit;
1048
- }elseif($wp->query_vars['pprhidemessage'] =='2'){
1049
- update_option('qppr_jQuery_hide_message2','1');
1050
- echo '1';
1051
- exit;
1052
- }
1053
- return;
1054
  }else{
1055
- return;
1056
  }
 
1057
  }
1058
-
1059
  function ppr_init_check_version() {
1060
  // checks version of plugin in DB and updates if needed.
1061
- $this->ppr_all_redir_array = $this->get_main_array();
1062
- $this->pprptypes_ok = get_option( 'ppr_qpprptypeok' );
1063
-
1064
  global $wpdb;
1065
- if($this->thepprversion != $this->ppr_curr_version){
1066
- update_option( 'ppr_use-jquery','0'); //default to off
1067
- update_option( 'ppr_override-casesensitive', '1' );
 
 
 
 
 
 
1068
  $this->ppruse_jquery = '0';
1069
  $this->pproverride_casesensitive = '1';
1070
  update_option( 'ppr_version', $this->ppr_curr_version );
@@ -1076,16 +1480,15 @@ class quick_page_post_reds {
1076
  }
1077
 
1078
  function ppr_filter_plugin_actions($links){
1079
- $new_links = array();
1080
- $new_links[] = '<a href="'.$this->fcmlink.'/donations/">Donate</a>';
1081
- return array_merge($links,$new_links );
1082
  }
1083
 
1084
  function ppr_filter_plugin_links($links, $file){
1085
  if ( $file == plugin_basename(__FILE__) ){
1086
- $links[] = '<a href="'.$this->adminlink.'admin.php?page=redirect-updates">Quick Redirects</a>';
1087
- $links[] = '<a href="'.$this->adminlink.'admin.php?page=redirect-faqs">FAQ</a>';
1088
- $links[] = '<a target="_blank" href="'.$this->fcmlink.'/donations/">Donate</a>';
1089
  }
1090
  return $links;
1091
  }
@@ -1103,14 +1506,14 @@ class quick_page_post_reds {
1103
  // The actual fields for data entry
1104
  $pprredirecttype = get_post_meta($post->ID, '_pprredirect_type', true) !='' ? get_post_meta($post->ID, '_pprredirect_type', true) : "";
1105
  $pprredirecturl = get_post_meta($post->ID, '_pprredirect_url', true)!='' ? get_post_meta($post->ID, '_pprredirect_url', true) : "";
1106
- echo '<label for="pprredirect_active" style="padding:2px 0;"><input type="checkbox" name="pprredirect_active" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_active',true),0).' />&nbsp;Make Redirect <b>Active</b>.<span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">Check to turn on or redirect will not work.</span></span></label><br />';
1107
- echo '<label for="pprredirect_newwindow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_newwindow" id="pprredirect_newwindow" value="_blank" '. checked('_blank',get_post_meta($post->ID,'_pprredirect_newwindow',true),0).'>&nbsp;Open redirect link in a <b>new window.</b><span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">May not work in all cases.</span></span></label><br />';
1108
- echo '<label for="pprredirect_relnofollow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_relnofollow" id="pprredirect_relnofollow" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_relnofollow',true),0).'>&nbsp;Add <b>rel="nofollow"</b> to redirect link.<span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">May not work in all cases.</span></span></label><br />';
1109
- echo '<label for="pprredirect_rewritelink" style="padding:2px 0;"><input type="checkbox" name="pprredirect_rewritelink" id="pprredirect_rewritelink" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_rewritelink',true),0).'>&nbsp;<b>Show</b> the Redirect URL instead of original URL. <span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">May not always work and will only show the link - <strong><em>but NOT in the Address bar, just the link itself.</em></strong></span></span></label><br /><br />';
1110
  //echo '<label for="pprredirect_casesensitive" style="padding:2px 0;"><input type="checkbox" name="pprredirect_casesensitive" id="pprredirect_casesensitive" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_casesensitive',true),0).'>&nbsp;Make the Redirect Case Insensitive.</label><br /><br />';
1111
- echo '<label for="pprredirect_url"><b>Redirect URL:</b></label><br />';
1112
  echo '<input type="text" style="width:75%;margin-top:2px;margin-bottom:2px;" name="pprredirect_url" value="'.$pprredirecturl.'" /><span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help"><br />(i.e., <strong>http://example.com</strong> or <strong>/somepage/</strong> or <strong>p=15</strong> or <strong>155</strong>. Use <b>FULL URL</b> <i>including</i> <strong>http://</strong> for all external <i>and</i> meta redirects.)</span></span><br /><br />';
1113
- echo '<label for="pprredirect_type"><b>Type of Redirect:</b></label><br />';
1114
 
1115
  switch($pprredirecttype):
1116
  case "":
@@ -1132,49 +1535,13 @@ class quick_page_post_reds {
1132
 
1133
  echo '
1134
  <select style="margin-top:2px;margin-bottom:2px;width:40%;" name="pprredirect_type">
1135
- <option value="301" '.$ppr_option1.'>301 Permanent</option>
1136
- <option value="302" '.$ppr_option2.'>302 Temporary</option>
1137
- <option value="307" '.$ppr_option3.'>307 Temporary</option>
1138
- <option value="meta" '.$ppr_option5.'>Meta Redirect</option>
1139
- </select><span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">Default is 302 (Temporary Redirect). </span></span><br /><br />
1140
  ';
1141
- echo '<b>NOTE:</b> For a Page or Post (or Custom Post) Redirect to work, it may need to be published first and then saved again as a Draft. If you do not already have a page/post created you can add a \'Quick\' redirect using the <a href="./admin.php?page=redirect-updates">Quick Redirects</a> method.';
1142
- }
1143
- function appip_parseURI($url){
1144
- /*
1145
- [scheme]
1146
- [host]
1147
- [user]
1148
- [pass]
1149
- [path]
1150
- [query]
1151
- [fragment]
1152
- */
1153
- $strip_protocol = 0;
1154
- $tostrip = '';
1155
- //if($url == '' || $url == 'http://' || $url == 'https://' ){ return $url;}
1156
-
1157
- if(substr($url,0,2) == 'p=' || substr($url,0,8) == 'page_id='){ // page or post id
1158
- $url = network_site_url().'/?'.$url;
1159
- }elseif(is_numeric($url)){ // page or post id
1160
- $url = network_site_url().'/?'.$url;
1161
- }elseif($url == "/" ){ // root
1162
- $url = network_site_url().'/';
1163
- }elseif(substr($url,0,1) == '/' ){ // relative to root
1164
- $url = network_site_url().$url;
1165
- $strip_protocol = 1;
1166
- $tostrip = network_site_url();
1167
- }elseif(substr($url,0,7) != 'http://' && substr($url,0,8) != 'https://' ){ // no protocol so add it
1168
- //$url = "http://".$url;
1169
- //desided not to add it automatically.
1170
- }
1171
- $info = @parse_url($url);
1172
- if($strip_protocol == 1 && $tostrip != '' ){
1173
- $info['url'] = str_replace($tostrip, '', $url);
1174
- }else{
1175
- $info['url'] = $url;
1176
- }
1177
- return $info;
1178
  }
1179
 
1180
  function isOne_none($val=''){ //true (1) or false =''
@@ -1200,14 +1567,15 @@ class quick_page_post_reds {
1200
  }
1201
  if(!empty($my_meta_data)){unset($my_meta_data);}
1202
  $my_meta_data = array();
1203
- if(isset($_POST['pprredirect_active']) || isset($_POST['pprredirect_url']) || isset($_POST['pprredirect_type']) || isset($_POST['pprredirect_newwindow']) || isset($_POST['pprredirect_relnofollow'])):
 
1204
  // find & save the form data & put it into an array
1205
  $my_meta_data['_pprredirect_active'] = isset($_REQUEST['pprredirect_active']) ? sanitize_meta( '_pprredirect_active', $this->isOne_none(intval( $_REQUEST['pprredirect_active'])), 'post' ) : '';
1206
  $my_meta_data['_pprredirect_newwindow'] = isset($_REQUEST['pprredirect_newwindow']) ? sanitize_meta( '_pprredirect_newwindow', $this->isOne_none( $_REQUEST['pprredirect_newwindow']), 'post' ) : '';
1207
  $my_meta_data['_pprredirect_relnofollow'] = isset($_REQUEST['pprredirect_relnofollow']) ? sanitize_meta( '_pprredirect_relnofollow', $this->isOne_none(intval( $_REQUEST['pprredirect_relnofollow'])), 'post' ) : '';
1208
  $my_meta_data['_pprredirect_type'] = isset($_REQUEST['pprredirect_type']) ? sanitize_meta( '_pprredirect_type', sanitize_text_field( $_REQUEST['pprredirect_type'] ), 'post' ) : '';
1209
  $my_meta_data['_pprredirect_rewritelink'] = isset($_REQUEST['pprredirect_rewritelink']) ? sanitize_meta( '_pprredirect_rewritelink', $this->isOne_none(intval( $_REQUEST['pprredirect_rewritelink'])), 'post' ) : '';
1210
- $my_meta_data['_pprredirect_url'] = isset($_REQUEST['pprredirect_url']) ? sanitize_meta( '_pprredirect_url', ( $_REQUEST['pprredirect_url'] ), 'post' ) : '';
1211
 
1212
  $info = $this->appip_parseURI($my_meta_data['_pprredirect_url']);
1213
  //$my_meta_data['_pprredirect_url'] = esc_url_raw($info['url']);
@@ -1240,6 +1608,43 @@ class quick_page_post_reds {
1240
  endif;
1241
  }
1242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1243
  function ppr_fix_targetsandrels($pages) {
1244
  $ppr_url = array();
1245
  $ppr_newindow = array();
@@ -1327,61 +1732,131 @@ class quick_page_post_reds {
1327
  //not needed at this time
1328
  }
1329
 
1330
- function getAddress(){
1331
  // utility function to get the full address of the current request - credit: http://www.phpro.org/examples/Get-Full-URL.html
1332
- if(!isset($_SERVER['HTTPS'])){$_SERVER['HTTPS']='';}
1333
- $protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http'; //check for https
 
 
1334
  return $protocol.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //return the full address
1335
  }
1336
 
1337
- function redirect(){
 
 
 
 
 
 
1338
 
 
 
1339
  // Read the list of redirects and if the current page is found in the list, send the visitor on her way
1340
  if (!empty($this->quickppr_redirects) && !is_admin()) {
1341
- $userrequest = str_replace(get_option('home'),'',$this->getAddress());
 
 
 
1342
  //get the query string if there is one so that it can be preserved
1343
- $finalQS = '';
1344
- if(isset($_GET)){
1345
- $useURLQS = array();
1346
- if(count($_GET) >= 1){
1347
- foreach($_GET as $key => $value){$useURLQS[] = $key.'='.$value;}
1348
- $finalQS = '?'.implode('&',$useURLQS);
1349
- $userrequest = preg_replace('/\?.*/', '', $userrequest);
1350
  }
1351
- }
1352
- //end QS preservation
 
1353
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1354
  $needle = $this->pproverride_casesensitive ? $userrequest : strtolower($userrequest);
1355
  $haystack = $this->pproverride_casesensitive ? $this->quickppr_redirects : array_change_key_case($this->quickppr_redirects);
 
 
1356
  $index = false;
1357
 
1358
- if(array_key_exists($needle, $haystack)){
 
 
 
 
 
1359
  $index = $needle;
1360
- } elseif(strpos($needle,'/') === false) {
1361
- if(array_key_exists('/'.$needle.'/', $haystack)){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1362
  $index = '/'.$needle.'/';
1363
- }
1364
- }else{
1365
- if(array_key_exists($needle.'/', $haystack)){
1366
- $index = $needle.'/';
1367
- }elseif(array_key_exists($needle.$finalQS, $haystack)){ //check if QS data might be part of the URL and not supposed to be added back.
1368
- $index = $needle.$finalQS;
1369
- $finalQS = ''; //remove it
1370
- }
 
 
 
 
 
1371
  }
1372
- if($index){
1373
- $val = $haystack[$index];
 
 
1374
  if($val) {
1375
- $useURL = $this->pproverride_URL != '' ? $this->pproverride_URL : $val;
1376
- $useURL .= $finalQS; //add QS back
1377
- //$this->pproverride_type = 301;
1378
- $qpprRedType = 301;
1379
- do_action('qppr_redirect',$useURL,$qpprRedType);
1380
- if($qpprRedType == 'meta'){
 
 
 
 
 
 
 
 
 
 
1381
  $this->ppr_metaurl = $useURL;
1382
- add_action('wp_head', array($this,'ppr_addmetatohead_theme'),1);
1383
  }else{
1384
- wp_redirect($useURL,$qpprRedType);
1385
  exit();
1386
  }
1387
  }
@@ -1389,26 +1864,27 @@ class quick_page_post_reds {
1389
  }
1390
  }
1391
 
1392
- function ppr_do_redirect(){
1393
- // Read the list of redirects and if the current page is found in the list, send the visitor on her way
 
 
1394
  global $post;
1395
- if (count($this->ppr_all_redir_array)>0 && (is_single() || is_singular() || is_page())) {
1396
- if(isset($this->ppr_all_redir_array[$post->ID])){
1397
  $isactive = $this->ppr_all_redir_array[$post->ID]['_pprredirect_active'];
1398
  $redrtype = $this->ppr_all_redir_array[$post->ID]['_pprredirect_type'];
1399
  $redrurl = $this->ppr_all_redir_array[$post->ID]['_pprredirect_url'];
1400
  if($isactive == 1 && $redrurl != '' && $redrurl != 'http://www.example.com'){
1401
  if($redrtype === 0){$redrtype = '200';}
1402
  if($redrtype === ''){$redrtype = '302';}
1403
-
1404
  if( strpos($redrurl, 'http://')=== 0 || strpos($redrurl, 'https://')=== 0){
1405
- $urlsite=$redrurl;
1406
  }elseif(strpos($redrurl, 'www')=== 0){ //check if they have full url but did not put http://
1407
- $urlsite='http://'.$redrurl;
1408
  }elseif(is_numeric($redrurl)){ // page/post number
1409
- $urlsite=$this->homelink.'/?p='.$redrurl;
1410
  }elseif(strpos($redrurl,'/') === 0){ // relative to root
1411
- $urlsite = $this->homelink.$redrurl;
1412
  }else{ // we assume they are using the permalink / page name??
1413
  $urlsite=$this->homelink.'/'.$redrurl;
1414
  }
@@ -1438,9 +1914,7 @@ class quick_page_post_reds {
1438
  $theNoFollow = $this->ppr_all_redir_array[$ppd->object_id]['_pprredirect_relnofollow'];
1439
  $theRewrite = $this->ppr_all_redir_array[$ppd->object_id]['_pprredirect_rewritelink'];
1440
  $theRedURL = $this->ppr_all_redir_array[$ppd->object_id]['_pprredirect_url'];
1441
-
1442
  if($this->pproverride_URL !=''){$theRedURL = $this->pproverride_URL;} // check override
1443
-
1444
  if($theIsActives == '1' && $theNewWindow === '_blank'){
1445
  $ppd->target = '_blank';
1446
  $ppd->classes[] = 'ppr-new-window';
@@ -1452,7 +1926,6 @@ class quick_page_post_reds {
1452
  if($theIsActives == '1' && $theRewrite == '1' && $theRedURL != ''){
1453
  $ppd->url = $theRedURL;
1454
  $ppd->classes[] = 'ppr-rewrite';
1455
-
1456
  }
1457
  }
1458
  $newmenu[] = $ppd;
6
  Author: Don Fischer
7
  Author URI: http://www.fischercreativemedia.com/
8
  Donate link: http://www.fischercreativemedia.com/donations/
9
+ Version: 5.0.7
10
+ Text Domain: quick-pagepost-redirect-plugin
11
+ Domain Path: /lang
12
  License: GPLv2 or later
13
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
14
 
15
+ * Copyright (C) 2009-2015 Donald J. Fischer <dfischer [at] fischercreativemedia [dot] com>
16
  *
17
  * This program is free software; you can redistribute it and/or
18
  * modify it under the terms of the [GNU General Public License](http://wordpress.org/about/gpl/)
28
  * along with this program; if not, see [GNU General Public Licenses](http://www.gnu.org/licenses/),
29
  * or write to the Free Software Foundation, Inc., 51 Franklin Street,
30
  * Fifth Floor, Boston, MA 02110-1301, USA.
31
+ ===================
32
+ * See the file 'filters-and-hooks.txt' in the plugin folder for filter and action usage.
33
+ ===================
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  */
35
+
36
  global $newqppr, $redirect_plugin;
37
  start_ppr_class();
 
 
 
 
38
 
39
  //=======================================
40
+ // Main Plugin Redirect Class.
41
  //=======================================
42
  class quick_page_post_reds {
43
+
44
  public $ppr_nofollow;
45
  public $ppr_newindow;
46
  public $ppr_url;
66
  public $pprmeta_seconds;
67
  public $pprmeta_message;
68
  public $quickppr_redirectsmeta;
 
69
  public $pproverride_casesensitive;
70
  public $ppruse_jquery;
71
  public $pprptypes_ok;
72
 
73
  function __construct() {
74
+ $this->ppr_curr_version = '5.0.7';
75
  $this->ppr_nofollow = array();
76
  $this->ppr_newindow = array();
77
  $this->ppr_url = array();
78
  $this->ppr_url_rewrite = array();
79
  $this->thepprversion = get_option( 'ppr_version');
80
  $this->thepprmeta = get_option( 'ppr_meta_clean');
81
+ $this->quickppr_redirects = get_option( 'quickppr_redirects', array() );
82
+ $this->quickppr_redirectsmeta = get_option( 'quickppr_redirects_meta', array() );
83
  $this->homelink = get_option( 'home');
84
  $this->pproverride_nofollow = get_option( 'ppr_override-nofollow' );
85
  $this->pproverride_newwin = get_option( 'ppr_override-newwindow' );
86
  $this->ppruse_jquery = get_option( 'ppr_use-jquery' );
87
+ $this->pprptypes_ok = get_option( 'ppr_qpprptypeok', array() );
88
  $this->pproverride_type = get_option( 'ppr_override-redirect-type' );
89
  $this->pproverride_active = get_option( 'ppr_override-active' );
90
  $this->pproverride_URL = get_option( 'ppr_override-URL' );
95
  $this->adminlink = admin_url('/', 'admin');
96
  $this->fcmlink = 'http://www.fischercreativemedia.com/plugins';
97
  $this->ppr_metaurl = '';
 
98
  $this->updatemsg = '';
99
+ $this->pprshowcols = get_option( 'ppr_show-columns', '1' );
100
  if($this->pprmeta_seconds==''){$this->pprmeta_seconds='0';}
101
 
102
  //these are for all the time - even if there are overrides
103
+ add_action( 'admin_init', array( $this, 'save_quick_redirects_fields' ) );
104
+ add_action( 'admin_init', array( $this, 'ppr_init_check_version' ), 1 ); // checks version of plugin in DB and updates if needed.
105
+ add_action( 'init', array( $this, 'ppr_parse_request_new' ) ); // parse query vars
106
+ add_action( 'save_post', array( $this,'ppr_save_metadata' ), 11, 2 ); // save the custom fields
107
+ add_action( 'admin_menu', array( $this,'ppr_add_menu_and_metaboxes' ) ); // add the menu items & Metaboxes needed
108
+ add_action( 'plugin_action_links_' . plugin_basename(__FILE__), array( $this,'ppr_filter_plugin_actions' ) ); // adds links to plugin list page
109
+ add_filter( 'plugin_row_meta', array( $this, 'ppr_filter_plugin_links' ), 10, 2 ); // adds links to plugin list page
110
+ add_filter( 'query_vars', array( $this, 'ppr_queryhook' ) ); // parse out some form submissions (mainly for import and export)
111
+ add_action( 'admin_enqueue_scripts' , array( $this, 'qppr_admin_scripts' ) ); // admin scripts & styles
112
+ add_action( 'admin_enqueue_scripts', array( $this, 'qppr_pointer_load' ), 1000 ); // for new features pointers - 3.0.7
113
+ add_action( 'wp_enqueue_scripts' , array( $this, 'qppr_frontend_scripts' ) ); // front end scripts - 3.0.7
114
+ add_action( 'wp_ajax_qppr_delete_quick_redirect', array( $this, 'qppr_delete_quick_redirect_ajax' ) ); // register ajax delete quick redirect - 3.0.7
115
+ add_action( 'wp_ajax_qppr_save_quick_redirect', array( $this, 'qppr_save_quick_redirect_ajax' ) ); // register ajax save quick redirect - 3.0.7
116
+ add_action( 'wp_ajax_qppr_pprhidemessage_ajax', array( $this, 'qppr_pprhidemessage_ajax' ) ); // register ajax messages quick redirect - 3.0.7
117
+ add_filter( 'qppr_admin_pointers-toplevel_page_redirect-updates', array( $this, 'qppr_register_pointer_existing' ) ); // add pointers filter
118
+ add_filter( 'qppr_admin_pointers-quick-redirects_page_redirect-options', array( $this, 'qppr_register_pointer_use_jquery' ) ); // add pointers filter
119
+ //add_filter( 'wp_feed_cache_transient_lifetime',array($this,'ppr_wp_feed_options',10, 2)); // for testing FAQ page only
120
+
121
+ if( $this->pproverride_active != '1' && !is_admin() ){ // don't run these if override active is set
122
+ add_action( 'init', array( $this, 'redirect' ), 1 ); // add the 301 redirect action, high priority
123
+ add_action( 'init', array( $this, 'redirect_post_type' ), 1 ); // add the normal redirect action, high priority
124
+ add_action( 'template_redirect', array( $this, 'ppr_do_redirect' ), 1); // do the redirects
125
+ add_filter( 'wp_get_nav_menu_items', array( $this, 'ppr_new_nav_menu_fix' ), 1, 1 );// hook into nav menus
126
+ add_filter( 'wp_list_pages', array( $this, 'ppr_fix_targetsandrels' ) ); // hook into wp_list_pages function
127
+ add_filter( 'page_link', array( $this, 'ppr_filter_page_links' ), 20, 2 ); // hook into page_link function
128
+ add_filter( 'post_link', array( $this, 'ppr_filter_page_links' ), 20, 2 ); // hook into post_link function
129
+ add_filter( 'post_type_link', array( $this, 'ppr_filter_page_links' ), 20, 2 ); // hook into custom post type link function
130
+ add_filter( 'get_permalink', array( $this, 'ppr_filter_links' ), 20, 2 ); // hook into get_permalink function
131
+ }
132
+ if( $this->pprshowcols == '1')
133
+ add_filter( 'pre_get_posts', array( $this,'add_custom_columns' ) ); // add custom columns
134
+ }
135
+
136
+ function qppr_pointer_load( $hook_suffix ) {
137
+ if ( get_bloginfo( 'version' ) < '3.3' )
138
+ return;
139
+ $screen = get_current_screen();
140
+ $screen_id = $screen->id;
141
+ $pointers = apply_filters( 'qppr_admin_pointers-' . $screen_id, array() );
142
+ if ( ! $pointers || ! is_array( $pointers ) )
143
+ return;
144
+ $dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
145
+ $valid_pointers =array();
146
+ foreach ( $pointers as $pointer_id => $pointer ) {
147
+ if ( in_array( $pointer_id, $dismissed ) || empty( $pointer ) || empty( $pointer_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) )
148
+ continue;
149
+ $pointer['pointer_id'] = $pointer_id;
150
+ $valid_pointers['pointers'][] = $pointer;
151
+ }
152
+ if ( empty( $valid_pointers ) )
153
+ return;
154
+ wp_enqueue_style( 'wp-pointer' );
155
+ wp_enqueue_script( 'qppr-pointer', plugins_url( 'js/qppr_pointers.js', __FILE__ ), array( 'wp-pointer' ) );
156
+ wp_localize_script( 'qppr-pointer', 'qpprPointer', $valid_pointers );
157
+ }
158
 
159
+ function qppr_register_pointer_existing( $p ) {
160
+ $p['existing-redirects'] = array(
161
+ 'target' => '#qppr-existing-redirects',
162
+ 'options' => array(
163
+ 'content' => sprintf( '<h3>%s</h3><p>%s</p><p>%s</p>',
164
+ __( 'New Layout of Existing Redirects' ,'quick-pagepost-redirect-plugin'),
165
+ __( 'The existing <strong>Quick Redirects</strong> are now laid out in a list format instead of form fields. When you have a lot of Redirects, this helps elminiate the "max_input_vars" configuration issue where redirects were not saving correctly.','quick-pagepost-redirect-plugin'),
166
+ __( 'To edit an exisitng redirect, click the pencil icon','quick-pagepost-redirect-plugin'). ' (<span class="dashicons dashicons-edit"></span>) ' .__( 'and the row will become editable. Click the trash can icon','quick-pagepost-redirect-plugin').' (<span class="dashicons dashicons-trash"></span>) '.__( 'and the redirect will be deleted. Click the trash can icon','quick-pagepost-redirect-plugin')
167
+ ),
168
+ 'position' => array( 'edge' => 'bottom', 'align' => 'left' )
169
+ )
170
+ );
171
+ return $p;
172
+ }
173
+ function qppr_register_pointer_use_jquery( $p ) {
174
+ $p['qppr-use-jquery'] = array(
175
+ 'target' => '#ppr_use-jquery',
176
+ 'options' => array(
177
+ 'content' => sprintf( '<h3>%s</h3><p>%s</p><p>%s</p><p>%s</p>',
178
+ __( 'New Option to Use jQuery' ,'quick-pagepost-redirect-plugin'),
179
+ __( 'To increase the effectiveness of the plugin\'s ability to add new window and nofollow functionality, you can use the jQuery option.','quick-pagepost-redirect-plugin'),
180
+ __( 'This adds JavaScript/jQuery scripting to check the links in the output HTML of the page and add the correct functionality if needed.','quick-pagepost-redirect-plugin'),
181
+ __( 'If you experience JavaScript/jQuery conflicts, try turning this option off.','quick-pagepost-redirect-plugin')
182
+ ),
183
+ 'position' => array( 'edge' => 'left', 'align' => 'middle' )
184
+ )
185
+ );
186
+ return $p;
187
+ }
188
+
189
+ function qppr_delete_quick_redirect_ajax(){
190
+ check_ajax_referer( 'qppr_ajax_verify', 'security', true );
191
+ $request = isset($_POST['request']) && esc_url($_POST['request']) != '' ? esc_url($_POST['request']) : '';
192
+ $curRedirects = get_option('quickppr_redirects','');
193
+ $curMeta = get_option('quickppr_redirects_meta','');
194
+ if( isset( $curRedirects[ $request ] ) && isset( $curMeta[ $request ] ) ){
195
+ unset( $curRedirects[ $request ] );
196
+ unset( $curMeta[ $request ] );
197
+ update_option('quickppr_redirects',$curRedirects);
198
+ update_option('quickppr_redirects_meta',$curMeta);
199
+ echo 'redirect deleted';
200
+ }else{
201
+ echo 'error';
202
  }
203
+ exit;
204
+ }
205
+
206
+ function qppr_save_quick_redirect_ajax(){
207
+ check_ajax_referer( 'qppr_ajax_verify', 'security', true );
208
+ $protocols = apply_filters('qppr_allowed_protocols',array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
209
+ $request = isset($_POST['request']) && trim($_POST['request']) != '' ? esc_url(str_replace(' ','%20',trim($_POST['request'])), null, 'appip') : '';
210
+ $destination = isset($_POST['destination']) && trim($_POST['destination']) != '' ? esc_url(str_replace(' ','%20',trim($_POST['destination'])), null, 'appip') : '';
211
+ $newWin = isset($_POST['newwin']) && (int) trim($_POST['newwin']) == 1 ? 1 : 0;
212
+ $noFollow = isset($_POST['nofollow']) && (int) trim($_POST['nofollow']) == 1 ? 1 : 0;
213
+ $updateRow = isset($_POST['row']) && $_POST['row'] != '' ? (int) str_replace('rowpprdel-','',$_POST['row']) : -1;
214
+ $curRedirects = get_option('quickppr_redirects', array());
215
+ $curMeta = get_option('quickppr_redirects_meta', array());
216
+ $rkeys = array_keys($curRedirects);
217
+ $mkeys = array_keys($curMeta);
218
+ if( $updateRow == -1 || $request == '' || $destination == '' || empty( $curRedirects ) || empty( $curMeta) ){
219
+ echo 'error';
220
+ exit;
221
+ }
222
+ $toDelete = array();
223
+ $newRedirects = array();
224
+ $newMeta = array();
225
+ foreach( $rkeys as $key => $val ){
226
+ $newRedirects[] = array( 'request' => $val, 'destination' => $curRedirects[$val] );
227
+ }
228
+ foreach( $mkeys as $key => $val ){
229
+ $newMeta[] = array( 'key' => $val, 'newwindow' => ( isset( $curMeta[$val]['newwindow'] ) && $curMeta[$val]['newwindow'] != '' ? $curMeta[$val]['newwindow'] : 0 ), 'nofollow' => ( isset( $curMeta[$val]['nofollow'] ) && $curMeta[$val]['nofollow'] != '' ? $curMeta[$val]['nofollow'] : 0 ) );
230
+ }
231
+ $originalRowKey = $rkeys[$updateRow];
232
+ $originalRowMetaKey = $mkeys[$updateRow];
233
+ if( $originalRowKey == $request ){
234
+ //if row to update has same request value then just update destination
235
+ $newRedirects[$updateRow] = array( 'request' => $request, 'destination' => $destination );
236
+ }else{
237
+ if( isset( $curRedirects[$request] ) ){
238
+ echo 'duplicate';
239
+ exit;
240
+ }else{
241
+ $newRedirects[$updateRow] = array( 'request' => $request, 'destination' => $destination );
242
+ }
243
+ }
244
+ if( !empty( $newRedirects ) ){
245
+ $curRedirects = array();
246
+ foreach($newRedirects as $red){
247
+ $curRedirects[$red['request']] = $red['destination'];
248
+ }
249
+ }
250
+ if( $originalRowMetaKey == $request ){
251
+ //if row to udpate has same request value then just update data
252
+ $newMeta[$updateRow]['key'] = $request;
253
+ $newMeta[$updateRow]['newwindow'] = $newWin;
254
+ $newMeta[$updateRow]['nofollow'] = $noFollow;
255
+ }else{
256
+ if( isset( $curMeta[$request] ) ){
257
+ echo 'duplicate';
258
+ exit;
259
+ }else{
260
+ $newMeta[$updateRow]['key'] = $request;
261
+ $newMeta[$updateRow]['newwindow'] = $newWin;
262
+ $newMeta[$updateRow]['nofollow'] = $noFollow;
263
+ }
264
+ }
265
+ if( !empty( $newMeta ) ){
266
+ $curMeta = array();
267
+ foreach($newMeta as $meta){
268
+ $curMeta[$meta['key']]['newwindow'] = $meta['newwindow'];
269
+ $curMeta[$meta['key']]['nofollow'] = $meta['nofollow'];
270
+ }
271
+ }
272
+ // now save data back to the db options
273
+ update_option('quickppr_redirects', $curRedirects);
274
+ update_option('quickppr_redirects_meta', $curMeta);
275
+ echo 'saved';
276
+ exit;
277
  }
278
  function save_quick_redirects_fields(){
279
  if( isset( $_POST['submit_301'] ) ) {
280
+ if( check_admin_referer( 'add_qppr_redirects' )){
281
+ $this->quickppr_redirects = $this->save_redirects( $_POST['quickppr_redirects'] );
282
+ $this->updatemsg = __( 'Quick Redirects Updated.', 'quick-pagepost-redirect-plugin' );
283
  }
284
  } //if submitted and verified, process the data
285
  }
286
+
287
+ function save_redirects($data){
288
+ // Save the redirects from the options page to the database
289
+ // As of version 5.0.7 the redirects are saved by adding to the existing ones, not resaving all of them from form -
290
+ // this was to prevent the max_input_vars issue when that was set low and there were a lot of redirects.
291
+ $currRedirects = get_option( 'quickppr_redirects', array() );
292
+ $currMeta = get_option( 'quickppr_redirects_meta', array() );
293
+ //TODO: Add Back up Redirects
294
+ //TODO: Add New Redirects to TOP not Bottom.
295
+
296
+ $protocols = apply_filters( 'qppr_allowed_protocols', array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
297
+
298
+ for($i = 0; $i < sizeof($data['request']); ++$i) {
299
+ $request = esc_url(str_replace(' ','%20',trim($data['request'][$i])), null, 'appip');
300
+ $destination = esc_url(str_replace(' ','%20',trim($data['destination'][$i])), null, 'appip');
301
+ $newwin = isset($data['newwindow'][$i]) && (int)(trim($data['newwindow'][$i])) == 1 ? 1 : 0;
302
+ $nofoll = isset($data['nofollow'][$i]) && (int)(trim($data['nofollow'][$i])) == 1 ? 1 : 0;
303
+ if( strpos($request,'/',0) !== 0 && !$this->qppr_strposa($request,$protocols)){
304
+ $request = '/'.$request;
305
+ } // adds root marker to front if not there
306
+ if((strpos($request,'.') === false && strpos($request,'?') === false) && strpos($request,'/',strlen($request)-1) === false){
307
+ $request = $request.'/';
308
+ } // adds end folder marker if not a file end
309
+ if (($request == '' || $request == '/') && $destination == '') {
310
+ continue; //if nothing there do nothing
311
+ } elseif ($request != '' && $request != '/' && $destination == '' ){
312
+ $currRedirects[$request] = '/';
313
+ } else {
314
+ $currRedirects[$request] = $destination;
315
+ }
316
+ $currMeta[$request]['newwindow'] = $newwin;
317
+ $currMeta[$request]['nofollow'] = $nofoll;
318
+ }
319
+
320
+ update_option( 'quickppr_redirects', sanitize_option( 'quickppr_redirects', $currRedirects ) );
321
+ update_option( 'quickppr_redirects_meta', sanitize_option( 'quickppr_redirects_meta', $currMeta ) );
322
+ $this->quickppr_redirectsmeta = get_option( 'quickppr_redirects_meta', array() );
323
+ $this->quickppr_redirects = get_option( 'quickppr_redirects'. array() );
324
+ return $currRedirects;
325
+ }
326
+
327
+ function qppr_strposa($haystack, $needle, $offset = 0) {
328
+ if( !is_array( $needle ) )
329
+ $needle = array( $needle );
330
+ foreach( $needle as $key => $query ) {
331
+ if(strpos($haystack, $query, $offset) !== false) return true; // stop on first true result
332
+ }
333
+ return false;
334
+ }
335
+
336
+
337
+ function add_custom_columns(){
338
+ /* Add Column Headers */
339
+ $usetypes = get_option( 'ppr_use-custom-post-types', 0 ) != 0 ? 1 : 0;
340
+ if( $usetypes == 1 ){
341
+ $post_types_temp = get_post_types( array( 'public' => true ) );
342
+ if( count( $post_types_temp ) == 0){
343
+ $post_types_temp = array(
344
+ 'page' => 'page',
345
+ 'post' => 'post',
346
+ 'attachment' => 'attachment',
347
+ 'nav_menu_item' => 'nav_menu_item'
348
+ );
349
+ }
350
+ unset( $post_types_temp['revision'] ); // remove revions from array if present as they are not needed.
351
+ unset( $post_types_temp['attachment'] ); // remove from array if present as they are not needed.
352
+ unset( $post_types_temp['nav_menu_item'] ); // remove from array if present as they are not needed.
353
+ $ptypesNOTok = is_array( $this->pprptypes_ok ) ? $this->pprptypes_ok : array();
354
+ foreach( $post_types_temp as $type ){
355
+ if( in_array( $type, $ptypesNOTok ) ){
356
+ continue;
357
+ }else{
358
+ if( $type == 'post' ){
359
+ add_filter( "manage_post_posts_columns", array( $this, 'set_custom_edit_qppr_columns' ) );
360
+ add_action( "manage_post_posts_custom_column" , array( $this, 'custom_qppr_column' ), 10, 2 );
361
+ }elseif( $type == 'page' ){
362
+ //add_filter( "manage_page_pages_columns", array( $this, 'set_custom_edit_qppr_columns' ) );
363
+ //add_action( "manage_page_pages_custom_column" , array( $this, 'custom_qppr_column' ), 10, 2 );
364
+ add_filter( "manage_page_posts_columns", array( $this, 'set_custom_edit_qppr_columns' ) );
365
+ add_action( "manage_page_posts_custom_column" , array( $this, 'custom_qppr_column' ), 10, 2 );
366
+ }else{
367
+ add_filter( "manage_{$type}_posts_columns", array( $this, 'set_custom_edit_qppr_columns' ) );
368
+ add_action( "manage_{$type}_posts_custom_column" , array( $this, 'custom_qppr_column' ), 10, 2 );
369
+ add_filter( "manage_{$type}_pages_columns", array( $this, 'set_custom_edit_qppr_columns' ) );
370
+ add_action( "manage_{$type}_pages_custom_column" , array( $this, 'custom_qppr_column' ), 10, 2 );
371
+ }
372
+ }
373
+ }
374
+ }else{
375
+ //if not use custom post types, just use pages and posts.
376
+ add_filter( "manage_post_posts_columns", array( $this, 'set_custom_edit_qppr_columns' ) );
377
+ add_action( "manage_post_posts_custom_column" , array( $this, 'custom_qppr_column' ), 10, 2 );
378
+ //add_filter( "manage_page_pages_columns", array( $this, 'set_custom_edit_qppr_columns' ) );
379
+ //add_action( "manage_page_pages_custom_column" , array( $this, 'custom_qppr_column' ), 10, 2 );
380
+ add_filter( "manage_page_posts_columns", array( $this, 'set_custom_edit_qppr_columns' ) );
381
+ add_action( "manage_page_posts_custom_column" , array( $this, 'custom_qppr_column' ), 10, 2 );
382
+ }
383
+
384
+ }
385
+
386
+ function set_custom_edit_qppr_columns($columns) {
387
+ $columns['qppr_redirect'] = __( 'Redirect', 'quick-pagepost-redirect-plugin' );
388
+ return $columns;
389
  }
390
+
391
+ function custom_qppr_column( $column, $post_id ) {
392
+ switch ( $column ) {
393
+ case 'qppr_redirect' :
394
+ $qppr_url = get_post_meta( $post_id , '_pprredirect_url', true ) != '' ? get_post_meta( $post_id , '_pprredirect_url', true ) : '';
395
+ if( $qppr_url != '' ){
396
+ $qppr_type = get_post_meta( $post_id , '_pprredirect_type', true );
397
+ $qppr_active = get_post_meta( $post_id , '_pprredirect_active', true );
398
+ $qppr_rewrite = get_post_meta( $post_id , '_pprredirect_rewritelink', true );
399
+ $qppr_newwin = get_post_meta( $post_id , '_pprredirect_newwindow', true );
400
+ $qppr_nofoll = get_post_meta( $post_id , '_pprredirect_relnofollow', true );
401
+ $rediricon = $qppr_newwin != '' ? '<span class="dashicons dashicons-external" title="New Window"></span>' : '<span class="dashicons dashicons-arrow-right-alt" title="Redirects to"></span>';
402
+ if($qppr_active == '1'){
403
+ echo '<div class="qpprfont-on" title="on">('.$qppr_type.') ' . $rediricon . ' <code>'.$qppr_url.'</code></div>';
404
+ }else{
405
+ echo '<div class="qpprfont-not" title="off">('.$qppr_type.') ' . $rediricon . ' <code>'.$qppr_url.'</code></div>';
406
+ }
407
+ }
408
+ break;
409
+ }
410
+ }
411
+
412
+ function ppr_add_menu_and_metaboxes(){
413
+ /* add menus */
414
+ $qppr_add_page = add_menu_page( 'Quick Redirects', 'Quick Redirects', 'manage_options', 'redirect-updates', array( $this, 'ppr_options_page' ), 'dashicons-external' );
415
+ add_submenu_page( 'redirect-updates', 'Quick Redirects', 'Quick Redirects', 'manage_options', 'redirect-updates', array( $this,'ppr_options_page' ) );
416
+ $qppr_exp_page = add_submenu_page( 'redirect-updates', 'Import/Export', 'Import/Export', 'manage_options', 'redirect-import-export', array( $this, 'ppr_import_export_page' ) );
417
+ add_submenu_page( 'redirect-updates', 'Redirect Options', 'Redirect Options', 'manage_options', 'redirect-options', array( $this, 'ppr_settings_page' ) );
418
+ add_submenu_page( 'redirect-updates', 'Redirect Summary', 'Redirect Summary', 'manage_options', 'redirect-summary', array( $this,'ppr_summary_page' ) );
419
+ add_submenu_page( 'redirect-updates', 'FAQs/Help', 'FAQs/Help', 'manage_options', 'redirect-faqs', array( $this, 'ppr_faq_page' ) );
420
+ add_action( 'admin_init', array( $this, 'register_pprsettings' ) );
421
+ add_action( 'load-'.$qppr_add_page, array( $this, 'qppr_options_help_tab' ) );
422
+ add_action( 'load-'.$qppr_exp_page, array( $this, 'qppr_options_help_tab' ) );
423
+
424
+ /* Add Metaboxes */
425
+ $usetypes = get_option( 'ppr_use-custom-post-types', 0 ) != 0 ? 1 : 0;
426
+ if( $usetypes == 1 ){
427
+ $post_types_temp = get_post_types();
428
+ if( count( $post_types_temp ) == 0){
429
+ $post_types_temp = array(
430
+ 'page' => 'page',
431
+ 'post' => 'post',
432
+ 'attachment' => 'attachment',
433
+ 'nav_menu_item' => 'nav_menu_item'
434
+ );
435
+ }
436
+ unset( $post_types_temp['revision'] ); // remove revions from array if present as they are not needed.
437
+ unset( $post_types_temp['attachment'] ); // remove from array if present as they are not needed.
438
+ unset( $post_types_temp['nav_menu_item'] ); // remove from array if present as they are not needed.
439
+ }else{
440
+ //use only for Page && Post if not set to use custom post types
441
+ $post_types_temp = array(
442
+ 'page' => 'page',
443
+ 'post' => 'post'
444
+ );
445
+ }
446
+ $ptypesNOTok = is_array( $this->pprptypes_ok ) ? $this->pprptypes_ok : array();
447
+ foreach( $post_types_temp as $type ){
448
+ if( !in_array( $type, $ptypesNOTok ) ){
449
+ add_meta_box( 'edit-box-ppr', __( 'Quick Page/Post Redirect', 'quick-pagepost-redirect-plugin' ) , array( $this, 'edit_box_ppr_1' ), $type, 'normal', 'high' );
450
+ }
451
+ }
452
+ }
453
+
454
  function qppr_admin_scripts($hook){
455
+ if(in_array( $hook, array( 'post-new.php', 'edit.php', 'post.php', 'toplevel_page_redirect-updates', 'quick-redirects_page_redirect-options', 'quick-redirects_page_redirect-summary', 'quick-redirects_page_redirect-faqs', 'quick-redirects_page_redirect-import-export' ) ) ){
456
+ $ajax_add_nonce = wp_create_nonce( 'qppr_ajax_verify' );
457
+ $protocols = apply_filters( 'qppr_allowed_protocols', array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
458
+ wp_enqueue_style( 'qppr_admin_meta_style', plugins_url( '/css/qppr_admin_style.css', __FILE__ ) , null , '5.0.7' );
459
+ wp_enqueue_script( 'qppr_admin_meta_script', plugins_url( '/js/qppr_admin_script.js', __FILE__ ) , array('jquery'), '5.0.7');
460
+ wp_localize_script( 'qppr_admin_meta_script', 'qpprData', array( 'protocols' => $protocols, 'msgDuplicate' => __( 'Redirect could not be saved as a redirect already exists with the same Request URL.', 'quick-pagepost-redirect-plugin' ) , 'msgDeleteConfirm' => __( 'Are you sure you want to delete this redirect?', 'quick-pagepost-redirect-plugin' ) , 'msgErrorSave' => __( 'Error Saving Redirect\nTry refreshing the page and trying again.', 'quick-pagepost-redirect-plugin' ) , 'msgSelect' => 'select a file', 'msgFileType' => __( 'File type not allowed,\nAllowed file type: *.txt', 'quick-pagepost-redirect-plugin' ) , 'adminURL' => admin_url('admin.php'),'ajaxurl'=> admin_url('admin-ajax.php'), 'security' => $ajax_add_nonce, 'error' => __('Please add at least one redirect before submitting form', 'quick-pagepost-redirect-plugin')));
461
  }
462
  return;
463
  }
464
+
465
+ function qppr_frontend_scripts(){
466
+ $turnOff = get_option( 'ppr_override-active', '0' ) ;
467
+ $useJQ = get_option( 'ppr_use-jquery', '0' ) ;
468
+ if( (int) $useJQ == 0 || (int) $turnOff == 1 )
469
+ return;
470
+ global $wpdb;
471
+ $allNewWin = get_option( 'ppr_override-newwindow', '0' ) ;
472
+ $allNoFoll = get_option( 'ppr_override-nofollow', '0' ) ;
473
+ $noFollNewWin = get_option( 'quickppr_redirects_meta', array() );
474
+ $linkData = array();
475
+ if(is_array($noFollNewWin) && !empty($noFollNewWin)){
476
+ foreach( $noFollNewWin as $key => $val ){
477
+ if( (int) $allNewWin == 1 && (int) $allNoFoll == 1 ){
478
+ $linkData[$key] = array( 1, 1 );
479
+ }elseif( ( (int) $val['nofollow'] !== 0 || (int) $allNoFoll == 1 ) || ( (int) $val['newwindow'] !== 0 || (int) $allNewWin == 1 ) ){
480
+ $newwinval = (int) $allNewWin == 1 ? 1 : (int) $val['newwindow'];
481
+ $nofollval = (int) $allNoFoll == 1 ? 1 : (int) $val['nofollow'];
482
+ $linkData[$key] = array( $newwinval, $nofollval );
483
+ }
484
+ };
485
+ }
486
+ $joinSQL = ((int) $allNewWin == 1 || (int) $allNoFoll == 1) ? "" : " INNER JOIN {$wpdb->prefix}postmeta AS mt3 ON ( {$wpdb->prefix}posts.ID = mt3.post_id ) ";
487
+ $whereSQL = ((int) $allNewWin == 1 || (int) $allNoFoll == 1) ? "" : " AND ( ( mt3.meta_key = '_pprredirect_relnofollow' AND CAST(mt3.meta_value AS CHAR) = '1' ) OR ( mt3.meta_key = '_pprredirect_newwindow' AND CAST(mt3.meta_value AS CHAR) = '1' ) ) ";
488
+ $finalSQL = "SELECT {$wpdb->prefix}posts.ID FROM {$wpdb->prefix}posts INNER JOIN {$wpdb->prefix}postmeta ON ( {$wpdb->prefix}posts.ID = {$wpdb->prefix}postmeta.post_id ) INNER JOIN {$wpdb->prefix}postmeta AS mt1 ON ( {$wpdb->prefix}posts.ID = mt1.post_id ) INNER JOIN {$wpdb->prefix}postmeta AS mt2 ON ( {$wpdb->prefix}posts.ID = mt2.post_id ) {$joinSQL} WHERE 1=1 AND ( ( {$wpdb->prefix}postmeta.meta_key = '_pprredirect_active' AND CAST({$wpdb->prefix}postmeta.meta_value AS CHAR) = '1' ) AND ( mt1.meta_key = '_pprredirect_type' AND CAST(mt1.meta_value AS CHAR) != '' ) AND ( mt2.meta_key = '_pprredirect_url' AND CAST(mt2.meta_value AS CHAR) != '' ) {$whereSQL}) AND {$wpdb->prefix}posts.post_type NOT IN ('attachment', 'nav_menu_item', 'revision' ) AND (({$wpdb->prefix}posts.post_status = 'publish')) GROUP BY {$wpdb->prefix}posts.ID ORDER BY {$wpdb->prefix}posts.post_date DESC ";
489
+ $indReds = $wpdb->get_results($finalSQL);
490
+ if( is_array($indReds) && !empty($indReds) ){
491
+ foreach( $indReds as $key => $qpost ){
492
+ $noFoll = (int) $allNoFoll == 1 ? 1 : ( (int) get_post_meta( $qpost->ID, '_pprredirect_relnofollow', true ) );
493
+ $newWin = (int) $allNewWin == 1 ? 1 : ( get_post_meta( $qpost->ID, '_pprredirect_newwindow', true ) != '' ? 1 : 0 );
494
+ $redURL = get_permalink($qpost->ID);
495
+ $linkData[$redURL] = array( $newWin, $noFoll );
496
+ }
497
+ }
498
+ wp_enqueue_script( 'qppr_frontend_scripts', plugins_url( '/js/qppr_frontend_script.js', __FILE__ ) , array('jquery'), '5.0.7', true );
499
+ wp_localize_script( 'qppr_frontend_scripts', 'qpprFrontData', array( 'linkData' => $linkData, 'siteURL' => site_url(), 'siteURLq' => $this->getQAddress() ) );
500
+ }
501
+
502
  function register_pprsettings() {
503
  register_setting( 'ppr-settings-group', 'ppr_use-custom-post-types' );
504
  register_setting( 'ppr-settings-group', 'ppr_override-nofollow' );
512
  register_setting( 'ppr-settings-group', 'ppr_use-jquery' );
513
  register_setting( 'ppr-settings-group', 'ppr_qpprptypeok' );
514
  register_setting( 'ppr-settings-group', 'ppr_override-casesensitive' );
515
+ register_setting( 'ppr-settings-group', 'ppr_show-columns' );
516
  }
517
+
518
+ function ppr_wp_feed_options( $cache, $url ){
519
+ // this is only for testing cached FAQ
520
+ if( $url == "http://www.fischercreativemedia.com/?feed=qppr_faqs" )
521
  $cache = '1';
 
522
  return $cache;
523
  }
524
 
526
  include_once(ABSPATH . WPINC . '/feed.php');
527
  echo '
528
  <div class="wrap">
529
+ <h2>' . __( 'Quick Page/Post Redirect FAQs/Help', 'quick-pagepost-redirect-plugin' ) . '</h2>
530
+ <div align="left"><p>' . __( 'The FAQS are now on a feed that can be updated on the fly. If you have a question and don\'t see an answer, please send an email to <a href="mailto:plugins@fischercreativemedia.com">plugins@fischercreativemedia.com</a> and ask your question. If it is relevant to the plugin, it will be added to the FAQs feed so it will show up here. Please be sure to include the plugin you are asking a question about (Quick Page/Post Redirect Plugin) and any other information like your WordPress version and examples if the plugin is not working correctly for you. THANKS!', 'quick-pagepost-redirect-plugin' ) . '</p>
 
 
 
 
 
 
 
 
 
 
 
531
  <hr noshade color="#C0C0C0" size="1" />
532
  ';
533
+ $rss = fetch_feed( 'http://www.fischercreativemedia.com/?feed=qppr_faqs&ver=' . $this->ppr_curr_version . '&loc=' . urlencode( $this->homelink ) );
534
  $linkfaq = array();
535
  $linkcontent = array();
536
  if (!is_wp_error( $rss ) ) :
537
+ $maxitems = $rss->get_item_quantity( 100 );
538
+ $rss_items = $rss->get_items( 0, $maxitems );
539
  endif;
540
  $aqr = 0;
541
  if ($maxitems != 0){
545
  $linkcontent[] = '<li class="faq-item"><a name="faq-'.$aqr.'"></a><h3 class="qa"><span class="qa">Q. </span>'.esc_html( $item->get_title() ).'</h3><div class="qa-content"><span class="qa answer">A. </span>'.$item->get_content().'</div><div class="toplink"><a href="#faq-top">top &uarr;</a></li>';
546
  endforeach;
547
  }
548
+ echo '<a name="faq-top"></a><h2>'.__('Table of Contents','quick-pagepost-redirect-plugin').'</h2>';
549
  echo '<ol class="qppr-faq-links">';
550
+ echo implode( "\n", $linkfaq );
551
  echo '</ol>';
552
+ echo '<h2>' . __( 'Questions/Answers', 'quick-pagepost-redirect-plugin' ) . '</h2>';
553
  echo '<ul class="qppr-faq-answers">';
554
+ echo implode( "\n", $linkcontent );
555
  echo '</ul>';
556
  echo '
557
  </div>
558
  </div>';
559
  }
560
  function ppr_summary_page() {?>
561
+ <div class="wrap">
562
+ <h2><?php echo __( 'Quick Page Post Redirect Summary', 'quick-pagepost-redirect-plugin' );?></h2>
563
+ <p><?php echo __( 'This is a summary of Individual &amp; Quick 301 Redirects.', 'quick-pagepost-redirect-plugin' );?></p>
564
+ <br/>
565
+ <?php if($this->updatemsg!=''){?>
566
+ <div class="updated settings-error" id="setting-error-settings_updated">
567
+ <p><strong><?php echo $this->updatemsg;?></strong></p>
568
+ </div>
569
+ <?php } ?>
570
+ <?php $this->updatemsg ='';?>
571
+ <h2 style="font-size:20px;"><?php echo __( 'Summary', 'quick-pagepost-redirect-plugin' );?></h2>
572
+ <div align="left">
573
+ <?php
574
+ if($this->pproverride_active =='1'){echo '<div class="ppr-acor" style="margin:1px 0;width: 250px;font-weight: bold;padding: 2px;">' . __( 'Acitve Override is on - All Redirects are OFF!', 'quick-pagepost-redirect-plugin' ) . '</div>';}
575
+ if($this->pproverride_nofollow =='1'){echo '<div class="ppr-nfor" style="margin:1px 0;width: 200px;font-weight: bold;padding: 2px;">' . __( 'No Follow Override is on!', 'quick-pagepost-redirect-plugin' ) . '</div>';}
576
+ if($this->pproverride_newwin =='1'){echo '<div class="ppr-nwor" style="margin:1px 0;width: 200px;font-weight: bold;padding: 2px;">' . __( 'New Window Override is on!', 'quick-pagepost-redirect-plugin' ) . '</div>';}
577
+ if($this->pproverride_rewrite =='1'){echo '<div class="ppr-rrlor" style="margin:1px 0;width: 200px;font-weight: bold;padding: 2px;">' . __( 'Rewrite Override is on!', 'quick-pagepost-redirect-plugin' ) . '</div>';}
 
 
 
 
 
 
578
  ?>
579
+ <table class="form-table qform-table" width="100%">
580
+ <tr valign="top" class="headrow">
581
+ <td width="50" align="left"><?php echo __( 'ID', 'quick-pagepost-redirect-plugin' );?></td>
582
+ <td width="75" align="left"><?php echo __( 'post type', 'quick-pagepost-redirect-plugin' );?></td>
583
+ <td width="65" align="center"><?php echo __( 'active', 'quick-pagepost-redirect-plugin' );?></td>
584
+ <td width="65" align="center"><?php echo __( 'no follow', 'quick-pagepost-redirect-plugin' );?></td>
585
+ <td width="65" align="center"><?php echo __( 'new window', 'quick-pagepost-redirect-plugin' );?></td>
586
+ <td width="60" align="center"><?php echo __( 'type', 'quick-pagepost-redirect-plugin' );?></td>
587
+ <td width="50" align="center"><?php echo __( 'rewrite', 'quick-pagepost-redirect-plugin' );?></td>
588
+ <td align="left"><?php echo __( 'original URL', 'quick-pagepost-redirect-plugin' );?></td>
589
+ <td align="left"><?php echo __( 'redirect to URL', 'quick-pagepost-redirect-plugin' );?></td>
590
+ </tr>
591
+ <?php
 
592
  $tempReportArray = array();
593
  $tempa = array();
594
  $tempQTReportArray = array();
599
  $qr_newwindow = $this->quickppr_redirectsmeta[$key]['newwindow'];
600
  if($qr_nofollow ==''){$qr_nofollow = '0';}
601
  if($qr_newwindow ==''){$qr_newwindow = '0';}
602
+ if( $this->pproverride_nofollow == '1' ){ $qr_nofollow = '<span class="ppr-nfor">1</span>'; }
603
+ if( $this->pproverride_newwin == '1' ){ $qr_newwindow = '<span class="ppr-nwor">1</span>'; }
604
+ if( $this->pproverride_rewrite == '1' ){ $qrtrewrit= '<span class="ppr-rrlor">1</span>';$qrtredURL = '<span class="ppr-rrlor">'.$this->pproverride_URL.'</span>';}else{$qrtrewrit = 'N/A';$qrtredURL =$redir;}
605
+ if( $this->pproverride_active == '1' ){ $qrtactive = '<span class="ppr-acor">0</span>';}else{$qrtactive= 1;}
606
 
607
  $tempReportArray[] = array(
608
  '_pprredirect_active' => $qrtactive,
618
  }
619
  }
620
  if(!empty($this->ppr_all_redir_array)){
621
+ foreach( $this->ppr_all_redir_array as $key => $result ){
622
  $tempa['id']= $key;
623
  $tempa['post_type'] = get_post_type( $key );
624
  if(count($result)>0){
656
  }
657
  if($pclass == 'offrow'){$pclass = 'onrow';}else{$pclass = 'offrow';}
658
  if($tredURL == 'http://www.example.com' || $tredURL == '<span class="ppr-rrlor">http://www.example.com</span>'){$tredURL='<strong>N/A - redirection will not occur</strong>';}
659
+ ?>
660
+ <tr valign="top" class="<?php echo $pclass;?>">
661
+ <td width="50" align="left"><?php echo $tpostid;?></td>
662
+ <td width="75" align="left"><?php echo $tpotype;?></td>
663
+ <td width="65" align="center"><?php echo $tactive;?></td>
664
+ <td width="65" align="center"><?php echo $tnofoll;?></td>
665
+ <td width="65" align="center"><?php echo $tnewwin;?></td>
666
+ <td width="60" align="center"><?php echo $tretype;?></td>
667
+ <td width="50" align="center"><?php echo $trewrit;?></td>
668
+ <td align="left"><?php echo $toriurl;?></td>
669
+ <td align="left"><?php echo $tredURL;?></td>
670
+ </tr>
671
+ <?php }
672
  }
673
  ?>
674
+ </table>
675
+ </div>
676
+ </div>
677
+ <?php
678
  }
679
+
680
+ function ppr_import_export_page(){
681
+ if(isset($_GET['update'])){
682
+ if($_GET['update']=='4'){$this->updatemsg ='' . __( 'Quick Redirects Imported & Replaced.', 'quick-pagepost-redirect-plugin' ) . '';}
683
+ if($_GET['update']=='5'){$this->updatemsg ='' . __( 'Quick Redirects Imported & Added to Existing Redirects.', 'quick-pagepost-redirect-plugin' ) . '';}
684
+ }
685
+ echo '<div class="wrap">';
686
+ echo ' <h2>' . __( 'Import/Export Redirects', 'quick-pagepost-redirect-plugin' ) . '</h2>';
687
+ if($this->updatemsg != '')
688
+ echo ' <div class="updated settings-error" id="setting-error-settings_updated"><p><strong>' . $this->updatemsg . '</strong></p></div>';
689
+ $this->updatemsg = '';
690
+ ?>
691
+ <div class="qppr-content">
692
+ <div class="qppr-sidebar">
693
+ <div class="pprdonate">
694
+ <div>
695
+ <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
696
+ <input name="cmd" value="_s-xclick" type="hidden"/>
697
+ <input name="hosted_button_id" value="8274582" type="hidden"/>
698
+ <input alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" type="image">
699
+ <img src="https://www.paypal.com/en_US/i/scr/pixel.gif" alt="" border="0" height="1" width="1" />
700
+ </form>
701
+ </div>
702
+ <?php echo __( 'If you enjoy or find any of our plugins useful, please donate a few dollars to help with future development and updates. We thank you in advance.', 'quick-pagepost-redirect-plugin' );?>
703
+ </div>
704
+ </div>
705
+ <div class="qppr-left">
706
+ <table style="border-collapse: collapse" class="form-table">
707
+ <tr valign="top">
708
+ <td><label class="qppr-label"><strong><?php echo __( 'Export Redirects', 'quick-pagepost-redirect-plugin' );?></strong></label>
709
+ <p><?php echo __( 'You should back-up your redirect regularly in case something happens to the database.', 'quick-pagepost-redirect-plugin' );?></p>
710
+ <p><?php echo __( 'Please use the below buttons to make a back-up as either encoded (unreadable) or pipe separated', 'quick-pagepost-redirect-plugin' );?> (<code>|</code>).</p>
711
+ <br /><p><input class="button button-primary qppr-export-quick-redirects" type="button" name="qppr-export-quick-redirects" value="<?php echo __( 'EXPORT all Quick Redirects (Encoded)', 'quick-pagepost-redirect-plugin' );?>" onclick="document.location='<?php echo wp_nonce_url( admin_url('admin.php?page=redirect-options&qppr-file-type=encoded').'&action=export-quick-redirects-file', 'export-redirects-qppr'); ?>';" /></p>
712
+ <p><?php echo __( 'OR', 'quick-pagepost-redirect-plugin' );?></p>
713
+ <p><input class="button button-primary qppr-export-quick-redirects" type="button" name="qppr-export-quick-redirects" value="<?php echo __( 'EXPORT all Quick Redirects (PIPE Separated)', 'quick-pagepost-redirect-plugin' );?>" onclick="document.location='<?php echo wp_nonce_url( admin_url('admin.php?page=redirect-options').'&action=export-quick-redirects-file&qppr-file-type=pipe', 'export-redirects-qppr'); ?>';" /></p>
714
+ </td>
715
+ </tr>
716
+ <tr valign="top">
717
+ <th scope="row" colspan="2"><hr noshade color="#EAEAEA" size="1"></th>
718
+ </tr>
719
+ <tr valign="top">
720
+ <td><label class="qppr-label"><strong><?php echo __( 'Import Redirects', 'quick-pagepost-redirect-plugin' );?></strong></label>
721
+ <p><?php echo __( 'If you want to replace or restore redirects from a file, use the "Restore" option.', 'quick-pagepost-redirect-plugin' );?></p>
722
+ <p><?php echo __( 'To add new redirects in bulk use the "Add To" option - NOTE: to Add To redirects, the file must be pipe dilimited ', 'quick-pagepost-redirect-plugin' );?> (<code>|</code>).</p>
723
+ <br/>
724
+ <input class="button-primary qppr-import-quick-redirects" type="button" id="qppr-import-quick-redirects-button" name="qppr-import-quick-redirects" value="<?php echo __( 'RESTORE Saved Quick Redirects', 'quick-pagepost-redirect-plugin' );?>" />
725
+ <?php echo __( 'OR', 'quick-pagepost-redirect-plugin' );?>
726
+ <input class="button-primary qppr_addto_qr" type="button" id="qppr_addto_qr_button" name="qppr_addto_qr" value="<?php echo __( 'ADD TO Quick Redirects', 'quick-pagepost-redirect-plugin' );?>" />
727
+ <div id="qppr_import_form" class="hide-if-js">
728
+ <form action="<?php echo admin_url('admin.php?page=redirect-import-export'); ?>" method="post" enctype="multipart/form-data">
729
+ <p style="margin:1em 0;">
730
+ <label><?php echo __( 'Select Quick Redirects file to import:', 'quick-pagepost-redirect-plugin' );?></label>
731
+ <input type="file" name="qppr_file" onchange="qppr_check_file(this);" />
732
+ </p>
733
+ <p class="submit">
734
+ <?php wp_nonce_field( 'import-quick-redrects-file' ); ?>
735
+ <input class="button button-primary" type="submit" id="import-quick-redrects-file" name="import-quick-redrects-file" value="IMPORT & REPLACE Current Quick Redirects" />
736
+ </p>
737
+ </form>
738
+ </div>
739
+ <div id="qppr_addto_form" class="hide-if-js">
740
+ <form action="<?php echo admin_url('admin.php?page=redirect-import-export'); ?>" method="post" enctype="multipart/form-data">
741
+ <p style="margin:.5em 0 1em 1em;color:#444;"> <?php echo __( 'The import file should be a text file with one rediect per line, PIPE separated, in this format:', 'quick-pagepost-redirect-plugin' );?><br/>
742
+ <br/>
743
+ <code><?php echo __( 'redirect|destination|newwindow|nofollow', 'quick-pagepost-redirect-plugin' );?></code><br/>
744
+ <br/><?php echo __( 'for Example:', 'quick-pagepost-redirect-plugin' );?>
745
+ <br/><br/>
746
+ <code><?php echo __( '/old-location.htm|http://some.com/new-destination/|0|1', 'quick-pagepost-redirect-plugin' );?></code><br />
747
+ <code><?php echo __( '/dontate/|http://example.com/destination/|1|1', 'quick-pagepost-redirect-plugin' );?></code><br/>
748
+ <br/>
749
+ <strong><?php echo __( 'IMPORTANT:', 'quick-pagepost-redirect-plugin' );?></strong> <?php echo __( 'Make Sure any destination URLs that have a PIPE in the querystring data are URL encoded before adding them!', 'quick-pagepost-redirect-plugin' );?><br/>
750
+ <br/>
751
+ <label><?php echo __( 'Select Quick Redirects file to import:', 'quick-pagepost-redirect-plugin' );?></label>
752
+ <input type="file" name="qppr_file_add" onchange="qppr_check_file(this);" />
753
+ </p>
754
+ <p class="submit">
755
+ <?php wp_nonce_field( 'import_redirects_add_qppr' ); ?>
756
+ <input class="button button-primary" type="submit" id="import_redirects_add_qppr" name="import_redirects_add_qppr" value="<?php echo __( 'ADD TO Current Quick Redirects', 'quick-pagepost-redirect-plugin' );?>" />
757
+ </p>
758
+ </form>
759
+ </div></td>
760
+ </tr>
761
+ <tr valign="top">
762
+ <th scope="row" colspan="2"><hr noshade color="#EAEAEA" size="1"></th>
763
+ </tr>
764
+ </table>
765
+ </div>
766
+ <div class="clear-both"></div>
767
+ </div>
768
+ <?php
769
+ echo '</div>';
770
+ }
771
 
772
  function ppr_settings_page() {
773
  if(isset($_GET['update'])){
774
+ if($_GET['update']=='3'){$this->updatemsg ='' . __( 'All Quick Redirects deleted from database.', 'quick-pagepost-redirect-plugin' ) . '';}
775
+ if($_GET['update']=='2'){$this->updatemsg ='' . __( 'All Regular Redirects deleted from database.', 'quick-pagepost-redirect-plugin' ) . '';}
776
+ if($_GET['update']=='4'){$this->updatemsg ='' . __( 'Quick Redirects Imported & Replaced.', 'quick-pagepost-redirect-plugin' ) . '';}
777
+ if($_GET['update']=='5'){$this->updatemsg ='' . __( 'Quick Redirects Imported & Added to Existing Redirects.', 'quick-pagepost-redirect-plugin' ) . '';}
778
  }
779
  ?>
780
+ <div class="wrap" style="position:relative;">
781
+ <h2><?php echo __( 'Quick Page Post Redirect Options', 'quick-pagepost-redirect-plugin' );?></h2>
782
+ <?php if($this->updatemsg!=''){?>
783
+ <div class="updated" id="setting-error-settings_updated">
784
+ <p><strong><?php echo $this->updatemsg;?></strong></p>
785
+ </div>
786
+ <?php } ?>
787
+ <?php $this->updatemsg = '';//reset message;?>
788
+ <div class="qppr-content">
789
+ <div class="qppr-sidebar">
790
+ <div class="pprdonate">
791
+ <div>
792
+ <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
793
+ <input name="cmd" value="_s-xclick" type="hidden"/>
794
+ <input name="hosted_button_id" value="8274582" type="hidden"/>
795
+ <input alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" type="image">
796
+ <img src="https://www.paypal.com/en_US/i/scr/pixel.gif" alt="" border="0" height="1" width="1" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
797
  </form>
798
  </div>
799
+ <?php echo __( 'If you enjoy or find any of our plugins useful, please donate a few dollars to help with future development and updates. We thank you in advance.', 'quick-pagepost-redirect-plugin' );?>
800
+ </div>
801
+ </div>
802
+ <div class="qppr-left">
803
+ <form method="post" action="options.php" class="qpprform">
804
+ <?php settings_fields( 'ppr-settings-group' ); ?>
805
+ <table class="form-table">
806
+ <tr>
807
+ <th scope="row" colspan="2" class="qppr-no-padding"><hr noshade color="#EAEAEA" size="1"></th>
808
+ </tr>
809
+ <tr>
810
+ <th scope="row" colspan="2"><h2 style="display:inline-block;"><?php echo __( 'Basic Settings', 'quick-pagepost-redirect-plugin' );?></h2></th>
811
+ </tr>
812
+ <tr>
813
+ <th scope="row"><label><?php echo __( 'Use with Custom Post Types?', 'quick-pagepost-redirect-plugin' );?></label></th>
814
+ <td><input type="checkbox" name="ppr_use-custom-post-types" value="1"<?php if(get_option('ppr_use-custom-post-types')=='1'){echo ' checked="checked" ';} ?>/></td>
815
+ </tr>
816
+ <tr>
817
+ <th scope="row"><label><span style="color:#FF0000;font-weight:bold;font-size:100%;margin-left:0px;"><?php echo __( 'Hide', 'quick-pagepost-redirect-plugin' );?></span> <?php echo __( 'meta box for following Post Types:', 'quick-pagepost-redirect-plugin' );?></label></th>
818
+ <td><?php
819
+ $ptypes = get_post_types();
820
+ $ptypesok = $this->pprptypes_ok;
821
+ if(!is_array($ptypesok)){$ptypesok = get_option( 'ppr_qpprptypeok' );}
822
+ if(!is_array($ptypesok)){$ptypesok = array();}
823
+ $ptypeHTML = '<div class="qppr-posttypes">';
824
+ foreach($ptypes as $ptype){
825
+ if($ptype != 'nav_menu_item' && $ptype != 'attachment' && $ptype != 'revision'){
826
+ if(in_array($ptype,$ptypesok)){
827
+ $ptypecheck = ' checked="checked"';
828
+ }else{
829
+ $ptypecheck = '';
830
+ }
831
+ $ptypeHTML .= '<div class="qppr-ptype"><input class="qppr-ptypecb" type="checkbox" name="ppr_qpprptypeok[]" value="'.$ptype.'"'.$ptypecheck.' /> <div class="ppr-type-name">'.$ptype.'</div></div>';
832
+ }
833
+ }
834
+ $ptypeHTML .= '</div>';
835
+ echo $ptypeHTML;
836
+ ?></td>
837
+ </tr>
838
+ <tr>
839
+ <th scope="row"><label><?php echo __( 'Show Column Headers?', 'quick-pagepost-redirect-plugin' );?></label></th>
840
+ <td><input type="checkbox" id ="ppr_show-columns" name="ppr_show-columns" value="1"<?php if(get_option('ppr_show-columns')=='1'){echo ' checked="checked" ';} ?>/> <span><?php echo __( 'Show Columns on list pages for set up redirects.', 'quick-pagepost-redirect-plugin' );?></span></td>
841
+ </tr>
842
+ <tr>
843
+ <th scope="row"><label><?php echo __( 'Use jQuery?', 'quick-pagepost-redirect-plugin' );?></label></th>
844
+ <td><input type="checkbox" id ="ppr_use-jquery" name="ppr_use-jquery" value="1"<?php if(get_option('ppr_use-jquery')=='1'){echo ' checked="checked" ';} ?>/> <span><?php echo __( 'Increases effectiveness of plugin. If you have a jQuery conflict, try turning this off.', 'quick-pagepost-redirect-plugin' );?></span><br /><span style="margin:0;"><?php echo __( 'Uses jQuery to add the "New Window" and "No Follow" attributes to links.', 'quick-pagepost-redirect-plugin' );?></span></td>
845
+ </tr>
846
+ <tr>
847
+ <th scope="row"><label><?php echo __( 'Meta Refresh Time (in seconds):', 'quick-pagepost-redirect-plugin' );?></label></th>
848
+ <td><input type="text" size="5" name="ppr_meta-seconds" value="<?php echo get_option('ppr_meta-seconds');?>" /> <span><?php echo __( 'Only needed for Meta Refresh. 0=default (instant)', 'quick-pagepost-redirect-plugin' );?></span></td>
849
+ </tr>
850
+ <tr>
851
+ <th scope="row"><label><?php echo __( 'Meta Refresh Message:', 'quick-pagepost-redirect-plugin' );?></label></th>
852
+ <td><input type="text" size="25" name="ppr_meta-message" value="<?php echo get_option('ppr_meta-message');?>" /> <span><?php echo __( 'Default is blank. Message to display while waiting for refresh.', 'quick-pagepost-redirect-plugin' );?></span></td>
853
+ </tr>
854
+ <tr>
855
+ <th scope="row" colspan="2" class="qppr-no-padding"><hr noshade color="#EAEAEA" size="1"></th>
856
+ </tr>
857
+ <tr>
858
+ <th scope="row" colspan="2"><h2 style="font-size:20px;display:inline-block;"><?php echo __( 'Master Override Options', 'quick-pagepost-redirect-plugin' );?></h2><span><?php echo __( '<strong>NOTE: </strong>The below settings will override all individual settings.', 'quick-pagepost-redirect-plugin' );?></span></th>
859
+ </tr>
860
+ <tr>
861
+ <th scope="row"><label><?php echo __( 'Turn OFF all Redirects?', 'quick-pagepost-redirect-plugin' );?> </label></th>
862
+ <td><input type="checkbox" name="ppr_override-active" value="1"<?php if(get_option('ppr_override-active')=='1'){echo ' checked="checked" ';} ?>/> <span><?php echo __( 'Basically the same as having no redirects set up.', 'quick-pagepost-redirect-plugin' );?></span></td>
863
+ </tr>
864
+ <tr>
865
+ <th scope="row"><label><?php echo __( 'Make ALL Redirects have <code>rel="nofollow"</code>?', 'quick-pagepost-redirect-plugin' );?> </label></th>
866
+ <td><input type="checkbox" name="ppr_override-nofollow" value="1"<?php if(get_option('ppr_override-nofollow')=='1'){echo ' checked="checked" ';} ?>/> <span><?php echo __( 'Requires "use jQuery" option to work with Quick Redirects.', 'quick-pagepost-redirect-plugin' );?></span></td>
867
+ </tr>
868
+ <tr>
869
+ <th scope="row"><label><?php echo __( 'Make ALL Redirects open in a New Window?', 'quick-pagepost-redirect-plugin' );?> </label></th>
870
+ <td><input type="checkbox" name="ppr_override-newwindow" value="1"<?php if(get_option('ppr_override-newwindow')=='1'){echo ' checked="checked" ';} ?>/> <span><?php echo __( 'Requires "use jQuery" option to work with Quick Redirects.', 'quick-pagepost-redirect-plugin' );?></span></td>
871
+ </tr>
872
+ <tr>
873
+ <th scope="row"><label><?php echo __( 'Make ALL Redirects this type:', 'quick-pagepost-redirect-plugin' );?> </label></th>
874
+ <td><select name="ppr_override-redirect-type">
875
+ <option value="0"><?php echo __( 'Use Individual Settings', 'quick-pagepost-redirect-plugin' );?></option>
876
+ <option value="301" <?php if( get_option('ppr_override-redirect-type')=='301') {echo ' selected="selected" ';} ?>>301 <?php echo __( 'Permanant Redirect', 'quick-pagepost-redirect-plugin' );?></option>
877
+ <option value="302" <?php if( get_option('ppr_override-redirect-type')=='302') {echo ' selected="selected" ';} ?>>302 <?php echo __( 'Temporary Redirect', 'quick-pagepost-redirect-plugin' );?></option>
878
+ <option value="307" <?php if( get_option('ppr_override-redirect-type')=='307') {echo ' selected="selected" ';} ?>>307 <?php echo __( 'Temporary Redirect', 'quick-pagepost-redirect-plugin' );?></option>
879
+ <option value="meta" <?php if(get_option('ppr_override-redirect-type')=='meta'){echo ' selected="selected" ';} ?>><?php echo __( 'Meta Refresh Redirect', 'quick-pagepost-redirect-plugin' );?></option>
880
+ </select>
881
+ <span> <?php echo __( '(Quick 301 Redirects will always be 301)', 'quick-pagepost-redirect-plugin' );?></span>
882
+ </td>
883
+ </tr>
884
+ <tr>
885
+ <th scope="row"><label><?php echo __( 'Make ALL redirects Case Sensitive?', 'quick-pagepost-redirect-plugin' );?> </label></th>
886
+ <td><input type="checkbox" name="ppr_override-casesensitive" value="1"<?php if(get_option('ppr_override-casesensitive')=='1'){echo ' checked="checked" ';} ?>/> <span> <?php echo __( 'Makes URLs CaSe SensiTivE - i.e., /somepage/ DOES NOT EQUAL /SoMEpaGe/', 'quick-pagepost-redirect-plugin' );?></span></td>
887
+ </tr>
888
+ <tr>
889
+ <th scope="row"><label><?php echo __( 'Make ALL Redirects go to this URL:', 'quick-pagepost-redirect-plugin' );?> </label></th>
890
+ <td><input type="text" size="50" name="ppr_override-URL" value="<?php echo get_option('ppr_override-URL'); ?>"/> <span><?php echo __( 'Use full URL including <code>http://</code>.', 'quick-pagepost-redirect-plugin' );?></span></td>
891
+ </tr>
892
+ <tr>
893
+ <th scope="row"><label><?php echo __( 'Rewrite ALL Redirects URLs to Show in LINK?', 'quick-pagepost-redirect-plugin' );?> </label></th>
894
+ <td><input type="checkbox" name="ppr_override-rewrite" value="1"<?php if(get_option('ppr_override-rewrite')=='1'){echo ' checked="checked" ';} ?>/> <span><?php echo __( 'Makes link show redirect URL instead of the original URL. Will not work on Quick Redirects at this time.', 'quick-pagepost-redirect-plugin' );?></span></td>
895
+ </tr>
896
+ <tr>
897
+ <th scope="row" colspan="2"><hr noshade color="#EAEAEA" size="1"></th>
898
+ </tr>
899
+ <tr>
900
+ <th scope="row" colspan="2" class="qppr-no-padding"><h2 style="display:inline-block;"><?php echo __( 'Plugin Clean Up', 'quick-pagepost-redirect-plugin' );?></h2><span><?php echo __( '<strong>NOTE: </strong>This will DELETE all redirects - so be careful with this.', 'quick-pagepost-redirect-plugin' );?></span></th>
901
+ </tr>
902
+ <tr>
903
+ <th scope="row"><label><?php echo __( 'Delete Redirects?', 'quick-pagepost-redirect-plugin' );?> </label></th>
904
+ <td><input class="button-secondary qppr-delete-regular" type="button" name="qppr-delete-regular" value="<?php echo __( 'Delete All Individual Redirects', 'quick-pagepost-redirect-plugin' );?>" onclick="qppr_goOnConfirm('<?php echo __( 'Are you sure you want to PERMANENTLY Delets ALL Regular Redirects?', 'quick-pagepost-redirect-plugin' );?>' , '?page=redirect-options&qppr-delete-regular=1');" />&nbsp;&nbsp;<input class="button-secondary qppr-delete-quick" type="button" name="qppr-delete-quick" value="<?php echo __( 'Delete all Quick Redirects', 'quick-pagepost-redirect-plugin' );?>" onclick="qppr_goOnConfirm('<?php echo __( 'Are you sure you want to PERMANENTLY Delets ALL Quick Redirects?', 'quick-pagepost-redirect-plugin' );?>' , '?page=redirect-options&qppr-delete-quick=1');" /><br /><span><?php echo __( 'Individual Redirects are redirects set up on individual pages or posts when in the editing screen. The Quick Redirects are set up on the Quick Redirects page.', 'quick-pagepost-redirect-plugin' );?></span></td>
905
+ </tr>
906
+ </table>
907
+ <p class="submit"><input type="submit" class="button-primary" value="<?php echo __( 'Save Changes', 'quick-pagepost-redirect-plugin' );?>" /></p>
908
+ </form>
909
+ </div>
910
+ <div class="clear-both"></div>
911
  </div>
912
+ </div>
913
+ <?php }
914
+ function qppr_options_help_tab(){
915
+ //generate the options page in the wordpress admin
916
+ $screen = get_current_screen();
917
+ $screen_id = $screen->id;
918
+ if($screen_id == 'toplevel_page_redirect-updates' ){
919
+ $content = '
920
+ <div style="padding:10px 0;">
921
+ <table border="0" cellspacing="0" cellpadding="0">
922
+ <tr>
923
+ <th align="left">Example Requests</th>
924
+ <th align="left"></th>
925
+ <th align="left">Example Destinations</th>
926
+ </tr>
927
+ <tr>
928
+ <td><code>/about.htm</code></td>
929
+ <td>&nbsp;&raquo;&nbsp;</td>
930
+ <td><code>'.$this->homelink.'/about/</code></td>
931
+ </tr>
932
+ <tr>
933
+ <td><code>/directory/landing/</code></td>
934
+ <td>&nbsp;&raquo;&nbsp;</td>
935
+ <td><code>/about/</code></td>
936
+ </tr>
937
+ <tr>
938
+ <td><code>'. str_replace("http://", "https://",$this->homelink).'/contact-us/</code></td>
939
+ <td>&nbsp;&raquo;&nbsp;</td>
940
+ <td><code>'.$this->homelink.'/contact-us-new/</code></td>
941
+ </tr>
942
+ </table>
943
+ </div>
944
+ ';
945
+ $screen->add_help_tab( array(
946
+ 'id' => 'qppr_sample_redirects',
947
+ 'title' => __( 'Examples', 'quick-pagepost-redirect-plugin' ),
948
+ 'content' => $content ,
949
+ ) );
950
+ $screen->add_help_tab( array(
951
+ 'id' => 'qppr_add_redirects',
952
+ 'title' => __( 'Troubleshooting', 'quick-pagepost-redirect-plugin' ),
953
+ 'content' => '
954
+ <div style="padding:10px 0;">
955
+ <b style="color:red;">' . __( 'IMPORTANT TROUBLESHOOTING NOTES:', 'quick-pagepost-redirect-plugin' ) . '</b>
956
+ <ol style="margin-top:5px;">
957
+ <li style="color:#214070;margin-left:15px;list-style-type:disc;">' . __( 'At this time the New Window (NW) and No Follow (NF) features will not work for Quick Redirects.', 'quick-pagepost-redirect-plugin' ) . '</li>
958
+ <li style="color:#214070;margin-left:15px;list-style-type:disc;">' . __( 'It is recommended that the <b>Request URL</b> be relative to the ROOT directory and contain the <code>/</code> at the beginning.', 'quick-pagepost-redirect-plugin' ) . '</li>
959
+ <li style="color:#214070;margin-left:15px;list-style-type:disc;">' . __( 'If you do use the domain name in the Request URL field, make sure it matches your site\'s domain style and protocol. For example, if your site uses "www" in front of your domain name, be sure to include it. if your site uses <code>https://</code>, use it as the protocol. Our best guess is that your domain and protocol are', 'quick-pagepost-redirect-plugin' ) . ' <code>'.network_site_url('/').'</code></li>
960
+ <li style="color:#214070;margin-left:15px;list-style-type:disc;">' . __( 'If you are having issues with the link not redirecting on a SSL site with mixed SSL (meaning links can be either SSL or non SSL), try adding two redirects, one with and one without the SSL protocol.', 'quick-pagepost-redirect-plugin' ) . '</li>
961
+ <li style="color:#214070;margin-left:15px;list-style-type:disc;">' . __( 'The <b>Destination</b> field can be any valid URL or relative path (from root), for example', 'quick-pagepost-redirect-plugin' ) . ' <code>http://www.mysite.com/destination-page/</code> OR <code>/destination-page/</code></li>
962
+ <li style="color:#214070;margin-left:15px;list-style-type:disc;">' . __( 'In order for NW (open in a new window) or NF (rel="nofollow") options to work with Quick Redirects, you need to have:', 'quick-pagepost-redirect-plugin' ) . '
963
+ <ol>
964
+ <li>' . __( '"Use jQuery?" option selected in the settings page', 'quick-pagepost-redirect-plugin' ) . '</li>
965
+ <li>' . __( 'A link that uses the request url SOMEWHERE in your site page - i.e., in a menu, content, sidebar, etc.', 'quick-pagepost-redirect-plugin' ) . ' </li>
966
+ <li>' . __( 'The open in a new window or nofollow settings will not happen if someone just types the old link in the URL or if they come from a bookmark or link outside your site - in essence, there needs to be a link that they click on in your site so that the jQuery script can add the appropriate <code>target</code> and <code>rel</code> properties to the link to make it work.', 'quick-pagepost-redirect-plugin' ) . '</li>
967
+ </ol>
968
+ </li>
969
+ </ol>
970
+ </div>' ,
971
+ ) );
972
+ }elseif( $screen_id == 'quick-redirects_page_redirect-import-export' ){
973
+ $screen->add_help_tab( array(
974
+ 'id' => 'qppr_export_redirects',
975
+ 'title' => __( 'Export Redirects', 'quick-pagepost-redirect-plugin' ),
976
+ 'content' => '<div style="padding:10px 0;"><p>' . __( 'You can export redirects in two formats - Encoded or Delimited.', 'quick-pagepost-redirect-plugin' ) . '</p></div>' ,
977
+ ) );
978
+ $screen->add_help_tab( array(
979
+ 'id' => 'qppr_import_redirects',
980
+ 'title' => __( 'Import Redirects', 'quick-pagepost-redirect-plugin' ),
981
+ 'content' => '<div style="padding:10px 0;"><p>Help content coming soon.</p></div>' ,
982
+ ) );
983
+ }
984
+ }
985
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
986
  function ppr_options_page(){
 
 
 
987
  ?>
988
+ <div class="wrap">
989
+ <h2><?php echo __( 'Quick Redirects (301 Redirects)', 'quick-pagepost-redirect-plugin' );?></h2>
990
+ <?php if($this->updatemsg != ''){?>
991
+ <div class="updated settings-error" id="setting-error-settings_updated"><p><strong><?php echo $this->updatemsg;?></strong></p></div>
992
+ <?php } ?>
993
+ <?php $this->updatemsg ='';//reset message;?>
994
+ <?php
995
+ $isJQueryOn = get_option('ppr_use-jquery');
996
+ $isJQueryMsgHidden = get_option('qppr_jQuery_hide_message');
997
+ $isJQueryMsgHidden2 = get_option('qppr_jQuery_hide_message2');?>
998
+ <?php if( $isJQueryOn == '' && ( $isJQueryMsgHidden == '' || $isJQueryMsgHidden == '0' ) ){ ?>
999
+ <div class="usejqpprmessage error below-h2" id="usejqpprmessage">
1000
+ <?php echo __( 'The <code>Use jQuery?</code> option is turned off in the settings.<br/>In order to use <strong>NW</strong> (open in a new window) or <strong>NF</strong> (add rel="nofollow") options for Quick Redirects, you must have it enabled.', 'quick-pagepost-redirect-plugin' );?><br/>
1001
+ <div class="hidepprjqmessage" style=""><a href="javascript:void(0);" id="hidepprjqmessage"><?php echo __( 'hide this message', 'quick-pagepost-redirect-plugin' );?></a></div>
1002
+ </div>
1003
  <?php }elseif($isJQueryMsgHidden2 !='1'){ ?>
1004
+ <div class="usejqpprmessage info below-h2" id="usejqpprmessage2">
1005
+ <?php echo __( 'To use the <strong>NW</strong> (open in a new window) <strong>NF</strong> (nofollow) options, check the appropriate option and update when adding redirects. Then, any link in the page that has the request URL will be updated with these options (as long as you have <code>Use jQuery?</code> enabled in the plugin settings.', 'quick-pagepost-redirect-plugin' );?>
1006
+ <div class="hidepprjqmessage" style=""><a href="javascript:void(0);" id="hidepprjqmessage2"><?php echo __( 'hide this message', 'quick-pagepost-redirect-plugin' );?></a></div>
1007
+ </div>
1008
  <?php }?>
1009
+ <p><?php echo __( 'Quick Redirects are useful when you have links from an old site that now come up 404 Not Found, and you need to have them redirect to a new location on the current site - as long as the old site and the current site have the same domain name. They are also helpful if you have an existing URL that you need to send some place else and you don\'t want to create a Page or Post just to use the individual Page/Post Redirect option.', 'quick-pagepost-redirect-plugin' );?></p>
1010
+ <p><?php echo __( 'To add Quick Redirects, put the URL for the redirect in the <strong>Request URL</strong> field, and the URL it should be redirected to in the <strong>Destination URL</strong> field. To delete a redirect, click the trash can at the end of that row. To edit a redirect, click the pencil edit icon.', 'quick-pagepost-redirect-plugin' );?></p>
1011
+ <p><?php echo __( 'See \'HELP\' in the upper right corner, for troubleshooting problems and example redirects.', 'quick-pagepost-redirect-plugin' );?></p>
1012
+ <form method="post" action="admin.php?page=redirect-updates" id="qppr_quick_save_form">
1013
+ <?php wp_nonce_field( 'add_qppr_redirects' ); ?>
1014
+ <div class="qppr_quick_redirects_wrapper">
1015
+ <table border="0" cellspacing="0" cellpadding="0">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1016
  <tr>
1017
+ <th align="left" colspan="8"><h3><?php echo __( 'Add New Redirects', 'quick-pagepost-redirect-plugin' );?></h3></th>
 
 
 
 
1018
  </tr>
1019
  <tr>
1020
+ <th align="left" colspan="2"><?php echo __( 'Request URL', 'quick-pagepost-redirect-plugin' );?></th>
1021
+ <th align="left">&nbsp;</th>
1022
+ <th align="left"><?php echo __( 'Destination URL', 'quick-pagepost-redirect-plugin' );?></th>
1023
+ <th align="center"><?php echo __( 'NW', 'quick-pagepost-redirect-plugin' );?>*</th>
1024
+ <th align="center"><?php echo __( 'NF', 'quick-pagepost-redirect-plugin' );?>*</th>
1025
+ <th align="left"></th>
1026
+ <th align="left"></th>
1027
  </tr>
 
1028
  <tr>
1029
+ <td class="table-qppr-req" colspan="2"><input type="text" name="quickppr_redirects[request][]" value="" style="max-width:100%;width:100%;" /></td>
1030
+ <td class="table-qppr-arr">&nbsp;&raquo;&nbsp;</td>
1031
+ <td class="table-qppr-des"><input type="text" name="quickppr_redirects[destination][]" value="" style="max-width:100%;width:100%;" /></td>
1032
+ <td class="table-qppr-nwn"><input class="pprnewwin" type="checkbox" name="quickppr_redirects[newwindow][0]" value="1" title="<?php echo __( 'open in a New Window', 'quick-pagepost-redirect-plugin' );?>" /></td>
1033
+ <td class="table-qppr-nfl"><input class="pprnofoll" type="checkbox" name="quickppr_redirects[nofollow][0]" value="1" title="<?php echo __( 'add No Follow', 'quick-pagepost-redirect-plugin' );?>" /></td>
1034
+ <td class="table-qppr-edt"></td>
1035
+ <td class="table-qppr-del"></td>
1036
+ </tr>
1037
+ <tr>
1038
+ <td class="table-qppr-req" colspan="2"><input type="text" name="quickppr_redirects[request][]" value="" style="max-width:100%;width:100%;" /></td>
1039
+ <td class="table-qppr-arr">&nbsp;&raquo;&nbsp;</td>
1040
+ <td class="table-qppr-des"><input type="text" name="quickppr_redirects[destination][]" value="" style="max-width:100%;width:100%;" /></td>
1041
+ <td class="table-qppr-nwn"><input class="pprnewwin" type="checkbox" name="quickppr_redirects[newwindow][1]" value="1" title="<?php echo __( 'open in a New Window', 'quick-pagepost-redirect-plugin' );?>" /></td>
1042
+ <td class="table-qppr-nfl"><input class="pprnofoll" type="checkbox" name="quickppr_redirects[nofollow][1]" value="1" title="<?php echo __( 'add No Follow', 'quick-pagepost-redirect-plugin' );?>" /></td>
1043
+ <td class="table-qppr-edt"></td>
1044
+ <td class="table-qppr-del"></td>
1045
+ </tr>
1046
+ <tr>
1047
+ <td class="table-qppr-req" colspan="2"><input type="text" name="quickppr_redirects[request][]" value="" style="max-width:100%;width:100%;" /></td>
1048
+ <td class="table-qppr-arr">&nbsp;&raquo;&nbsp;</td>
1049
+ <td class="table-qppr-des"><input type="text" name="quickppr_redirects[destination][]" value="" style="max-width:100%;width:100%;" /></td>
1050
+ <td class="table-qppr-nwn"><input class="pprnewwin" type="checkbox" name="quickppr_redirects[newwindow][2]" value="1" title="<?php echo __( 'open in a New Window', 'quick-pagepost-redirect-plugin' );?>" /></td>
1051
+ <td class="table-qppr-nfl"><input class="pprnofoll" type="checkbox" name="quickppr_redirects[nofollow][2]" value="1" title="<?php echo __( 'add No Follow', 'quick-pagepost-redirect-plugin' );?>" /></td>
1052
+ <td class="table-qppr-edt"></td>
1053
+ <td class="table-qppr-del"></td>
1054
+ </tr>
1055
+ <tr>
1056
+ <td style="text-align:right;" colspan="6"><div style="font-size: 11px;"><em>*<?php echo __( 'New Window(NW) and NoFollow(NF) functionality not available unless "Use with jQuery" is set in the options.', 'quick-pagepost-redirect-plugin' );?></em></div></td>
1057
+ <td style="text-align:right;" colspan="2"></td>
1058
+ </tr>
1059
+ <tr>
1060
+ <td align="left" colspan="8"><p class="submit"><input type="submit" name="submit_301" class="button button-primary" value="<?php echo __( 'Add New Redirects', 'quick-pagepost-redirect-plugin' );?>" /></p></td>
1061
+ </tr>
1062
+ <tr>
1063
+ <td class="newdiv" colspan="8"><div></div></td>
1064
+ </tr>
1065
+ <tr>
1066
+ <th align="left" colspan="8"><h3 id="qppr-existing-redirects"><?php echo __( 'Existing Redirects', 'quick-pagepost-redirect-plugin' );?></h3></th>
1067
+ </tr>
1068
+ <tr>
1069
+ <th align="left" colspan="2"><?php echo __( 'Request URL', 'quick-pagepost-redirect-plugin' );?></th>
1070
+ <th align="left">&nbsp;</th>
1071
+ <th align="left"><?php echo __( 'Destination URL', 'quick-pagepost-redirect-plugin' );?></th>
1072
+ <th align="center"><?php echo __( 'NW', 'quick-pagepost-redirect-plugin' );?></th>
1073
+ <th align="center"><?php echo __( 'NF', 'quick-pagepost-redirect-plugin' );?></th>
1074
+ <th align="center"><?php //echo __( 'Edit', 'quick-pagepost-redirect-plugin' );?></th>
1075
+ <th align="center"><?php //echo __( 'Delete', 'quick-pagepost-redirect-plugin' );?></th>
1076
+ </tr>
1077
+ <?php echo $this->expand_redirects(); ?>
1078
+ <tr id="qppr-edit-row-holder" class="qppr-editing">
1079
+ <td class="table-qppr-req cloned" colspan="2"><input class="input-qppr-req" type="text" name="request" value="" style="max-width:100%;width:100%;" /></td>
1080
+ <td class="table-qppr-arr cloned">&nbsp;&raquo;&nbsp;</td>
1081
+ <td class="table-qppr-des cloned"><input class="input-qppr-dest" type="text" name="destination" value="" style="max-width:100%;width:100%;" /></td>
1082
+ <td class="table-qppr-nwn cloned"><input class="input-qppr-neww" type="checkbox" name="newwindow" value="1" title="<?php echo __( 'open in a New Window', 'quick-pagepost-redirect-plugin' );?>" /></td>
1083
+ <td class="table-qppr-nfl cloned"><input class="input-qppr-nofo" type="checkbox" name="nofollow" value="1" title="<?php echo __( 'add No Follow', 'quick-pagepost-redirect-plugin' );?>" /></td>
1084
+ <td class="table-qppr-sav cloned"><span class="qpprfont-save" data-rowid="" title="<?php echo __( 'Save', 'quick-pagepost-redirect-plugin' );?>"></span></td>
1085
+ <td class="table-qppr-can cloned"><span class="qpprfont-cancel" data-rowid="" title="<?php echo __( 'Cancel', 'quick-pagepost-redirect-plugin' );?>"></span></td>
1086
+ </tr>
1087
+ <tr id="qppr-edit-row-saving" class="qppr-saving">
1088
+ <td colspan="8" class="qppr-saving-row"><div class="saving"></div></td>
1089
  </tr>
1090
  </table>
 
 
 
 
 
1091
  </div>
1092
+ </form>
1093
+ <table id="qppr-temp-table-holder"><tr><td></td></tr></table>
1094
+ </div>
1095
+ <?php
1096
  }
1097
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1098
  function expand_redirects(){
1099
  //utility function to return the current list of redirects as form fields
1100
  $output = '';
1101
  if (!empty($this->quickppr_redirects)) {
1102
+ $ww = 0;
1103
  foreach ($this->quickppr_redirects as $request => $destination) {
1104
+ $newWindow = isset($this->quickppr_redirectsmeta[$request]['newwindow']) ? (int) $this->quickppr_redirectsmeta[$request]['newwindow'] : 0;
1105
+ $noFollow = isset($this->quickppr_redirectsmeta[$request]['nofollow']) ? (int) $this->quickppr_redirectsmeta[$request]['nofollow'] : 0;
1106
+ $noChecked = '';
1107
+ $noCheckedAjax = '';
1108
+ $newChecked = '';
1109
+ $newCheckedAjax = '';
1110
+
1111
+ if($newWindow == 1){
1112
+ $newChecked = ' checked="checked"';
1113
+ $newCheckedAjax = 'X';
1114
+ }
1115
+ if($noFollow == 1){
1116
+ $noChecked = ' checked="checked"';
1117
+ $noCheckedAjax = 'X';
1118
+ }
1119
+
1120
  $output .= '
1121
+ <tr id="rowpprdel-'.$ww.'" class="qppr-existing">
1122
+ <td class="table-qppr-count"><span class="qppr-count-row">'.($ww + 1).'.</span></td>
1123
+ <td class="table-qppr-req"><div class="qppr-request">'.esc_attr(urldecode($request)).'</div></td>
1124
+ <td class="table-qppr-arr">&nbsp;&raquo;&nbsp;</td>
1125
+ <td class="table-qppr-des"><div class="qppr-destination">'.esc_attr(urldecode($destination)).'</div></td>
1126
+ <td class="table-qppr-nwn"><div class="qppr-newindow" >'.$newCheckedAjax.'</div></td>
1127
+ <td class="table-qppr-nfl"><div class="qppr-nofollow" >'.$noCheckedAjax.'</div></td>
1128
+ <td class="table-qppr-edt"><span id="ppredit-'.$ww.'" class="edit-qppr dashicons-edit" data-rowid="rowpprdel-'.$ww.'" title="' . __( 'Edit', 'quick-pagepost-redirect-plugin' ) . '"></span></td>
1129
+ <td class="table-qppr-del"><span id="pprdel-'.$ww.'" class="delete-qppr dashicons-trash" data-rowid="rowpprdel-'.$ww.'" title="' . __( 'Delete', 'quick-pagepost-redirect-plugin' ) . '"></span></td>
1130
  </tr>
1131
  ';
1132
  $ww++;
1142
  }else{
1143
  $id = $post;
1144
  }
1145
+ $newCheck = is_array( $this->ppr_all_redir_array ) ? $this->ppr_all_redir_array : array();
1146
+ if( array_key_exists( $id, $newCheck ) ){
 
1147
  $matchedID = $newCheck[$id];
1148
  if($matchedID['_pprredirect_rewritelink'] == '1' || $this->pproverride_rewrite =='1'){ // if rewrite link is checked or override is set
1149
+ if($this->pproverride_URL ==''){
1150
+ $newURL = $matchedID['_pprredirect_url'];
1151
+ }else{
1152
+ $newURL = $this->pproverride_URL;
1153
+ } // check override
1154
+ if( strpos( $newURL, $this->homelink ) >= 0 || strpos( $newURL, 'www.' ) >= 0 || strpos( $newURL, 'http://' ) >= 0 || strpos( $newURL, 'https://') >= 0 ){
1155
  $link = esc_url( $newURL );
1156
  }else{
1157
  $link = esc_url( $this->homelink.'/'. $newURL );
1158
  }
1159
  }
1160
  }
 
1161
  return $link;
1162
  }
1163
+
1164
  function ppr_filter_page_links ($link, $post) {
1165
+ $id = isset( $post->ID ) ? $post->ID : $post;
1166
+ $newCheck = $this->ppr_all_redir_array;
1167
+ if( !is_array( $newCheck ) ){
1168
+ $newCheck = array();
1169
  }
1170
+ if( array_key_exists( $id, $newCheck ) ){
 
 
1171
  $matchedID = $newCheck[$id];
1172
  if($matchedID['_pprredirect_rewritelink'] == '1' || $this->pproverride_rewrite =='1'){ // if rewrite link is checked
1173
+ if($this->pproverride_URL ==''){
1174
+ $newURL = $matchedID['_pprredirect_url'];
1175
+ }else{
1176
+ $newURL = $this->pproverride_URL;
1177
+ } // check override
1178
  if(strpos($newURL,$this->homelink)>=0 || strpos($newURL,'www.')>=0 || strpos($newURL,'http://')>=0 || strpos($newURL,'https://')>=0){
1179
  $link = esc_url( $newURL );
1180
  }else{
1182
  }
1183
  }
1184
  }
 
1185
  return $link;
1186
  }
1187
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1188
  function get_main_array(){
1189
  global $wpdb;
1190
+ $this->pprptypes_ok = get_option( 'ppr_qpprptypeok', array() );
1191
+ if( is_array( $this->ppr_all_redir_array ) && ! empty( $this->ppr_all_redir_array ) )
1192
+ return $this->ppr_all_redir_array;
1193
+ $theArray = array();
1194
  $theArrayNW = array();
1195
  $theArrayNF = array();
1196
+ $theqsl = "SELECT * FROM $wpdb->postmeta a, $wpdb->posts b WHERE a.`post_id` = b.`ID` AND b.`post_status` != 'trash' AND ( a.`meta_key` = '_pprredirect_active' OR a.`meta_key` = '_pprredirect_rewritelink' OR a.`meta_key` = '_pprredirect_newwindow' OR a.`meta_key` = '_pprredirect_relnofollow' OR a.`meta_key` = '_pprredirect_type' OR a.`meta_key` = '_pprredirect_url') ORDER BY a.`post_id` ASC;";
1197
+ $thetemp = $wpdb->get_results($theqsl);
1198
+ if( count( $thetemp ) > 0 ){
1199
+ foreach( $thetemp as $key ){
1200
  $theArray[$key->post_id][$key->meta_key] = $key->meta_value;
1201
  }
1202
+ foreach( $thetemp as $key ){
1203
  // defaults
1204
  if(!isset($theArray[$key->post_id]['_pprredirect_rewritelink'])){$theArray[$key->post_id]['_pprredirect_rewritelink'] = 0;}
1205
  if(!isset($theArray[$key->post_id]['_pprredirect_url'])){$theArray[$key->post_id]['_pprredirect_url'] = '';}
1207
  if(!isset($theArray[$key->post_id]['_pprredirect_relnofollow'])){$theArray[$key->post_id]['_pprredirect_relnofollow'] = 0;}
1208
  if(!isset($theArray[$key->post_id]['_pprredirect_newwindow'] )) {$theArray[$key->post_id]['_pprredirect_newwindow'] = 0;}
1209
  if(!isset($theArray[$key->post_id]['_pprredirect_active'] )){$theArray[$key->post_id]['_pprredirect_active'] = 0;}
 
1210
  if($theArray[$key->post_id]['_pprredirect_newwindow']!= '0' || $this->pproverride_newwin =='1'){
1211
  $theArrayNW[$key->post_id] = get_permalink($key->ID);
1212
  }
 
1213
  if($theArray[$key->post_id]['_pprredirect_relnofollow']!= '0' || $this->pproverride_nofollow =='1'){
1214
  $theArrayNF[$key->post_id] = get_permalink($key->ID);
1215
  }
1216
  }
 
1217
  }
1218
  $this->ppr_newwindow = $theArrayNW;
1219
+ $this->ppr_nofollow = $theArrayNF;
1220
  return $theArray;
1221
  }
1222
 
1229
  $themsgmsg = '';
1230
  $hook_name = 'ppr_meta_head_hook';
1231
  // check URL override
1232
+ if($this->pproverride_URL !=''){
1233
+ $urlsite = $this->pproverride_URL;
1234
+ } else {
1235
+ $urlsite = $this->ppr_metaurl;
1236
+ }
1237
  $this->pproverride_URL = ''; //reset
1238
+ if($this->pprmeta_seconds==''){
1239
+ $this->pprmeta_seconds='0';
1240
+ }
1241
  $themsgmeta = '<meta http-equiv="refresh" content="'.$this->pprmeta_seconds.'; URL='.$urlsite.'" />'."\n";
1242
+ if($this->pprmeta_message!='' && $this->pprmeta_seconds!='0'){
1243
+ $themsgmsg = '<div style="margin-top:20px;text-align:center;">'.$this->pprmeta_message.'</div>'."\n";
1244
+ }
1245
  if( has_action($hook_name)){
1246
  do_action( $hook_name,$urlsite,$this->pprmeta_seconds,$this->pprmeta_message);
1247
  return;
1257
  }
1258
 
1259
  function ppr_queryhook($vars) {
1260
+ $vars[] = 'qppr-delete-regular';
1261
+ $vars[] = 'qppr-delete-quick';
1262
+ $vars[] = 'qppr-file-type';
 
 
 
 
 
1263
  return $vars;
1264
  }
1265
  function ppr_parse_request_new($wp) {
1266
  global $wp, $wpdb;
1267
+ $this->ppr_all_redir_array = $this->get_main_array();
1268
+ $this->pprptypes_ok = get_option( 'ppr_qpprptypeok', array() );
1269
+ if( ( is_admin() && !( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) && ( isset( $_GET['qppr-delete-regular'] ) || isset( $_GET['qppr-delete-quick'] ) ) ){
1270
+ if( (int) $_GET['qppr-delete-regular'] == 1 ){
1271
  global $wpdb;
1272
+ $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE `meta_key` = '_pprredirect_active' OR `meta_key` = '_pprredirect_rewritelink' OR `meta_key` = '_pprredirect_newwindow' OR `meta_key` = '_pprredirect_relnofollow' OR `meta_key` = '_pprredirect_type' OR `meta_key` = '_pprredirect_url';");
1273
+ wp_redirect( admin_url( 'admin.php?page=redirect-options&update=2&settings-updated=true' ) );
 
1274
  exit;
1275
+ }elseif( (int) $_GET['qppr-delete-quick'] == 1 ){
1276
+ delete_option( 'quickppr_redirects' );
1277
+ delete_option( 'quickppr_redirects_meta' );
1278
+ wp_redirect( admin_url( 'admin.php?page=redirect-options&update=3&settings-updated=true' ) );
 
1279
  exit;
1280
+ }elseif( (int) $_GET['qppr-export-quick-redirects'] == 1 ){
1281
+ wp_die( __( 'This option is not available at this time.', 'quick-pagepost-redirect-plugin' ), __( 'Quick Page/Post Redirect Plugin - Export', 'quick-pagepost-redirect-plugin' ), array( 'back_link' => true ) );
1282
  exit;
1283
+ }elseif( (int) $_GET['qppr-import-quick-redirects'] == 1 ){
1284
+ wp_die( __( 'This option is not available at this time.', 'quick-pagepost-redirect-plugin' ), __( 'Quick Page/Post Redirect Plugin - Import', 'quick-pagepost-redirect-plugin' ), array( 'back_link' => true ) );
1285
  exit;
1286
  }
1287
+ }elseif ( isset( $_GET['action'] ) && $_GET['action'] == 'export-quick-redirects-file' ) {
1288
  $newQPPR_Array = array();
1289
+ check_admin_referer( 'export-redirects-qppr' );
1290
+ $type = isset( $_GET['qppr-file-type'] ) && sanitize_text_field( $_GET['qppr-file-type'] ) == 'encoded' ? 'encoded' : 'pipe' ; // can be 'encoded' or 'pipe';
1291
  header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
1292
  header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
1293
  header( 'Cache-Control: no-store, no-cache, must-revalidate' );
1294
  header( 'Cache-Control: post-check=0, pre-check=0', false );
1295
  header( 'Pragma: no-cache' );
1296
+ header( "Content-Type: application/force-download" );
1297
+ header( "Content-Type: application/octet-stream" );
1298
+ header( "Content-Type: application/download" );
1299
+ header( "Content-Disposition: attachment; filename=qppr-quick-redirects-export-" . date('U') . ".txt;" );
1300
+ $newQPPR_Array['quickppr_redirects'] = get_option( 'quickppr_redirects', array() );
1301
+ $newQPPR_Array['quickppr_redirects_meta'] = get_option( 'quickppr_redirects_meta', array() );
1302
+ if( $type == 'encoded' ){
1303
+ die( 'QUICKPAGEPOSTREDIRECT' . base64_encode( serialize( $newQPPR_Array ) ) );
1304
  }else{
1305
+ if( is_array( $newQPPR_Array ) ){
1306
  $qpprs = $newQPPR_Array['quickppr_redirects'];
1307
  $qpprm = $newQPPR_Array['quickppr_redirects_meta'];
1308
  foreach($qpprs as $key=>$val){
1309
+ $nw = ( isset( $qpprm[$key]['newwindow'] ) && $qpprm[$key]['newwindow'] == '1' ) ? $qpprm[$key]['newwindow'] : '0' ;
1310
+ $nf = ( isset( $qpprm[$key]['nofollow'] ) && $qpprm[$key]['nofollow'] == '1' ) ? $qpprm[$key]['nofollow'] : '0' ;
1311
+ $temps = str_replace( '|', '%7C', $key ) . '|' . str_replace( '|', '%7C', $val ) . '|' . $nw . '|' . $nf;
1312
  if($temps!='|||'){
1313
  $newline[] = $temps;
1314
  }
1315
  }
1316
+ $newfile = implode( "\r\n", $newline );
1317
  }else{
1318
+ $newfile = $newtext;
1319
  }
1320
+ die( $newfile );
1321
  }
1322
  exit;
1323
+ } elseif( isset( $_POST['import-quick-redrects-file'] ) && isset( $_FILES['qppr_file'] ) ) {
1324
+ check_admin_referer( 'import-quick-redrects-file' );
1325
  if ( $_FILES['qppr_file']['error'] > 0 ) {
1326
+ wp_die( __( 'An error occured during the file upload. Please fix your server configuration and retry.', 'quick-pagepost-redirect-plugin' ) , __( 'SERVER ERROR - Could Not Load', 'quick-pagepost-redirect-plugin' ), array( 'response' => '200', 'back_link' => '1' ) );
1327
  exit;
1328
  } else {
1329
  $config_file = file_get_contents( $_FILES['qppr_file']['tmp_name'] );
1330
  if ( substr($config_file, 0, strlen('QUICKPAGEPOSTREDIRECT')) !== 'QUICKPAGEPOSTREDIRECT' ) {
1331
  if(strpos($config_file,'|') !== false){
1332
+ $delim = '|';
1333
+ }elseif(strpos($config_file,',') !== false){
1334
+ $delim = ',';
1335
+ }elseif(strpos($config_file,"\t") !== false){
1336
+ $delim = "\t";
1337
+ }else{
1338
+ $delim = false;
1339
+ }
1340
+ if($delim != false){
1341
+ $text = explode( "\r\n", $config_file );
1342
  $newfile1 = array();
1343
+ if( is_array( $text ) && !empty( $text ) ){
1344
+ foreach( $text as $nl ){
1345
+ if( $nl != '' ){
1346
+ $elem = explode( $delim, $nl );
1347
+ if( isset( $elem[0] ) && isset( $elem[1] ) ){
1348
+ $newfile1['quickppr_redirects'][esc_url($elem[0])] = esc_url($elem[1]);
1349
+ $nw = isset($elem[2]) && $elem[2] == '1' ? '1' : '0';
1350
+ $nf = isset($elem[3]) && $elem[3] == '1' ? '1' : '0';
1351
+ $newfile1['quickppr_redirects_meta'][$elem[0]]['newwindow'] = $nw;
1352
+ $newfile1['quickppr_redirects_meta'][$elem[0]]['nofollow'] = $nf;
1353
+ }
1354
  }
1355
  }
1356
+ if(is_array($newfile1) && !empty( $newfile1 )){
1357
+ if( isset( $newfile1['quickppr_redirects'] ) ){
1358
+ update_option( 'quickppr_redirects', $newfile1['quickppr_redirects'] );
1359
+ }
1360
+ if( isset( $newfile1['quickppr_redirects_meta'] ) ){
1361
+ update_option( 'quickppr_redirects_meta', $newfile1['quickppr_redirects_meta'] );
1362
+ }
1363
  }
1364
  }
1365
+ wp_redirect( admin_url( 'admin.php?page=redirect-import-export&update=4' ), 302 );
1366
+ exit;
1367
  }else{
1368
+ wp_die( __( 'This does not look like a Quick Page Post Redirect file - it is possibly damaged or corrupt.', 'quick-pagepost-redirect-plugin' ) , __( 'ERROR - Not a valid File', 'quick-pagepost-redirect-plugin' ), array( 'response' => '200', 'back_link' => '1' ) );
1369
  exit;
1370
  }
1371
  } else {
1372
  $config_file = unserialize(base64_decode(substr($config_file, strlen('QUICKPAGEPOSTREDIRECT'))));
1373
+ if ( !is_array( $config_file ) ) {
1374
+ wp_die( __( 'This does not look like a Quick Page Post Redirect file - it is possibly damaged or corrupt.', 'quick-pagepost-redirect-plugin' ) , __( 'ERROR - Not a valid File', 'quick-pagepost-redirect-plugin' ), array( 'response' => '200', 'back_link' => '1' ) );
1375
  exit;
1376
  } else {
1377
  $newQPPRRedirects = $config_file['quickppr_redirects'];
1378
  $newQPPRMeta = $config_file['quickppr_redirects_meta'];
1379
  update_option('quickppr_redirects', $newQPPRRedirects);
1380
  update_option('quickppr_redirects_meta', $newQPPRMeta);
1381
+ wp_redirect(admin_url('admin.php?page=redirect-import-export&update=4'),302);
1382
  }
1383
  }
1384
  }
1385
  } elseif( isset($_POST['import_redirects_add_qppr']) && isset($_FILES['qppr_file_add']) ) {
1386
  check_admin_referer( 'import_redirects_add_qppr' );
1387
  if ( $_FILES['qppr_file_add']['error'] > 0 ) {
1388
+ wp_die(__( 'An error occured during the file upload. It might me that the file is too large or you do not have the premissions to write to the temporary upload directory. Please fix your server configuration and retry.', 'quick-pagepost-redirect-plugin' ) , __( 'SERVER ERROR - Could Not Load', 'quick-pagepost-redirect-plugin' ), array( 'response' => '200', 'back_link' => '1' ) );
1389
  exit;
1390
  } else {
1391
  $config_file = file_get_contents( $_FILES['qppr_file_add']['tmp_name'] );
1392
+ if(strpos($config_file,'|') !== false){
1393
+ $delim = '|';
1394
+ }elseif(strpos($config_file,',') !== false){
1395
+ $delim = ',';
1396
+ }elseif(strpos($config_file,"\t") !== false){
1397
+ $delim = "\t";
1398
+ }else{
1399
+ $delim = false;
1400
+ }
1401
+ if ( strpos( $config_file, $delim ) === false ) {
1402
+ wp_die( __( 'This does not look like the file is in the correct format - it is possibly damaged or corrupt.<br/>Be sure the redirects are 1 per line and the redirect and destination are seperated by a PIPE (|), COMMA (,) or a TAB.', 'quick-pagepost-redirect-plugin' ) . '<br/>Example:<br/><br/><code>redirect|destination</code>', __( 'ERROR - Not a valid File', 'quick-pagepost-redirect-plugin' ), array( 'response' => '200', 'back_link' => '1' ) );
1403
  exit;
1404
  } else {
1405
  $tempArr = array();
1406
  $tempMArr = array();
1407
+ $QR_Array = explode( "\n", $config_file );
1408
+ $newfile1 = array();
1409
+ if( !empty( $QR_Array ) && is_array( $QR_Array )):
1410
+ foreach( $QR_Array as $qrtoadd ):
1411
+ if( $qrtoadd != '' && $delim != false && strpos( $qrtoadd, $delim ) !== false ){
1412
+ $elem = explode( $delim, str_replace( array( "\r", "\n" ), array( '', '' ), $qrtoadd ) );
1413
+ if( isset( $elem[0] ) && isset( $elem[1] ) ){
1414
+ $newfile1['quickppr_redirects'][esc_url($elem[0])] = esc_url($elem[1]);
1415
+ $nw = isset($elem[2]) && $elem[2] == '1' ? '1' : '0';
1416
+ $nf = isset($elem[3]) && $elem[3] == '1' ? '1' : '0';
1417
+ $newfile1['quickppr_redirects_meta'][$elem[0]]['newwindow'] = $nw;
1418
+ $newfile1['quickppr_redirects_meta'][$elem[0]]['nofollow'] = $nf;
 
 
 
 
1419
  }
1420
  }
1421
  endforeach;
1422
+ if(is_array($newfile1) && !empty( $newfile1 )){
1423
+ if( isset( $newfile1['quickppr_redirects'] ) ){
1424
+ $currQRs = get_option( 'quickppr_redirects', array() );
1425
+ $resultQRs = array_replace($currQRs, $newfile1['quickppr_redirects']);
1426
+ update_option( 'quickppr_redirects', $resultQRs );
1427
+ }
1428
+ if( isset( $newfile1['quickppr_redirects_meta'] ) ){
1429
+ $currQRM = get_option( 'quickppr_redirects_meta', array() );
1430
+ $resultQRMs = array_replace($currQRM, $newfile1['quickppr_redirects_meta']);
1431
+ update_option( 'quickppr_redirects_meta', $resultQRMs );
1432
+ }
1433
  }
1434
+ wp_redirect(admin_url('admin.php?page=redirect-import-export&update=5'),302);
1435
  exit;
1436
  else:
1437
+ wp_die( __( 'It does not look like there are any valid items to import - check the file and try again.', 'quick-pagepost-redirect-plugin' ) , __( 'ERROR - No Valid items to add.', 'quick-pagepost-redirect-plugin' ), array( 'response' => '200', 'back_link' => '1' ) );
1438
  exit;
1439
  endif;
1440
  }
1441
  }
1442
  } return;
1443
  }
1444
+
1445
+ function qppr_pprhidemessage_ajax(){
1446
+ check_ajax_referer( 'qppr_ajax_verify', 'scid', true );
1447
+ $msg = isset($_POST['pprhidemessage']) ? (int)$_POST['pprhidemessage'] : 0;
1448
+ if($msg == 1){
1449
+ update_option('qppr_jQuery_hide_message','1');
1450
+ echo '1';
1451
+ }elseif($msg == 2){
1452
+ update_option('qppr_jQuery_hide_message2','1');
1453
+ echo '1';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1454
  }else{
1455
+ echo '0';
1456
  }
1457
+ exit;
1458
  }
1459
+
1460
  function ppr_init_check_version() {
1461
  // checks version of plugin in DB and updates if needed.
 
 
 
1462
  global $wpdb;
1463
+ //$this->pprptypes_ok = get_option( 'ppr_qpprptypeok', array() );
1464
+ if( is_array( $this->ppr_all_redir_array ) && ! empty( $this->ppr_all_redir_array ) )
1465
+ $this->ppr_all_redir_array = $this->get_main_array();
1466
+
1467
+ if ( version_compare( $this->thepprversion, $this->ppr_curr_version, '<' ) ){
1468
+ update_option( 'ppr_use-jquery','1'); //default to on
1469
+ update_option( 'ppr_show-columns','1'); //default to on
1470
+ if ( get_option( 'ppr_override-casesensitive' , 'not-set' ) == 'not-set' )
1471
+ update_option( 'ppr_override-casesensitive', '1' );
1472
  $this->ppruse_jquery = '0';
1473
  $this->pproverride_casesensitive = '1';
1474
  update_option( 'ppr_version', $this->ppr_curr_version );
1480
  }
1481
 
1482
  function ppr_filter_plugin_actions($links){
1483
+ $links[] = '<a href="'.$this->fcmlink.'/donations/">' . __( 'Donate', 'quick-pagepost-redirect-plugin' ) . '</a>';
1484
+ return $links;
 
1485
  }
1486
 
1487
  function ppr_filter_plugin_links($links, $file){
1488
  if ( $file == plugin_basename(__FILE__) ){
1489
+ $links[] = '<a href="'.$this->adminlink.'admin.php?page=redirect-updates">' . __( 'Quick Redirects', 'quick-pagepost-redirect-plugin' ) . '</a>';
1490
+ $links[] = '<a href="'.$this->adminlink.'admin.php?page=redirect-faqs">' . __( 'FAQ', 'quick-pagepost-redirect-plugin' ) . '</a>';
1491
+ $links[] = '<a target="_blank" href="'.$this->fcmlink.'/donations/">' . __( 'Donate', 'quick-pagepost-redirect-plugin' ) . '</a>';
1492
  }
1493
  return $links;
1494
  }
1506
  // The actual fields for data entry
1507
  $pprredirecttype = get_post_meta($post->ID, '_pprredirect_type', true) !='' ? get_post_meta($post->ID, '_pprredirect_type', true) : "";
1508
  $pprredirecturl = get_post_meta($post->ID, '_pprredirect_url', true)!='' ? get_post_meta($post->ID, '_pprredirect_url', true) : "";
1509
+ echo '<label for="pprredirect_active" style="padding:2px 0;"><input type="checkbox" name="pprredirect_active" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_active',true),0).' />&nbsp;' . __( 'Make Redirect <strong>Active</strong>.', 'quick-pagepost-redirect-plugin' ) . '<span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">Check to turn on or redirect will not work.</span></span></label><br />';
1510
+ echo '<label for="pprredirect_newwindow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_newwindow" id="pprredirect_newwindow" value="_blank" '. checked('_blank',get_post_meta($post->ID,'_pprredirect_newwindow',true),0).'>&nbsp;' . __( 'Open redirect link in a <strong>new window.</strong>', 'quick-pagepost-redirect-plugin' ) . '<span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">May not work in all cases.</span></span></label><br />';
1511
+ echo '<label for="pprredirect_relnofollow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_relnofollow" id="pprredirect_relnofollow" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_relnofollow',true),0).'>&nbsp;' . __( 'Add <strong>rel="nofollow"</strong> to redirect link.', 'quick-pagepost-redirect-plugin' ) . '<span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">May not work in all cases.</span></span></label><br />';
1512
+ echo '<label for="pprredirect_rewritelink" style="padding:2px 0;"><input type="checkbox" name="pprredirect_rewritelink" id="pprredirect_rewritelink" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_rewritelink',true),0).'>&nbsp;' . __( '<strong>Show</strong> the Redirect URL instead of original URL.', 'quick-pagepost-redirect-plugin' ) . ' <span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">May not always work and will only show the link - <strong><em>but NOT in the Address bar, just the link itself.</em></strong></span></span></label><br /><br />';
1513
  //echo '<label for="pprredirect_casesensitive" style="padding:2px 0;"><input type="checkbox" name="pprredirect_casesensitive" id="pprredirect_casesensitive" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_casesensitive',true),0).'>&nbsp;Make the Redirect Case Insensitive.</label><br /><br />';
1514
+ echo '<label for="pprredirect_url"><b>' . __( 'Redirect URL:', 'quick-pagepost-redirect-plugin' ) . '</b></label><br />';
1515
  echo '<input type="text" style="width:75%;margin-top:2px;margin-bottom:2px;" name="pprredirect_url" value="'.$pprredirecturl.'" /><span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help"><br />(i.e., <strong>http://example.com</strong> or <strong>/somepage/</strong> or <strong>p=15</strong> or <strong>155</strong>. Use <b>FULL URL</b> <i>including</i> <strong>http://</strong> for all external <i>and</i> meta redirects.)</span></span><br /><br />';
1516
+ echo '<label for="pprredirect_type"><b>' . __( 'Type of Redirect:', 'quick-pagepost-redirect-plugin' ) . '</b></label><br />';
1517
 
1518
  switch($pprredirecttype):
1519
  case "":
1535
 
1536
  echo '
1537
  <select style="margin-top:2px;margin-bottom:2px;width:40%;" name="pprredirect_type">
1538
+ <option value="301" '.$ppr_option1.'>301 ' . __( 'Permanent', 'quick-pagepost-redirect-plugin' ) . '</option>
1539
+ <option value="302" '.$ppr_option2.'>302 ' . __( 'Temporary', 'quick-pagepost-redirect-plugin' ) . '</option>
1540
+ <option value="307" '.$ppr_option3.'>307 ' . __( 'Temporary', 'quick-pagepost-redirect-plugin' ) . '</option>
1541
+ <option value="meta" '.$ppr_option5.'>' . __( 'Meta Redirect', 'quick-pagepost-redirect-plugin' ) . '</option>
1542
+ </select><span class="qppr_meta_help_wrap"><span class="qppr_meta_help_icon">?</span><span class="qppr_meta_help">' . __( 'Default is 302 (Temporary Redirect).', 'quick-pagepost-redirect-plugin' ) . ' </span></span><br /><br />
1543
  ';
1544
+ echo __( '<strong>NOTE:</strong> For a Page or Post (or Custom Post) Redirect to work, it may need to be published first and then saved again as a Draft. If you do not already have a page/post created you can add a \'Quick\' redirect using the', 'quick-pagepost-redirect-plugin' ) . ' <a href="./admin.php?page=redirect-updates">' . __( 'Quick Redirects', 'quick-pagepost-redirect-plugin' ) . '</a> ' . __( 'method.', 'quick-pagepost-redirect-plugin' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1545
  }
1546
 
1547
  function isOne_none($val=''){ //true (1) or false =''
1567
  }
1568
  if(!empty($my_meta_data)){unset($my_meta_data);}
1569
  $my_meta_data = array();
1570
+ if( isset( $_POST['pprredirect_active'] ) || isset( $_POST['pprredirect_url'] ) || isset( $_POST['pprredirect_type'] ) || isset( $_POST['pprredirect_newwindow'] ) || isset($_POST['pprredirect_relnofollow'])):
1571
+ $protocols = apply_filters( 'qppr_allowed_protocols', array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp'));
1572
  // find & save the form data & put it into an array
1573
  $my_meta_data['_pprredirect_active'] = isset($_REQUEST['pprredirect_active']) ? sanitize_meta( '_pprredirect_active', $this->isOne_none(intval( $_REQUEST['pprredirect_active'])), 'post' ) : '';
1574
  $my_meta_data['_pprredirect_newwindow'] = isset($_REQUEST['pprredirect_newwindow']) ? sanitize_meta( '_pprredirect_newwindow', $this->isOne_none( $_REQUEST['pprredirect_newwindow']), 'post' ) : '';
1575
  $my_meta_data['_pprredirect_relnofollow'] = isset($_REQUEST['pprredirect_relnofollow']) ? sanitize_meta( '_pprredirect_relnofollow', $this->isOne_none(intval( $_REQUEST['pprredirect_relnofollow'])), 'post' ) : '';
1576
  $my_meta_data['_pprredirect_type'] = isset($_REQUEST['pprredirect_type']) ? sanitize_meta( '_pprredirect_type', sanitize_text_field( $_REQUEST['pprredirect_type'] ), 'post' ) : '';
1577
  $my_meta_data['_pprredirect_rewritelink'] = isset($_REQUEST['pprredirect_rewritelink']) ? sanitize_meta( '_pprredirect_rewritelink', $this->isOne_none(intval( $_REQUEST['pprredirect_rewritelink'])), 'post' ) : '';
1578
+ $my_meta_data['_pprredirect_url'] = isset($_REQUEST['pprredirect_url']) ? esc_url_raw( $_REQUEST['pprredirect_url'], $protocols ) : '';
1579
 
1580
  $info = $this->appip_parseURI($my_meta_data['_pprredirect_url']);
1581
  //$my_meta_data['_pprredirect_url'] = esc_url_raw($info['url']);
1608
  endif;
1609
  }
1610
 
1611
+ function appip_parseURI($url){
1612
+ /*
1613
+ [scheme]
1614
+ [host]
1615
+ [user]
1616
+ [pass]
1617
+ [path]
1618
+ [query]
1619
+ [fragment]
1620
+ */
1621
+ $strip_protocol = 0;
1622
+ $tostrip = '';
1623
+ //if($url == '' || $url == 'http://' || $url == 'https://' ){ return $url;}
1624
+
1625
+ if(substr($url,0,2) == 'p=' || substr($url,0,8) == 'page_id='){ // page or post id
1626
+ $url = network_site_url().'/?'.$url;
1627
+ }elseif(is_numeric($url)){ // page or post id
1628
+ $url = network_site_url().'/?'.$url;
1629
+ }elseif($url == "/" ){ // root
1630
+ $url = network_site_url().'/';
1631
+ }elseif(substr($url,0,1) == '/' ){ // relative to root
1632
+ $url = network_site_url().$url;
1633
+ $strip_protocol = 1;
1634
+ $tostrip = network_site_url();
1635
+ }elseif(substr($url,0,7) != 'http://' && substr($url,0,8) != 'https://' ){ // no protocol so add it
1636
+ //$url = "http://".$url;
1637
+ //desided not to add it automatically.
1638
+ }
1639
+ $info = @parse_url($url);
1640
+ if($strip_protocol == 1 && $tostrip != '' ){
1641
+ $info['url'] = str_replace($tostrip, '', $url);
1642
+ }else{
1643
+ $info['url'] = $url;
1644
+ }
1645
+ return $info;
1646
+ }
1647
+
1648
  function ppr_fix_targetsandrels($pages) {
1649
  $ppr_url = array();
1650
  $ppr_newindow = array();
1732
  //not needed at this time
1733
  }
1734
 
1735
+ function getAddress($home = ''){
1736
  // utility function to get the full address of the current request - credit: http://www.phpro.org/examples/Get-Full-URL.html
1737
+ if( !isset( $_SERVER['HTTPS'] ) ){
1738
+ $_SERVER['HTTPS'] = '';
1739
+ }
1740
+ $protocol = $_SERVER['HTTPS'] !== '' && strpos( $home, 'http:' ) === false ? 'https' : 'http'; //check for https
1741
  return $protocol.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //return the full address
1742
  }
1743
 
1744
+ function getQAddress($home = ''){
1745
+ // utility function to get the protocol and host of the current request
1746
+ if( !isset( $_SERVER['HTTPS'] ) )
1747
+ $_SERVER['HTTPS'] = '';
1748
+ $protocol = $_SERVER['HTTPS'] !== '' && strpos( $home, 'http:' ) === false ? 'https' : 'http'; //check for https
1749
+ return $protocol.'://'.$_SERVER['HTTP_HOST'];
1750
+ }
1751
 
1752
+ function redirect(){
1753
+ // Quick Redirects Redirect.
1754
  // Read the list of redirects and if the current page is found in the list, send the visitor on her way
1755
  if (!empty($this->quickppr_redirects) && !is_admin()) {
1756
+ $homeURL = get_option( 'home' );
1757
+ $getAddress = $this->getAddress( $homeURL ); // gets just the protocol and full URL of request. for cases when the setting for Site URL has a subfolder but a request may not.
1758
+ $getQAddress = $this->getQAddress( $homeURL ); // gets just the protocol and domain (host) of the request.
1759
+
1760
  //get the query string if there is one so that it can be preserved
1761
+
1762
+ // patch submitted for version 5.0.7 by Romulo De Lazzari <romulodelazzari@gmail.com> - THANKS!
1763
+ $finalQS = (filter_input(INPUT_SERVER, 'QUERY_STRING'));
1764
+ if ($finalQS === null || $finalQS === false || $finalQS === '') {
1765
+ $finalQS = '';
1766
+ } else {
1767
+ $finalQS = '?' . $finalQS;
1768
  }
1769
+ $userrequest = str_replace( $homeURL, '', $getAddress );
1770
+ $userrequest = preg_replace('/\?.*/', '', $userrequest);
1771
+ // end patch
1772
 
1773
+ /* OLD finalQS up to version 5.0.6 - remove after testing complete
1774
+ $finalQS = '';
1775
+ if(isset($_GET)){
1776
+ $useURLQS = array();
1777
+ if( count($_GET) >= 1){
1778
+ foreach($_GET as $key => $value){
1779
+ $useURLQS[] = $key.'='.$value;
1780
+ }
1781
+ $finalQS = '?'.implode('&',$useURLQS);
1782
+ $userrequest = preg_replace('/\?.*'.'/', '', $userrequest);
1783
+ }
1784
+ }
1785
+ */
1786
+
1787
+ //end QS preservation
1788
+
1789
  $needle = $this->pproverride_casesensitive ? $userrequest : strtolower($userrequest);
1790
  $haystack = $this->pproverride_casesensitive ? $this->quickppr_redirects : array_change_key_case($this->quickppr_redirects);
1791
+ $getAddrNeedle = $this->pproverride_casesensitive ? $getAddress : strtolower($getAddress);
1792
+ $getQAddrNeedle = $this->pproverride_casesensitive ? str_replace( $getQAddress, '', $getAddrNeedle ) : strtolower(str_replace( $getQAddress, '', $getAddrNeedle ));
1793
  $index = false;
1794
 
1795
+ /* These are the URL matching checks to see if the request should be redirected.
1796
+ * They trickle down to the less likely scenarios last - tries to recover a redirect if the
1797
+ * user just forgot things like ending slash or used wrong protocol, etc.
1798
+ */
1799
+ if(array_key_exists( $needle, $haystack)){
1800
+ //standard straight forward check for needle (request URL)
1801
  $index = $needle;
1802
+ }elseif(array_key_exists(urldecode($needle), $haystack)){
1803
+ //standard straight forward check for URL encoded needle (request URL)
1804
+ $index = urldecode($needle);
1805
+ }elseif(array_key_exists( $getAddrNeedle, $haystack)){
1806
+ //Checks of the needle (request URL) might be using a different protocol than site home URL
1807
+ $index = $getAddrNeedle;
1808
+ }elseif(array_key_exists( urldecode( $getAddrNeedle ), $haystack)){
1809
+ //Checks of an encoded needle (request URL) might be using a different protocol than site home URL
1810
+ $index = urldecode( $getAddrNeedle );
1811
+ }elseif( strpos( $needle, 'https' ) !== false ){
1812
+ //Checks of the encoded needle (request URL) might be http but the redirect is set up as http
1813
+ if(array_key_exists(str_replace('https','http',$needle), $haystack))
1814
+ $index = str_replace('https','http',$needle); //unencoded version
1815
+ elseif(array_key_exists(str_replace('https','http',urldecode($needle)), $haystack))
1816
+ $index = str_replace('https','http',urldecode($needle)); //encoded version
1817
+ }elseif(strpos($needle,'/') === false) {
1818
+ //Checks of the needle (request URL) might not have beginning and ending / but the redirect is set up with them
1819
+ if( array_key_exists( '/' . $needle . '/', $haystack ) )
1820
  $index = '/'.$needle.'/';
1821
+ }elseif( array_key_exists( urldecode($getQAddrNeedle), $haystack ) ){
1822
+ //Checks if encoded needle (request URL) doesn't contain a sub directory in the URL, but the site Root is set to include it.
1823
+ $index = urldecode( $getQAddrNeedle );
1824
+ }elseif( array_key_exists( $getQAddrNeedle, $haystack ) ){
1825
+ //Checks if needle (request URL) doesn't contain a sub directory in the URL, but the site Root is set to include it.
1826
+ $index = $getQAddrNeedle;
1827
+ }elseif( array_key_exists( $needle . '/', $haystack ) ){
1828
+ //checks if needle (request URL) just is missing the ending / but the redirect is set up with it.
1829
+ $index = $needle . '/';
1830
+ }elseif( array_key_exists( $needle . $finalQS, $haystack ) ){
1831
+ //check if QS data might be part of the redirect URL and not supposed to be added back.
1832
+ $index = $needle . $finalQS;
1833
+ $finalQS = ''; //remove it
1834
  }
1835
+
1836
+ if($index != false && $index != ''){
1837
+ // Finally, if we have a matched request URL, get ready to redirect.
1838
+ $val = isset($haystack[$index]) ? $haystack[$index] : false;
1839
  if($val) {
1840
+ // if global setting to make all redirects go to a specific URL is set, that takes priority.
1841
+ $useURL = $this->pproverride_URL != '' ? $this->pproverride_URL : $val;
1842
+ $useURL .= apply_filters( 'qppr_filter_quickredirect_append_QS_data', $finalQS ); //add QS back or use filter to set to blank.
1843
+ $useURL = apply_filters( 'qppr_filter_quickredirect_url', $useURL, $index ); // final URL filter
1844
+ $qpprRedType = apply_filters( 'qppr_filter_quickredirect_type', 301 ) ; // filter for redirect type (301 is default here).
1845
+ if( strpos( $useURL, '/' ) !== false && strpos( $useURL, '/' ) === 0 ){
1846
+ // $addback refers to adding back the site home link back to the front of the request URL that is relative to the root.
1847
+ // by default it will, but this can be filtered to never add it back (or based on URL).
1848
+ $addback = (bool) apply_filters( 'qppr_filter_quickredirect_add_home_link_to_destination_url', true, $useURL);
1849
+ $useURL = $addback ? $homeURL . $useURL : $useURL;
1850
+ }
1851
+ // action to allow take over.
1852
+ do_action( 'qppr_redirect', $useURL, $qpprRedType );
1853
+
1854
+ // and now the redirect (meta or type set).
1855
+ if( $qpprRedType == 'meta' ){
1856
  $this->ppr_metaurl = $useURL;
1857
+ add_action( 'wp_head', array( $this, 'ppr_addmetatohead_theme' ), 1 );
1858
  }else{
1859
+ wp_redirect( $useURL, $qpprRedType );
1860
  exit();
1861
  }
1862
  }
1864
  }
1865
  }
1866
 
1867
+ function ppr_do_redirect( $var1='var1', $var2 = 'var2'){
1868
+ // Individual Redirects Redirect.
1869
+ // Read the list of redirects and if the current page is found in the list, send the visitor on her way
1870
+
1871
  global $post;
1872
+ if ( count( $this->ppr_all_redir_array ) > 0 && ( is_single() || is_singular() || is_page() ) ) {
1873
+ if( isset( $this->ppr_all_redir_array[$post->ID] ) ){
1874
  $isactive = $this->ppr_all_redir_array[$post->ID]['_pprredirect_active'];
1875
  $redrtype = $this->ppr_all_redir_array[$post->ID]['_pprredirect_type'];
1876
  $redrurl = $this->ppr_all_redir_array[$post->ID]['_pprredirect_url'];
1877
  if($isactive == 1 && $redrurl != '' && $redrurl != 'http://www.example.com'){
1878
  if($redrtype === 0){$redrtype = '200';}
1879
  if($redrtype === ''){$redrtype = '302';}
 
1880
  if( strpos($redrurl, 'http://')=== 0 || strpos($redrurl, 'https://')=== 0){
1881
+ $urlsite = $redrurl;
1882
  }elseif(strpos($redrurl, 'www')=== 0){ //check if they have full url but did not put http://
1883
+ $urlsite = 'http://'.$redrurl;
1884
  }elseif(is_numeric($redrurl)){ // page/post number
1885
+ $urlsite = $this->homelink.'/?p='.$redrurl;
1886
  }elseif(strpos($redrurl,'/') === 0){ // relative to root
1887
+ $urlsite = $this->homelink.$redrurl;
1888
  }else{ // we assume they are using the permalink / page name??
1889
  $urlsite=$this->homelink.'/'.$redrurl;
1890
  }
1914
  $theNoFollow = $this->ppr_all_redir_array[$ppd->object_id]['_pprredirect_relnofollow'];
1915
  $theRewrite = $this->ppr_all_redir_array[$ppd->object_id]['_pprredirect_rewritelink'];
1916
  $theRedURL = $this->ppr_all_redir_array[$ppd->object_id]['_pprredirect_url'];
 
1917
  if($this->pproverride_URL !=''){$theRedURL = $this->pproverride_URL;} // check override
 
1918
  if($theIsActives == '1' && $theNewWindow === '_blank'){
1919
  $ppd->target = '_blank';
1920
  $ppd->classes[] = 'ppr-new-window';
1926
  if($theIsActives == '1' && $theRewrite == '1' && $theRedURL != ''){
1927
  $ppd->url = $theRedURL;
1928
  $ppd->classes[] = 'ppr-rewrite';
 
1929
  }
1930
  }
1931
  $newmenu[] = $ppd;
qppr_admin_script.js DELETED
@@ -1,14 +0,0 @@
1
- (function($){
2
- $(document).ready(function() {
3
- $('span.qppr_meta_help').css('display','none');
4
- $('span.qppr_meta_help_wrap').live('hover',function(e){
5
- var $curdisp = $(this).find('span.qppr_meta_help').css('display');
6
- if($curdisp == 'none'){
7
- $(this).find('span.qppr_meta_help').css('display','inline');
8
- }else{
9
- $(this).find('span.qppr_meta_help').css('display','none');
10
- }
11
- e.preventDefault();
12
- });
13
- });
14
- })(jQuery)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
qppr_admin_style.css DELETED
@@ -1,25 +0,0 @@
1
- span.qppr_meta_help{display:none;}
2
- .qppr_meta_help_icon {
3
- padding: 0;
4
- background: #9ED5FA;
5
- display: inline-block;
6
- height: 1.15em;
7
- width: 1.15em;
8
- text-align: center;
9
- font-weight: bold;
10
- font-size: .95em;
11
- line-height: 1.15em;
12
- margin: 0 2px;
13
- border: 1px solid #4D8ED6;
14
- }
15
- .qppr_meta_help_icon:hover {
16
- color: aliceblue;
17
- background: #1489D4;
18
- }
19
- .qppr_meta_help_wrap {
20
- padding: 0;
21
- font-size: 11px;
22
- /*text-transform: uppercase;*/
23
- background: #FFF8C8;
24
- line-height: 1.15em;
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -1,51 +1,63 @@
1
  === Quick Page/Post Redirect Plugin ===
2
- Contributors: Don Fischer
3
  Donate link: http://www.fischercreativemedia.com/donations/
4
- Tags: redirect, 301, 302, meta, post, plugin, page, forward, re-direct, nofollow, menu links, posts, pages, admin, 404, custom post types, nav menu, import, export, restore
5
  Requires at least: 3.9
 
 
6
  Tested up to: 4.2.2
7
  Stable tag: trunk
8
 
9
- Redirect Pages/Posts to another page/post or external URL. Has edit box as well as global options. Specify the redirect Location and type. For PHP5+
10
 
11
  == Description ==
12
- Version 5.0.6.
13
- This plugin adds adds an option box to the edit section where you can specify the redirect location and type of redirect that you want, temporary, permanent, or meta. See below for additional features added.
14
-
15
- This plugin works best when you have some form of Permalink Stucture set up. If you have other Redirect plugins installed, it is recommeded that you use only one redirect plugin or they may conflict or one may take over before the other can do its job.
16
-
17
- = Features: =
18
- * Works with WordPress Menus
19
- * Works with WordPress Custom Post Types (set option on settings page)
20
- * You can set a redirect page or menu link to open in a new window (will not work on permalinks)
21
- * You can add a *rel="nofollow"* attribute to the page or menu link of the redirect (will not work on permalinks)
22
- * You can completely re-write the URL for the redirect so it takes the place of the default page URL (rewrite the href link)
23
- * You can redirect without needing to create a Page or Post. This is very useful for sites that were converted to WordPress and have old links that create 404 errors (see FAQs for more information). This option does not allow for open in a new window or nofollow functions.
24
- * Redirect Location can be to another WordPress page/post or any other website with an external URL.
25
- * Redirect can use a full URL path, the post or page ID, permalink or page-name (not available for Quick Redirects method).
26
- * Option Screen to set global overrides like turning off all redirects at once, setting a global destination link, make all redirect open in a new window, etc.
27
- * View a summary of all redirected pages/posts or custom post types and Quick Redirects that are currently set up.
28
- * Plugin Clean up functions for those who decide they may want to remove all plugin data.
29
- * Import/Export of redirects for backup, or to bulk add redirects.
30
- * Built-in FAQs/Help that can be updated daily with relevant questions.
 
 
 
 
 
 
 
 
31
 
32
  = What You CANNOT Do: =
33
- * This plugin does not have wildcard redirect features
34
  * You cannot redirect the Home (Posts) page - unless you set a page as the home page and redirect that.
35
- * If your theme uses some form of custom layout or funcitonality, some features may not work.
36
 
37
  This plugin is not compatible with WordPress versions less than 3.9. Requires PHP 5.2+.
38
 
39
- *PLEASE NOTE:* A new page or post needs to be Published in order for Page/Post redirect to happen. It WILL work on a DRAFT Status Post/Page ONLY, and I mean ONLY, if the Post/Page has FIRST been Published and the re-saved as a Draft. This does not apply to Quick Redirects.
40
 
41
  = TROUBLESHOOTING: =
42
- * To include custom post types, check the setting on the main plugin option page.
43
- * If you check the box for "Show Redirect URL below" on the edit page, please note that you MUST use the full URL in the Redirect URL box. If you do not, you may experience some odd links and 404 pages, as this option changes the Permalink for the page/post to the EXACT URL you enter in that field. (i.e., if you enter '2' in the field, it will redirect to 'http://2' which is not the same as 'http://yoursite.com/?p=2').
 
44
  * If your browser tells you that your are in an infinite loop, check to make sure you do not have pages redirecting to another page that redirects back to the initial page. That WILL cause an infinite loop.
45
- * If you are using the Quick Redirects method to do your redirects, be sure that your Request URL starts with a / and is relative to the root (i.e., http://mysite.com/test/ would have /test/ in the request field).
46
- * Links in page/post content and Permalinks will not open in a new window or add the rel=nofollow. That is because the theme template actually sets up the links by calling "the_permalink()" function so adding these elements is not consistently possible. You can however, have the attempt to use a jQuery replace to try to fix the issue - to do this enable the jQuery option in the settings.
47
- * If your page or post is not redirecting, this is most likely because something else like the theme functions file or another plugin is outputting the header BEFORE the plugin can perform the redirect. This can be tested by turning off all plugins except the Quick Page/Post Redirect Plugin and testing if the redirect works. 9 out of 10 times, a plugin or bad code is the culprit.
48
- * We have tested the plugin in dozens of themes and alongside a whole lot more plugins. In our experience, (with exception to a few bugs from time to time) most of the time another plugin is the problem. If you do notice a problem, please let us know at plugins@fischercreativemedia.com - along with the WP version, theme you are using and plugins you have installed - and we will try to troubleshoot the problem.
 
49
  * Check the FAQs/Help located in the Plugin menu for more up to date issues and fixes.
50
 
51
  == Installation ==
@@ -54,87 +66,96 @@ This plugin is not compatible with WordPress versions less than 3.9. Requires PH
54
  1. Upload `quick_page_post_redirect` folder to the `/wp-content/plugins/` directory
55
  1. Activate the plugin through the 'Plugins' menu in WordPress
56
  1. Once Activated, you can add a redirect by entering the correct information in the `Quick Page/Post Redirect` box in the edit section of a page or post
57
- 1. You can create a redirect with the 'Quick Redirects' option located in the Admin Settings menu.
58
 
59
  = If you install this plugin through WordPress 2.8+ plugin search interface: =
60
  1. Click Install `Quick Page/Post Redirect Plugin`
61
  1. Activate the plugin through the 'Plugins' menu in WordPress
62
  1. Once Activated, you can add a redirect by entering the correct information in the `Quick Page/Post Redirect` box in the edit section of a page or post
63
- 1. You can create a redirect with the 'Quick Redirects' option located in the Admin Settings menu.
64
 
65
  == Frequently Asked Questions ==
66
  ** SEE A LIST OF MORE UP TO DATE FAQS IN THE PLUGIN MENU ITSELF **
67
 
68
- = With 3.0s new menu structure, isn't your plugin now obsolete? =
69
- Yes, and No. Mostly No.
70
- Here is why - with WordPress 3.0, comes the new menu structure, but only a handful of themes actually have the menu structure already integrated into theme. This means that there are tons of themes out there that still need to use the the old way until they can update their theme template pages and functions to turn on the menu capability.
71
- Additionally, the Quick Redirects option still allows you to create redirects for any url on your site, so that is very much not obsolete (until WP makes something to do that as well). And as a final note, the plugin is still compatible with WP's new menu functionality using the standard page/post creations - only custom menu items will be out of the plugin's realm of redirects - and you could set the URL in the new WP menu anyway, so that would be covered.
72
-
73
  = I still can't get the OPEN IN NEW WINDOW option to work... why? =
74
  Some themes put custom links in the menu, like RSS and other similar items. Many times (an this is usually the main reason why), they do not use the WP hook to add the menu item to the list - they literally just put it there. Unless the theme uses the internal WordPress hooks to call the menu, redirects, open in a new window and rel=nofollow features just will not work.
75
  ADDITIONALLY - Links in page/post content and Permalinks will not open in a new window or add the rel=nofollow. That is because the theme template actually sets up the links by calling "the_permalink()" function so add these elements is not consistently possible so it has been excluded from the functionality. The links will still redirect just fine but without that feature.
 
76
 
77
  = Do I need to have a Page or Post Created to redirect? =
78
- There is a Quick Redirects feature that allows you to create a redirect for any URL on your site. This is VERY helpful when you move an old site to WordPress and have old links that need to go some place new. For example,
79
  If you had a link on a site that went to http://yoursite.com/aboutme.html you can now redirect that to http://yoursite.com/about/ without needing to edit the htaccess file. You simply add the old URL (/aboutme.html) and tell it you want to go to the new one (/about/). Simple as that.
80
 
81
- The functionality is located in the REDIRECT MENU under Quick Redirects. The old URL goes in the Request field and the to new URL goes in the Destination field. Simple and Quick!
82
 
83
  = Can I add 'rel="nofollow" attribute to the redirect link? =
84
- YES, you can add a ' rel="nofollow" ' attribute for the redirect link. Simply check the "add rel=nofollow" box when setting up the redirect on the page/post edit page. Note - this option is only available for the Quick Redirects method when the 'use with jQuery' functionality is enabled in the settings.
85
 
86
  = Can I make the redirect open in a new window? =
87
- YES, you can make the redirect link open in a new window. Simply check the "Open in a new window" box when setting up the redirect on the page/post edit page. Note - this option is only available for the Quick Redirects method when the 'use with jQuery' functionality is enabled in the settings.
88
 
89
  = I want to just have the link for the redirecting page/post show the new redirect link in the link, not the old one, can I do that? =
90
  YES, you can hide the original page link and have it replaced with the redirect link. Any place the theme calls either "wp_page_links", "post_links" or "page_links" functions, the plugin can replace the original link with the new one. Simply check the "Show Redirect URL" box when setting up the redirect on the page/post edit page. Note - this option is not available for the Quick Redirects method.
91
 
92
- = I have Business Cards/Postcards/Ads that say my website is http://something.com/my-name/ or http://something.com/my-product/, can I set that up with this? =
93
- YES! Just set up a redirect (see above) and set the Request field to /my-name/ or /my-product/ and the Destination field to the place you want it to go. The destination doesn't even need to be on the same site - it can go anywhere you want it to go!
94
 
95
  = Why is my Page/Post not redirecting? =
96
- FIRST - make sure it is active. Then, check to make sure the global option to turn off all redirects is not checked.
97
- If your page or post is still not redirecting, then it is most likely because something else like the theme functions file or another plugin is outputting the header BEFORE the plugin can perform the redirect. This can be tested by turning off all plugins except the Quick Page/Post Redirect Plugin and testing if the redirect works. 9 out of 10 times, a plugin or bad code is the culprit - or the redirect is just simply turned off.
 
 
98
 
99
- We have tested the plugin in dozens of themes and a whole lot more plugins. In our experience, (with exception to a few bugs) most of the time another plugin is the problem. If you do notice a problem, please let us know at plugins@fischercreativemedia.com - along with the WP version, theme you are using and plugins you have installed - and we will try to troubleshoot the problem.
100
 
101
  = Does the Page/Post need to be Published to redirect? =
102
  YES... and NO... The redirect will always work on a Published Post/Page. For it to work correctly on a Post/Page in DRAFT status, you need to fist publish the page, then re-save it as a draft. If you don't follow that step, you will get a 404 error.
103
 
104
  = Can I do a permanent 301 Redirect? =
105
- Yes. You can perform a 301 Permanent Redirect. Additionally, you can select a 302 Temporary or a 307 Temporary redirect or a Meta redirect.
106
 
107
  = What the heck is a 301 or 302 redirect anyway? =
108
- Good question! The number corresponds with the header code that is returned to the browser when the page is first accessed. A good page, meaning something was found, returns a 200 status code and that tells the browser to go ahead and keep loading the content for the page. If nothing is found a 404 error is returned (and we have ALL seen these - usually it is a bad link or a page was moved). There are many other types of codes, but those ore the most common.
109
 
110
- The 300+ range of codes in the header, tells the browser (and search engine spider) that the original page has moved to a new location - this can be just a new file name a new folder or a completely different site.
111
 
112
  A 301 code means that you want to tell the browser (or Google, bing, etc.) that your new page has permanently moved to a new location. This is great for search engines because it lets them know that there was a page there once, but now go to the new place to get it - and they update there old link to is so future visitors will not have to go through the same process.
113
 
114
  A 302 or 307 code tell the browser that the file was there but TEMPORARILY it can be found at a new location. This will tell the search engines to KEEP the old link in place because SOME day it will be back at the same old link. There is only a slight difference between a 302 and a 307 status. Truth is, 302 is more widely used, so unless you know why you need a 307, stick with a 302.
115
 
116
  = So, which one do I use? =
117
- Easiest way to decide is this: If you want the page to permanently change to a new spot, use 301. If you are editing the page or post and only want it to be down for a few hours, minutes, days or weeks and plan on putting it back with the same link as before, then us 302. If you want to hide the responses code from the spiders, use the `no code` option, and if you are having trouble with the redirects, use a `meta` redirect. The meta redirect actually starts to load the page as a 200 good status, then redirects using a meta redirect tag.
118
 
119
  Still not sure? Try 302 for now - at least until you have a little time to read up on the subject.
120
 
121
  = Should I use a full URL with http:// or https:// ? =
122
- Yes, you can, but you do not always need to. If you are redirecting to an external URL, then yes. If you are just redirecting to another page or post on your site, then no, it is not needed. When in doubt, use the entire URL.
123
 
124
  = That's all the FAQs you have? =
125
- NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequently Asked Questions. The plugin now has a live feed of FAQs that can be updated regularly. If you have something you thin we should add, please let us know.
126
 
127
 
128
  == Screenshots ==
129
 
130
- 1. New FAQs/Help Page. This is updated off an RSS feed so it can be updated regularly with fixs and common questions.
131
- 2. Setting Page. Includes new Import and Export features.
132
- 3. More detailed view of Import/Export Feature.
133
- 4. Plugin Clean Up feature. You can delete ALL plugin data!
134
- 5. Quick Redirects setup page.
135
- 5. Summary of redirects plugin page.
136
 
137
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
138
  = 5.0.6 =
139
  * Fix to some users getting Warning messages for parse_url function.
140
  * Added nonce field checking for Quick Redirects form to help eliminate the possibility of form takeover on submission of quick redirect saves.
@@ -151,22 +172,22 @@ NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequ
151
 
152
  = 5.0.3 =
153
  * Minor bug cleanup update - (no new features added)
154
- * Bug fixes: Javascript ghost js file call fixed. Actions hooks not applying issue fixed. Querystring redirect issue addressed. Unset index errors addressed. Some Network/MU problems fixed.
155
  * Modified Import and Export scripts to export a more editable export file. Import can be either old encoded version or new readable PIPE version.
156
  * Typos and minor layout issues addressed.
157
 
158
  = 5.0.2 =
159
  * Bug fixes and jQuery now set to off until issues are resolved.
160
- * Set Case Sensetive to on by default - Some people having issues with infinite loops.
161
 
162
  = 5.0.1 =
163
  * Fix to jQuery conflict issue.
164
 
165
  = 5.0 =
166
- * Added jQuery version check to ensure no problmes with themes forcing older versions of jQuery
167
  * Added a few warning /info messages to Quick Redirects page.
168
  * Redirect summary was updated to display Quick Redirects as well as individual redirects. Now it is easier to see at a glance what redirects you have set up.
169
- * Rewrite of Quick Redirects functions to allow selecting Open in New Window (NW) and rel=nofollow (NF) as long as 'use jQuery' is selected.
170
  * Added "use jQuery" option on settings page - on by default after upgrade
171
  * Added jQuery redirect replace, target="_blank", and rel="nofollow" to increase success for additional options (mainly Quick redirects).
172
  * Changed out WP_PLUGIN_URL for plugins_url() to help resolve errors in redirects for SSL/https
@@ -180,7 +201,7 @@ NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequ
180
  * Case insensitivity option was added for Quick Redirects (thanks to Brian DiChiara for the contribution).
181
 
182
  = 4.2.2 =
183
- * Fix some embarrasing spelling errors.(07/14/2011)
184
  * Fix Quick Redirects links from inside the redirect edit box and plugin page - they would give a "not authorized" warning because the page location changed in version 4.0 (07/14/11)
185
 
186
  = 4.2.1 =
@@ -228,7 +249,7 @@ NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequ
228
  * Fix Bug - Open in New Window would not work unless Show Link URL was also selected. (3/12/2010)
229
  * Fix Bug - Add rel=nofollow would not work if Open in a New Window was not selected. (3/13/2010)
230
  * Fix Bug - Show Link, Add nofollow and Open in New Window would still work when redirect not active. (3/13/2010)
231
- * Added new preg_match_all and preg_replace calls to add target and nofollow links - more effecient and accuarte - noticed some cases where old funtion would add the items if a redirect link had the same URL. (3/13/2010)
232
  = 2.0 =
233
  * Cosmetic code cleanup. (2/28/2010)
234
  * Remove warning and error messages created in 1.9 (2/28/2010)
@@ -261,6 +282,7 @@ NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequ
261
  * Initial Plugin creation (7/1/2009)
262
 
263
  == Upgrade Notice ==
264
- = 5.0.6 =
265
- * Fix Warning Message from parse_url function for some users.
266
- * Added Nonce to form to prevent possible maliscious form takeover on saving Quick Redirects.
 
1
  === Quick Page/Post Redirect Plugin ===
2
+ Contributors: prophecy2040
3
  Donate link: http://www.fischercreativemedia.com/donations/
4
+ Tags: redirect, 301, 302, meta, plugin, forward, re-direct, nofollow, menu links, posts, pages, 404, custom post types, nav menu, import, export, restore
5
  Requires at least: 3.9
6
+ License: GPLv2 or later
7
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
8
  Tested up to: 4.2.2
9
  Stable tag: trunk
10
 
11
+ Easily redirect pages/posts or custom post types to another page/post or external URL by specifying the redirect URL and type (301, 302, 307, meta).
12
 
13
  == Description ==
14
+ Current Version 5.0.7.
15
+
16
+ This plugin has two redirect functionalities - "Quick Redirects" and "Individual Redirects":
17
+
18
+ = QUICK REDIRECTS (301 Redirects) =
19
+ Quick Redirects are designed to be quick and simple to add. You do not need to have an existing page or post set up to add one. You just put the Request URL and the Destination URL and the plugin will redirect it. This type of redirect is great for fixing typos when a page was created, redirecting old URLs to a new URL so there is no 404, and to redirect links from an old site that has been converted to WordPress.
20
+
21
+ = INDIVIDUAL REDIRECTS (for existing pages/posts) =
22
+ For pages/posts that already exist, the plugin adds an option meta box to the edit screen where you can specify the redirect location and type (301, 302 or meta). This type of redirect is useful for many things, including menu items, duplicate posts, or just redirecting a page to a different URL or location on your existing site.
23
+
24
+ For best results use some form of WordPress Permalink structure. If you have other Redirect plugins installed, it is recommended that you use only one redirect plugin or they may conflict with each other or one may take over before the other can do its job.
25
+
26
+ = What You CAN Do (aka, Features): =
27
+ * Works with WordPress Nav Menus
28
+ * Works with WordPress Custom Post Types (select setting on options page)
29
+ * You can set a redirected page or menu item to open in a new window (Quick Redirects require **Use jQuery?** option to be set)
30
+ * You can add a *rel="nofollow"* attribute to the page or menu item link for the redirect (Quick Redirects require **Use jQuery?** option to be set)
31
+ * You can completely re-write the URL for the redirect so it takes the place of the original URL (rewrite the href link)
32
+ * You can redirect without needing to create a Page or Post using Quick Redirects. This is useful for sites that were converted to WordPress and have old links that create 404 errors (see FAQs for more information).
33
+ * Destination URL can be to another WordPress page/post or any other website with an external URL.
34
+ * Request URL can be a full URL path, the post or page ID, permalink or page slug.
35
+ * Option Screen to set global overrides like turning off all redirects at once, setting a global destination link, make all redirects open in a new window, etc.
36
+ * View a summary of all redirected pages/posts, custom post types and Quick Redirects that are currently set up.
37
+ * Plugin Clean up functions for those who decide they may want to remove all plugin data on uninstall.
38
+ * Import/Export of redirects for backup, or to add bulk Quick Redirects.
39
+ * Built-in FAQs/Help feed that can be updated daily with relevant questions.
40
+ * Optional column for list pages to easily show if a page/post has a redirect set up and where it will redirect to.
41
 
42
  = What You CANNOT Do: =
43
+ * This plugin does not have wild-card redirect features.
44
  * You cannot redirect the Home (Posts) page - unless you set a page as the home page and redirect that.
45
+ * If your theme uses some form of custom layout or functionality, some features may not work like open on a new window or no follow functionality UNLESS you have the **Use jQuery?** option to set.
46
 
47
  This plugin is not compatible with WordPress versions less than 3.9. Requires PHP 5.2+.
48
 
49
+ **PLEASE NOTE:** A new page or post needs to be Published in order for Page/Post redirect to happen for Individual Redirects (existing page is not necessary for Quick Redirects). It WILL work on a DRAFT Status Post/Page ONLY, and I mean ONLY, if the Post/Page has FIRST been Published and the re-saved as a Draft. This does not apply to Quick Redirects.
50
 
51
  = TROUBLESHOOTING: =
52
+ * To include custom post types, check the setting on the plugin option page.
53
+ * If you experience jQuery conflicts with the plugin, try turning off the **Use jQuery?** setting in the options page. BUT, please note that if this option if off, the new window and no follow functionality may be inconsistent (this mainly depends on how your theme is set up)
54
+ * If you check the box for "Show Redirect URL below" on the edit page, please note that you MUST use the full URL in the Redirect URL box. If you do not, you may experience some odd links and 404 pages, as this option changes the link for the page/post to the EXACT URL you enter in that field. (i.e., if you enter '2' in the field, it will redirect to 'http://2' which is not the same as 'http://yoursite.com/?p=2').
55
  * If your browser tells you that your are in an infinite loop, check to make sure you do not have pages redirecting to another page that redirects back to the initial page. That WILL cause an infinite loop.
56
+ * If you are using the Quick Redirects method to do your redirects, try to use Request URLs that start with a '/' and are relative to the root (i.e., 'http://mysite.com/test/' should be set to '/test/' for the request field).
57
+ * If your site uses mixes SSL, use relative links whenever possible (i.e., '/my-page/'). The plugin is designed to detect the incoming protocol and try to apply the appropriate protocol to the destination URL.
58
+ * Links in page/post content and links that are created using get_permalink() or the_permalink() will not open in a new window or add the rel=nofollow UNLESS you have the **Use jQuery?** option set.
59
+ * If your page or post is not redirecting, this is most likely because something else like the theme functions file or another plugin is outputting the header BEFORE the plugin can perform the redirect. This can be tested by turning off all plugins except the Quick Page/Post Redirect Plugin and testing if the redirect works. Many times a plugin or bad code is the culprit.
60
+ * We try to test the plugin in many popular themes and alongside popular plugins. In our experience, (with exception to a few bugs from time to time) many times another plugin is the cause of the issues - or a customized theme. If you do notice a problem, please let us know at plugins@fischercreativemedia.com - along with the WP version, theme you are using and plugins you have installed - and we will try to troubleshoot the problem.
61
  * Check the FAQs/Help located in the Plugin menu for more up to date issues and fixes.
62
 
63
  == Installation ==
66
  1. Upload `quick_page_post_redirect` folder to the `/wp-content/plugins/` directory
67
  1. Activate the plugin through the 'Plugins' menu in WordPress
68
  1. Once Activated, you can add a redirect by entering the correct information in the `Quick Page/Post Redirect` box in the edit section of a page or post
69
+ 1. You can create a redirect with the 'Quick Redirects' option located in the Quick Redirects admin menu.
70
 
71
  = If you install this plugin through WordPress 2.8+ plugin search interface: =
72
  1. Click Install `Quick Page/Post Redirect Plugin`
73
  1. Activate the plugin through the 'Plugins' menu in WordPress
74
  1. Once Activated, you can add a redirect by entering the correct information in the `Quick Page/Post Redirect` box in the edit section of a page or post
75
+ 1. You can create a redirect with the 'Quick Redirects' option located in the Quick Redirects admin menu.
76
 
77
  == Frequently Asked Questions ==
78
  ** SEE A LIST OF MORE UP TO DATE FAQS IN THE PLUGIN MENU ITSELF **
79
 
 
 
 
 
 
80
  = I still can't get the OPEN IN NEW WINDOW option to work... why? =
81
  Some themes put custom links in the menu, like RSS and other similar items. Many times (an this is usually the main reason why), they do not use the WP hook to add the menu item to the list - they literally just put it there. Unless the theme uses the internal WordPress hooks to call the menu, redirects, open in a new window and rel=nofollow features just will not work.
82
  ADDITIONALLY - Links in page/post content and Permalinks will not open in a new window or add the rel=nofollow. That is because the theme template actually sets up the links by calling "the_permalink()" function so add these elements is not consistently possible so it has been excluded from the functionality. The links will still redirect just fine but without that feature.
83
+ Starting in version 5.0.7, there is a jQuery script included in the plugin that helps it to be more consistent. If possible, try using the setting 'Use jQuery?' and it should fix the instances where the plugin could not add the functionality due to limited hook support.
84
 
85
  = Do I need to have a Page or Post Created to redirect? =
86
+ No. There is a Quick Redirects feature that allows you to create a redirect for any URL on your site. This is VERY helpful when you move an old site to WordPress and have old links that need to go some place new. For example,
87
  If you had a link on a site that went to http://yoursite.com/aboutme.html you can now redirect that to http://yoursite.com/about/ without needing to edit the htaccess file. You simply add the old URL (/aboutme.html) and tell it you want to go to the new one (/about/). Simple as that.
88
 
89
+ The functionality is located in the QUICK REDIRECT menu. The old URL goes in the Request field and the to new URL goes in the Destination field. Simple and Quick!
90
 
91
  = Can I add 'rel="nofollow" attribute to the redirect link? =
92
+ YES, you can add a ' rel="nofollow" ' attribute for the redirect link. Simply check the "add rel=nofollow" box when setting up the redirect on the page/post edit page. Note - this option is only available for the Quick Redirects method when the 'Use jQuery?' functionality is enabled in the settings and you select the 'NF' box for the corresponding redirect.
93
 
94
  = Can I make the redirect open in a new window? =
95
+ YES, you can make the redirect link open in a new window. Simply check the "Open in a new window" box when setting up the individual redirect on the page/post edit page. Note - this option is only available for the Quick Redirects method when the 'Use jQuery?' functionality is enabled in the settings and you select the 'NW' box for the corresponding redirect.
96
 
97
  = I want to just have the link for the redirecting page/post show the new redirect link in the link, not the old one, can I do that? =
98
  YES, you can hide the original page link and have it replaced with the redirect link. Any place the theme calls either "wp_page_links", "post_links" or "page_links" functions, the plugin can replace the original link with the new one. Simply check the "Show Redirect URL" box when setting up the redirect on the page/post edit page. Note - this option is not available for the Quick Redirects method.
99
 
100
+ = I have Business Cards/Postcards/Ads that say my website is http://something.com/my-name/ or http://something.com/my-product/, but it should be a different page, can I set that up with this? =
101
+ YES! Just set up a Quick Redirect (see above) and set the Request field to /my-name/ or /my-product/ and the Destination field to the place you want it to go. The destination doesn't even need to be on the same site - it can go anywhere you want it to go!
102
 
103
  = Why is my Page/Post not redirecting? =
104
+ FIRST - make sure it is active if using Individual Redirects (set up on the edit page for a post or page). Then, check to make sure the global option to turn off all redirects is not checked (in the plugin options).
105
+ If you are using Quick Redirects, try using links relative to the root (so 'http://mysite.com/contact/' would be '/contact/' if using the root path). If your site is in a sub-folder (set in Settings/General), do not use the sub-folder in the root path as it is already taken into consideration by WordPress.
106
+
107
+ If your page or post is still not redirecting, then it is most likely because something else like the theme functions file or another plugin is outputting the header BEFORE the plugin can perform the redirect. This can be tested by turning off all plugins except the Quick Page/Post Redirect Plugin and testing if the redirect works. many time a plugin or bad code is the culprit - or the redirect is just simply turned off.
108
 
109
+ We have tested the plugin in dozens of themes and a whole lot more plugins. In our experience, (with exception to a few bugs) many times another plugin or the theme scripting is the problem. If you do notice a problem, please let us know at plugins@fischercreativemedia.com - along with the WP version, theme you are using and plugins you have installed - and we will try to troubleshoot the problem.
110
 
111
  = Does the Page/Post need to be Published to redirect? =
112
  YES... and NO... The redirect will always work on a Published Post/Page. For it to work correctly on a Post/Page in DRAFT status, you need to fist publish the page, then re-save it as a draft. If you don't follow that step, you will get a 404 error.
113
 
114
  = Can I do a permanent 301 Redirect? =
115
+ Yes. You can perform a 301 Permanent Redirect. Additionally, you can select a 302 Temporary or a 307 Temporary redirect or a Meta redirect. Quick Redirects are always 301 unless you override them with a filter.
116
 
117
  = What the heck is a 301 or 302 redirect anyway? =
118
+ Good question! The number corresponds with the header code that is returned to the browser when the page is first accessed. A good page, meaning something was found, returns a 200 status code and that tells the browser to go ahead and keep loading the content for the page. If nothing is found a 404 error is returned (and we have ALL seen these - usually it is a bad link or a page was moved). There are many other types of codes, but those are the most common.
119
 
120
+ The 300+ range of codes in the header tells the browser (and search engine spider) that the original page has moved to a new location - this can be just a new file name a new folder or a completely different site.
121
 
122
  A 301 code means that you want to tell the browser (or Google, bing, etc.) that your new page has permanently moved to a new location. This is great for search engines because it lets them know that there was a page there once, but now go to the new place to get it - and they update there old link to is so future visitors will not have to go through the same process.
123
 
124
  A 302 or 307 code tell the browser that the file was there but TEMPORARILY it can be found at a new location. This will tell the search engines to KEEP the old link in place because SOME day it will be back at the same old link. There is only a slight difference between a 302 and a 307 status. Truth is, 302 is more widely used, so unless you know why you need a 307, stick with a 302.
125
 
126
  = So, which one do I use? =
127
+ Easiest way to decide is this: If you want the page to permanently change to a new spot, use 301. If you are editing the page or post and only want it to be down for a few hours, minutes, days or weeks and plan on putting it back with the same link as before, then us 302. If you are having trouble with the redirects, use a `meta` redirect. The meta redirect actually starts to load the page as a 200 good status, then redirects using a meta redirect tag.
128
 
129
  Still not sure? Try 302 for now - at least until you have a little time to read up on the subject.
130
 
131
  = Should I use a full URL with http:// or https:// ? =
132
+ Yes, you can, but you do not always need to. If you are redirecting to an external URL, then yes. If you are just redirecting to another page or post on your site, then no, it is not needed. When in doubt, use the entire URL. For Quick Redirects, it is recommended that you use relative URLs whenever possible.
133
 
134
  = That's all the FAQs you have? =
135
+ NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequently Asked Questions. The plugin now has a live feed of FAQs that can be updated regularly. If you have something you think we should add, please let us know.
136
 
137
 
138
  == Screenshots ==
139
 
140
+ 1. Quick Redirects setup page - Now with ajax editing.
141
+ 2. Import and Export features.
142
+ 3. Options/Setting Page.
143
+ 4. Summary of redirects plugin page.
144
+ 5. FAQs/Help Page. This is updated via an RSS feed so it can be updated regularly with fixes and common questions.
145
+ 6. New Redirect Column (optional) for pages/posts and custom post types. Easily see if a page has a redirect and where it goes. Turn off in settings.
146
 
147
  == Changelog ==
148
+ = 5.0.7 =
149
+ * Added textdomain for future translations. English Complete.
150
+ * Change Quick Redirects page to use ajax to save and edit existing redirects, instead of all redirects in post fields. This is to eliminate the 'max_input_vars' setting in php from stopping large numbers of redirects from saving.
151
+ * Fix Metabox loading issues for custom post types.
152
+ * Added 'redirect' column for post, page and custom post type listing pages.
153
+ * Fixed sanitizing URL on saving of redirects (now will not strip encoded characters and spaces).
154
+ * Optimized CSS styles and JavaScript files for admin.
155
+ * Added Admin Pointers for new features.
156
+ * Added jQuery script to front end pages to better handle New Window/No Follow Functionality.
157
+ * Split out Import / Export feature to make it easier to find.
158
+
159
  = 5.0.6 =
160
  * Fix to some users getting Warning messages for parse_url function.
161
  * Added nonce field checking for Quick Redirects form to help eliminate the possibility of form takeover on submission of quick redirect saves.
172
 
173
  = 5.0.3 =
174
  * Minor bug cleanup update - (no new features added)
175
+ * Bug fixes: JavaScript ghost js file call fixed. Actions hooks not applying issue fixed. Querystring redirect issue addressed. Unset index errors addressed. Some Network/MU problems fixed.
176
  * Modified Import and Export scripts to export a more editable export file. Import can be either old encoded version or new readable PIPE version.
177
  * Typos and minor layout issues addressed.
178
 
179
  = 5.0.2 =
180
  * Bug fixes and jQuery now set to off until issues are resolved.
181
+ * Set Case Sensitive to on by default - Some people having issues with infinite loops.
182
 
183
  = 5.0.1 =
184
  * Fix to jQuery conflict issue.
185
 
186
  = 5.0 =
187
+ * Added jQuery version check to ensure no problems with themes forcing older versions of jQuery
188
  * Added a few warning /info messages to Quick Redirects page.
189
  * Redirect summary was updated to display Quick Redirects as well as individual redirects. Now it is easier to see at a glance what redirects you have set up.
190
+ * Rewrite of Quick Redirects functions to allow selecting Open in New Window (NW) and rel=nofollow (NF) as long as **use jQuery?** is selected.
191
  * Added "use jQuery" option on settings page - on by default after upgrade
192
  * Added jQuery redirect replace, target="_blank", and rel="nofollow" to increase success for additional options (mainly Quick redirects).
193
  * Changed out WP_PLUGIN_URL for plugins_url() to help resolve errors in redirects for SSL/https
201
  * Case insensitivity option was added for Quick Redirects (thanks to Brian DiChiara for the contribution).
202
 
203
  = 4.2.2 =
204
+ * Fix some embarrassing spelling errors.(07/14/2011)
205
  * Fix Quick Redirects links from inside the redirect edit box and plugin page - they would give a "not authorized" warning because the page location changed in version 4.0 (07/14/11)
206
 
207
  = 4.2.1 =
249
  * Fix Bug - Open in New Window would not work unless Show Link URL was also selected. (3/12/2010)
250
  * Fix Bug - Add rel=nofollow would not work if Open in a New Window was not selected. (3/13/2010)
251
  * Fix Bug - Show Link, Add nofollow and Open in New Window would still work when redirect not active. (3/13/2010)
252
+ * Added new preg_match_all and preg_replace calls to add target and nofollow links - more efficient and accurate - noticed some cases where old function would add the items if a redirect link had the same URL. (3/13/2010)
253
  = 2.0 =
254
  * Cosmetic code cleanup. (2/28/2010)
255
  * Remove warning and error messages created in 1.9 (2/28/2010)
282
  * Initial Plugin creation (7/1/2009)
283
 
284
  == Upgrade Notice ==
285
+ = 5.0.7 =
286
+ * Fix a problem where Quick Redirects will not save after adding a certain number.
287
+ * New Enhancements.
288
+ * Bug Fixes.
screenshot-1.jpg DELETED
Binary file
screenshot-2.jpg DELETED
Binary file
screenshot-3.jpg DELETED
Binary file
screenshot-4.jpg DELETED
Binary file
screenshot-5.jpg DELETED
Binary file
screenshot-6.jpg DELETED
Binary file
settings-16-icon.png DELETED
Binary file
settings-icon.png DELETED
Binary file