Version Description
- Minor bug cleanup
- Security fixes: fixed possible cross-scripting vulnerability in saving of data to options.
- Changed the hook call level for the redirects hook on normal redirects so it will not interfere with some other plugins.
Download this release
Release Info
Developer | prophecy2040 |
Plugin | Quick Page/Post Redirect Plugin |
Version | 5.0.4 |
Comparing to | |
See all releases |
Code changes from version 5.0.3 to 5.0.4
- page_post_redirect_plugin.php +171 -339
- qppr_admin_script.js +14 -0
- qppr_admin_style.css +25 -0
- readme.txt +7 -1
page_post_redirect_plugin.php
CHANGED
@@ -6,13 +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.
|
10 |
|
11 |
Version info:
|
12 |
See change log in readme.txt file.
|
13 |
Version 3.2.4 to 4.0.1 are testing versions only
|
14 |
|
15 |
-
Copyright (C) 2009-
|
16 |
|
17 |
This program is free software: you can redistribute it and/or modify
|
18 |
it under the terms of the GNU General Public License as published by
|
@@ -26,15 +26,8 @@ Version 3.2.4 to 4.0.1 are testing versions only
|
|
26 |
|
27 |
You should have received a copy of the GNU General Public License
|
28 |
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
29 |
-
*/
|
30 |
-
|
31 |
-
if (!function_exists('esc_attr')) {
|
32 |
-
// For WordPress < 2.8 function compatibility
|
33 |
-
function esc_attr($attr){return attribute_escape( $attr );}
|
34 |
-
function esc_url($url){return clean_url( $url );}
|
35 |
-
}
|
36 |
-
add_action('init','start_ppr_class',0);
|
37 |
|
|
|
38 |
//you can use the following action hooks with this plugin:
|
39 |
// *** Quick Rediects function: use to take over redirect
|
40 |
// add_action('qppr_redirect','some_callback_function',10,2);
|
@@ -66,6 +59,7 @@ Version 3.2.4 to 4.0.1 are testing versions only
|
|
66 |
// arg 1. Meta Tag (fully generated)
|
67 |
// arg 2. Page HTML Message (wrapped in a <div> tag)
|
68 |
// Example:
|
|
|
69 |
add_filter('ppr_meta_head_hook_filter','override_ppr_metahead_new');
|
70 |
function override_ppr_metahead_new($meta_tag='',$meta_message=''){
|
71 |
$meta = $meta_tag;
|
@@ -75,7 +69,14 @@ Version 3.2.4 to 4.0.1 are testing versions only
|
|
75 |
add_filter('get_title',$function2,100,1);
|
76 |
return $meta;
|
77 |
}
|
78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
|
80 |
|
81 |
//=======================================
|
@@ -113,200 +114,75 @@ class quick_page_post_reds {
|
|
113 |
public $pprptypes_ok;
|
114 |
|
115 |
function __construct() {
|
116 |
-
$this->ppr_curr_version
|
117 |
-
$this->ppr_nofollow
|
118 |
-
$this->ppr_newindow
|
119 |
-
$this->ppr_url
|
120 |
-
$this->ppr_url_rewrite
|
121 |
-
$this->thepprversion
|
122 |
-
$this->thepprmeta
|
123 |
-
$this->quickppr_redirects
|
124 |
-
$this->quickppr_redirectsmeta= get_option('quickppr_redirects_meta');
|
125 |
-
$this->homelink
|
126 |
-
$this->pproverride_nofollow
|
127 |
-
$this->pproverride_newwin
|
128 |
-
$this->ppruse_jquery
|
129 |
-
$this->pprptypes_ok
|
130 |
-
$this->pproverride_type
|
131 |
-
$this->pproverride_active
|
132 |
-
$this->pproverride_URL
|
133 |
-
$this->pproverride_rewrite
|
134 |
-
$this->pprmeta_message
|
135 |
-
$this->pprmeta_seconds
|
136 |
-
$this->pproverride_casesensitive
|
137 |
-
$this->adminlink
|
138 |
-
$this->fcmlink
|
139 |
-
$this->ppr_metaurl
|
140 |
-
$this->quickppr_jquerycache
|
141 |
-
$this->updatemsg
|
142 |
if($this->pprmeta_seconds==''){$this->pprmeta_seconds='0';}
|
143 |
|
144 |
//these are for all the time - even if there are overrides
|
145 |
-
add_action( 'init', array($this,'ppr_init_check_version'), 1 );
|
146 |
-
|
147 |
-
|
148 |
-
add_action( '
|
149 |
-
|
150 |
-
add_action( 'admin_menu', array($this,'
|
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 |
-
|
|
|
156 |
|
157 |
-
if($this->pproverride_active!='1' && !is_admin()){
|
158 |
-
add_action( 'init', array($this,'redirect'), 1 );
|
159 |
-
add_action( 'init', array($this,'redirect_post_type'), 1 ); // add the normal redirect action, high priority
|
160 |
-
add_action( 'template_redirect',array($this,'ppr_do_redirect'), 1, 2);
|
161 |
-
add_filter( 'wp_get_nav_menu_items',array($this,'ppr_new_nav_menu_fix'),1,1 );
|
162 |
-
add_filter( 'wp_list_pages',array($this,'ppr_fix_targetsandrels') );
|
163 |
-
add_filter( 'page_link',array($this,'ppr_filter_page_links'),20, 2 );
|
164 |
-
add_filter( 'post_link',array($this,'ppr_filter_page_links'),20, 2 );
|
165 |
-
add_filter( 'post_type_link', array($this, 'ppr_filter_page_links'), 20, 2 );
|
166 |
-
add_filter( 'get_permalink', array($this, 'ppr_filter_links'), 20, 2 );
|
167 |
}
|
168 |
-
if
|
169 |
-
if (isset( $_REQUEST['settings-updated'] ) && $_REQUEST['settings-updated']=='true'){/*$this->updatemsg ='Settings Updated.';*/}
|
170 |
}
|
171 |
|
172 |
function ppr_add_menu(){
|
173 |
-
add_menu_page('Redirect Options', 'Redirect Options', 'administrator', 'redirect-options', array($this,'ppr_settings_page'),plugins_url( 'settings-16-icon.png' , __FILE__));
|
174 |
add_submenu_page( 'redirect-options', 'Quick Redirects', 'Quick Redirects', 'manage_options', 'redirect-updates', array($this,'ppr_options_page') );
|
175 |
add_submenu_page( 'redirect-options', 'Redirect Summary', 'Redirect Summary', 'manage_options', 'redirect-summary', array($this,'ppr_summary_page') );
|
176 |
add_submenu_page( 'redirect-options', 'FAQs/Help', 'FAQs/Help', 'manage_options', 'redirect-faqs', array($this,'ppr_faq_page') );
|
177 |
add_action( 'admin_init', array($this,'register_pprsettings') );
|
178 |
}
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
}
|
184 |
-
|
185 |
-
function build_jQueryCache(){
|
186 |
-
return;
|
187 |
-
$redirects = $this->quickppr_redirects;
|
188 |
-
$redirectsmeta = $this->quickppr_redirectsmeta;
|
189 |
-
$ppr_newWindowArray = array();
|
190 |
-
$ppr_noFollowArray = array();
|
191 |
-
$ppr_newwin = $this->ppr_newwindow;
|
192 |
-
$ppr_nofoll = $this->ppr_nofollow;
|
193 |
-
|
194 |
-
//quick redirects
|
195 |
-
if (!empty($redirects)) {
|
196 |
-
foreach ($redirects as $request => $destination) {
|
197 |
-
if($redirectsmeta[$request]['nofollow'] == '1' || $this->pproverride_nofollow =='1'){$ppr_noFollowArray[] = str_replace(array(get_bloginfo('url'),'/'),array('',''),$request);}
|
198 |
-
if($redirectsmeta[$request]['newwindow'] == '1' || $this->pproverride_newwin =='1'){$ppr_newWindowArray[] = str_replace(array(get_bloginfo('url'),'/'),array('',''),$request);}
|
199 |
-
}
|
200 |
}
|
201 |
-
|
202 |
-
|
203 |
-
if (!empty($ppr_newwin)) {
|
204 |
-
foreach ($ppr_newwin as $request) {
|
205 |
-
if($ppr_newwin != ''){$ppr_newWindowArray[] = str_replace(array(get_bloginfo('url'),'/'),array('',''),$request);}
|
206 |
-
}
|
207 |
-
}
|
208 |
-
|
209 |
-
//No Follow Array
|
210 |
-
if (!empty($ppr_nofoll)) {
|
211 |
-
foreach ($ppr_nofoll as $request) {
|
212 |
-
if($ppr_nofoll != ''){$ppr_noFollowArray[] = str_replace(array(get_bloginfo('url'),'/'),array('',''),$request);}
|
213 |
-
}
|
214 |
-
}
|
215 |
-
|
216 |
-
$newWin = implode('", "',$ppr_newWindowArray);
|
217 |
-
if($newWin!=''){$newWin = '"'.$newWin.'"';}
|
218 |
-
$newFoll = implode('", "',$ppr_noFollowArray);
|
219 |
-
if($newFoll!=''){$newFoll = '"'.$newFoll.'"';}
|
220 |
-
$pprextrajqrw = '0';
|
221 |
-
$pprextrajqurl = '';
|
222 |
-
if($this->pproverride_rewrite == '1'){
|
223 |
-
$pprextrajqrw = '1';
|
224 |
-
$pprextrajqurl = $this->pproverride_URL;
|
225 |
-
}
|
226 |
-
$theScript ="
|
227 |
-
jQuery(document).ready(function() {
|
228 |
-
var pprrewrite = '".$pprextrajqrw."';
|
229 |
-
var pprrewriteurl = '".$pprextrajqurl."';
|
230 |
-
var pprNoFollArr = new Array(".$newFoll.");
|
231 |
-
var pprNewWinArr = new Array(".$newWin.");
|
232 |
-
var pprchechhref = '';
|
233 |
-
var pprchechhref2 = '';
|
234 |
-
var pprspoturl = '".get_bloginfo('url')."';
|
235 |
-
var tempdf = '';
|
236 |
-
var jqvers = parseFloat(jQuery().jquery, 3);
|
237 |
-
//this checks for jQuery version and serves correct script (i.e., prop vs attr)
|
238 |
-
//alert(jqvers);
|
239 |
-
if(jqvers >= 1.6){
|
240 |
-
jQuery('a').each(function (i) {
|
241 |
-
var tempfga = jQuery(this).attr('href');
|
242 |
-
if(tempfga == '' || typeof tempfga == 'undefined' || tempfga === undefined ){
|
243 |
-
// do nothing
|
244 |
-
}else{
|
245 |
-
var tempfg = tempfga.replace(pprspoturl,'');
|
246 |
-
var tempfg2 = tempfg.replace(/\//gi,'');
|
247 |
-
var tempfg3 = tempfga.replace(/\//gi,'');
|
248 |
-
var tempfh = jQuery(this).prop('rel');
|
249 |
-
var tempfi = jQuery(this).prop('target');
|
250 |
-
if(pprrewrite == '1'){
|
251 |
-
//pprnewurl = jQuery(this).attr('href',pprrewriteurl);
|
252 |
-
// Temp Remove as it causes the all links to be redirected in 5.0.1
|
253 |
-
}
|
254 |
-
if(jQuery.inArray(tempfg2, pprNoFollArr) >= 0 || jQuery.inArray(tempfg3, pprNoFollArr) >= 0){
|
255 |
-
if(tempfh =='' || tempfh =='undefined' || tempfh === undefined || typeof tempfh == 'undefined' ){
|
256 |
-
jQuery(this).prop('rel','nofollow');
|
257 |
-
}else{
|
258 |
-
if(tempfh != 'nofollow' && tempfh.indexOf('nofollow') == -1){
|
259 |
-
jQuery(this).prop('rel','nofollow '+tempfh);
|
260 |
-
}
|
261 |
-
}
|
262 |
-
jQuery(this).addClass('qppr-nf');
|
263 |
-
}
|
264 |
-
if(jQuery.inArray(tempfg2,pprNewWinArr) >= 0 || jQuery.inArray(tempfg3, pprNewWinArr) >= 0){
|
265 |
-
jQuery(this).addClass('qppr-nw');
|
266 |
-
if(tempfi =='' || tempfi =='undefined' || tempfi === undefined || typeof tempfi == 'undefined'){jQuery(this).prop('target','_blank');}
|
267 |
-
}
|
268 |
-
}
|
269 |
-
});
|
270 |
-
}else{
|
271 |
-
jQuery('a').each(function (i) {
|
272 |
-
var tempfga = jQuery(this).attr('href');
|
273 |
-
if(tempfga == '' || typeof tempfga == 'undefined' || tempfga === undefined ){
|
274 |
-
// do nothing
|
275 |
-
}else{
|
276 |
-
var tempfg = tempfga.replace(pprspoturl,'');
|
277 |
-
var tempfg2 = tempfg.replace(/\//gi,'');
|
278 |
-
var tempfg3 = tempfga.replace(/\//gi,'');
|
279 |
-
var tempfh = jQuery(this).attr('rel');
|
280 |
-
var tempfi = jQuery(this).attr('target');
|
281 |
-
if(pprrewrite == '1'){
|
282 |
-
//pprnewurl = jQuery(this).attr('href',pprrewriteurl);
|
283 |
-
// Temp Remove as it causes the all links to be redirected in 5.0.1
|
284 |
-
}
|
285 |
-
if(jQuery.inArray(tempfg2, pprNoFollArr) >= 0 || jQuery.inArray(tempfg3, pprNoFollArr) >= 0){
|
286 |
-
if(tempfh =='' || tempfh =='undefined' || tempfh === undefined || typeof tempfh == 'undefined' ){
|
287 |
-
jQuery(this).attr('rel','nofollow');
|
288 |
-
}else{
|
289 |
-
if(tempfh != 'nofollow' && tempfh.indexOf('nofollow') == -1){
|
290 |
-
jQuery(this).attr('rel','nofollow '+tempfh);
|
291 |
-
}
|
292 |
-
}
|
293 |
-
jQuery(this).addClass('qppr-nf');
|
294 |
-
}
|
295 |
-
if(jQuery.inArray(tempfg2,pprNewWinArr) >= 0 || jQuery.inArray(tempfg3, pprNewWinArr) >= 0){
|
296 |
-
jQuery(this).addClass('qppr-nw');
|
297 |
-
if(tempfi =='' || tempfi =='undefined' || tempfi === undefined || typeof tempfi == 'undefined' ){jQuery(this).attr('target','_blank');}
|
298 |
-
}
|
299 |
-
}
|
300 |
-
});
|
301 |
-
}
|
302 |
-
});
|
303 |
-
";
|
304 |
-
//temp fix until this is resolved:
|
305 |
-
$theScript = '';
|
306 |
-
update_option('qppr_jQuery_cache',$theScript);
|
307 |
-
$this->quickppr_jquerycache = get_option('qppr_jQuery_cache');
|
308 |
-
}
|
309 |
-
|
310 |
function register_pprsettings() {
|
311 |
register_setting( 'ppr-settings-group', 'ppr_use-custom-post-types' );
|
312 |
register_setting( 'ppr-settings-group', 'ppr_override-nofollow' );
|
@@ -417,7 +293,6 @@ jQuery(document).ready(function() {
|
|
417 |
$tempReportArray = array();
|
418 |
$tempa = array();
|
419 |
$tempQTReportArray = array();
|
420 |
-
$this->build_jQueryCache();
|
421 |
if( !empty( $this->quickppr_redirects)){
|
422 |
foreach($this->quickppr_redirects as $key=>$redir){
|
423 |
$tempQTReportArray = array('url'=>$key,'destinaition'=>$redir);
|
@@ -653,9 +528,9 @@ jQuery(document).ready(function() {
|
|
653 |
<tr valign="top">
|
654 |
<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>
|
655 |
</tr>
|
656 |
-
|
657 |
<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>
|
658 |
-
</tr
|
659 |
<tr valign="top">
|
660 |
<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>
|
661 |
</tr>
|
@@ -678,10 +553,10 @@ jQuery(document).ready(function() {
|
|
678 |
<td><label>Make ALL Redirects this type: </label>
|
679 |
<select name="ppr_override-redirect-type">
|
680 |
<option value="0">Use Individual Settings</option>
|
681 |
-
<option value="301" <?php if( get_option('ppr_override-redirect-type')=='301') {echo ' selected="selected" ';}
|
682 |
-
<option value="302" <?php if( get_option('ppr_override-redirect-type')=='302') {echo ' selected="selected" ';}
|
683 |
-
<option value="307" <?php if( get_option('ppr_override-redirect-type')=='307') {echo ' selected="selected" ';}
|
684 |
-
<option value="meta" <?php if(get_option('ppr_override-redirect-type')=='meta'){echo ' selected="selected" ';}
|
685 |
</select>
|
686 |
<span> (Quick 301 Redirects will always be 301)</span></td>
|
687 |
</tr>
|
@@ -713,7 +588,6 @@ jQuery(document).ready(function() {
|
|
713 |
?>
|
714 |
<div class="wrap">
|
715 |
<div class="icon32" style="<?php echo 'background: url('.plugins_url( 'settings-icon.png' , __FILE__ ).') no-repeat transparent;';?>"><br></div>
|
716 |
-
<!--script type="text/javascript">jQuery(document).ready(function() { var mainurl = '<?php echo get_bloginfo('url');?>'; 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){ 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-->
|
717 |
<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>
|
718 |
<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>
|
719 |
<h2>Quick 301 Redirects</h2>
|
@@ -786,21 +660,20 @@ jQuery(document).ready(function() {
|
|
786 |
$redirects = array();
|
787 |
$redirectsmeta = array();
|
788 |
for($i = 0; $i < sizeof($data['request']); ++$i) {
|
789 |
-
$request = trim($data['request'][$i]);
|
790 |
-
$destination = trim($data['destination'][$i]);
|
791 |
-
$newwin = trim($data['newwindow'][$i]);
|
792 |
-
$nofoll = trim($data['nofollow'][$i]);
|
793 |
if(strpos($request,'/',0) !== 0 && strpos($request,'http',0) !== 0){$request = '/'.$request;} // adds root marker to front if not there
|
794 |
if((strpos($request,'.') === false && strpos($request,'?') === false) && strpos($request,'/',strlen($request)-1) === false){$request = $request.'/';} // adds end folder marker if not a file end
|
795 |
if (($request == '' || $request == '/') && $destination == '') { continue;} elseif($request != '' && $request != '/' && $destination == '' ){$redirects[$request] = $this->homelink.'/';}else { $redirects[$request] = $destination; }
|
796 |
-
$redirectsmeta[$request]['newwindow'] = $newwin;
|
797 |
-
$redirectsmeta[$request]['nofollow'] = $nofoll;
|
798 |
}
|
799 |
-
update_option('quickppr_redirects',
|
800 |
-
update_option('quickppr_redirects_meta',
|
801 |
$this->quickppr_redirectsmeta = get_option('quickppr_redirects_meta');
|
802 |
$this->quickppr_redirects = get_option('quickppr_redirects');
|
803 |
-
$this->build_jQueryCache();
|
804 |
return $redirects;
|
805 |
}
|
806 |
|
@@ -816,8 +689,8 @@ jQuery(document).ready(function() {
|
|
816 |
if($noFollow == '1'){$noChecked = ' checked="checked"';}else{$noChecked = '';}
|
817 |
$output .= '
|
818 |
<tr id="rowpprdel-'.$ww.'">
|
819 |
-
<td><input type="text" name="quickppr_redirects[request][]" value="'
|
820 |
-
<td><input type="text" name="quickppr_redirects[destination][]" value="'
|
821 |
<td align="center"><input class="pprnewwin" type="checkbox" name="quickppr_redirects[newwindow]['.($ww - 1).']" value="1"'.$newChecked.' title="open in a New Window" /></td>
|
822 |
<td align="center"><input class="pprnofoll" type="checkbox" name="quickppr_redirects[nofollow]['.($ww - 1).']" value="1"'.$noChecked.' title="add No Follow" /></td>
|
823 |
<td align="center"> <a href="javascript:void();" id="pprdel-'.$ww.'" class="delete-qppr">X</a> </td>
|
@@ -918,7 +791,7 @@ jQuery(document).ready(function() {
|
|
918 |
if(!isset($theArray[$key->post_id]['_pprredirect_url'])){$theArray[$key->post_id]['_pprredirect_url'] = '';}
|
919 |
if(!isset($theArray[$key->post_id]['_pprredirect_type'] )){$theArray[$key->post_id]['_pprredirect_type'] = 302;}
|
920 |
if(!isset($theArray[$key->post_id]['_pprredirect_relnofollow'])){$theArray[$key->post_id]['_pprredirect_relnofollow'] = 0;}
|
921 |
-
if(!isset($theArray[$key->post_id]['_pprredirect_newwindow'] )) {$theArray[$key->post_id]['_pprredirect_newwindow']
|
922 |
if(!isset($theArray[$key->post_id]['_pprredirect_active'] )){$theArray[$key->post_id]['_pprredirect_active'] = 0;}
|
923 |
|
924 |
if($theArray[$key->post_id]['_pprredirect_newwindow']!= '0' || $this->pproverride_newwin =='1'){
|
@@ -937,71 +810,7 @@ jQuery(document).ready(function() {
|
|
937 |
}
|
938 |
|
939 |
function get_value($theval='none'){
|
940 |
-
|
941 |
-
switch($theval){
|
942 |
-
case 'ppr_all_redir_array':
|
943 |
-
return $this->ppr_all_redir_array;
|
944 |
-
break;
|
945 |
-
case 'ppr_nofollow':
|
946 |
-
return $this->ppr_all_redir_array;
|
947 |
-
break;
|
948 |
-
case 'ppr_newindow':
|
949 |
-
return $this->ppr_newindow;
|
950 |
-
break;
|
951 |
-
case 'ppr_url':
|
952 |
-
return $this->ppr_url;
|
953 |
-
break;
|
954 |
-
case 'ppr_url_rewrite':
|
955 |
-
return $this->ppr_url_rewrite;
|
956 |
-
break;
|
957 |
-
case 'ppr_type':
|
958 |
-
return $this->ppr_type;
|
959 |
-
break;
|
960 |
-
case 'ppr_curr_version':
|
961 |
-
return $this->ppr_curr_version;
|
962 |
-
break;
|
963 |
-
case 'ppr_metaurlnew':
|
964 |
-
return $this->ppr_metaurlnew;
|
965 |
-
break;
|
966 |
-
case 'ppr_casesensitive':
|
967 |
-
return $this->pproverride_casesensitive;
|
968 |
-
break;
|
969 |
-
case 'hepprversion':
|
970 |
-
return $this->hepprversion;
|
971 |
-
break;
|
972 |
-
case 'thepprmeta':
|
973 |
-
return $this->thepprmeta;
|
974 |
-
break;
|
975 |
-
case 'quickppr_redirects':
|
976 |
-
return $this->quickppr_redirects;
|
977 |
-
break;
|
978 |
-
case 'tohash':
|
979 |
-
return $this->tohash;
|
980 |
-
break;
|
981 |
-
case 'fcmlink':
|
982 |
-
return $this->fcmlink;
|
983 |
-
break;
|
984 |
-
case 'adminlink':
|
985 |
-
return $this->adminlink;
|
986 |
-
break;
|
987 |
-
case 'homelink':
|
988 |
-
return $this->homelink;
|
989 |
-
break;
|
990 |
-
case 'updatemsg':
|
991 |
-
return $this->updatemsg;
|
992 |
-
break;
|
993 |
-
case 'pprmeta_seconds':
|
994 |
-
return $this->pprmeta_seconds;
|
995 |
-
break;
|
996 |
-
case 'pprmeta_message':
|
997 |
-
return $this->pprmeta_message;
|
998 |
-
break;
|
999 |
-
case 'none':
|
1000 |
-
return 0;
|
1001 |
-
break;
|
1002 |
-
}
|
1003 |
-
|
1004 |
-
return '';
|
1005 |
}
|
1006 |
|
1007 |
function ppr_addmetatohead_theme(){
|
@@ -1112,7 +921,7 @@ jQuery(document).ready(function() {
|
|
1112 |
foreach($text as $nl){
|
1113 |
if($nl!=''){
|
1114 |
$elem = explode('|',$nl);
|
1115 |
-
$newfile1['quickppr_redirects'][$elem[0]] = $elem[1];
|
1116 |
$nw = isset($elem[2]) && $elem[2] == '1' ? '1' : '';
|
1117 |
$nf = isset($elem[3]) && $elem[3] == '1' ? '1' : '';
|
1118 |
$newfile1['quickppr_redirects_meta'][$elem[0]]['newwindow'] = $nw;
|
@@ -1163,7 +972,7 @@ jQuery(document).ready(function() {
|
|
1163 |
if($qrtoadd != '' && strpos($qrtoadd,'|') !== false){
|
1164 |
$item = explode('|',str_replace(array("\r","\n"), array('',''),$qrtoadd));
|
1165 |
if(is_array($item) && !empty($item)){
|
1166 |
-
$tempArr[$item[0]] = $item[1];
|
1167 |
if(isset( $item[2]) || isset( $item[3])){
|
1168 |
$newwin = (isset($item[2]) && ($item[2] != '' && $item[2] != '0')) ? 1 : '';
|
1169 |
$nofoll = (isset($item[3]) && ($item[3] != '' && $item[3] != '0')) ? 1 : '';
|
@@ -1219,26 +1028,12 @@ jQuery(document).ready(function() {
|
|
1219 |
} // end if
|
1220 |
update_option('quickppr_redirects',$quickppr_redirects);
|
1221 |
update_option('quickppr_redirects_meta',$quickppr_redirectsmeta);
|
1222 |
-
$this->build_jQueryCache();
|
1223 |
echo 1;
|
1224 |
exit;
|
1225 |
}else{
|
1226 |
echo 0;
|
1227 |
exit;
|
1228 |
}
|
1229 |
-
}elseif(array_key_exists('ver', $wp->query_vars)){
|
1230 |
-
if( $wp->query_vars['ver'] =='pprjq1'){
|
1231 |
-
if($this->ppruse_jquery == '1'){
|
1232 |
-
$pprscript = get_option('qppr_jQuery_cache');
|
1233 |
-
}else{
|
1234 |
-
$pprscript = '//not set';
|
1235 |
-
}
|
1236 |
-
if($pprscript == ''){$pprscript = $this->build_jQueryCache();}
|
1237 |
-
header('Content-type: text/javascript');
|
1238 |
-
echo $pprscript;
|
1239 |
-
exit;
|
1240 |
-
}
|
1241 |
-
return;
|
1242 |
}elseif(array_key_exists('pprhidemessage', $wp->query_vars)){
|
1243 |
if( $wp->query_vars['pprhidemessage'] =='1'){
|
1244 |
update_option('qppr_jQuery_hide_message','1');
|
@@ -1299,19 +1094,19 @@ jQuery(document).ready(function() {
|
|
1299 |
$ppr_option5='';
|
1300 |
// Use nonce for verification ... ONLY USE ONCE!
|
1301 |
wp_nonce_field( 'pprredirect_noncename', 'pprredirect_noncename', false, true );
|
1302 |
-
|
1303 |
// The actual fields for data entry
|
1304 |
-
|
1305 |
-
|
1306 |
-
echo
|
1307 |
-
echo '<label for="
|
|
|
|
|
|
|
1308 |
//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).'> Make the Redirect Case Insensitive.</label><br /><br />';
|
1309 |
echo '<label for="pprredirect_url"><b>Redirect URL:</b></label><br />';
|
1310 |
-
|
1311 |
-
echo '<
|
1312 |
-
|
1313 |
-
echo '<label for="pprredirect_type">Type of Redirect:</label> ';
|
1314 |
-
if(get_post_meta($post->ID, '_pprredirect_type', true)!=''){$pprredirecttype=get_post_meta($post->ID, '_pprredirect_type', true);}else{$pprredirecttype="";}
|
1315 |
switch($pprredirecttype):
|
1316 |
case "":
|
1317 |
$ppr_option2=" selected";//default
|
@@ -1330,51 +1125,89 @@ jQuery(document).ready(function() {
|
|
1330 |
break;
|
1331 |
endswitch;
|
1332 |
|
1333 |
-
echo '
|
1334 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1335 |
}
|
1336 |
|
1337 |
function ppr_save_metadata($post_id, $post) {
|
1338 |
-
|
1339 |
if($post->post_type == 'revision'){return;}
|
1340 |
-
|
1341 |
-
|
1342 |
-
$
|
1343 |
-
|
1344 |
-
if(isset($_POST['pprredirect_noncename'])){
|
1345 |
-
if ( !wp_verify_nonce( $_REQUEST['pprredirect_noncename'], 'pprredirect_noncename' )) {
|
1346 |
-
return $post_id;
|
1347 |
-
}
|
1348 |
}
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
|
|
|
|
|
|
1354 |
// find & save the form data & put it into an array
|
1355 |
-
$my_meta_data['_pprredirect_active'] = isset($_REQUEST['pprredirect_active']) ? $_REQUEST['pprredirect_active']
|
1356 |
-
$my_meta_data['_pprredirect_newwindow'] = isset($_REQUEST['pprredirect_newwindow']) ? $_REQUEST['pprredirect_newwindow'] : '';
|
1357 |
-
$my_meta_data['_pprredirect_relnofollow'] = isset($_REQUEST['pprredirect_relnofollow']) ? $_REQUEST['pprredirect_relnofollow'] : '';
|
1358 |
-
$my_meta_data['_pprredirect_type'] = isset($_REQUEST['pprredirect_type']) ? $_REQUEST['pprredirect_type']
|
1359 |
-
$my_meta_data['_pprredirect_rewritelink'] = isset($_REQUEST['pprredirect_rewritelink']) ? $_REQUEST['pprredirect_rewritelink']
|
1360 |
-
$my_meta_data['_pprredirect_url'] = isset($_REQUEST['pprredirect_url']) ? $_REQUEST['pprredirect_url']
|
1361 |
-
//$my_meta_data['_pprredirect_casesensitive'] = isset($_REQUEST['pprredirect_casesensitive']) ? $_REQUEST['pprredirect_casesensitive']: '';
|
1362 |
-
|
1363 |
-
if ( 0 === strpos($my_meta_data['_pprredirect_url'], 'www.'))
|
1364 |
-
$my_meta_data['_pprredirect_url'] = 'http://' . $my_meta_data['_pprredirect_url'] ; // Starts with www., so add http://
|
1365 |
|
1366 |
-
|
|
|
|
|
|
|
|
|
1367 |
$my_meta_data['_pprredirect_type'] = NULL; //clear Type if no URL is set.
|
1368 |
$my_meta_data['_pprredirect_active'] = NULL; //turn it off if no URL is set
|
|
|
|
|
|
|
1369 |
}
|
1370 |
|
1371 |
// Add values of $my_meta_data as custom fields
|
1372 |
if(count($my_meta_data)>0){
|
1373 |
-
foreach ($my_meta_data as $key => $value) {
|
1374 |
-
|
1375 |
-
$value
|
1376 |
-
|
1377 |
-
if($value=='' || $value == NULL){
|
1378 |
delete_post_meta($post->ID, $key);
|
1379 |
}else{
|
1380 |
if(get_post_meta($post->ID, $key, true) != '') {
|
@@ -1386,7 +1219,6 @@ jQuery(document).ready(function() {
|
|
1386 |
}
|
1387 |
}
|
1388 |
endif;
|
1389 |
-
$this->build_jQueryCache();
|
1390 |
}
|
1391 |
|
1392 |
function ppr_fix_targetsandrels($pages) {
|
@@ -1494,7 +1326,6 @@ jQuery(document).ready(function() {
|
|
1494 |
$useURLQS = array();
|
1495 |
if(count($_GET) >= 1){
|
1496 |
foreach($_GET as $key => $value){$useURLQS[] = $key.'='.$value;}
|
1497 |
-
//TODO: Make this an option?
|
1498 |
$finalQS = '?'.implode('&',$useURLQS);
|
1499 |
$userrequest = preg_replace('/\?.*/', '', $userrequest);
|
1500 |
}
|
@@ -1524,12 +1355,14 @@ jQuery(document).ready(function() {
|
|
1524 |
if($val) {
|
1525 |
$useURL = $this->pproverride_URL != '' ? $this->pproverride_URL : $val;
|
1526 |
$useURL .= $finalQS; //add QS back
|
1527 |
-
|
1528 |
-
|
|
|
|
|
1529 |
$this->ppr_metaurl = $useURL;
|
1530 |
add_action('wp_head', array($this,'ppr_addmetatohead_theme'),1);
|
1531 |
}else{
|
1532 |
-
wp_redirect($useURL,$
|
1533 |
exit();
|
1534 |
}
|
1535 |
}
|
@@ -1560,7 +1393,6 @@ jQuery(document).ready(function() {
|
|
1560 |
}else{ // we assume they are using the permalink / page name??
|
1561 |
$urlsite=$this->homelink.'/'.$redrurl;
|
1562 |
}
|
1563 |
-
|
1564 |
// check if override is set for all redirects to go to one URL
|
1565 |
if($this->pproverride_URL !=''){$urlsite=$this->pproverride_URL;}
|
1566 |
if($this->pproverride_type!='0' && $this->pproverride_type!=''){$redrtype = $this->pproverride_type;} //override check
|
6 |
Author: Don Fischer
|
7 |
Author URI: http://www.fischercreativemedia.com/
|
8 |
Donate link: http://www.fischercreativemedia.com/donations/
|
9 |
+
Version: 5.0.4
|
10 |
|
11 |
Version info:
|
12 |
See change log in readme.txt file.
|
13 |
Version 3.2.4 to 4.0.1 are testing versions only
|
14 |
|
15 |
+
Copyright (C) 2009-2014 Donald J. Fischer
|
16 |
|
17 |
This program is free software: you can redistribute it and/or modify
|
18 |
it under the terms of the GNU General Public License as published by
|
26 |
|
27 |
You should have received a copy of the GNU General Public License
|
28 |
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
+
==========
|
31 |
//you can use the following action hooks with this plugin:
|
32 |
// *** Quick Rediects function: use to take over redirect
|
33 |
// add_action('qppr_redirect','some_callback_function',10,2);
|
59 |
// arg 1. Meta Tag (fully generated)
|
60 |
// arg 2. Page HTML Message (wrapped in a <div> tag)
|
61 |
// Example:
|
62 |
+
/*
|
63 |
add_filter('ppr_meta_head_hook_filter','override_ppr_metahead_new');
|
64 |
function override_ppr_metahead_new($meta_tag='',$meta_message=''){
|
65 |
$meta = $meta_tag;
|
69 |
add_filter('get_title',$function2,100,1);
|
70 |
return $meta;
|
71 |
}
|
72 |
+
/*
|
73 |
+
// ********************************/
|
74 |
+
global $newqppr;
|
75 |
+
if (!function_exists('esc_attr')) { // For WordPress < 2.8 function compatibility
|
76 |
+
function esc_attr($attr){return attribute_escape( $attr );}
|
77 |
+
function esc_url($url){return clean_url( $url );}
|
78 |
+
}
|
79 |
+
$newqppr = new quick_page_post_reds();
|
80 |
|
81 |
|
82 |
//=======================================
|
114 |
public $pprptypes_ok;
|
115 |
|
116 |
function __construct() {
|
117 |
+
$this->ppr_curr_version = '5.0.4';
|
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' );
|
134 |
+
$this->pproverride_rewrite = get_option( 'ppr_override-rewrite' );
|
135 |
+
$this->pprmeta_message = get_option( 'ppr_meta-message' );
|
136 |
+
$this->pprmeta_seconds = get_option( 'ppr_meta-seconds' );
|
137 |
+
$this->pproverride_casesensitive= get_option( 'ppr_override-casesensitive' );
|
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 |
+
if( isset( $_POST['submit_301'] ) ) {$this->quickppr_redirects = $this->save_redirects( $_POST['quickppr_redirects'] /* sanatized individually */ );$this->updatemsg ='Quick Redirects Updated.';} //if submitted, process the data
|
|
|
170 |
}
|
171 |
|
172 |
function ppr_add_menu(){
|
173 |
+
add_menu_page( 'Redirect Options', 'Redirect Options', 'administrator', 'redirect-options', array($this,'ppr_settings_page'),plugins_url( 'settings-16-icon.png' , __FILE__));
|
174 |
add_submenu_page( 'redirect-options', 'Quick Redirects', 'Quick Redirects', 'manage_options', 'redirect-updates', array($this,'ppr_options_page') );
|
175 |
add_submenu_page( 'redirect-options', 'Redirect Summary', 'Redirect Summary', 'manage_options', 'redirect-summary', array($this,'ppr_summary_page') );
|
176 |
add_submenu_page( 'redirect-options', 'FAQs/Help', 'FAQs/Help', 'manage_options', 'redirect-faqs', array($this,'ppr_faq_page') );
|
177 |
add_action( 'admin_init', array($this,'register_pprsettings') );
|
178 |
}
|
179 |
+
function qppr_admin_scripts($hook){
|
180 |
+
if(in_array($hook, array('edit.php','post.php'))){
|
181 |
+
wp_enqueue_script( 'qppr_admin_meta_script', plugins_url('/qppr_admin_script.js', __FILE__ ) , array('jquery'),'5.0.4');
|
182 |
+
wp_enqueue_style( 'qppr_admin_meta_style', plugins_url('/qppr_admin_style.css', __FILE__ ) , null ,'5.0.4' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
}
|
184 |
+
return;
|
185 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
function register_pprsettings() {
|
187 |
register_setting( 'ppr-settings-group', 'ppr_use-custom-post-types' );
|
188 |
register_setting( 'ppr-settings-group', 'ppr_override-nofollow' );
|
293 |
$tempReportArray = array();
|
294 |
$tempa = array();
|
295 |
$tempQTReportArray = array();
|
|
|
296 |
if( !empty( $this->quickppr_redirects)){
|
297 |
foreach($this->quickppr_redirects as $key=>$redir){
|
298 |
$tempQTReportArray = array('url'=>$key,'destinaition'=>$redir);
|
528 |
<tr valign="top">
|
529 |
<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>
|
530 |
</tr>
|
531 |
+
<!--tr valign="top">
|
532 |
<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>
|
533 |
+
</tr-->
|
534 |
<tr valign="top">
|
535 |
<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>
|
536 |
</tr>
|
553 |
<td><label>Make ALL Redirects this type: </label>
|
554 |
<select name="ppr_override-redirect-type">
|
555 |
<option value="0">Use Individual Settings</option>
|
556 |
+
<option value="301" <?php if( get_option('ppr_override-redirect-type')=='301') {echo ' selected="selected" ';} ?>>301 Permanant Redirect</option>
|
557 |
+
<option value="302" <?php if( get_option('ppr_override-redirect-type')=='302') {echo ' selected="selected" ';} ?>>302 Temporary Redirect</option>
|
558 |
+
<option value="307" <?php if( get_option('ppr_override-redirect-type')=='307') {echo ' selected="selected" ';} ?>>307 Temporary Redirect</option>
|
559 |
+
<option value="meta" <?php if(get_option('ppr_override-redirect-type')=='meta'){echo ' selected="selected" ';} ?>>Meta Refresh Redirect</option>
|
560 |
</select>
|
561 |
<span> (Quick 301 Redirects will always be 301)</span></td>
|
562 |
</tr>
|
588 |
?>
|
589 |
<div class="wrap">
|
590 |
<div class="icon32" style="<?php echo 'background: url('.plugins_url( 'settings-icon.png' , __FILE__ ).') no-repeat transparent;';?>"><br></div>
|
|
|
591 |
<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>
|
592 |
<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>
|
593 |
<h2>Quick 301 Redirects</h2>
|
660 |
$redirects = array();
|
661 |
$redirectsmeta = array();
|
662 |
for($i = 0; $i < sizeof($data['request']); ++$i) {
|
663 |
+
$request = sanitize_text_field(trim($data['request'][$i]));
|
664 |
+
$destination = sanitize_text_field(trim($data['destination'][$i]));
|
665 |
+
$newwin = sanitize_text_field(trim($data['newwindow'][$i]));
|
666 |
+
$nofoll = sanitize_text_field(trim($data['nofollow'][$i]));
|
667 |
if(strpos($request,'/',0) !== 0 && strpos($request,'http',0) !== 0){$request = '/'.$request;} // adds root marker to front if not there
|
668 |
if((strpos($request,'.') === false && strpos($request,'?') === false) && strpos($request,'/',strlen($request)-1) === false){$request = $request.'/';} // adds end folder marker if not a file end
|
669 |
if (($request == '' || $request == '/') && $destination == '') { continue;} elseif($request != '' && $request != '/' && $destination == '' ){$redirects[$request] = $this->homelink.'/';}else { $redirects[$request] = $destination; }
|
670 |
+
$redirectsmeta[$request]['newwindow'] = ($newwin == '1' || $newwin =='0') ? $newwin : '0' ;
|
671 |
+
$redirectsmeta[$request]['nofollow'] = ($nofoll == '1' || $nofoll == '0') ? $nofoll : '0' ;
|
672 |
}
|
673 |
+
update_option('quickppr_redirects', sanitize_option('quickppr_redirects',$redirects));
|
674 |
+
update_option('quickppr_redirects_meta', sanitize_option('quickppr_redirects_meta',$redirectsmeta));
|
675 |
$this->quickppr_redirectsmeta = get_option('quickppr_redirects_meta');
|
676 |
$this->quickppr_redirects = get_option('quickppr_redirects');
|
|
|
677 |
return $redirects;
|
678 |
}
|
679 |
|
689 |
if($noFollow == '1'){$noChecked = ' checked="checked"';}else{$noChecked = '';}
|
690 |
$output .= '
|
691 |
<tr id="rowpprdel-'.$ww.'">
|
692 |
+
<td><input type="text" name="quickppr_redirects[request][]" value="'.esc_attr($request).'" style="width:27em" /> » </td>
|
693 |
+
<td><input type="text" name="quickppr_redirects[destination][]" value="'.esc_attr($destination).'" style="width:27em;" /></td>
|
694 |
<td align="center"><input class="pprnewwin" type="checkbox" name="quickppr_redirects[newwindow]['.($ww - 1).']" value="1"'.$newChecked.' title="open in a New Window" /></td>
|
695 |
<td align="center"><input class="pprnofoll" type="checkbox" name="quickppr_redirects[nofollow]['.($ww - 1).']" value="1"'.$noChecked.' title="add No Follow" /></td>
|
696 |
<td align="center"> <a href="javascript:void();" id="pprdel-'.$ww.'" class="delete-qppr">X</a> </td>
|
791 |
if(!isset($theArray[$key->post_id]['_pprredirect_url'])){$theArray[$key->post_id]['_pprredirect_url'] = '';}
|
792 |
if(!isset($theArray[$key->post_id]['_pprredirect_type'] )){$theArray[$key->post_id]['_pprredirect_type'] = 302;}
|
793 |
if(!isset($theArray[$key->post_id]['_pprredirect_relnofollow'])){$theArray[$key->post_id]['_pprredirect_relnofollow'] = 0;}
|
794 |
+
if(!isset($theArray[$key->post_id]['_pprredirect_newwindow'] )) {$theArray[$key->post_id]['_pprredirect_newwindow'] = 0;}
|
795 |
if(!isset($theArray[$key->post_id]['_pprredirect_active'] )){$theArray[$key->post_id]['_pprredirect_active'] = 0;}
|
796 |
|
797 |
if($theArray[$key->post_id]['_pprredirect_newwindow']!= '0' || $this->pproverride_newwin =='1'){
|
810 |
}
|
811 |
|
812 |
function get_value($theval='none'){
|
813 |
+
return isset($this->$theval) ? $this->$theval : 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
814 |
}
|
815 |
|
816 |
function ppr_addmetatohead_theme(){
|
921 |
foreach($text as $nl){
|
922 |
if($nl!=''){
|
923 |
$elem = explode('|',$nl);
|
924 |
+
$newfile1['quickppr_redirects'][sanitize_text_field($elem[0])] = sanitize_text_field($elem[1]);
|
925 |
$nw = isset($elem[2]) && $elem[2] == '1' ? '1' : '';
|
926 |
$nf = isset($elem[3]) && $elem[3] == '1' ? '1' : '';
|
927 |
$newfile1['quickppr_redirects_meta'][$elem[0]]['newwindow'] = $nw;
|
972 |
if($qrtoadd != '' && strpos($qrtoadd,'|') !== false){
|
973 |
$item = explode('|',str_replace(array("\r","\n"), array('',''),$qrtoadd));
|
974 |
if(is_array($item) && !empty($item)){
|
975 |
+
$tempArr[sanitize_text_field($item[0])] = sanitize_text_field($item[1]);
|
976 |
if(isset( $item[2]) || isset( $item[3])){
|
977 |
$newwin = (isset($item[2]) && ($item[2] != '' && $item[2] != '0')) ? 1 : '';
|
978 |
$nofoll = (isset($item[3]) && ($item[3] != '' && $item[3] != '0')) ? 1 : '';
|
1028 |
} // end if
|
1029 |
update_option('quickppr_redirects',$quickppr_redirects);
|
1030 |
update_option('quickppr_redirects_meta',$quickppr_redirectsmeta);
|
|
|
1031 |
echo 1;
|
1032 |
exit;
|
1033 |
}else{
|
1034 |
echo 0;
|
1035 |
exit;
|
1036 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1037 |
}elseif(array_key_exists('pprhidemessage', $wp->query_vars)){
|
1038 |
if( $wp->query_vars['pprhidemessage'] =='1'){
|
1039 |
update_option('qppr_jQuery_hide_message','1');
|
1094 |
$ppr_option5='';
|
1095 |
// Use nonce for verification ... ONLY USE ONCE!
|
1096 |
wp_nonce_field( 'pprredirect_noncename', 'pprredirect_noncename', false, true );
|
|
|
1097 |
// The actual fields for data entry
|
1098 |
+
$pprredirecttype = get_post_meta($post->ID, '_pprredirect_type', true) !='' ? get_post_meta($post->ID, '_pprredirect_type', true) : "";
|
1099 |
+
$pprredirecturl = get_post_meta($post->ID, '_pprredirect_url', true)!='' ? get_post_meta($post->ID, '_pprredirect_url', true) : "";
|
1100 |
+
//echo $pprredirecttype.'|'.$pprredirecturl;
|
1101 |
+
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).' /> 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 />';
|
1102 |
+
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).'> 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 />';
|
1103 |
+
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).'> 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 />';
|
1104 |
+
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).'> <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>NOT in the Address bar.</em></strong></span></span></label><br /><br />';
|
1105 |
//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).'> Make the Redirect Case Insensitive.</label><br /><br />';
|
1106 |
echo '<label for="pprredirect_url"><b>Redirect URL:</b></label><br />';
|
1107 |
+
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 />';
|
1108 |
+
echo '<label for="pprredirect_type"><b>Type of Redirect:</b></label><br />';
|
1109 |
+
|
|
|
|
|
1110 |
switch($pprredirecttype):
|
1111 |
case "":
|
1112 |
$ppr_option2=" selected";//default
|
1125 |
break;
|
1126 |
endswitch;
|
1127 |
|
1128 |
+
echo '
|
1129 |
+
<select style="margin-top:2px;margin-bottom:2px;width:40%;" name="pprredirect_type">
|
1130 |
+
<option value="301" '.$ppr_option1.'>301 Permanent</option>
|
1131 |
+
<option value="302" '.$ppr_option2.'>302 Temporary</option>
|
1132 |
+
<option value="307" '.$ppr_option3.'>307 Temporary</option>
|
1133 |
+
<option value="meta" '.$ppr_option5.'>Meta Redirect</option>
|
1134 |
+
</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 />
|
1135 |
+
';
|
1136 |
+
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.';
|
1137 |
+
}
|
1138 |
+
function appip_parseURI($url){
|
1139 |
+
/*
|
1140 |
+
[scheme]
|
1141 |
+
[host]
|
1142 |
+
[user]
|
1143 |
+
[pass]
|
1144 |
+
[path]
|
1145 |
+
[query]
|
1146 |
+
[fragment]
|
1147 |
+
*/
|
1148 |
+
if(substr($url,0,2) == 'p='){ // page or post id
|
1149 |
+
$url = network_site_url().'/?'.$url;
|
1150 |
+
}elseif(is_numeric($url)){ // page or post id
|
1151 |
+
$url = network_site_url().'/?'.$url;
|
1152 |
+
}elseif($url[0] == "/" ){ // root
|
1153 |
+
$url = network_site_url().'/';
|
1154 |
+
}elseif(strpos($url,"://") === false ){ // no protocol so add it
|
1155 |
+
$url = "http://".$url;
|
1156 |
+
}
|
1157 |
+
$info = parse_url($url);
|
1158 |
+
$info['url'] = $url;
|
1159 |
+
//echo $info['url'];
|
1160 |
+
return $info;
|
1161 |
+
}
|
1162 |
+
function isOne_none($val=''){ //true (1) or false =''
|
1163 |
+
if($val == '_blank'){
|
1164 |
+
return $val;
|
1165 |
+
}elseif($val == '1' || $val == 'true' || $val === true ){
|
1166 |
+
return 1;
|
1167 |
+
}
|
1168 |
+
return '';
|
1169 |
}
|
1170 |
|
1171 |
function ppr_save_metadata($post_id, $post) {
|
|
|
1172 |
if($post->post_type == 'revision'){return;}
|
1173 |
+
// verify authorization
|
1174 |
+
if(isset($_POST['pprredirect_noncename'])){
|
1175 |
+
if ( !wp_verify_nonce( $_REQUEST['pprredirect_noncename'], 'pprredirect_noncename' )) {
|
1176 |
+
return $post_id;
|
|
|
|
|
|
|
|
|
1177 |
}
|
1178 |
+
}
|
1179 |
+
// check allowed to editing
|
1180 |
+
if ( !current_user_can('edit_posts', $post_id)){
|
1181 |
+
return $post_id;
|
1182 |
+
}
|
1183 |
+
if(!empty($my_meta_data)){unset($my_meta_data);}
|
1184 |
+
$my_meta_data = array();
|
1185 |
+
if(isset($_POST['pprredirect_active']) || isset($_POST['pprredirect_url']) || isset($_POST['pprredirect_type']) || isset($_POST['pprredirect_newwindow']) || isset($_POST['pprredirect_relnofollow'])):
|
1186 |
// find & save the form data & put it into an array
|
1187 |
+
$my_meta_data['_pprredirect_active'] = isset($_REQUEST['pprredirect_active']) ? sanitize_meta( '_pprredirect_active', $this->isOne_none(intval( $_REQUEST['pprredirect_active'])), 'post' ) : '';
|
1188 |
+
$my_meta_data['_pprredirect_newwindow'] = isset($_REQUEST['pprredirect_newwindow']) ? sanitize_meta( '_pprredirect_newwindow', $this->isOne_none( $_REQUEST['pprredirect_newwindow']), 'post' ) : '';
|
1189 |
+
$my_meta_data['_pprredirect_relnofollow'] = isset($_REQUEST['pprredirect_relnofollow']) ? sanitize_meta( '_pprredirect_relnofollow', $this->isOne_none(intval( $_REQUEST['pprredirect_relnofollow'])), 'post' ) : '';
|
1190 |
+
$my_meta_data['_pprredirect_type'] = isset($_REQUEST['pprredirect_type']) ? sanitize_meta( '_pprredirect_type', sanitize_text_field( $_REQUEST['pprredirect_type'] ), 'post' ) : '';
|
1191 |
+
$my_meta_data['_pprredirect_rewritelink'] = isset($_REQUEST['pprredirect_rewritelink']) ? sanitize_meta( '_pprredirect_rewritelink', $this->isOne_none(intval( $_REQUEST['pprredirect_rewritelink'])), 'post' ) : '';
|
1192 |
+
$my_meta_data['_pprredirect_url'] = isset($_REQUEST['pprredirect_url']) ? sanitize_meta( '_pprredirect_url', ( $_REQUEST['pprredirect_url'] ), 'post' ) : '';
|
|
|
|
|
|
|
|
|
1193 |
|
1194 |
+
$info = $this->appip_parseURI($my_meta_data['_pprredirect_url']);
|
1195 |
+
|
1196 |
+
$my_meta_data['_pprredirect_url'] = esc_url_raw($info['url']);
|
1197 |
+
if($my_meta_data['_pprredirect_url'] == 'http://' || $my_meta_data['_pprredirect_url'] == 'https://' || $my_meta_data['_pprredirect_url'] == ''){
|
1198 |
+
$my_meta_data['_pprredirect_url'] = ''; //reset to nothing
|
1199 |
$my_meta_data['_pprredirect_type'] = NULL; //clear Type if no URL is set.
|
1200 |
$my_meta_data['_pprredirect_active'] = NULL; //turn it off if no URL is set
|
1201 |
+
$my_meta_data['_pprredirect_rewritelink'] = NULL; //turn it off if no URL is set
|
1202 |
+
$my_meta_data['_pprredirect_newwindow'] = NULL; //turn it off if no URL is set
|
1203 |
+
$my_meta_data['_pprredirect_relnofollow'] = NULL; //turn it off if no URL is set
|
1204 |
}
|
1205 |
|
1206 |
// Add values of $my_meta_data as custom fields
|
1207 |
if(count($my_meta_data)>0){
|
1208 |
+
foreach ($my_meta_data as $key => $value) {
|
1209 |
+
$value = implode(',', (array)$value);
|
1210 |
+
if($value == '' || $value == NULL || $value == ','){
|
|
|
|
|
1211 |
delete_post_meta($post->ID, $key);
|
1212 |
}else{
|
1213 |
if(get_post_meta($post->ID, $key, true) != '') {
|
1219 |
}
|
1220 |
}
|
1221 |
endif;
|
|
|
1222 |
}
|
1223 |
|
1224 |
function ppr_fix_targetsandrels($pages) {
|
1326 |
$useURLQS = array();
|
1327 |
if(count($_GET) >= 1){
|
1328 |
foreach($_GET as $key => $value){$useURLQS[] = $key.'='.$value;}
|
|
|
1329 |
$finalQS = '?'.implode('&',$useURLQS);
|
1330 |
$userrequest = preg_replace('/\?.*/', '', $userrequest);
|
1331 |
}
|
1355 |
if($val) {
|
1356 |
$useURL = $this->pproverride_URL != '' ? $this->pproverride_URL : $val;
|
1357 |
$useURL .= $finalQS; //add QS back
|
1358 |
+
//$this->pproverride_type = 301;
|
1359 |
+
$qpprRedType = 301;
|
1360 |
+
do_action('qppr_redirect',$useURL,$qpprRedType);
|
1361 |
+
if($qpprRedType == 'meta'){
|
1362 |
$this->ppr_metaurl = $useURL;
|
1363 |
add_action('wp_head', array($this,'ppr_addmetatohead_theme'),1);
|
1364 |
}else{
|
1365 |
+
wp_redirect($useURL,$qpprRedType);
|
1366 |
exit();
|
1367 |
}
|
1368 |
}
|
1393 |
}else{ // we assume they are using the permalink / page name??
|
1394 |
$urlsite=$this->homelink.'/'.$redrurl;
|
1395 |
}
|
|
|
1396 |
// check if override is set for all redirects to go to one URL
|
1397 |
if($this->pproverride_URL !=''){$urlsite=$this->pproverride_URL;}
|
1398 |
if($this->pproverride_type!='0' && $this->pproverride_type!=''){$redrtype = $this->pproverride_type;} //override check
|
qppr_admin_script.js
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
@@ -3,7 +3,7 @@ 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.1
|
6 |
-
Tested up to: 3.
|
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+
|
@@ -129,6 +129,12 @@ NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequ
|
|
129 |
5. Summary of redirects plugin page.
|
130 |
|
131 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
= 5.0.3 =
|
133 |
* Minor bug cleanup update - (no new features added)
|
134 |
* 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.
|
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.1
|
6 |
+
Tested up to: 3.8.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+
|
129 |
5. Summary of redirects plugin page.
|
130 |
|
131 |
== Changelog ==
|
132 |
+
= 5.0.4 =
|
133 |
+
* Minor bug cleanup
|
134 |
+
* Security fixes: fixed possible cross-scripting vulnerability in saving of data to options.
|
135 |
+
* Changed the hook call level for the redirects hook on normal redirects so it will not interfere with some other plugins.
|
136 |
+
|
137 |
+
|
138 |
= 5.0.3 =
|
139 |
* Minor bug cleanup update - (no new features added)
|
140 |
* 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.
|