WordPress.org

Plugin Directory

Changeset 593433


Ignore:
Timestamp:
09/01/12 15:56:19 (20 months ago)
Author:
tlovett1
Message:

Version 1.2

Location:
safe-redirect-manager
Files:
10 added
2 edited

Legend:

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

    r591501 r593433  
    1818Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from Plugins page. 
    1919 
     20== Screenshots == 
     21 
     221. This view shows all your redirects. You can filter them by date or even search through them. 
     232. This is the new redirect page. Specify a "from" path, "to" path/URL, and a status code. You can schedule redirects for later dates just like posts. 
     24 
    2025== Changelog == 
     26 
     27= 1.2 = 
     28*   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 
    2129 
    2230= 1.1 = 
  • safe-redirect-manager/trunk/safe-redirect-manager.php

    r591496 r593433  
    55Description: Easily and safely manage HTTP redirects. 
    66Author: Taylor Lovett (10up LLC), VentureBeat 
    7 Version: 1.1 
     7Version: 1.2 
    88Author URI: http://www.10up.com 
    99 
     
    6767        add_action( 'admin_print_styles-post.php', array( $this, 'action_print_logo_css' ), 10, 1 ); 
    6868        add_action( 'admin_print_styles-post-new.php', array( $this, 'action_print_logo_css' ), 10, 1 ); 
     69         
     70        // Search filters 
     71        add_filter( 'posts_join', array( $this, 'filter_search_join' ) ); 
     72        add_filter( 'posts_where', array( $this, 'filter_search_where' ) ); 
     73        add_filter( 'posts_distinct', array( $this, 'filter_search_distinct' ) ); 
     74    } 
     75     
     76    /** 
     77     * Join posts table with postmeta table on search 
     78     * 
     79     * @since 1.2 
     80     * @param string $join 
     81     * @uses get_query_var 
     82     * @return string 
     83     */ 
     84    public function filter_search_join( $join ) { 
     85        if ( $this->redirect_post_type != get_query_var( 'post_type' ) ) 
     86            return $join; 
     87         
     88        global $wpdb; 
     89         
     90        $s = get_query_var( 's' ); 
     91        if ( ! empty( $s ) ) { 
     92            $join .= " LEFT JOIN $wpdb->postmeta AS m ON ($wpdb->posts.ID = m.post_id) "; 
     93        } 
     94        return $join; 
     95    } 
     96     
     97    /** 
     98     * Return distinct search results 
     99     * 
     100     * @param string $distinct 
     101     * return string 
     102     */ 
     103    public function filter_search_distinct( $distinct ) { 
     104        if ( $this->redirect_post_type != get_query_var( 'post_type' ) ) 
     105            return $distinct; 
     106         
     107        return 'DISTINCT'; 
     108    } 
     109     
     110    /** 
     111     * Join posts table with postmeta table on search 
     112     * 
     113     * @since 1.2 
     114     * @param string $where 
     115     * @uses is_search, get_query_var 
     116     * @return string 
     117     */ 
     118    public function filter_search_where( $where ) { 
     119        if ( $this->redirect_post_type != get_query_var( 'post_type' ) || ! is_search() || empty( $where ) ) 
     120            return $where; 
     121         
     122        $exact = get_query_var( 'exact' ); 
     123        $n = ( ! empty( $exact ) ) ? '' : '%'; 
     124 
     125        $search = ''; 
     126        $seperator = ''; 
     127        $terms = $this->get_search_terms(); 
     128        $search .= '('; 
     129         
     130        // we check the meta values against each term in the search 
     131        foreach ( $terms as $term ) { 
     132            $search .= $seperator;   
     133            $search .= sprintf( "( ( m.meta_value LIKE '%s%s%s' AND m.meta_key = '%s') OR ( m.meta_value LIKE '%s%s%s' AND m.meta_key = '%s') )", $n, $term, $n, $this->meta_key_redirect_from, $n, $term, $n, $this->meta_key_redirect_to );        
     134            $seperator = ' OR '; 
     135        } 
     136         
     137        $search .= ')'; 
     138         
     139        $where = preg_replace( '/\(\(\(.*?\)\)\)/is', '((' . $search . '))', $where ); 
     140         
     141        return $where; 
     142    } 
     143     
     144    /** 
     145     * Get an array of search terms 
     146     * 
     147     * @since 1.2 
     148     * @uses get_query_var 
     149     * @return array 
     150     */ 
     151    private function get_search_terms() { 
     152        $s = get_query_var( 's' ); 
     153 
     154        if ( ! empty( $s ) ) { 
     155            preg_match_all( '/".*?("|$)|((?<=[\\s",+])|^)[^\\s",+]+/', stripslashes( $s ), $matches ); 
     156            $search_terms = array_map( create_function( '$a', 'return trim( $a, "\\"\'\\n\\r " );' ), $matches[0] ); 
     157        } 
     158        return $search_terms; 
    69159    } 
    70160     
     
    72162     * Swap tools logo for plugin logo 
    73163     * 
     164     * @since 1.1 
    74165     * @uses plugins_url 
    75166     * @return void 
     
    83174                    margin-right: 0; 
    84175                } 
    85                 #visibility { 
     176                #visibility, .view-switch, .posts .inline-edit-col-left .inline-edit-group { 
    86177                    display: none; 
    87178                } 
     
    94185     * Removes bulk actions from post manager 
    95186     * 
     187     * @since 1.0 
    96188     * @return array 
    97189     */ 
     
    200292     * @param string $title 
    201293     * @param int $post_id 
    202      * @uses is_admin 
     294     * @uses is_admin, get_post_meta 
    203295     * @return string 
    204296     */ 
     
    298390         
    299391        // Move date column to the back 
    300         unset($columns['date']); 
     392        unset( $columns['date'] ); 
    301393        $columns['date'] = __( 'Date', 'safe-redirect-manager' ); 
     394         
     395        // get rid of checkboxes 
     396        unset( $columns['cb'] ); 
    302397         
    303398        return $columns; 
     
    343438     * 
    344439     * @since 1.0 
    345      * @uses register_post_type, _x, plugins_url 
     440     * @uses register_post_type, _x, plugins_url, apply_filters 
    346441     * @return void 
    347442     */ 
     
    362457            'menu_name' => __( 'Safe Redirect Manager', 'safe-redirect-manager' ) 
    363458        ); 
     459        $redirect_capability = 'manage_options'; 
     460        $redirect_capability = apply_filters( 'srm_restrict_to_capability', $redirect_capability ); 
     461        $capabilities = array( 
     462            'edit_post' => $redirect_capability, 
     463            'read_post' => $redirect_capability, 
     464            'delete_post' => $redirect_capability, 
     465            'edit_posts' => $redirect_capability, 
     466            'edit_others_posts' => $redirect_capability, 
     467            'publish_posts' => $redirect_capability, 
     468            'read_private_posts' => $redirect_capability 
     469        ); 
     470         
    364471        $redirect_args = array( 
    365472          'labels' => $redirect_labels, 
     
    371478          'rewrite' => false, 
    372479          'capability_type' => 'post', 
     480          'capabilities' => $capabilities, 
    373481          'has_archive' => false,  
    374482          'hierarchical' => false, 
Note: See TracChangeset for help on using the changeset viewer.