Version Description
- Fix to security flaw for logged in admin users.
- Fix to extra spaces that broke some callback functions in the redirect class in 5.0.4.
Download this release
Release Info
Developer | prophecy2040 |
Plugin | Quick Page/Post Redirect Plugin |
Version | 5.0.5 |
Comparing to | |
See all releases |
Code changes from version 5.0.3 to 5.0.5
- page_post_redirect_plugin.php +171 -339
- qppr_admin_script.js +14 -0
- qppr_admin_style.css +25 -0
- readme.txt +14 -4
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.5
|
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.5';
|
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.5');
|
182 |
+
wp_enqueue_style( 'qppr_admin_meta_style', plugins_url('/qppr_admin_style.css', __FILE__ ) , null ,'5.0.5' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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,13 +3,13 @@ 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+
|
10 |
|
11 |
== Description ==
|
12 |
-
Version 5.0.
|
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 |
= Features: =
|
@@ -129,6 +129,16 @@ 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.
|
@@ -241,5 +251,5 @@ NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequ
|
|
241 |
* Initial Plugin creation (7/1/2009)
|
242 |
|
243 |
== Upgrade Notice ==
|
244 |
-
= 5.0.
|
245 |
-
Fix to
|
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+
|
10 |
|
11 |
== Description ==
|
12 |
+
Version 5.0.5.
|
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 |
= Features: =
|
129 |
5. Summary of redirects plugin page.
|
130 |
|
131 |
== Changelog ==
|
132 |
+
= 5.0.5 =
|
133 |
+
* Fix to security flaw for logged in admin users.
|
134 |
+
* Fix to extra spaces that broke some callback functions in the redirect class in 5.0.4.
|
135 |
+
|
136 |
+
= 5.0.4 =
|
137 |
+
* Minor bug cleanup
|
138 |
+
* Security fixes: fixed possible cross-scripting vulnerability in saving of data to options.
|
139 |
+
* Changed the hook call level for the redirects hook on normal redirects so it will not interfere with some other plugins.
|
140 |
+
|
141 |
+
|
142 |
= 5.0.3 =
|
143 |
* Minor bug cleanup update - (no new features added)
|
144 |
* 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.
|
251 |
* Initial Plugin creation (7/1/2009)
|
252 |
|
253 |
== Upgrade Notice ==
|
254 |
+
= 5.0.5 =
|
255 |
+
Fix to security flaw for logged in admin users and extra spaces that broke some callback functions in the class in 5.0.4.
|