WordPress.org

Plugin Directory

Changeset 601043


Ignore:
Timestamp:
09/19/12 14:30:33 (19 months ago)
Author:
tlovett1
Message:

Version 1.3

Location:
safe-redirect-manager/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • safe-redirect-manager/trunk/readme.txt

    r593435 r601043  
    2525== Changelog == 
    2626 
     27= 1.3 = 
     28* safe-redirect-manager.php - Globalize SRM class for use in themes/plugins/scripts. Added create_redirect method to make importing easier. 
     29 
    2730= 1.2 = 
    2831*   safe-redirect-manager.php - manage_options capabilitiy required to use redirect manager, remove checkbox column, hide view switcher, fix search feature, hide privacy stuff for bulk edit 
  • safe-redirect-manager/trunk/safe-redirect-manager.php

    r593433 r601043  
    55Description: Easily and safely manage HTTP redirects. 
    66Author: Taylor Lovett (10up LLC), VentureBeat 
    7 Version: 1.2 
     7Version: 1.3 
    88Author URI: http://www.10up.com 
    99 
     
    9898     * Return distinct search results 
    9999     * 
     100     * @since 1.2 
    100101     * @param string $distinct 
    101      * return string 
     102     * @uses get_query_var 
     103     * @return string 
    102104     */ 
    103105    public function filter_search_distinct( $distinct ) { 
     
    190192    public function filter_bulk_actions() { 
    191193        return array(); 
     194    } 
     195     
     196    /** 
     197     * Creates a redirect post, this function will be useful for import/exports scripts 
     198     * 
     199     * @param string $redirect_from 
     200     * @param string $redirect_to 
     201     * @param int $status_code 
     202     * @since 1.3 
     203     * @uses wp_insert_post, update_post_meta 
     204     * @return int 
     205     */ 
     206    public function create_redirect( $redirect_from, $redirect_to, $status_code ) { 
     207        $sanitized_redirect_from = $this->sanitize_redirect_from( $redirect_from ); 
     208        $sanitized_redirect_to = $this->sanitize_redirect_to( $redirect_to ); 
     209        $sanitized_status_code = absint( $status_code ); 
     210         
     211        // check and make sure no parameters are empty or invalid after sanitation 
     212        if ( empty( $sanitized_redirect_from ) || empty( $sanitized_redirect_to ) || ! in_array( $sanitized_status_code, $this->valid_status_codes ) ) 
     213            return 0; 
     214         
     215        // create the post 
     216        $post_args = array( 
     217            'post_type' => $this->redirect_post_type, 
     218            'post_status' => 'publish', 
     219            'post_author' => 1 
     220        ); 
     221         
     222        $post_id = wp_insert_post(  $post_args ); 
     223         
     224        if ( 0 >= $post_id ) 
     225            return 0; 
     226         
     227        // update the posts meta info 
     228        update_post_meta( $post_id, $this->meta_key_redirect_from, $sanitized_redirect_from ); 
     229        update_post_meta( $post_id, $this->meta_key_redirect_to, $sanitized_redirect_to ); 
     230        update_post_meta( $post_id, $this->meta_key_redirect_status_code, $sanitized_status_code ); 
     231         
     232        return $post_id; 
    192233    } 
    193234     
     
    568609        } 
    569610         
    570             return $content; 
    571         } 
     611        return $content; 
     612    } 
    572613     
    573614    /** 
     
    650691                    add_filter( 'allowed_redirect_hosts' , array( $this, 'filter_allowed_redirect_hosts' ) ); 
    651692                } 
    652                      
     693                 
    653694                // if we have a valid status code, then redirect with it 
    654695                if ( in_array( $status_code, $this->valid_status_codes ) ) 
     
    673714     */ 
    674715    public function sanitize_redirect_to( $path ) { 
    675             $path = trim( $path ); 
    676          
    677             if (  preg_match( '/^www\./i', $path ) ) 
    678                 $path = 'http://' . $path; 
    679          
    680             if ( ! preg_match( '/^https?:\/\//i', $path ) ) 
    681                     if ( strpos( $path, '/' ) !== 0 ) 
    682                         $path = '/' . $path; 
    683          
    684             return esc_url_raw( $path ); 
     716        $path = trim( $path ); 
     717         
     718        if (  preg_match( '/^www\./i', $path ) ) 
     719            $path = 'http://' . $path; 
     720         
     721        if ( ! preg_match( '/^https?:\/\//i', $path ) ) 
     722            if ( strpos( $path, '/' ) !== 0 ) 
     723                $path = '/' . $path; 
     724         
     725        return esc_url_raw( $path ); 
    685726    } 
    686727     
     
    695736    public function sanitize_redirect_from( $path ) { 
    696737         
    697             $path = trim( $path ); 
    698          
    699             if ( empty( $path ) ) 
    700                     return ''; 
    701          
    702             // dont accept paths starting with a . 
    703             if ( strpos( $path, '.' ) === 0 ) 
    704                     return ''; 
    705          
    706             // turn path in to absolute 
    707             if ( preg_match( '/https?:\/\//i', $path ) ) 
    708                     $path = preg_replace( '/^(http:\/\/|https:\/\/)(www\.)?[^\/?]+\/?(.*)/i', '/$3', $path ); 
    709             elseif ( strpos( $path, '/' ) !== 0 ) 
    710                     $path = '/' . $path; 
    711          
    712             return esc_url_raw( $path ); 
    713         } 
     738        $path = trim( $path ); 
     739         
     740        if ( empty( $path ) ) 
     741                return ''; 
     742         
     743        // dont accept paths starting with a . 
     744        if ( strpos( $path, '.' ) === 0 ) 
     745            return ''; 
     746         
     747        // turn path in to absolute 
     748        if ( preg_match( '/https?:\/\//i', $path ) ) 
     749            $path = preg_replace( '/^(http:\/\/|https:\/\/)(www\.)?[^\/?]+\/?(.*)/i', '/$3', $path ); 
     750        elseif ( strpos( $path, '/' ) !== 0 ) 
     751            $path = '/' . $path; 
     752         
     753        return esc_url_raw( $path ); 
     754    } 
    714755} 
    715756 
    716 new SRM_Safe_Redirect_Manager(); 
     757global $safe_redirect_manager; 
     758$safe_redirect_manager = new SRM_Safe_Redirect_Manager(); 
Note: See TracChangeset for help on using the changeset viewer.