WordPress.org

Plugin Directory

Changeset 692632


Ignore:
Timestamp:
04/06/13 09:31:23 (5 years ago)
Author:
g100g
Message:

Update to 0.0.5

Location:
thumbnailsforbackend/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • thumbnailsforbackend/trunk/readme.txt

    r515473 r692632  
    33Tags: thumbnail, admin, backend, list 
    44Requires at least: 3.0 
    5 Tested up to: 3.2.1 
    6 Stable tag: 0.0.4 
     5Tested up to: 3.5.1 
     6Stable tag: 0.0.5 
    77 
    88Simple plugin to add thumbnails to your Posts list within the WordPress backend. 
     
    3636== Upgrade Notice == 
    3737 
     38= 0.0.5 = 
     39Option for fetch image thumbnail from images embedded inside the content 
     40Bug fix. 
     41 
    3842= 0.0.4 = 
    3943Removed deprecated code. Thanks to cubecolour! 
     
    5155== Changelog == 
    5256 
     57= 0.0.5 = 
     58Option for fetch image thumbnail from images embedded inside the content 
     59Bug fix. 
     60 
    5361= 0.0.4 = 
    5462Removed deprecated code. Thanks to cubecolour! 
  • thumbnailsforbackend/trunk/thumbnailsforbackend.php

    r515483 r692632  
    33 * @package thumbnailsforbackend 
    44 * @author G100g 
    5  * @version 0.0.4 
     5 * @version 0.0.5 
    66 */ 
    77/* 
     
    1010Description: Simple plugin to add thumbnails to your Posts list within the WordPress backend. 
    1111Author: G100g 
    12 Version: 0.0.4 
     12Version: 0.0.5 
    1313Author URI: http://g100g.net/ 
    1414 
     
    3838 
    3939    var $thumbfb_options = array( 
    40                                 'thumbfb_post_types' => array() 
     40                                'thumbfb_post_types' => array(), 
     41                                'thumbfb_embedded_images' => 0 
    4142                                ); 
    4243 
    43     function __construct() { 
    44         $this->get_options(); 
    45     } 
    46      
    47     function get_options() { 
    48         $this->thumbfb_options = unserialize( get_option('thumbfb_options') ); 
     44    public function __construct() { 
     45        $this->update_options(); 
     46    } 
     47     
     48    private function get_options() { 
     49     
     50        $this->thumbfb_options['thumbfb_post_types'] = get_option('thumbfb_post_types'); 
     51        $this->thumbfb_options['thumbfb_embedded_images'] = get_option('thumbfb_embedded_images'); 
     52         
    4953        return $this->thumbfb_options; 
    5054    } 
    5155     
    52     function add_thumbnails() { 
     56    private function update_options() { 
     57         
     58        //Aggirono le opzioni alla nuova versione 
     59         
     60        $thumbfb_options = get_option('thumbfb_options'); 
     61         
     62        if ($thumbfb_options != "") { 
     63 
     64            $thumbfb_options = unserialize( $thumbfb_options ); 
     65             
     66            update_option( 'thumbfb_post_types', $thumbfb_options["thumbfb_post_types"] ); 
     67            update_option( 'thumbfb_options', "" ); 
     68         
     69        } 
     70         
     71    } 
     72     
     73    public function add_thumbnails() { 
    5374         
    5475        $this->get_options(); 
     
    79100    } 
    80101 
    81     function posts_columns($post_columns) { 
     102    public function posts_columns($post_columns) { 
    82103         
    83104            global $post; 
     
    99120    } 
    100121     
    101     function posts_column($name) { 
     122    public function posts_column($name) { 
    102123         
    103124        global $post; 
     
    106127            case 'preview': 
    107128             
    108                 //Becco il thumb della prima immagine 
    109                 if (function_exists('get_post_thumbnail_id')) { 
    110                     $id_thumb = get_post_thumbnail_id($post->ID); 
    111                 } else { 
    112                     $id_thumb = null; 
    113                 } 
    114  
    115                 if ($post->post_parent) { 
    116  
    117                     _get_post_ancestors($post); 
    118                      
    119                     $style = 'margin-left: ' .(count($post->ancestors) * 10) . 'px;'; 
     129                $image_html = ""; 
     130             
     131                $edit_post_link = get_edit_post_link($post->ID); 
     132             
     133                if ($post->post_parent) { 
     134 
     135                    $parents = get_post_ancestors($post); 
     136                     
     137//                  var_dump($parents); 
     138                     
     139                    $style = 'margin-left: ' .(count($parents) * 10) . 'px;'; 
    120140                    $child = 'child'; 
    121141                    $size = array(60,60); 
     142                 
    122143                } else { 
    123144                 
     
    126147                    $size = array(80,80); 
    127148                } 
     149             
     150                //Becco il thumb della prima immagine 
     151                if (function_exists('get_post_thumbnail_id')) { 
     152                    $id_thumb = get_post_thumbnail_id($post->ID); 
     153                    if ($id_thumb != null) { 
     154                        $image_html = '<a href="' . $edit_post_link . '">'. the_post_thumbnail( $size, array('style' => $style, 'class' => $child) ) . '</a>'; 
     155                    } 
     156                } 
    128157                 
    129                 if ($id_thumb == null) { 
     158                //Get first Attached Image 
     159                if ($image_html == "") { 
     160                     
     161                    $images = get_posts('post_parent='.$post->ID.'&post_type=attachment&post_mime_type=image&order=ASC&orderby=menu_order&posts_per_page=1'); 
     162                     
     163                    if ( !empty($images) ) { 
     164 
     165                        reset($images); 
     166                        $image = current($images);                       
     167                        $image_id = $image->ID; 
     168                         
     169                        $image_html = '<a href="' . $edit_post_link .'">'. wp_get_attachment_image( $image_id , $size, null, array('style' => $style, 'class' => $child)) . '</a>'; 
     170 
     171                    }            
     172                } 
     173                 
     174                //Get first embedded image 
     175                if ($image_html == "" && $this->thumbfb_options["thumbfb_embedded_images"] == 1) { 
    130176                     
    131                     //Get first Attached Image 
    132                     $images = get_posts('post_parent='.$post->ID.'&post_type=attachment&post_mime_type=image&order=ASC&orderby=menu_order&posts_per_page=1'); 
    133                      
    134                     if ( !empty($images) ) { 
    135  
    136                         reset($images); 
    137                         $image = current($images); 
     177                    $content = apply_filters('the_content', $post->post_content); 
     178 
     179                    preg_match_all( '/<img[^>]+src=[\'"]([^\'"]+)[\'"].*>/i', $content, $images); 
     180 
     181                    if (is_array($images) && array_key_exists(1, $images) && array_key_exists(0, $images[1])) { 
     182                        $image_html = '<a class="external_thumbnail" href="' . $edit_post_link .'"><img src="' . $images[1][0] . '" alt="" class"'. $child .'" /></a>'; 
    138183                         
    139                         $image_id = $image->ID; 
    140 ?>                       
    141                         <a href="<?php echo get_edit_post_link($post->ID); ?>"><?php echo  wp_get_attachment_image( $image_id , $size, null, array('style' => $style, 'class' => $child)); ?></a> 
    142 <?php                        
    143  
    144                     } else { 
    145                      
    146     ?> 
    147                 <strong>No Image</strong> 
    148     <?php           }            
    149                 } else { 
    150     ?> 
    151         <a href="<?php echo get_edit_post_link($post->ID); ?>"><?php the_post_thumbnail( $size, array('style' => $style, 'class' => $child) ); ?></a> 
    152     <?php 
    153           
    154             } 
     184                    } 
     185                 
     186                } 
     187                 
     188                //No image 
     189                if ($image_html == "") $image_html = "&nbsp;"; 
     190                 
     191                echo $image_html; 
     192                 
     193            break; 
    155194                 
    156195        } 
    157196    } 
    158197     
    159     function admin_header_style() { 
     198    public function admin_header_style() { 
    160199    ?> 
    161200    <style type="text/css"> 
    162201    th#preview { width: 90px; } 
    163         td.preview img {text-align: left; }      
     202        td.preview img { 
     203                display: block; 
     204                text-align: left; width: 80px; 
     205                height: auto;}       
    164206        td.preview img.child { 
    165207            border-left: 4px solid #DDD; 
    166208            padding-left: 4px;           
    167209        } 
    168         td.column-preview {height: 80px; width: 90px; text-align: center; 
    169         } 
     210        td.column-preview { float: none; width: 90px; text-align: center; } 
     211         
     212        a.external_thumbnail { 
     213            display: block; 
     214            width: 80px; 
     215            height: 80px; 
     216            overflow: hidden; 
     217        } 
     218         
    170219    </style> 
    171220    <?php 
     
    178227    **/  
    179228 
    180     function admin_menu() { 
     229    public function admin_menu() { 
    181230        add_options_page('Thumbnails for Backend', 'Thumbnails for Backend', 'edit_posts', basename(__FILE__), array(&$this, 'admin_page') ); 
    182231    } 
    183232     
    184     function admin_page() { 
    185      
    186         global $post; 
    187          
    188         $msg = array(); 
    189  
    190         if (isset($_REQUEST['action'])) {            
    191                  
    192                 if (!isset($_REQUEST['create']) ) { 
    193                  
    194                     switch($_REQUEST['action']) { 
    195                      
    196                         case 'save': 
    197                          
    198                             //Ritrovo i valori 
    199                             $tmp_options = unserialize( get_option('thumbfb_options') ); 
    200                              
    201                             $tmp_options["thumbfb_post_types"] = $_REQUEST['thumbfb_post_types']; 
    202                              
    203                             update_option( 'thumbfb_options', serialize($tmp_options) ); 
    204                              
    205                             $msg[] = array(0, 'Options saved.'); 
    206                          
    207                         break; 
    208                          
    209                     } 
    210                  
    211                 } 
    212                  
    213         } 
    214  
    215         $nonce = wp_create_nonce('thumbfb'); 
    216         $actionurl = $_SERVER['REQUEST_URI']; 
    217         $plainurl = 'admin.php?page=adminthumbnails.php'; 
    218          
    219         $thumbfb_options = get_option('thumbfb_options'); 
    220      
    221         $thumbfb_options = is_string($thumbfb_options) ? unserialize( $thumbfb_options ) : $thumbfb_options; 
    222              
     233    public function admin_page() { 
     234     
     235        if ( !current_user_can( 'manage_options' ) )  { 
     236            wp_die( __( 'You do not have sufficient permissions to access this page.' ) ); 
     237        } 
     238 
     239?> 
     240     
     241    <div class="wrap"> 
     242    <?php screen_icon(); ?> 
     243    <h2>Thumbnails for Backend</h2> 
     244     
     245        <form method="post" action="options.php">  
     246     
     247    <?php settings_fields( 'thumbnailsforbackend-options-group' ); 
     248     
     249     
     250        //do_settings_fields( 'playoptions-group' ); 
     251        do_settings_sections('thumbnailsforbackend-options'); 
     252     
     253    ?> 
     254     
     255    <?php submit_button(); ?> 
     256        </form> 
     257    </div> 
     258 
     259<?php 
     260 
     261    } 
     262     
     263    public function initialize_options () { 
     264         
     265        //Options 
     266        register_setting('thumbnailsforbackend-options-group', 'thumbfb_post_types'); 
     267        register_setting('thumbnailsforbackend-options-group', 'thumbfb_embedded_images'); 
     268         
     269        add_settings_section( 
     270            'section-one', 
     271            'Options', 
     272            null, 
     273            'thumbnailsforbackend-options' 
     274        ); 
     275         
     276        add_settings_field('field-posts_types', 'Show thumbnails in', array(&$this, 'field_posts_types'), 'thumbnailsforbackend-options', 'section-one'); 
     277        add_settings_field('field-embedded_images', 'Use Embedded images', array(&$this, 'field_embedded_images'), 'thumbnailsforbackend-options', 'section-one'); 
     278 
     279    } 
     280     
     281    public function field_embedded_images() { 
     282     
     283        $thumbfb_embedded_images = get_option('thumbfb_embedded_images');        
     284        $selected = $thumbfb_embedded_images == 1 ? ' checked="checked" ' : ""; 
     285         
     286?> 
     287        <input type="checkbox" value="1" id="thumbfb_embedded_images" name="thumbfb_embedded_images" <?php echo $selected; ?>/> 
     288<?php 
     289 
     290    } 
     291     
     292    public function field_posts_types() { 
     293 
     294        $custom_post_types_builtin = get_post_types(array( 
     295                '_builtin' => true, 
     296                'show_ui' => true 
     297         
     298        ), 'objects'); 
     299         
    223300        $custom_post_types = get_post_types(array( 
    224301                'public'   => true, 
    225                 '_builtin' => false 
    226          
    227         )); 
    228          
    229         $custom_post_types[] = 'post'; 
    230         $custom_post_types[] = 'page'; 
    231  
    232 ?> 
    233  
    234 <div class="wrap"> 
    235      
    236     <div class="icon32" id="icon-options-general"><br/></div> 
    237     <h2>Thumbnails for Backend</h2> 
    238      
    239 <?php if (!empty($msg) ) : foreach ($msg as $m) :?> 
    240  
    241     <?php _e('<div id="message" class="'.($m[0] == 1 ? 'error' : 'updated' ).' fade"><p>' . $m[1] . '</p></div>'); ?> 
    242  
    243 <?php endforeach; endif; ?>  
    244      
    245     <form action="<?php echo $action_url; ?>" method="post"> 
    246         <input type="hidden" name="action" value="save" />  
    247         <input type="hidden" id="_wpnonce" name="_wpnonce" value="<?php echo $nonce; ?>" /> 
    248      
    249         <h3>Options</h3> 
    250  
    251     <table class="form-table"> 
    252         <tbody> 
    253                  
    254         <tr valign="top"> 
    255             <th scope="row"><label for="nf_category">Show thumbnails in</label></th> 
    256             <td> 
    257 <?php  
    258  
    259             foreach ($custom_post_types as $cpt) :  
    260                 //setup_postdata($post); 
    261                 $selected = ''; 
    262                  
    263                 if (is_array( $thumbfb_options["thumbfb_post_types"] )) {    
    264                     $selected = ( in_array( $cpt, $thumbfb_options["thumbfb_post_types"] ) ? ' checked="checked" ' : '' );  
    265                 } 
    266              
    267 ?>                       
    268             <label for="thumbfb_post_types-<?php echo $cpt; ?>"><input type="checkbox" value="<?php echo $cpt; ?>" id="thumbfb_post_types-<?php echo $cpt; ?>" name="thumbfb_post_types[]" <?php echo $selected; ?>/> <?php echo $cpt; ?></label> 
    269  
    270 <?php       endforeach; ?>           
    271             </td> 
    272         </tr>    
    273          
    274         </tbody> 
    275          
    276     </table> 
    277  
    278         <p class="submit"><input type="submit" value="Save" class="button-primary" name="Submit"/></p> 
    279     </form> 
    280      
    281 </div> 
    282  
     302                '_builtin' => false, 
     303                'show_ui' => true 
     304         
     305        ), 'objects'); 
     306         
     307        $custom_post_types = array_merge($custom_post_types, $custom_post_types_builtin); 
     308         
     309        $thumbfb_post_types = get_option('thumbfb_post_types'); 
     310         
     311        foreach ($custom_post_types as $post_type => $cpt) { 
     312         
     313            if ($post_type == "attachment") continue; 
     314            $selected = ""; 
     315            if (is_array( $thumbfb_post_types )) {   
     316                $selected = ( in_array( $post_type, $thumbfb_post_types ) ? ' checked="checked" ' : '' );  
     317            } 
     318         
     319?>   
     320            <label for="thumbfb_post_types-<?php echo $post_type; ?>"><input type="checkbox" value="<?php echo $post_type; ?>" id="thumbfb_post_types-<?php echo $post_type; ?>" name="thumbfb_post_types[]" <?php echo $selected; ?>/> <?php echo $cpt->labels->name; ?></label> 
    283321<?php 
     322         
     323        } 
    284324 
    285325    } 
     
    290330     
    291331    add_action('admin_menu', array(&$thumbfb, 'admin_menu'), 10); 
     332    add_action('admin_init', array(&$thumbfb, 'initialize_options'), 10); 
    292333    add_action('admin_init', array(&$thumbfb, 'add_thumbnails'), 10); //backwards compatible 
    293334} 
Note: See TracChangeset for help on using the changeset viewer.