WordPress.org

Plugin Directory

Changeset 789344


Ignore:
Timestamp:
10/17/13 15:35:04 (6 months ago)
Author:
ydubois
Message:

Improved beta version 0.2.0 released

Location:
wp-frontpage-news
Files:
7 added
2 deleted
7 edited
10 moved

Legend:

Unmodified
Added
Removed
  • wp-frontpage-news/readme.txt

    r783388 r789344  
    11=== WP Frontpage News === 
    22Contributors: ydubois, wpcode-united 
    3 Donate link: http://www.wpcode-united.com/ 
    4 Tags: news, widget, recent posts, posts, plugin, sidebar, thumbnail, images, tags, automatic, custom, Post, admin, image, previous posts, template, page, administration, English, shortcode, excerpt, featured image 
     3Donate link: http://www.wpcode-united.com/wordpress-plugin/wp-frontpage-news 
     4Tags: news, widget, recent posts, posts, plugin, sidebar, thumbnail, images, tags, automatic, custom, Post, admin, image, previous posts, template, page, administration, English, shortcode, excerpt, featured image, featured posts 
    55Requires at least: 3.6 
    66Tested up to: 3.6.1 
     
    2222* Prevent article authors to break your WordPress layout and to focus only on content 
    2323 
    24 * Display news carousel on your home page or in widget position 
     24* Display news carrousel on your home page or in widget position 
    2525 
    2626 
     
    3333* Image source means where the thumbnail will be picked up and how will it be displayed 
    3434 
    35 * Advanced parameter for date, read more format and all miscellaneous stuff 
     35* Advanced parameter for date and all miscellaneous stuff 
    3636 
    3737Perfect to present large information, easy for final users. 
     
    4646* Display as a widget 
    4747 
    48 * Select number of row and column 
     48* Select number of columns 
    4949 
    50 * Order content in each block with AJAX 
     50* Dispatch and order content in each block with jQuery mouse drag-and-drop 
    5151 
    52 * Automatic animation 
     52* Select categories of the listed contents 
    5353 
    54 * Select categories, pages and dates of the content 
     54* Limit the total number of displayed news items 
    5555 
    56 * Limit the total number of content 
     56* Select image source (featured image thumbnail or post first images) 
    5757 
    58 * Automatic image cropping 
     58* Add custom margins 
    5959 
    60 * Select image source 
     60* Create carrousel sliding news displays 
    6161 
    62 * Add custom margin 
     62* Full out-of-the box support of WordPress default theme and styling 
    6363 
    6464 
     
    7373 
    74741. Main settings screen tab for a news widget configuration 
     751. Image settings screen tab for a news widget configuration 
     761. Example of a "Recent posts" news list sidebar widget 
     771. Example of a simple "Featured news" widget with left/right sliding 
     781. Example of a bigger "Featured nexs" or "Recent news" widget 
     791. A breaking news slider, included at the top of a page, with pagination 
    7580 
    7681 
    7782== Revisions == 
    7883 
    79 * 0.1.0. Initial release of 2013-10-03 
     84* 0.1.0. Initial (alpha) release of 2013-10-03 
     85* 0.2.0. Initial (beta) release of 2013-10-17 
    8086 
    8187 
    8288== Changelog == 
    8389 
    84 * Initial beta release 
     90= 0.1.0 = 
     91* Initial alpha release 
     92= 0.2.0 = 
     93* Improved beta release: 
     94* Widget title can now be displayed at your choice 
     95* Sidebar widgets now seamlessly integrate with your theme's widget styling 
     96* Stylesheet compatibility optimized with WP 3.6 twentythirteen theme by default 
     97* Now retro-compatible up to WP 3.2 at least 
     98* Admin screenshot has been made to cimply with actual output 
     99* Better icons in the admin interface 
     100* Simplified settings, now completely usable out-of-the-box 
     101* Default image now included and pre-configured for perfect output even with articles without images 
    85102 
    86103 
     
    89106= 0.1.0 = 
    90107* No specifics. Automatic upgrade works fine. 
     108= 0.2.0 = 
     109* No specifics. Automatic upgrade works fine. 
     110 
     111 
     112== Misc. == 
     113 
     114This plugin is the official long-awaited replacement to the popular YD Recent Posts Widget With Thumnails plugin for WordPress that I developed a few years ago and was no longer maintained. Its out-of-the box features are equivalent to the former plugin, with full WP3.6+ compatibility and guaranteed support. Enjoy!  
  • wp-frontpage-news/trunk/css/wpcufpn_admin.css

    r785529 r789344  
    44/** global post type edit screen with tabs and blocks **/ 
    55/* 
    6 div#joufpnnavtabsbox { 
     6div#wpcufpnnavtabsbox { 
    77    margin-top:-20px; 
    88} 
    99*/ 
    1010 
    11 #icon-edit.icon32.icon32-posts-jouwpfp-news-widget { 
    12     background:url('../img/wpfpn-edit-icon.png') no-repeat; 
     11#icon-edit.icon32.icon32-posts-wpcuwpfp-news-widget { 
     12    background:url('../img/wpcufpn-edit-icon.png') no-repeat; 
    1313} 
    1414 
     
    1616    overflow: hidden; 
    1717} 
    18 div.jou-inner-admin-col { 
     18div.wpcu-inner-admin-col { 
    1919    display: inline-block; 
    2020    float: left; 
     
    2222    margin-right: 1%; 
    2323} 
    24 div.jou-inner-admin-block.with-border { 
     24div.wpcu-inner-admin-block.with-border { 
    2525    border: 1px solid #000; 
    2626    margin-top: 15px; 
     
    2828    overflow: visible; 
    2929} 
    30 div.jou-inner-admin-block.with-border h4, 
    31 div.jou-inner-admin-block.with-border h5 { 
     30div.wpcu-inner-admin-block.with-border h4, 
     31div.wpcu-inner-admin-block.with-border h5 { 
    3232    font-size: 10px; 
    3333    line-height: 12px; 
     
    6666 
    6767/** theme preview box **/ 
    68 div.joufpn-theme-preview { 
     68div.wpcufpn-theme-preview { 
    6969    width: 480px; 
    70     height: 240px; 
     70    /*height: 334px;*/ 
    7171    background: #ddd; 
    7272    margin: auto; 
     
    7474 
    7575/** widget drag-and-drop config box **/ 
    76 #joufpn_config_zone { 
     76#wpcufpn_config_zone { 
    7777    min-height: 260px; 
    7878} 
     
    109109    margin-bottom: 2px;  
    110110} 
    111 #joufpn_config_zone div.jou-inner-admin-block.with-border { 
     111#wpcufpn_config_zone div.wpcu-inner-admin-block.with-border { 
    112112    display: inline-block; 
    113113    height: 72px; 
     
    115115    padding: 0 5px; 
    116116} 
    117 #joufpn_config_zone div.jou-inner-admin-block.with-border h5 { 
     117#wpcufpn_config_zone div.wpcu-inner-admin-block.with-border h5 { 
    118118    margin: -8px 0 0 2px; 
    119119} 
    120 #joufpn_config_zone div.jou-inner-admin-block.with-border.top { 
     120#wpcufpn_config_zone div.wpcu-inner-admin-block.with-border.top { 
    121121    width: 290px; 
    122122    float: left; 
    123123} 
    124 #joufpn_config_zone div.jou-inner-admin-block.with-border.left { 
     124#wpcufpn_config_zone div.wpcu-inner-admin-block.with-border.left { 
    125125    width: 120px; 
    126126    clear: left; 
    127127    float: left; 
    128128} 
    129 #joufpn_config_zone div.jou-inner-admin-block.with-border.right { 
     129#wpcufpn_config_zone div.wpcu-inner-admin-block.with-border.right { 
    130130    width: 120px; 
    131131    clear: right; 
    132132    float: right;    
    133133} 
    134 #joufpn_config_zone div.jou-inner-admin-block.with-border.bottom { 
     134#wpcufpn_config_zone div.wpcu-inner-admin-block.with-border.bottom { 
    135135    width: 290px; 
    136136    float: left; 
     
    186186 
    187187/** tinyMce button + widget selector **/ 
    188 #joufpn_widgetlist { 
     188#wpcufpn_widgetlist { 
    189189    min-width:150px; 
    190190    max-width:250px; 
     
    195195} 
    196196 
    197 #joufpn_widgetlist select { 
     197#wpcufpn_widgetlist select { 
    198198    min-height:70px; 
    199199    min-width:250px; 
  • wp-frontpage-news/trunk/css/wpcufpn_front.css

    r785529 r789344  
    22@CHARSET "UTF-8"; 
    33 
    4 .joufpn_outside { 
    5     text-align: center; 
     4.wpcufpn_outside { 
     5    text-align: left; 
    66    overflow: hidden; 
    77} 
    8 .joufpn_container { 
     8.wpcufpn_container { 
     9    text-align: center; 
    910    display: block; 
    1011    overflow: hidden; 
     
    1314    /*background: #fff;*/ 
    1415} 
    15 .joufpn_container ul { 
     16.wpcufpn_container ul { 
    1617    display: block; 
    1718    list-style: none; 
    1819    margin: 0; 
     20    padding: 0; 
    1921    position: absolute; 
    2022    overflow: hidden; 
    2123} 
    22 .joufpn_container li { 
     24.wpcufpn_container li { 
    2325    display: inline-block; 
    2426    float: left; 
    2527    margin: 0; 
     28    padding: 0 0 3px 0; 
    2629} 
    27 .joufpn_container a, 
    28 .joufpn_container a:focus, 
    29 .joufpn_container a:active, 
    30 .joufpn_container a:hover { 
     30.wpcufpn_container a, 
     31.wpcufpn_container a:focus, 
     32.wpcufpn_container a:active, 
     33.wpcufpn_container a:hover { 
    3134    text-decoration: none; 
    3235    color: inherit; 
    3336} 
    34 .joufpn_container .title { 
     37.wpcu_block_title { 
     38    text-align: left; 
     39    font-weight: bold; 
     40    font-size: 2.2em; 
     41    line-height: 2.2em; 
     42    color: #666; 
     43} 
     44.wpcufpn_container .title { 
    3545    display: block; 
    36     color: #000; 
     46    color: #333; 
    3747    font-weight: bold; 
    38     font-size: 1.2em; 
     48    font-size: 1.15em; 
    3949    text-align: left; 
    40     line-height: 1.2; 
     50    line-height: 1.15em; 
     51    max-width: 100%; 
    4152} 
    42 .joufpn_container .thumbnail { 
     53.wpcufpn_container .title span { 
     54    overflow: hidden; 
     55    text-overflow: ellipsis; 
     56    max-width: 100%; 
     57} 
     58.wpcufpn_container .thumbnail { 
    4359    display: block; 
    4460    overflow: hidden; 
    4561} 
    46 .joufpn_container .text, 
    47 .joufpn_container .date { 
     62.wpcufpn_container .text, 
     63.wpcufpn_container .date { 
    4864    overflow: hidden; 
    4965    display: block; 
    50     color: #000; 
    5166    text-align: left; 
    5267    line-height: 1; 
    5368    font-weight: normal; 
     69    text-overflow: ellipsis; 
    5470} 
    55 .joufpn_container .read-more { 
     71.wpcufpn_container .date { 
     72    color:#666; 
     73} 
     74.wpcufpn_container .text span { 
     75    overflow: hidden; 
     76    text-overflow: ellipsis; 
     77    max-width: 100%; 
     78} 
     79.wpcufpn_container .read-more { 
    5680    display: block; 
    5781    color: #000; 
     
    7397    max-width: 100%; 
    7498} 
    75 .joufpn_container .title .line_limit { 
    76     margin-bottom: 0.3em; 
     99.wpcufpn_container .title .line_limit { 
     100 
    77101} 
    78102 
    79 .jou-front-box { 
    80     margin: 3px; 
     103.wpcu-front-box { 
     104    /*margin: 3px;*/ 
    81105} 
    82 .jou-front-box.left { 
     106.wpcu-front-box.left { 
    83107    margin: 0; 
    84108    padding: 0; 
    85109} 
    86 .jou-front-box.right { 
     110.wpcu-front-box.right { 
    87111    margin: 0; 
    88112    padding: 0; 
    89113} 
    90114 
    91 .jou-front-box.left, 
    92 .jou-front-box.right { 
     115.wpcu-front-box.left, 
     116.wpcu-front-box.right { 
    93117    display: inline-block; 
    94118    min-width: 25%; 
     
    96120    float: left; 
    97121} 
     122.wpcu-front-box.top, 
     123.wpcu-front-box.bottom { 
     124    display: block; 
     125    clear: left; 
     126} 
     127 
     128div.wpcufpn_nav { 
     129    margin: 3px auto; 
     130    text-align: center; 
     131} 
  • wp-frontpage-news/trunk/css/wpcufpn_tmce_plugin.css

    r785529 r789344  
    22 
    33/** in tinyMce Editor **/ 
    4 .joufpned { 
     4.wpcufpned { 
    55    border: 1px dashed #888; 
    66    background: #f2f8ff url('../img/wpfpn-tmce-placeholder.png') no-repeat scroll center center; 
  • wp-frontpage-news/trunk/inc/wp-fpn-front.inc.php

    r783389 r789344  
    11<?php 
    22/** WP Frontpage News front display class **/ 
    3 class jouFPN_Front { 
     3class wpcuFPN_Front { 
    44     
    55    const CSS_DEBUG         = false; 
    6     const TITLE_EM_SIZE     = 1.2; 
     6    const TITLE_EM_SIZE     = 1.1; 
    77    const TEXT_EM_SIZE      = 1; 
    88     
     
    2323        $this->prepared = true; 
    2424         
    25         //TODO: boxes setup will depend on theme template + premium filter 
     25        //TODO: boxes setup will depend on theme template + pro filter 
    2626        $this->boxes = array( 'top', 'left', 'right', 'bottom' ); 
    2727    } 
     
    102102                $args['category__in']   = $this->widget->settings['source_category']; 
    103103             
    104             $args = apply_filters( 'joufpn_src_category_args', $args ); 
     104            $args = apply_filters( 'wpcufpn_src_category_args', $args ); 
    105105             
    106106            $posts = get_posts( $args ); 
     
    110110         
    111111        return 
    112             $this->posts = apply_filters( 'joufpn_front_queryposts', $posts, $this->widget ); 
     112            $this->posts = apply_filters( 'wpcufpn_front_queryposts', $posts, $this->widget ); 
    113113    } 
    114114     
     
    117117     *  
    118118     */ 
    119     public function display( $echo=true ) {      
     119    public function display( $echo=true, $is_sidebar_widget=false ) {        
    120120         
    121121        if( $this->posts ) { 
    122             $this->container(); 
     122            $this->container( $is_sidebar_widget ); 
    123123        } else { 
    124             $this->html .= "\n<!-- jouFPN: No Post to show in this widget! -->\n"; 
    125         } 
    126          
    127         /** call premium plugin additional source type display modes **/ 
    128         $this->html = apply_filters( 'joufpn_front_display', $this->html, $this->widget ); 
     124            $this->html .= "\n<!-- wpcuFPN: No Post to show in this widget! -->\n"; 
     125        } 
     126         
     127        /** call pro plugin additional source type display modes **/ 
     128        $this->html = apply_filters( 'wpcufpn_front_display', $this->html, $this->widget ); 
    129129         
    130130        if( $echo ) 
     
    139139     *  
    140140     */ 
    141     private function container() { 
     141    private function container( $is_sidebar_widget=false ) { 
    142142         
    143143        $style_cont = ''; 
     
    150150            $this->widget->settings['total_width'] 
    151151        ) { 
    152             global $jou_wpfn; 
    153             $style_cont .= 'width:' . $this->widget->settings['total_width'] . $jou_wpfn->_width_unit_values[$this->widget->settings['total_width_unit']] .';'; 
     152            global $wpcu_wpfn; 
     153            $style_cont .= 'width:' . $this->widget->settings['total_width'] . $wpcu_wpfn->_width_unit_values[$this->widget->settings['total_width_unit']] .';'; 
    154154        } 
    155155         
     
    162162            $style_slide = 'width: ' . $percent . '%;'; 
    163163            $orientation = 'horizontal'; 
     164        } else { 
     165            $style_slide = 'width: 100%;'; 
    164166        } 
    165167                 
     
    169171        } 
    170172         
    171         $this->html .= '<div class="joufpn_outside">'; 
    172         $this->html .= '<div id="joufpn_widget_' . $this->widget->ID . '" class="joufpn_container ' . $orientation .'" style="' . $style_cont . '">'; 
    173         $this->html .= '<ul class="joufpn_listposts" style="' . $style_slide . '">'; 
     173        $this->html .= '<div class="wpcufpn_outside" style="' . $style_cont . '">'; 
     174         
     175        /** Widget block title **/ 
     176        if( 
     177            !$is_sidebar_widget && 
     178            isset( $this->widget->settings['show_title'] ) && 
     179            $this->widget->settings['show_title'] == 1 
     180        ) { 
     181            $this->html .= '<span class="wpcu_block_title">' . $this->widget->post_title . '</span>'; 
     182        } 
     183         
     184        /** Container div **/ 
     185        $this->html .= '<div id="wpcufpn_widget_' . $this->widget->ID . '" class="wpcufpn_container ' . $orientation .'" style="' . $style_cont . '">'; 
     186        $this->html .= '<ul class="wpcufpn_listposts" style="' . $style_slide . '">'; 
    174187        $this->loop(); 
    175188        $this->html .= '</ul>'; 
     
    178191        /** Navigation / pagination **/ 
    179192        if( $this->widget->settings['pagination'] ) 
    180             $this->html .= '<div class="joufpn_nav">'; 
     193            $this->html .= '<div class="wpcufpn_nav">'; 
    181194        if( 1 == $this->widget->settings['pagination'] || 3 == $this->widget->settings['pagination'] )      // Arrow left 
    182195             $this->html .= '<a href="#" class="slide_left slidebtn">&larr;</a>' . 
     
    241254        foreach ( $this->posts as $post ) { 
    242255            setup_postdata( $post ); 
    243             $this->html .= '<li id="joufpn_li_' . $this->widget->ID . '_' . $post->ID . '" style="' . $style . '">'; 
     256            $this->html .= '<li id="wpcufpn_li_' . $this->widget->ID . '_' . $post->ID . '" style="' . $style . '">'; 
    244257            $this->frame(); 
    245258            $this->html .= '</li>'; 
     
    312325                 
    313326            if( $this->widget->settings['crop_title'] == 0 ) {  // word cropping 
    314                 $title = wp_trim_words( $title, $this->widget->settings['crop_title_len']); 
     327                if( function_exists( 'wp_trim_words' ) ) 
     328                    $title = wp_trim_words( $title, $this->widget->settings['crop_title_len']); 
    315329            } 
    316330            if( $this->widget->settings['crop_title'] == 1 ) {  // char cropping 
     
    320334            } 
    321335            if( $this->widget->settings['crop_title'] == 2 ) {  // line limitting 
     336                $style = 'max-height:' . ( $this->widget->settings['crop_title_len'] * self::TITLE_EM_SIZE ) . 'em'; 
     337                if( 1 == $this->widget->settings['crop_title_len'] ) 
     338                    $style .= ';white-space:nowrap'; 
    322339                /** Limit lines **/ 
    323                 $before = '<span style="max-height:' . ($this->widget->settings['crop_title_len'] * self::TITLE_EM_SIZE ) . 'em" class="line_limit">'; 
     340                $before = '<span style="' . $style . '" class="line_limit">'; 
    324341                $after = '</span>'; 
    325342            } 
     
    334351                 
    335352            if( $this->widget->settings['crop_text'] == 0 ) {   // word cropping 
    336                 $text = wp_trim_words( $text, $this->widget->settings['crop_text_len']); 
     353                if( function_exists( 'wp_trim_words' ) ) 
     354                    $text = wp_trim_words( $text, $this->widget->settings['crop_text_len']); 
    337355            } 
    338356            if( $this->widget->settings['crop_text'] == 1 ) {   // char cropping 
     
    386404            /** If no thumb or first image get default image **/ 
    387405            if( isset($src[0]) && $src[0] ) { 
    388                 $img = '<img src="' . $src[0] . '" style="' . $style . '" alt="' . get_the_title() . '" class="joufpn_thumb" />'; 
     406                $img = '<img src="' . $src[0] . '" style="' . $style . '" alt="' . get_the_title() . '" class="wpcufpn_thumb" />'; 
    389407            } else { 
    390408                if( isset($this->widget->settings['default_img']) && $this->widget->settings['default_img'] ) { 
    391                     $img = '<img src="' . $this->widget->settings['default_img'] . '" style="' . $style . '" alt="' . get_the_title() . '"  class="joufpn_default" />'; 
     409                    $img = '<img src="' . $this->widget->settings['default_img'] . '" style="' . $style . '" alt="' . get_the_title() . '"  class="wpcufpn_default" />'; 
    392410                } else { 
    393                     $img = '<span class="img_placeholder" style="' . $style . '" class="joufpn_placeholder"></span>'; 
     411                    $img = '<span class="img_placeholder" style="' . $style . '" class="wpcufpn_placeholder"></span>'; 
    394412                } 
    395413            } 
     
    401419                $style .= 'width:' . $this->widget->settings['thumb_width'] . 'px;'; 
    402420                $style .= 'height:' . $this->widget->settings['thumb_height'] . 'px;'; 
     421            } else { 
     422                $style .= 'width:100%'; 
    403423            } 
    404424             
     
    423443                return __($this->widget->settings['read_more']); 
    424444            } else { 
    425                 return __('Read more...', 'joufpn'); 
     445                return __('Read more...', 'wpcufpn'); 
    426446            } 
    427447        } 
     
    441461        } 
    442462         
    443         return "\n<!-- jouFPN Unknown field: " .strip_tags( $field ) . " -->\n"; 
     463        return "\n<!-- wpcuFPN Unknown field: " .strip_tags( $field ) . " -->\n"; 
    444464    } 
    445465     
     
    455475            $style = 'style="border:1px solid #999"'; 
    456476     
    457         $before = '<div id="joufpn_box_' . $box_name . '_' . $this->widget->ID . '_' . $post->ID . '" class="jou-front-box ' . $box_name . '" ' . $style . '>'; 
     477        $before = '<div id="wpcufpn_box_' . $box_name . '_' . $this->widget->ID . '_' . $post->ID . '" class="wpcu-front-box ' . $box_name . '" ' . $style . '>'; 
    458478        $before .= '<a href="' . get_permalink() . '">'; 
    459479        $after = '</a></div>'; 
  • wp-frontpage-news/trunk/inc/wp-fpn-main.inc.php

    r783389 r789344  
    11<?php 
    22/** WP Frontpage News main class **/ 
    3 class jouWPFnPlugin extends YD_Plugin { 
     3class wpcuWPFnPlugin extends YD_Plugin { 
    44     
    55    //TODO: separate front-end and back-end methods, only include necessary code 
    66     
    7     const   CUSTOM_POST_NEWS_WIDGET_NAME    = 'jouwpfp-news-widget'; 
    8     const   CUSTOM_POST_NONCE_NAME          = 'joufpn_editor_tabs'; 
    9      
    10     const   POSITIVE_INT_GT1                = 'positive_integer_1+';    //Those fields need to have a positive integer value greater than 1 
    11     const   BOOL                            = 'bool';                   //Booleans 
    12     const   FILE_UPLOAD                     = 'file_upload';            //File uploads 
    13     const   LI_TO_ARRAY                     = 'li_to_array';            //Convert sortable lists to array 
    14      
    15     const   DEFAULT_IMG_PREFIX              = 'joufpn_default_img_';    //Default uploaded image file prefix 
    16     const   MAIN_FRONT_STYLESHEET           = 'css/joufpn_front.css';   //Main front-end stylesheet 
    17     const   MAIN_FRONT_SCRIPT               = 'js/joufpn_front.js';     //Main front-end jQuery script 
     7    const   CUSTOM_POST_NEWS_WIDGET_NAME    = 'wpcuwpfp-news-widget'; 
     8    const   CUSTOM_POST_NONCE_NAME          = 'wpcufpn_editor_tabs'; 
     9     
     10    const   POSITIVE_INT_GT1                = 'positive_integer_1+';        //Those fields need to have a positive integer value greater than 1 
     11    const   BOOL                            = 'bool';                       //Booleans 
     12    const   FILE_UPLOAD                     = 'file_upload';                //File uploads 
     13    const   LI_TO_ARRAY                     = 'li_to_array';                //Convert sortable lists to array 
     14     
     15    const   DEFAULT_IMG_PREFIX              = 'wpcufpn_default_img_';       //Default uploaded image file prefix 
     16    const   MAIN_FRONT_STYLESHEET           = 'css/wpcufpn_front.css';      //Main front-end stylesheet 
     17    const   MAIN_FRONT_SCRIPT               = 'js/wpcufpn_front.js';        //Main front-end jQuery script 
     18    const   DEFAULT_IMG                     = 'img/default-image-fpnp.png'; //Default thumbnail image 
    1819     
    1920    const   USE_LOCAL_JS_LIBS               = true; 
     
    2728        'pg_source_order'       => 'order', 
    2829        'pg_source_asc'         => 'desc', 
     30        'show_title'            => 1,   // Wether or not to display the block title 
    2931        'amount_pages'          => 1, 
    3032        'amount_cols'           => 1, 
     
    3638        'crop_title_len'        => 1, 
    3739        'crop_text'             => 2, 
    38         'crop_text_len'         => 3, 
     40        'crop_text_len'         => 2, 
    3941        'autoanimation'         => 0, 
    4042        'autoanimation_trans'   => 1, 
     
    4244        'box_top'               => array(), 
    4345        'box_left'              => array('Thumbnail'), 
    44         'box_right'             => array('Title','Text'), 
     46        'box_right'             => array('Date','Title','Text'), 
    4547        'box_bottom'            => array(), 
    46         'thumb_img'             => 0, 
    47         'thumb_width'           => 60, 
    48         'thumb_height'          => 60, 
    49         'crop_img'              => 0, 
     48        'thumb_img'             => 0,   // 0 == use featured image 
     49        'thumb_width'           => 60,  // in px 
     50        'thumb_height'          => 60,  // in px 
     51        'crop_img'              => 0,   // 0 == do not crop (== resize to fit) 
    5052        'margin_left'           => 0, 
    5153        'margin_top'            => 0, 
     
    5456        'date_fmt'              => '', 
    5557        'read_more'             => '', 
    56         'default_img_previous'  => '' 
     58        'default_img_previous'  => '',  // Overridden in constructor 
     59        'default_img'           => ''   // Overridden in constructor 
    5760    ); 
    5861     
     
    116119    ); 
    117120     
     121    /** 
     122     * Counts how many widgets are being displayed 
     123     * @var int 
     124     */ 
     125    public  $widget_count = 0; 
     126     
    118127    /**  
    119128     * Constructor 
     
    125134        $this->form_blocks = $opts['form_blocks']; // YD Legacy (was to avoid "backlinkware") 
    126135         
     136        /** Setup default image **/ 
     137        $this->_field_defaults['default_img_previous'] = plugins_url( self::DEFAULT_IMG, dirname( __FILE__ ) ); 
     138        $this->_field_defaults['default_img'] = plugins_url( self::DEFAULT_IMG, dirname( __FILE__ ) ); 
     139         
    127140        /** Sets up custom post types **/ 
    128141        add_action( 'init', array( $this, 'setupCustomPostTypes' ) ); 
     
    130143        /** Register our widget (implemented in separate wp-fpn-widget.inc.php class file) **/ 
    131144        add_action( 'widgets_init', function(){ 
    132             register_widget( 'jouFPN_Widget' ); 
     145            register_widget( 'wpcuFPN_Widget' ); 
    133146        }); 
    134147         
     
    177190    public function setupCustomPostTypes() { 
    178191        $labels = array( 
    179             'name'                  => __( 'WP Frontpage News Widgets', 'joufpn' ), 
    180             'singular_name'         => __( 'News Widget', 'joufpn' ), 
    181             'add_new'               => __( 'Add New', 'joufpn' ), 
    182             'add_new_item'          => __( 'Add New News Widget', 'joufpn' ), 
    183             'edit_item'             => __( 'Edit News Widget', 'joufpn' ), 
    184             'new_item'              => __( 'New News Widget', 'joufpn' ), 
    185             'all_items'             => __( 'All News Widgets', 'joufpn' ), 
    186             'view_item'             => __( 'View News Widget', 'joufpn' ), 
    187             'search_items'          => __( 'Search News Widgets', 'joufpn' ), 
    188             'not_found'             => __( 'No News Widget found', 'joufpn' ), 
    189             'not_found_in_trash'    => __( 'No News Widget found in Trash', 'joufpn' ), 
     192            'name'                  => __( 'WP Frontpage News Blocks', 'wpcufpn' ), 
     193            'singular_name'         => __( 'WPFN Block', 'wpcufpn' ), 
     194            'add_new'               => __( 'Add New', 'wpcufpn' ), 
     195            'add_new_item'          => __( 'Add New WPFN Block', 'wpcufpn' ), 
     196            'edit_item'             => __( 'Edit WPFN Block', 'wpcufpn' ), 
     197            'new_item'              => __( 'New WPFN Block', 'wpcufpn' ), 
     198            'all_items'             => __( 'All WPFN Blocks', 'wpcufpn' ), 
     199            'view_item'             => __( 'View WPFN Block', 'wpcufpn' ), 
     200            'search_items'          => __( 'Search WPFN Blocks', 'wpcufpn' ), 
     201            'not_found'             => __( 'No WPFN Block found', 'wpcufpn' ), 
     202            'not_found_in_trash'    => __( 'No WPFN Block found in Trash', 'wpcufpn' ), 
    190203            'parent_item_colon'     => '', 
    191             'menu_name'             => __( 'News Widgets', 'joufpn' ) 
     204            'menu_name'             => __( 'WPFN Blocks', 'wpcufpn' ) 
    192205        ); 
    193206        register_post_type( self::CUSTOM_POST_NEWS_WIDGET_NAME, array( 
     
    210223        /* 
    211224        TODO: is there a way to load our theme stylesheet only where necessary? 
    212         global $joufpn_needs_stylesheet; 
    213         if( !$joufpn_needs_stylesheet ) 
     225        global $wpcufpn_needs_stylesheet; 
     226        if( !$wpcufpn_needs_stylesheet ) 
    214227            return; 
    215228        */ 
     
    232245         
    233246        wp_enqueue_script( 
    234             'joufpn-front', 
     247            'wpcufpn-front', 
    235248            plugins_url( self::MAIN_FRONT_SCRIPT, dirname( __FILE__ ) ), 
    236249            array( 'jquery' ), 
     
    264277            return $post_id; 
    265278         
    266         $my_settings = array(); 
     279        $my_settings = get_post_meta( $post->ID, '_wpcufpn_settings', true ); 
     280        $my_settings = wp_parse_args( $my_settings, $this->_field_defaults ); 
    267281         
    268282        /** File uploads **/ 
    269283        //error_log( 'FILES: ' . serialize( $_FILES ) );    //Debug 
    270284        foreach( $_FILES as $field_name => $field_value ) { 
    271             if( preg_match( '/^joufpn_/', $field_name ) ) { 
    272                 //error_log( 'matched joufpn_' );           //Debug 
    273                 $new_field_name = preg_replace( '/^joufpn_/', '', $field_name ); 
     285            if( preg_match( '/^wpcufpn_/', $field_name ) ) { 
     286                //error_log( 'matched wpcufpn_' );          //Debug 
     287                $new_field_name = preg_replace( '/^wpcufpn_/', '', $field_name ); 
    274288                if( is_uploaded_file( $_FILES[$field_name]['tmp_name'] ) ) { 
    275289                    $uploads = wp_upload_dir(); 
     
    305319        /** Normal fields **/ 
    306320        foreach( $_POST as $field_name => $field_value ) { 
    307             if( preg_match( '/^joufpn_/', $field_name ) ) { 
     321            if( preg_match( '/^wpcufpn_/', $field_name ) ) { 
    308322                if( preg_match( '/_none$/', $field_name ) ) 
    309323                    continue; 
    310                 $field_name = preg_replace( '/^joufpn_/', '', $field_name ); 
     324                $field_name = preg_replace( '/^wpcufpn_/', '', $field_name ); 
    311325                if( is_array( $field_value ) ) { 
    312326                    $my_settings[$field_name] = $field_value; 
     
    353367        } 
    354368         
    355         update_post_meta( $post_id, '_joufpn_settings', $my_settings ); 
     369        update_post_meta( $post_id, '_wpcufpn_settings', $my_settings ); 
    356370         
    357371        return $post_id; 
     
    368382            return $hook; 
    369383         
    370         if( jouWPFnPlugin::CUSTOM_POST_NEWS_WIDGET_NAME != get_post_type() ) 
     384        if( wpcuWPFnPlugin::CUSTOM_POST_NEWS_WIDGET_NAME != get_post_type() ) 
    371385            return $hook; 
    372386                 
     
    398412        /**/ 
    399413        wp_enqueue_style( 'uiStyleSheet' ); 
    400         wp_register_style( 'joufpnAdmin', plugins_url( 'css/joufpn_admin.css', dirname( __FILE__ ) ) ); 
    401         wp_enqueue_style( 'joufpnAdmin' ); 
     414        wp_register_style( 'wpcufpnAdmin', plugins_url( 'css/wpcufpn_admin.css', dirname( __FILE__ ) ) ); 
     415        wp_enqueue_style( 'wpcufpnAdmin' ); 
    402416    } 
    403417     
     
    408422    /* Unused <- changed in admin css stylesheet 
    409423    public function changeIcon() { 
    410         if( jouWPFnPlugin::CUSTOM_POST_NEWS_WIDGET_NAME != get_post_type() ) 
     424        if( wpcuWPFnPlugin::CUSTOM_POST_NEWS_WIDGET_NAME != get_post_type() ) 
    411425            return; 
    412426        ?> 
    413427        <style> 
    414         #icon-album.icon32.icon32-posts-jouwpfp-news-widget { 
    415             background:url('<?php plugins_url( 'img/wpfpn-edit-icon.png', dirname( __FILE__ ) ) ?>') no-repeat; 
     428        #icon-album.icon32.icon32-posts-wpcuwpfp-news-widget { 
     429            background:url('<?php plugins_url( self::EDIT_ICON, dirname( __FILE__ ) ) ?>') no-repeat; 
    416430        } 
    417431        </style> 
     
    431445         
    432446        add_meta_box(  
    433             'joufpnnavtabsbox',  
    434             __( 'WP Frontpage News Widget Settings', 'joufpn' ),  
     447            'wpcufpnnavtabsbox',  
     448            __( 'WP Frontpage News Block Settings', 'wpcufpn' ),  
    435449            array( $this, 'editorTabs' ),  
    436450            self::CUSTOM_POST_NEWS_WIDGET_NAME,  
     
    456470                    $(document).ready(function() { 
    457471 
    458                         $('.joufpntabs').tabs(); 
     472                        $('.wpcufpntabs').tabs(); 
    459473 
    460474                        $('#tab-1 ul.hidden').hide(); 
     
    462476                        $('.source_type_sel').click(function(e){ 
    463477                            console.log( 'clicked ' + $(this).val() ); 
    464                             //$( '.joufpntabs' ).tabs( 'load', $(this).val() ); 
     478                            //$( '.wpcufpntabs' ).tabs( 'load', $(this).val() ); 
    465479                            $( '#tab-' + $(this).val() ).click(); 
    466480                        }); 
    467481 
    468                         $( '#tab-' + $('input[name=joufpn_source_type]:checked').val() ).click(); 
     482                        $( '#tab-' + $('input[name=wpcufpn_source_type]:checked').val() ).click(); 
    469483 
    470484                        /** You can check the all box or any other boxes, but not both **/ 
     
    494508                         
    495509                        /* 
    496                         $('.drop_zone_col .jou-inner-admin-block ul').droppable({ 
     510                        $('.drop_zone_col .wpcu-inner-admin-block ul').droppable({ 
    497511                            drop: function( event, ui ) { 
    498512                                $( this ).addClass( "ui-state-highlight" ); 
     
    514528                        }); 
    515529                         
    516                         $('.drop_zone_col .jou-inner-admin-block ul').sortable({ 
     530                        $('.drop_zone_col .wpcu-inner-admin-block ul').sortable({ 
    517531                            connectWith: 'ul.arrow_col', 
    518532                            update: function( event, ui ) { 
    519533                                console_log( 'sortable was updated: ' + $(this).parent().attr('id') ); 
    520                                 $('#joufpn_' + $(this).parent().attr('id')).val( $(this).html() ); 
     534                                $('#wpcufpn_' + $(this).parent().attr('id')).val( $(this).html() ); 
    521535                            }, 
    522                             containment: '#joufpn_config_zone' 
     536                            containment: '#wpcufpn_config_zone' 
    523537                        }); 
    524                         $('.drop_zone_col .jou-inner-admin-block ul').disableSelection(); 
     538                        $('.drop_zone_col .wpcu-inner-admin-block ul').disableSelection(); 
    525539                         
    526540                        $('ul.arrow_col li').draggable({  
    527541                            connectToSortable: '.sortable', 
    528542                            helper: 'clone', 
    529                             containment: '#joufpn_config_zone' 
     543                            containment: '#wpcufpn_config_zone' 
    530544                        }); 
    531545                         
     
    585599            </script> 
    586600         
    587             <div id="joufpnnavtabs" class="joufpntabs"> 
     601            <div id="wpcufpnnavtabs" class="wpcufpntabs"> 
    588602                <ul> 
    589                     <li><a href="#tab-1"><?php _e( 'Content source', 'joufpn' ); ?></a></li> 
    590                     <li><a href="#tab-2"><?php _e( 'Display and theme', 'joufpn' ); ?></a></li> 
    591                     <li><a href="#tab-3"><?php _e( 'Images source', 'joufpn' ); ?></a></li> 
    592                     <li><a href="#tab-4"><?php _e( 'Advanced', 'joufpn' ); ?></a></li> 
     603                    <li><a href="#tab-1"><?php _e( 'Content source', 'wpcufpn' ); ?></a></li> 
     604                    <li><a href="#tab-2"><?php _e( 'Display and theme', 'wpcufpn' ); ?></a></li> 
     605                    <li><a href="#tab-3"><?php _e( 'Images source', 'wpcufpn' ); ?></a></li> 
     606                    <li><a href="#tab-4"><?php _e( 'Advanced', 'wpcufpn' ); ?></a></li> 
    593607                </ul> 
    594608 
    595                 <div id="tab-1" class="metabox_tabbed_content joufpntabs"> 
     609                <div id="tab-1" class="metabox_tabbed_content wpcufpntabs"> 
    596610                    <?php $this->displayContentSourceTab(); ?> 
    597611                </div> 
     
    621635        global $post; 
    622636        $checked = array(); 
    623         $settings = get_post_meta( $post->ID, '_joufpn_settings', true ); 
     637        $settings = get_post_meta( $post->ID, '_wpcufpn_settings', true ); 
    624638        if( empty( $settings ) ) 
    625639            $settings = $this->_field_defaults; 
     
    634648            'tab-1-1' => array( 
    635649                'id'        => 'tab-src_category', 
    636                 'name'      => __( 'Post categories', 'joufpn' ), 
     650                'name'      => __( 'Post categories', 'wpcufpn' ), 
    637651                'value'     => 'src_category', 
    638652                'method'    => array( $this, 'displayContentSourceCategoryTab' ) 
     
    640654            'tab-1-2' => array( 
    641655                'id'    => 'tab-src_page', 
    642                 'name'  => __( 'Pages', 'joufpn' ), 
     656                'name'  => __( 'Pages', 'wpcufpn' ), 
    643657                'value'     => 'src_page', 
    644658                'method'    => array( $this, 'displayContentSourcePageTab' ) 
    645659            ) 
    646660        ); 
    647         $tabs = apply_filters( 'joufpn_src_type', $tabs ); 
     661        $tabs = apply_filters( 'wpcufpn_src_type', $tabs ); 
    648662        ?> 
    649663 
     
    657671            <?php $idx=0; ?> 
    658672            <?php foreach( $tabs as $tabhref => $tab ) : ?> 
    659             <li><input type="radio" name="joufpn_source_type" id="sct<?php echo ++$idx; ?>" value="<?php echo $tab['value']; ?>" class="source_type_sel" <?php echo $source_type_checked[$tab['value']]; ?> /> 
     673            <li><input type="radio" name="wpcufpn_source_type" id="sct<?php echo ++$idx; ?>" value="<?php echo $tab['value']; ?>" class="source_type_sel" <?php echo $source_type_checked[$tab['value']]; ?> /> 
    660674                <label for="sct<?php echo ++$idx; ?>" class="post_radio"><?php echo $tab['name']; ?></label></li> 
    661675            <?php endforeach; ?> 
     
    677691    private function displayDisplayThemeTab() { 
    678692        global $post; 
    679         $settings = get_post_meta( $post->ID, '_joufpn_settings', true ); 
     693        $settings = get_post_meta( $post->ID, '_wpcufpn_settings', true ); 
    680694        if( empty( $settings ) ) 
    681695            $settings = $this->_field_defaults; 
    682696         
     697        if( isset($settings['show_title']) ) 
     698            $show_title_checked[$settings['show_title']] = ' checked="checked"'; 
    683699        if( isset($settings['pagination']) ) 
    684700            $pagination_selected[$settings['pagination']] = ' selected="selected"'; 
     
    686702            $units_selected[$settings['total_width_unit']] = ' selected="selected"'; 
    687703         
    688         echo '<div class="jou-inner-admin-col">'; 
     704        echo '<div class="wpcu-inner-admin-col">'; 
    689705         
    690706        // -block---------------------------------- // 
    691         echo '<div class="jou-inner-admin-block">'; 
     707        echo '<div class="wpcu-inner-admin-block">'; 
    692708        echo '<ul class="fields">'; 
    693709         
    694         echo '<li class="field"><label for="amount_pages" class="coltab">' . __( 'Number of pages with arts', 'joufpn' ) . '</label>' . 
    695             '<input id="amount_pages" type="text" name="joufpn_amount_pages" value="' . htmlspecialchars( isset($settings['amount_pages'])?$settings['amount_pages']:'' ) . '" class="short-text" /></li>'; 
    696         echo '<li class="field"><label for="amount_cols" class="coltab">' . __( 'Number of columns', 'joufpn' ) . '</label>' . 
    697             '<input id="amount_cols" type="text" name="joufpn_amount_cols" value="' . htmlspecialchars( isset($settings['amount_cols'])?$settings['amount_cols']:'' ) . '" class="short-text" /></li>'; 
     710        /** Show title radio button set **/ 
     711        echo '<li class="field"><label class="coltab">' . __( 'Show title', 'wpcufpn' ) . '</label>' . 
     712                '<span class="radioset">' . 
     713                '<input id="show_title1" type="radio" name="wpcufpn_show_title" value="0" ' . (isset($show_title_checked[0])?$show_title_checked[0]:'') . '/>' . 
     714                '<label for="show_title1">' . __('Off', 'wpcufpn') . '</label>' . 
     715                '<input id="show_title2" type="radio" name="wpcufpn_show_title" value="1" ' . (isset($show_title_checked[1])?$show_title_checked[1]:'') . '/>' . 
     716                '<label for="show_title2">' . __('On', 'wpcufpn') . '</label>' . 
     717                '</span>'; 
     718        echo '</li>'; 
     719         
     720        echo '<li class="field"><label for="amount_pages" class="coltab">' . __( 'Number of pages with arts', 'wpcufpn' ) . '</label>' . 
     721            '<input id="amount_pages" type="text" name="wpcufpn_amount_pages" value="' . htmlspecialchars( isset($settings['amount_pages'])?$settings['amount_pages']:'' ) . '" class="short-text" /></li>'; 
     722        echo '<li class="field"><label for="amount_cols" class="coltab">' . __( 'Number of columns', 'wpcufpn' ) . '</label>' . 
     723            '<input id="amount_cols" type="text" name="wpcufpn_amount_cols" value="' . htmlspecialchars( isset($settings['amount_cols'])?$settings['amount_cols']:'' ) . '" class="short-text" /></li>'; 
    698724        /* Deactivated for now (vertical sliders) , TODO: reactivate 
    699         echo '<li class="field"><label for="amount_rows" class="coltab">' . __( 'Number of rows', 'joufpn' ) . '</label>' . 
    700             '<input id="amount_rows" type="text" name="joufpn_amount_rows" value="' . htmlspecialchars( $settings['amount_rows'] ) . '" class="short-text" /></li>'; 
     725        echo '<li class="field"><label for="amount_rows" class="coltab">' . __( 'Number of rows', 'wpcufpn' ) . '</label>' . 
     726            '<input id="amount_rows" type="text" name="wpcufpn_amount_rows" value="' . htmlspecialchars( $settings['amount_rows'] ) . '" class="short-text" /></li>'; 
    701727        */ 
    702728         
    703729        /** Pagination drop-down **/ 
    704         echo '<li class="field"><label for="pagination" class="coltab">' . __( 'Pagination', 'joufpn' ) . '</label>' . 
    705                 '<select id="pagination" name="joufpn_pagination">'; 
     730        echo '<li class="field"><label for="pagination" class="coltab">' . __( 'Pagination', 'wpcufpn' ) . '</label>' . 
     731                '<select id="pagination" name="wpcufpn_pagination">'; 
    706732        foreach( $this->_pagination_values as $value=>$text ) { 
    707733            echo '<option value="' . $value . '" ' . (isset($pagination_selected[$value])?$pagination_selected[$value]:'') . '>'; 
    708             echo htmlspecialchars( __( $text, 'joufpn' ) ); 
     734            echo htmlspecialchars( __( $text, 'wpcufpn' ) ); 
    709735            echo '</option>'; 
    710736        } 
    711737        echo '</select></li>'; 
    712738         
    713         echo '<li class="field"><label for="max_elts" class="coltab">' . __( 'Max number of elements', 'joufpn' ) . '</label>' . 
    714                 '<input id="max_elts" type="text" name="joufpn_max_elts" value="' . htmlspecialchars( isset($settings['max_elts'])?$settings['max_elts']:'' ) . '" class="short-text" /></li>'; 
    715         echo '<li class="field"><label for="total_width" class="coltab">' . __( 'Total width', 'joufpn' ) . '</label>' . 
    716                 '<input id="total_width" type="text" name="joufpn_total_width" value="' . htmlspecialchars( isset($settings['total_width'])?$settings['total_width']:'' ) . '" class="short-text" />'; 
     739        echo '<li class="field"><label for="max_elts" class="coltab">' . __( 'Max number of elements', 'wpcufpn' ) . '</label>' . 
     740                '<input id="max_elts" type="text" name="wpcufpn_max_elts" value="' . htmlspecialchars( isset($settings['max_elts'])?$settings['max_elts']:'' ) . '" class="short-text" /></li>'; 
     741        echo '<li class="field"><label for="total_width" class="coltab">' . __( 'Total width', 'wpcufpn' ) . '</label>' . 
     742                '<input id="total_width" type="text" name="wpcufpn_total_width" value="' . htmlspecialchars( isset($settings['total_width'])?$settings['total_width']:'' ) . '" class="short-text" />'; 
    717743         
    718744        /** Width units drop-down **/ 
    719         echo '<select id="total_width_unit" name="joufpn_total_width_unit">'; 
     745        echo '<select id="total_width_unit" name="wpcufpn_total_width_unit">'; 
    720746        foreach( $this->_width_unit_values as $value=>$text ) { 
    721747            echo '<option value="' . $value . '" ' . $units_selected[$value] . '>' . 
     
    724750        echo '</select></li>'; 
    725751         
    726         do_action( 'joufpn_displayandtheme_add_fields', $settings ); 
     752        do_action( 'wpcufpn_displayandtheme_add_fields', $settings ); 
    727753        echo '</ul>';   //fields 
    728         echo '</div>';  //jou-inner-admin-block 
     754        echo '</div>';  //wpcu-inner-admin-block 
    729755        // ---------------------------------------- // 
    730      
    731         if( isset($settings['crop_title']) ) 
    732             $crop_title_checked[$settings['crop_title']] = ' checked="checked"'; 
    733          
    734         // -block---------------------------------- // 
    735         echo '<div class="jou-inner-admin-block with-title with-border">'; 
    736         echo '<h4>Title</h4>'; 
    737         echo '<ul class="fields">'; 
    738          
    739         /** Crop title radio button set **/ 
    740         echo '<li class="field"><label class="coltab">' . __( 'Crop title type', 'joufpn' ) . '</label>' . 
    741             '<span class="radioset">' . 
    742                 '<input id="crop_title1" type="radio" name="joufpn_crop_title" value="0" ' . (isset($crop_title_checked[0])?$crop_title_checked[0]:'') . '/>' . 
    743                 '<label for="crop_title1">' . __('Words', 'joufpn') . '</label>' . 
    744                 '<input id="crop_title2" type="radio" name="joufpn_crop_title" value="1" ' . (isset($crop_title_checked[1])?$crop_title_checked[1]:'') . '/>' . 
    745                 '<label for="crop_title2">' . __('Chars', 'joufpn') . '</label>' . 
    746                 '<input id="crop_title3" type="radio" name="joufpn_crop_title" value="2" ' . (isset($crop_title_checked[2])?$crop_title_checked[2]:'') . '/>' . 
    747                 '<label for="crop_title3">' . __('Lines', 'joufpn') . '</label>' . 
    748             '</span>'; 
    749         echo '</li>'; 
    750          
    751         echo '<li class="field"><label for="crop_title_len" class="coltab">' . __( 'Crop length', 'joufpn' ) . '</label>' . 
    752                 '<input id="crop_title_len" type="text" name="joufpn_crop_title_len" value="' . htmlspecialchars( isset($settings['crop_title_len'])?$settings['crop_title_len']:'' ) . '" class="short-text" /></li>'; 
    753         echo '</ul>';   //fields 
    754         echo '</div>';  //jou-inner-admin-block 
    755         // ---------------------------------------- // 
    756          
    757         if( isset($settings['crop_text']) ) 
    758             $crop_text_checked[$settings['crop_text']] = ' checked="checked"'; 
    759          
    760         // -block---------------------------------- // 
    761         echo '<div class="jou-inner-admin-block with-title with-border">'; 
    762         echo '<h4>Text</h4>'; 
    763         echo '<ul class="fields">'; 
    764          
    765         /** Crop text radio button set **/ 
    766         echo '<li class="field"><label class="coltab">' . __( 'Crop text type', 'joufpn' ) . '</label>' . 
    767             '<span class="radioset">' . 
    768                 '<input id="crop_text1" type="radio" name="joufpn_crop_text" value="0" ' . (isset($crop_text_checked[0])?$crop_text_checked[0]:'') . '/>' . 
    769                 '<label for="crop_text1">' . __('Words', 'joufpn') . '</label>' . 
    770                 '<input id="crop_text2" type="radio" name="joufpn_crop_text" value="1" ' . (isset($crop_text_checked[1])?$crop_text_checked[1]:'') . '/>' . 
    771                 '<label for="crop_text2">' . __('Chars', 'joufpn') . '</label>' . 
    772                 '<input id="crop_text3" type="radio" name="joufpn_crop_text" value="2" ' . (isset($crop_text_checked[2])?$crop_text_checked[2]:'') . '/>' . 
    773                 '<label for="crop_text3">' . __('Lines', 'joufpn') . '</label>' . 
    774             '</span>'; 
    775         echo '</li>'; 
    776          
    777         echo '<li class="field"><label for="crop_text_len" class="coltab">' . __( 'Crop length', 'joufpn' ) . '</label>' . 
    778                 '<input id="crop_text_len" type="text" name="joufpn_crop_text_len" value="' . htmlspecialchars( isset($settings['crop_text_len'])?$settings['crop_text_len']:'' ) . '" class="short-text" /></li>'; 
    779         echo '</ul>';   //fields 
    780         echo '</div>';  //jou-inner-admin-block 
    781         // ---------------------------------------- // 
    782          
    783         if( isset($settings['autoanimation']) ) 
    784             $autoanim_checked[$settings['autoanimation']] = ' checked="checked"'; 
    785         if( isset($settings['autoanimation_trans']) ) 
    786             $transition_selected[$settings['autoanimation_trans']] = ' selected="selected"'; 
    787          
    788         // -block---------------------------------- // 
    789         echo '<div class="jou-inner-admin-block with-title with-border">'; 
    790         echo '<h4>Animation</h4>'; 
    791         echo '<ul class="fields">'; 
    792          
    793         /** Autoanimation radio button set **/ 
    794         echo '<li class="field"><label class="coltab">' . __( 'Autoanimation', 'joufpn' ) . '</label>' . 
    795             '<span class="radioset">' .  
    796                 '<input id="autoanimation1" type="radio" name="joufpn_autoanimation" value="0" ' . (isset($autoanim_checked[0])?$autoanim_checked[0]:'') . '/>' . 
    797                 '<label for="autoanimation1">' . __('Off', 'joufpn') . '</label>' . 
    798                 '<input id="autoanimation2" type="radio" name="joufpn_autoanimation" value="1" ' . (isset($autoanim_checked[1])?$autoanim_checked[1]:'') . '/>' . 
    799                 '<label for="autoanimation2">' . __('On', 'joufpn') . '</label>' . 
    800             '</span>'; 
    801         echo '</li>'; 
    802          
    803         /** Autoanimation transition drop-down **/ 
    804         echo '<li class="field"><label for="autoanimation_trans" class="coltab">' . __( 'Autoanimation transition', 'joufpn' ) . '</label>' . 
    805                 '<select id="autoanimation_trans" name="joufpn_autoanimation_trans">'; 
    806         foreach( $this->_autoanim_trans_values as $value=>$text ) { 
    807             echo '<option value="' . $value . '" ' . (isset($transition_selected[$value])?$transition_selected[$value]:'') . '>' . 
    808                     $text . '</option>'; 
    809         } 
    810         echo '</select></li>'; 
    811          
    812         echo '</ul>';   //fields 
    813         echo '</div>';  //jou-inner-admin-block 
    814         // ---------------------------------------- // 
    815          
    816         echo '</div>';  //jou-inner-admin-col 
    817         echo '<div class="jou-inner-admin-col">'; 
     756         
     757        do_action( 'wpcufpn_displaytheme_col1_add_fields', $settings ); 
     758         
     759        echo '</div>';  //wpcu-inner-admin-col 
     760        echo '<div class="wpcu-inner-admin-col">'; 
    818761         
    819762        if( isset($settings['theme']) ) 
     
    821764         
    822765        // -block---------------------------------- // 
    823         echo '<div class="jou-inner-admin-block with-title with-border">'; 
     766        echo '<div class="wpcu-inner-admin-block with-title with-border">'; 
    824767        echo '<h4>Theme choice and preview</h4>'; 
    825768        echo '<ul class="fields">'; 
    826769         
    827770        /** Theme drop-down **/ 
    828         echo '<li class="field"><label for="theme" class="coltab">' . __( 'Theme', 'joufpn' ) . '</label>' . 
    829                 '<select id="theme" name="joufpn_theme">'; 
     771        echo '<li class="field"><label for="theme" class="coltab">' . __( 'Theme', 'wpcufpn' ) . '</label>' . 
     772                '<select id="theme" name="wpcufpn_theme">'; 
    830773        $all_themes = (array)$this->themeLister(); 
    831774        foreach( $all_themes as $dir=>$theme ) { 
     
    837780         
    838781        echo '</ul>';   //fields 
    839         echo '<div class="joufpn-theme-preview">'; 
     782        echo '<div class="wpcufpn-theme-preview">'; 
    840783         
    841784        /** enforce default (first found theme) **/ 
     
    856799        } 
    857800        echo '</div>'; 
    858         echo '</div>';  //jou-inner-admin-block 
     801        echo '</div>';  //wpcu-inner-admin-block 
    859802        // ---------------------------------------- // 
    860803         
     
    862805         
    863806        // -block---------------------------------- // 
    864         echo '<div id="joufpn_config_zone" class="jou-inner-admin-block with-title with-border">'; 
     807        echo '<div id="wpcufpn_config_zone" class="wpcu-inner-admin-block with-title with-border">'; 
    865808        echo '<h4>A news item</h4>'; 
    866         echo '<div class="joufpn-drag-config"></div>'; 
     809        echo '<div class="wpcufpn-drag-config"></div>'; 
    867810        echo '<ul class="arrow_col">'; 
    868811        echo '<li>Title</li>'; 
     
    875818        echo '</ul>';   //arrow_col 
    876819        echo '<div class="drop_zone_col">'; 
    877         echo '<div id="box_top" class="jou-inner-admin-block with-title with-border top">'; 
     820        echo '<div id="box_top" class="wpcu-inner-admin-block with-title with-border top">'; 
    878821        echo '<h5>Top</h5><ul class="sortable">'; 
    879822        if( isset($settings['box_top']) && !empty($settings['box_top']) && $settings['box_top'] ) 
     
    881824        echo '</ul>'; 
    882825        echo '</div>'; 
    883         echo '<div id="box_left" class="jou-inner-admin-block with-title with-border left">'; 
     826        echo '<div id="box_left" class="wpcu-inner-admin-block with-title with-border left">'; 
    884827        echo '<h5>Left</h5><ul class="sortable">'; 
    885828        if( isset($settings['box_left']) && !empty($settings['box_left']) && $settings['box_left'] ) 
     
    888831        echo '</ul>'; 
    889832        echo '</div>'; 
    890         echo '<div id="box_right" class="jou-inner-admin-block with-title with-border right">'; 
     833        echo '<div id="box_right" class="wpcu-inner-admin-block with-title with-border right">'; 
    891834        echo '<h5>Right</h5><ul class="sortable">'; 
    892835        if( isset($settings['box_right']) && !empty($settings['box_right']) && $settings['box_right'] ) 
     
    895838        echo '</ul>'; 
    896839        echo '</div>'; 
    897         echo '<div id="box_bottom" class="jou-inner-admin-block with-title with-border bottom">'; 
     840        echo '<div id="box_bottom" class="wpcu-inner-admin-block with-title with-border bottom">'; 
    898841        echo '<h5>Bottom</h5><ul class="sortable">'; 
    899842        if( isset($settings['box_bottom']) && !empty($settings['box_bottom']) && $settings['box_bottom'] ) 
     
    907850        echo '</div>';  //drop_zone_col 
    908851         
    909         echo '</div>';  //jou-inner-admin-block #joufpn_config_zone 
    910         echo '<input type="hidden" id="joufpn_box_top" name="joufpn_box_top" value="' . htmlspecialchars( $box_top ) . '"/>'; 
    911         echo '<input type="hidden" id="joufpn_box_left" name="joufpn_box_left" value="' . htmlspecialchars( $box_left ) . '"/>'; 
    912         echo '<input type="hidden" id="joufpn_box_right" name="joufpn_box_right" value="' . htmlspecialchars( $box_right ) . '"/>'; 
    913         echo '<input type="hidden" id="joufpn_box_bottom" name="joufpn_box_bottom" value="' . htmlspecialchars( $box_bottom ) . '"/>'; 
     852        echo '</div>';  //wpcu-inner-admin-block #wpcufpn_config_zone 
     853        echo '<input type="hidden" id="wpcufpn_box_top" name="wpcufpn_box_top" value="' . htmlspecialchars( $box_top ) . '"/>'; 
     854        echo '<input type="hidden" id="wpcufpn_box_left" name="wpcufpn_box_left" value="' . htmlspecialchars( $box_left ) . '"/>'; 
     855        echo '<input type="hidden" id="wpcufpn_box_right" name="wpcufpn_box_right" value="' . htmlspecialchars( $box_right ) . '"/>'; 
     856        echo '<input type="hidden" id="wpcufpn_box_bottom" name="wpcufpn_box_bottom" value="' . htmlspecialchars( $box_bottom ) . '"/>'; 
    914857        // ---------------------------------------- // 
    915858         
    916         echo '</div>';  //jou-inner-admin-col 
     859        echo '</div>';  //wpcu-inner-admin-col 
    917860    } 
    918861     
     
    923866    private function displayImageSourceTab() { 
    924867        global $post; 
    925         $settings = get_post_meta( $post->ID, '_joufpn_settings', true ); 
     868        $settings = get_post_meta( $post->ID, '_wpcufpn_settings', true ); 
    926869        if( empty( $settings ) ) 
    927870            $settings = $this->_field_defaults; 
     
    929872        if( isset($settings['thumb_img']) ) 
    930873            $thumb_selected[$settings['thumb_img']] = ' selected="selected"'; 
    931         if( isset($settings['crop_img']) ) 
    932             $crop_img_checked[$settings['crop_img']] = ' checked="checked"'; 
    933874         
    934875        echo '<ul class="fields">'; 
    935876         
    936877        /** Thumbnail image src drop-down **/ 
    937         echo '<li class="field"><label for="thumb_img" class="coltab">' . __( 'Thumbnail image', 'joufpn' ) . '</label>' . 
    938             '<select id="thumb_img" name="joufpn_thumb_img">'; 
     878        echo '<li class="field"><label for="thumb_img" class="coltab">' . __( 'Thumbnail image', 'wpcufpn' ) . '</label>' . 
     879            '<select id="thumb_img" name="wpcufpn_thumb_img">'; 
    939880        foreach( $this->_thumb_img_values as $value=>$text ) { 
    940881            echo '<option value="' . $value . '" ' . $thumb_selected[$value] . '>'; 
    941             echo htmlspecialchars( __( $text, 'joufpn' ) ); 
     882            echo htmlspecialchars( __( $text, 'wpcufpn' ) ); 
    942883            echo '</option>'; 
    943884        } 
     
    945886         
    946887        /** Thumbnail size combined width x height setting fields **/ 
    947         echo '<li class="field"><label for="thumb_width" class="coltab">' . __( 'Thumbnail size', 'joufpn' ) . '</label>' . 
     888        echo '<li class="field"><label for="thumb_width" class="coltab">' . __( 'Thumbnail size', 'wpcufpn' ) . '</label>' . 
    948889                '<span class="width_height_settings">' . 
    949                 '<input id="thumb_width" type="text" name="joufpn_thumb_width" value="' . htmlspecialchars( isset($settings['thumb_width'])?$settings['thumb_width']:'' ) . '" class="short-text" />' . 
     890                '<input id="thumb_width" type="text" name="wpcufpn_thumb_width" value="' . htmlspecialchars( isset($settings['thumb_width'])?$settings['thumb_width']:'' ) . '" class="short-text" />' . 
    950891                'x' . 
    951                 '<input id="thumb_height" type="text" name="joufpn_thumb_height" value="' . htmlspecialchars( isset($settings['thumb_height'])?$settings['thumb_height']:'' ) . '" class="short-text" />' . 
     892                '<input id="thumb_height" type="text" name="wpcufpn_thumb_height" value="' . htmlspecialchars( isset($settings['thumb_height'])?$settings['thumb_height']:'' ) . '" class="short-text" />' . 
    952893                'px' . 
    953894            '</span></li>'; 
    954895         
    955         /** Crop images switch **/ 
    956         echo '<li class="field"><label class="coltab">' . __( 'Crop images to fit size', 'joufpn' ) . '</label>' . 
    957                 '<span class="radioset">' . 
    958                 '<input id="crop_img1" type="radio" name="joufpn_crop_img" value="0" ' . (isset($crop_img_checked[0])?$crop_img_checked[0]:'') . '/>' . 
    959                 '<label for="crop_img1">' . __('Off', 'joufpn') . '</label>' . 
    960                 '<input id="crop_img2" type="radio" name="joufpn_crop_img" value="1" ' . (isset($crop_img_checked[1])?$crop_img_checked[1]:'') . '/>' . 
    961                 '<label for="crop_img2">' . __('On', 'joufpn') . '</label>' . 
    962                 '</span>'; 
    963         echo '</li>'; 
    964         echo '</ul>';   //fields 
     896        do_action( 'wpcufpn_displayimagesource_crop_add_fields', $settings ); 
    965897         
    966898        /** Sliders **/ 
    967899        // -block---------------------------------- // 
    968         echo '<div id="margin_sliders" class="jou-inner-admin-block with-title with-border">'; 
     900        echo '<div id="margin_sliders" class="wpcu-inner-admin-block with-title with-border">'; 
    969901        echo '<h4>Image margin</h4>'; 
    970902        echo '<ul class="fields">'; 
    971         echo '<li class="field"><label for="margin_left" class="coltab">' . __( 'Margin left', 'joufpn' ) . '</label>' . 
     903        echo '<li class="field"><label for="margin_left" class="coltab">' . __( 'Margin left', 'wpcufpn' ) . '</label>' . 
    972904                '<span id="slider_margin_left" class="slider"></span>' . 
    973                 '<input id="margin_left" type="text" name="joufpn_margin_left" value="' . htmlspecialchars( isset($settings['margin_left'])?$settings['margin_left']:'' ) . '" class="short-text" /></li>'; 
    974         echo '<li class="field"><label for="margin_top" class="coltab">' . __( 'Margin top', 'joufpn' ) . '</label>' . 
     905                '<input id="margin_left" type="text" name="wpcufpn_margin_left" value="' . htmlspecialchars( isset($settings['margin_left'])?$settings['margin_left']:'' ) . '" class="short-text" /></li>'; 
     906        echo '<li class="field"><label for="margin_top" class="coltab">' . __( 'Margin top', 'wpcufpn' ) . '</label>' . 
    975907                '<span id="slider_margin_top" class="slider"></span>' . 
    976                 '<input id="margin_top" type="text" name="joufpn_margin_top" value="' . htmlspecialchars( isset($settings['margin_top'])?$settings['margin_top']:'' ) . '" class="short-text" /></li>'; 
    977         echo '<li class="field"><label for="margin_right" class="coltab">' . __( 'Margin right', 'joufpn' ) . '</label>' . 
     908                '<input id="margin_top" type="text" name="wpcufpn_margin_top" value="' . htmlspecialchars( isset($settings['margin_top'])?$settings['margin_top']:'' ) . '" class="short-text" /></li>'; 
     909        echo '<li class="field"><label for="margin_right" class="coltab">' . __( 'Margin right', 'wpcufpn' ) . '</label>' . 
    978910                '<span id="slider_margin_right" class="slider"></span>' . 
    979                 '<input id="margin_right" type="text" name="joufpn_margin_right" value="' . htmlspecialchars( isset($settings['margin_right'])?$settings['margin_right']:'' ) . '" class="short-text" /></li>'; 
    980         echo '<li class="field"><label for="margin_bottom" class="coltab">' . __( 'Margin bottom', 'joufpn' ) . '</label>' . 
     911                '<input id="margin_right" type="text" name="wpcufpn_margin_right" value="' . htmlspecialchars( isset($settings['margin_right'])?$settings['margin_right']:'' ) . '" class="short-text" /></li>'; 
     912        echo '<li class="field"><label for="margin_bottom" class="coltab">' . __( 'Margin bottom', 'wpcufpn' ) . '</label>' . 
    981913                '<span id="slider_margin_bottom" class="slider"></span>' . 
    982                 '<input id="margin_bottom" type="text" name="joufpn_margin_bottom" value="' . htmlspecialchars( isset($settings['margin_bottom'])?$settings['margin_bottom']:'' ) . '" class="short-text" /></li>'; 
     914                '<input id="margin_bottom" type="text" name="wpcufpn_margin_bottom" value="' . htmlspecialchars( isset($settings['margin_bottom'])?$settings['margin_bottom']:'' ) . '" class="short-text" /></li>'; 
    983915        echo '</ul>';   //fields 
    984         echo '</div>';  //jou-inner-admin-block 
     916        echo '</div>';  //wpcu-inner-admin-block 
    985917        // ---------------------------------------- // 
    986918         
    987         do_action( 'joufpn_imagesource_add_fields', $settings ); 
     919        do_action( 'wpcufpn_imagesource_add_fields', $settings ); 
    988920    } 
    989921     
     
    994926    private function displayAdvancedTab() { 
    995927        global $post; 
    996         $settings = get_post_meta( $post->ID, '_joufpn_settings', true ); 
     928        $settings = get_post_meta( $post->ID, '_wpcufpn_settings', true ); 
    997929        if( empty( $settings ) ) 
    998930            $settings = $this->_field_defaults; 
     
    1000932        echo '<ul class="fields">'; 
    1001933         
    1002         echo '<li class="field"><label for="date_fmt" class="coltab">' . __( 'Date format', 'joufpn' ) . '</label>' . 
    1003             '<input id="date_fmt" type="text" name="joufpn_date_fmt" value="' . htmlspecialchars( isset($settings['date_fmt'])?$settings['date_fmt']:'' ) . '" class="short-text" /></li>'; 
    1004         echo '<li class="field"><label for="read_more" class="coltab">' . __( 'Read more text', 'joufpn' ) . '</label>' . 
    1005                 '<input id="read_more" type="text" name="joufpn_read_more" value="' . htmlspecialchars( isset($settings['read_more'])?$settings['read_more']:'' ) . '" class="short-text" /></li>'; 
    1006          
    1007         /** Default image upload field **/ 
    1008         echo '<li class="field"><label for="default_img" class="coltab">' . __( 'Default image', 'joufpn' ) . '</label>' . 
    1009                 '<input id="default_img" type="file" name="joufpn_default_img" value="' . htmlspecialchars( isset($settings['default_img'])?$settings['default_img']:'' ) . '" class="regular-text" />'; 
    1010         if( isset($settings['default_img']) && $settings['default_img'] ) 
    1011             echo '<img class="default_preview" src="' . $settings['default_img'] .  
    1012                 '" alt="' . __( 'Default image preview', 'joufpn' ) .  
    1013                 '" title="' . __( 'Default image preview', 'joufpn' ) . '"/>';       
    1014         echo '<input type="hidden" id="default_img_previous" name="joufpn_default_img_previous" value="' . htmlspecialchars( isset($settings['default_img'])?$settings['default_img']:'' ) . '" />'; 
    1015         echo '</li>'; 
    1016          
    1017         do_action( 'joufpn_advanced_add_fields', $settings ); 
     934        echo '<li class="field"><label for="date_fmt" class="coltab">' . __( 'Date format', 'wpcufpn' ) . '</label>' . 
     935            '<input id="date_fmt" type="text" name="wpcufpn_date_fmt" value="' . htmlspecialchars( isset($settings['date_fmt'])?$settings['date_fmt']:'' ) . '" class="short-text" /></li>'; 
     936         
     937        do_action( 'wpcufpn_displayadvanced_add_fields', $settings );    
    1018938         
    1019939        echo '</ul>';   //fields         
     
    1028948        global $post; 
    1029949        $checked = array(); 
    1030         $settings = get_post_meta( $post->ID, '_joufpn_settings', true ); 
     950        $settings = get_post_meta( $post->ID, '_wpcufpn_settings', true ); 
    1031951        if( empty( $settings ) ) 
    1032952            $settings = $this->_field_defaults; 
     
    1052972        $cats = get_categories(); 
    1053973        foreach( $cats as $cat ) { 
    1054             echo '<li><input id="ccb_' . $cat->term_id . '" type="checkbox" name="joufpn_source_category[]" value="' . 
     974            echo '<li><input id="ccb_' . $cat->term_id . '" type="checkbox" name="wpcufpn_source_category[]" value="' . 
    1055975                $cat->term_id . '" ' . $source_cat_checked[$cat->term_id] . ' class="cat_cb" />'; 
    1056976            echo '<label for="ccb_' . $cat->term_id . '" class="post_cb">' . $cat->name . '</label></li>'; 
     
    1060980         
    1061981        echo '<li class="field">'; 
    1062         echo '<label for="cat_source_order" class="coltab">' . __( 'Order by', 'joufpn' ) . '</label>'; 
    1063         echo '<select name="joufpn_cat_source_order" id="cat_source_order" >'; 
    1064         echo '<option value="date" ' . $source_order_selected['date'] . '>' . __( 'By date', 'joufpn' ) . '</option>'; 
    1065         echo '<option value="title" ' . $source_order_selected['title'] . '>' . __( 'By title', 'joufpn' ) . '</option>'; 
    1066         //echo '<option value="order" ' . $source_order_selected['order'] . '>' . __( 'By order', 'joufpn' ) . '</option>'; 
     982        echo '<label for="cat_source_order" class="coltab">' . __( 'Order by', 'wpcufpn' ) . '</label>'; 
     983        echo '<select name="wpcufpn_cat_source_order" id="cat_source_order" >'; 
     984        echo '<option value="date" ' . $source_order_selected['date'] . '>' . __( 'By date', 'wpcufpn' ) . '</option>'; 
     985        echo '<option value="title" ' . $source_order_selected['title'] . '>' . __( 'By title', 'wpcufpn' ) . '</option>'; 
     986        //echo '<option value="order" ' . $source_order_selected['order'] . '>' . __( 'By order', 'wpcufpn' ) . '</option>'; 
    1067987        echo '</select>'; 
    1068988        echo '</li>';   //field 
    1069989         
    1070990        echo '<li class="field">'; 
    1071         echo '<label for="cat_source_asc" class="coltab">' . __( 'News sort order', 'joufpn' ) . '</label>'; 
    1072         echo '<select name="joufpn_cat_source_asc" id="cat_source_asc">'; 
    1073         echo '<option value="asc" ' . $source_asc_selected['asc'] . '>' . __( 'Ascending', 'joufpn' ) . '</option>'; 
    1074         echo '<option value="desc" ' . $source_asc_selected['desc'] . '>' . __( 'Descending', 'joufpn' ) . '</option>'; 
     991        echo '<label for="cat_source_asc" class="coltab">' . __( 'News sort order', 'wpcufpn' ) . '</label>'; 
     992        echo '<select name="wpcufpn_cat_source_asc" id="cat_source_asc">'; 
     993        echo '<option value="asc" ' . $source_asc_selected['asc'] . '>' . __( 'Ascending', 'wpcufpn' ) . '</option>'; 
     994        echo '<option value="desc" ' . $source_asc_selected['desc'] . '>' . __( 'Descending', 'wpcufpn' ) . '</option>'; 
    1075995        echo '</select>'; 
    1076996        echo '</li>';   //field 
    1077997         
    1078         do_action( 'joufpn_source_category_add_fields', $settings ); 
     998        do_action( 'wpcufpn_source_category_add_fields', $settings ); 
    1079999         
    10801000        echo '</ul>';   //fields 
     
    10881008        global $post; 
    10891009        $checked = array(); 
    1090         $settings = get_post_meta( $post->ID, '_joufpn_settings', true ); 
     1010        $settings = get_post_meta( $post->ID, '_wpcufpn_settings', true ); 
    10911011        if( empty( $settings ) ) 
    10921012            $settings = $this->_field_defaults; 
     
    11071027         
    11081028        echo '<li class="field">'; 
    1109         echo '<label for="pg_source_order" class="coltab">' . __( 'Order by', 'joufpn' ) . '</label>'; 
    1110         echo '<select name="joufpn_pg_source_order" id="pg_source_order" >'; 
    1111         echo '<option value="order" ' . $source_order_selected['order'] . '>' . __( 'By order', 'joufpn' ) . '</option>'; 
    1112         echo '<option value="title" ' . $source_order_selected['title'] . '>' . __( 'By title', 'joufpn' ) . '</option>'; 
    1113         echo '<option value="date" ' . $source_order_selected['date'] . '>' . __( 'By date', 'joufpn' ) . '</option>'; 
     1029        echo '<label for="pg_source_order" class="coltab">' . __( 'Order by', 'wpcufpn' ) . '</label>'; 
     1030        echo '<select name="wpcufpn_pg_source_order" id="pg_source_order" >'; 
     1031        echo '<option value="order" ' . $source_order_selected['order'] . '>' . __( 'By order', 'wpcufpn' ) . '</option>'; 
     1032        echo '<option value="title" ' . $source_order_selected['title'] . '>' . __( 'By title', 'wpcufpn' ) . '</option>'; 
     1033        echo '<option value="date" ' . $source_order_selected['date'] . '>' . __( 'By date', 'wpcufpn' ) . '</option>'; 
    11141034        echo '</select>'; 
    11151035        echo '</li>';   //field 
    11161036         
    11171037        echo '<li class="field">'; 
    1118         echo '<label for="pg_source_asc" class="coltab">' . __( 'Pages sort order', 'joufpn' ) . '</label>'; 
    1119         echo '<select name="joufpn_pg_source_asc" id="pg_source_asc">'; 
    1120         echo '<option value="asc" ' . $source_asc_selected['asc'] . '>' . __( 'Ascending', 'joufpn' ) . '</option>'; 
    1121         echo '<option value="desc" ' . $source_asc_selected['desc'] . '>' . __( 'Descending', 'joufpn' ) . '</option>'; 
     1038        echo '<label for="pg_source_asc" class="coltab">' . __( 'Pages sort order', 'wpcufpn' ) . '</label>'; 
     1039        echo '<select name="wpcufpn_pg_source_asc" id="pg_source_asc">'; 
     1040        echo '<option value="asc" ' . $source_asc_selected['asc'] . '>' . __( 'Ascending', 'wpcufpn' ) . '</option>'; 
     1041        echo '<option value="desc" ' . $source_asc_selected['desc'] . '>' . __( 'Descending', 'wpcufpn' ) . '</option>'; 
    11221042        echo '</select>'; 
    11231043        echo '</li>';   //field 
     
    11691089    } 
    11701090    public function filter_mce_button( $buttons ) { 
    1171         array_push( $buttons, '|', 'joufpn_button' ); 
     1091        array_push( $buttons, '|', 'wpcufpn_button' ); 
    11721092        return $buttons; 
    11731093    } 
    11741094    public function filter_mce_plugin( $plugins ) { 
    1175         $plugins['joufpn'] = plugins_url( 'js/joufpn_tmce_plugin.js', dirname( __FILE__ ) ); 
     1095        $plugins['wpcufpn'] = plugins_url( 'js/wpcufpn_tmce_plugin.js', dirname( __FILE__ ) ); 
    11761096        return $plugins; 
    11771097    } 
     
    11801100            $mce_css .= ','; 
    11811101     
    1182         $mce_css .= plugins_url( 'css/joufpn_tmce_plugin.css', dirname( __FILE__ ) ); 
     1102        $mce_css .= plugins_url( 'css/wpcufpn_tmce_plugin.css', dirname( __FILE__ ) ); 
    11831103     
    11841104        return $mce_css; 
     
    11951115         
    11961116        echo '<script>'; 
    1197         echo "var joufpn_widgets = new Array();\n"; 
     1117        echo "var wpcufpn_widgets = new Array();\n"; 
    11981118        $widgets = get_posts( array( 'post_type'=>self::CUSTOM_POST_NEWS_WIDGET_NAME ) ); 
    11991119        foreach( $widgets as $widget ) 
    1200             echo "joufpn_widgets['$widget->ID']='$widget->post_title';\n"; 
     1120            echo "wpcufpn_widgets['$widget->ID']='$widget->post_title';\n"; 
    12011121        echo '</script>'; 
    12021122    } 
     
    12111131        if( $widget_id = $args['widget'] ) { 
    12121132            $widget = get_post( $widget_id ); 
    1213             $widget->settings = get_post_meta( $widget->ID, '_joufpn_settings', true ); 
     1133            $widget->settings = get_post_meta( $widget->ID, '_wpcufpn_settings', true ); 
    12141134            if( !empty( $widget->settings ) ) { 
    1215                 $front = new jouFPN_Front( $widget ); 
     1135                $front = new wpcuFPN_Front( $widget ); 
    12161136                $html .= $front->display( false ); 
    12171137            } else { 
  • wp-frontpage-news/trunk/inc/wp-fpn-widget.inc.php

    r783389 r789344  
    77 *  
    88 */ 
    9 class jouFPN_Widget extends WP_Widget { 
     9class wpcuFPN_Widget extends WP_Widget { 
     10     
     11    const PRO_VERSION_URL = 'http://www.wpcode-united.com/wordpress-plugin/wp-frontpage-news'; 
    1012     
    1113    /** 
     
    1517    public function __construct() { 
    1618        parent::__construct( 
    17             'joufpn_widget', // Base ID 
     19            'wpcufpn_widget', // Base ID 
    1820            'WP Front Page News Widget', // Name 
    19             array( 'description' => __( 'WP Front Page News Widget instance', 'joufpn' ), ) // Args 
     21            array( 'description' => __( 'WP Front Page News Widget instance', 'wpcufpn' ), ) // Args 
    2022        ); 
    2123    } 
     
    3032     */ 
    3133    public function widget( $args, $instance ) { 
     34        global $wpcu_wpfn; 
     35        if( !class_exists(wpcuWPFnProPlugin) && ( $wpcu_wpfn->widget_count ++ > 0 ) ) { 
     36            return false; 
     37        } 
     38         
    3239        echo $args['before_widget']; 
     40                 
     41        $widget = get_post( $instance['news_widget_id'] ); 
     42        $widget->settings = get_post_meta( $widget->ID, '_wpcufpn_settings', true ); 
     43        $front = new wpcuFPN_Front( $widget ); 
    3344         
    34         $widget = get_post( $instance['news_widget_id'] ); 
    35         $widget->settings = get_post_meta( $widget->ID, '_joufpn_settings', true ); 
    36         $front = new jouFPN_Front( $widget ); 
    37         $front->display(); 
     45        if( 
     46            isset( $front->widget->settings['show_title'] ) && 
     47            $front->widget->settings['show_title'] == 1 
     48        ) 
     49            echo $args['before_title'] . $front->widget->post_title . $args['after_title']; 
     50         
     51        $front->display( true, true ); 
    3852         
    3953        echo $args['after_widget']; 
     
    4862     */ 
    4963    public function form( $instance ) { 
     64        global $wpcu_wpfn; 
     65        if( !class_exists(wpcuWPFnProPlugin) && ( $wpcu_wpfn->widget_count ++ > 1 ) ) { 
     66            echo __( 'This widget can be used only once with the free version of the WP Frontpage News plugin.' ); 
     67            echo __( 'If you need to configure multiple instances of the widget, please check-out' ); 
     68            echo ' <a href="' . self::PRO_VERSION_URL . '">'; 
     69            echo __( 'the pro version.' ); 
     70            echo '</a>'; 
     71            return false; 
     72        } 
     73         
    5074        if ( isset( $instance[ 'news_widget_id' ] ) ) { 
    5175            $news_widget_id = $instance[ 'news_widget_id' ]; 
     
    5478                $news_widget_id = $widget->ID; 
    5579            } else { 
    56                 echo '<p>' . __( 'No Frontpage News Widget has been created.', 'joufpn' ) . '</p>'; 
     80                echo '<p>' . __( 'No Frontpage News Widget has been created.', 'wpcufpn' ) . '</p>'; 
    5781                //TODO: add link to widget creation edit page 
    58                 echo '<p>' . __( 'Please create one to use this widget.', 'joufpn' ) . '</p>'; 
     82                echo '<p>' . __( 'Please create one to use this widget.', 'wpcufpn' ) . '</p>'; 
    5983                $news_widget_id = 0; 
    6084                return false; 
     
    6286        } 
    6387        $selected[$news_widget_id] = ' selected="selected"'; 
    64         $widgets = get_posts( array( 'post_type'=>jouWPFnPlugin::CUSTOM_POST_NEWS_WIDGET_NAME ) ); 
     88        $widgets = get_posts( array( 'post_type'=>wpcuWPFnPlugin::CUSTOM_POST_NEWS_WIDGET_NAME ) ); 
    6589        ?> 
    6690        <p> 
    67         <label for="<?php echo $this->get_field_id( 'news_widget_id' ); ?>"><?php _e( 'News Widget:', 'joufpn' ); ?></label>  
     91        <label for="<?php echo $this->get_field_id( 'news_widget_id' ); ?>"><?php _e( 'News Widget:', 'wpcufpn' ); ?></label>  
    6892        <select id="<?php echo $this->get_field_id( 'news_widget_id' ); ?>" name="<?php echo $this->get_field_name( 'news_widget_id' ); ?>"> 
    6993        <?php foreach( $widgets as $widget ) : ?>        
     
    7397        </p> 
    7498        <?php 
     99        //echo 'number: ' . $this->number . '<br/>';                                    //Debug 
     100         
     101        //echo 'single widget done: ' . $wpcu_wpfn->single_widget_done . '<br/>';       //Debug 
     102         
    75103        wp_reset_postdata(); 
    76104    } 
     
    99127     */ 
    100128    private function findFirstWidget() { 
    101         $widgets = get_posts( array( 'post_type'=>jouWPFnPlugin::CUSTOM_POST_NEWS_WIDGET_NAME ) ); 
     129        $widgets = get_posts( array( 'post_type'=>wpcuWPFnPlugin::CUSTOM_POST_NEWS_WIDGET_NAME ) ); 
    102130        if( is_array( $widgets ) && !empty( $widgets ) ) { 
    103131            return array_shift( $widgets ); 
  • wp-frontpage-news/trunk/js/wpcufpn_front.js

    r785529 r789344  
    1 /** jouFPN front-end jQuery script v.0.1 **/ 
     1/** wpcuFPN front-end jQuery script v.0.1 **/ 
    22 
    33var currentSlide        = 0; 
     
    3333         
    3434        /** Setup slideshow containers heights **/ 
    35         $('.joufpn_container').each( function(i){ 
     35        $('.wpcufpn_container').each( function(i){ 
    3636            if( $(this).hasClass('horizontal') ) { 
    3737                height = 0; 
     
    5656    function auto_animate() { 
    5757        if( autoanimate ) { 
    58             scrollSlideshow( $.Event( 'dblclick', { target: $('.joufpn_container:first') } ) ); 
     58            scrollSlideshow( $.Event( 'dblclick', { target: $('.wpcufpn_container:first') } ) ); 
    5959            setTimeout(auto_animate,5000); 
    6060        } 
     
    7676         
    7777        if(autoanimate) { 
    78             slideLength = Math.floor( $('.joufpn_listposts:first',$(event.target).parent()).width() / $('.joufpn_container:first',$(event.target).parent()).width() ); 
     78            slideLength = Math.floor( $('.wpcufpn_listposts:first',$(event.target).parent()).width() / $('.wpcufpn_container:first',$(event.target).parent()).width() ); 
    7979            slider = $((event.target).parent()); 
    8080        } else { 
    81             slideLength = Math.floor( $('.joufpn_listposts:first',$(event.target.parentElement).parent()).width() / $('.joufpn_container:first',$(event.target.parentElement).parent()).width() ); 
     81            slideLength = Math.floor( $('.wpcufpn_listposts:first',$(event.target.parentElement).parent()).width() / $('.wpcufpn_container:first',$(event.target.parentElement).parent()).width() ); 
    8282            slider = $($(event.target.parentElement).parent()); 
    8383            //slider = $((event.target).parent); 
     
    132132                console_log( 'sliding to: ' + currentSlide ); 
    133133                if( 'fade' == transition_type ) 
    134                     $('.joufpn_listposts:first',slider).fadeOut(); 
    135                 $('.joufpn_listposts:first',slider).animate({ 
    136                     'marginLeft' : $('.joufpn_container:first',slider).width() * currentSlide 
     134                    $('.wpcufpn_listposts:first',slider).fadeOut(); 
     135                $('.wpcufpn_listposts:first',slider).animate({ 
     136                    'marginLeft' : $('.wpcufpn_container:first',slider).width() * currentSlide 
    137137                }, speed); 
    138138                if( 'fade' == transition_type ) 
    139                     $('.joufpn_listposts:first',slider).fadeIn(); 
     139                    $('.wpcufpn_listposts:first',slider).fadeIn(); 
    140140            } 
    141141            return; 
     
    144144         
    145145        if( 'fade' == transition_type ) 
    146             $('.joufpn_listposts:first',slider).fadeOut(); 
    147         $('.joufpn_listposts:first',slider).animate({ 
    148             'marginLeft' : $('.joufpn_container:first',slider).width() * currentSlide 
     146            $('.wpcufpn_listposts:first',slider).fadeOut(); 
     147        $('.wpcufpn_listposts:first',slider).animate({ 
     148            'marginLeft' : $('.wpcufpn_container:first',slider).width() * currentSlide 
    149149        }, speed); 
    150150        if( 'fade' == transition_type ) 
    151             $('.joufpn_listposts:first',slider).fadeIn(); 
     151            $('.wpcufpn_listposts:first',slider).fadeIn(); 
    152152        //$('#image_ph ul#pagination li.on').removeClass('on'); 
    153153        //$('#image_ph ul#pagination li.sp_' + (-currentSlide) ).addClass('on'); 
     
    161161            amp = 15; 
    162162        } 
    163         $('.joufpn_listposts:first',slider).animate({ 
    164             'marginLeft' : ( $('.joufpn_container:first',slider).width() * currentSlide ) + amp 
     163        $('.wpcufpn_listposts:first',slider).animate({ 
     164            'marginLeft' : ( $('.wpcufpn_container:first',slider).width() * currentSlide ) + amp 
    165165        }, 'fast', 'swing', function() { 
    166             $('.joufpn_listposts:first',slider).animate({ 
    167                 'marginLeft' : ( $('.joufpn_container:first',slider).width() * currentSlide ) 
     166            $('.wpcufpn_listposts:first',slider).animate({ 
     167                'marginLeft' : ( $('.wpcufpn_container:first',slider).width() * currentSlide ) 
    168168            }, 'fast'); 
    169169        }); 
  • wp-frontpage-news/trunk/js/wpcufpn_tmce_plugin.js

    r785529 r789344  
    1 /** jouFPN Custom plugin for TinyME Editor v.0.1 **/ 
     1/** wpcuFPN Custom plugin for TinyME Editor v.0.1 **/ 
    22(function($){ 
    3     var joufpn_select_open = false; 
     3    var wpcufpn_select_open = false; 
    44     
    5     tinymce.create('tinymce.plugins.joufpn', { 
     5    tinymce.create('tinymce.plugins.wpcufpn', { 
    66         
    77        init : function(ed, url) { 
     
    1212             
    1313            ed.onBeforeSetContent.add(function(ed, o) { 
    14                 o.content = t._do_joufpn(o.content); 
     14                o.content = t._do_wpcufpn(o.content); 
    1515            }); 
    1616             
    1717            ed.onPostProcess.add(function(ed, o) { 
    1818                if (o.get) 
    19                     o.content = t._get_joufpn(o.content); 
     19                    o.content = t._get_wpcufpn(o.content); 
    2020            }); 
    2121        }, 
    2222         
    23         _do_joufpn : function(co) { 
     23        _do_wpcufpn : function(co) { 
    2424            return co.replace(/\[frontpage_news([^\]]*)\]/g, function(a,b){ 
    25                 return '<img src="'+tinymce.baseURL+'/plugins/wpgallery/img/t.gif" class="joufpned mceItem" title="frontpage_news'+tinymce.DOM.encode(b)+'" />'; 
     25                return '<img src="'+tinymce.baseURL+'/plugins/wpgallery/img/t.gif" class="wpcufpned mceItem" title="frontpage_news'+tinymce.DOM.encode(b)+'" />'; 
    2626            }); 
    2727        }, 
    2828         
    29         _get_joufpn : function(co) { 
     29        _get_wpcufpn : function(co) { 
    3030            function getAttr(s, n) { 
    3131                n = new RegExp(n + '=\"([^\"]+)\"', 'g').exec(s); 
     
    3434            return co.replace(/(?:<p[^>]*>)*(<img[^>]+>)(?:<\/p>)*/g, function(a,im) { 
    3535                var cls = getAttr(im, 'class'); 
    36                 if ( cls.indexOf('joufpned') != -1 ) 
     36                if ( cls.indexOf('wpcufpned') != -1 ) 
    3737                    return '<p>['+tinymce.trim(getAttr(im, 'title'))+']</p>'; 
    3838                return a; 
     
    4141 
    4242        createControl : function(id, controlManager) { 
    43             if (id == 'joufpn_button') { 
    44                 var button = controlManager.createButton('joufpn_button', { 
     43            if (id == 'wpcufpn_button') { 
     44                var button = controlManager.createButton('wpcufpn_button', { 
    4545                    title : 'Insert Front Page News shortcode', // title of the button 
    46                     image : '../wp-content/plugins/wp-frontpage-news/img/joufpn_tmce_icon.png',  // path to the button's image 
     46                    image : '../wp-content/plugins/wp-frontpage-news/img/wpcufpn_tmce_icon.png',  // path to the button's image 
    4747                    onclick : function() { 
    4848                         
    49                         if( joufpn_select_open ) { 
    50                             $('#joufpn_widgetlist').hide('slide', function() { $('#joufpn_widgetlist').remove() }); 
    51                             //$('#joufpn_widgetlist').remove(); 
    52                             joufpn_select_open = false; 
     49                        if( wpcufpn_select_open ) { 
     50                            $('#wpcufpn_widgetlist').hide('slide', function() { $('#wpcufpn_widgetlist').remove() }); 
     51                            //$('#wpcufpn_widgetlist').remove(); 
     52                            wpcufpn_select_open = false; 
    5353                            return true; 
    5454                        } 
    5555                         
    56                         joufpn_select_open = true; 
     56                        wpcufpn_select_open = true; 
    5757                         
    5858                        //console.log( 'opening select' );  //Debug 
    59                         var html = '<div id="joufpn_widgetlist">' + 
    60                             '<select id="joufpn_widget_select" size="7">'; 
    61                         $.each(joufpn_widgets, function( index, value ){ 
     59                        var html = '<div id="wpcufpn_widgetlist">' + 
     60                            '<select id="wpcufpn_widget_select" size="7">'; 
     61                        $.each(wpcufpn_widgets, function( index, value ){ 
    6262                            if( 'undefined' !== typeof value ) 
    6363                                html = html + '<option value="' + index + '">' + value + '</option>'; 
     
    6767                         
    6868                        var select = $( html ); 
    69                         //select.appendTo($('#content_joufpn_button').parent()).hide().show( 'slide' ); 
     69                        //select.appendTo($('#content_wpcufpn_button').parent()).hide().show( 'slide' ); 
    7070                        select.appendTo($('div#content_toolbargroup').parent()).hide().show( 'slide' ); 
    7171                         
     
    7474                            //console.log( e );                                                 //Debug 
    7575                            insertShortcode( $('option:selected', this).val(), $('option:selected', this).text() ); 
    76                             $(this).hide('slide', function() { $('#joufpn_widgetlist').remove() }); 
    77                             joufpn_select_open = false; 
     76                            $(this).hide('slide', function() { $('#wpcufpn_widgetlist').remove() }); 
     77                            wpcufpn_select_open = false; 
    7878                        }); 
    7979                         
     
    8888  
    8989    /** Registers the plugin. **/ 
    90     tinymce.PluginManager.add('joufpn', tinymce.plugins.joufpn); 
     90    tinymce.PluginManager.add('wpcufpn', tinymce.plugins.wpcufpn); 
    9191     
    9292    function insertShortcode( widget_id, widget_title ) { 
  • wp-frontpage-news/trunk/wp-frontpage-news.php

    r783389 r789344  
    22/** 
    33 * @package WP-Frontpage-News 
    4  * @author WPCode United / Yann Dubois 
    5  * @version 0.1.0 
     4 * @author WPCode-United / Yann Dubois 
     5 * @version 0.2.0 
    66 */ 
    77 
    88/* 
    99 Plugin Name: WP Frontpage News 
    10  Plugin URI: http://www.wpcode-united.com/ 
     10 Plugin URI: http://www.wpcode-united.com/wordpress-plugin/wp-frontpage-news 
    1111 Description: Advanced frontpage and widget news slider 
    12  Version: 0.1.0 
    13  Author: JoomUnited / Yann Dubois 
     12 Version: 0.2.0 
     13 Author: WPCode-United / Yann Dubois 
    1414 Author URI: http://www.wpcode-united.com/ 
    1515 License: GPL2 
     
    1717 
    1818/** 
    19  * @copyright 2013  JoomUnited  ( email : //TODO _at_ wpcode-united.com ) 
     19 * @copyright 2013  WPCode-United  ( email : support _at_ wpcode-united.com ) 
    2020 * 
    21  *  Original development of this plugin was kindly funded by JoomUnited 
     21 *  Original development of this plugin was kindly funded by WPCode-United 
    2222 * 
    2323 *  This program is free software; you can redistribute it and/or modify 
     
    3838 
    3939/** 
     40 Revision 0.2.0: 
     41 - Original beta release: 
     42 * Widget title can now be displayed at your choice 
     43 * Sidebar widgets now seamlessly integrate with your theme's widget styling 
     44 * Stylesheet compatibility optimized with WP 3.6 twentythirteen theme by default 
     45 * Now retro-compatible up to WP 3.2 at least 
     46 * Admin screenshot has been made to cimply with actual output 
     47 * Better icons in the admin interface 
     48 * Simplified settings, now completely usable out-of-the-box 
     49 * Default image now included and pre-configured for perfect output even with articles without images 
    4050 Revision 0.1.0: 
    4151 - Original alpha release 00 
     
    4959 
    5060/** 
    51  *  
    5261 * Just fill up necessary settings in the configuration array 
    5362 * to create a new custom plugin instance... 
    5463 *  
    5564 */ 
    56 global $jou_wpfn; 
    57 $jou_wpfn = new jouWPFnPlugin( 
     65global $wpcu_wpfn; 
     66$wpcu_wpfn = new wpcuWPFnPlugin( 
    5867    array( 
    5968        'name'              => 'WP Frontpage News', 
    60         'version'           => '0.1.0', 
     69        'version'           => '0.2.0', 
    6170        'has_option_page'   => false, 
    6271        'option_page_title' => 'Frontpage News Settings', 
     
    7281        'crontab'           => array(), 
    7382        'has_stylesheet'    => false, 
    74         'stylesheet_file'   => 'css/joufpn.css', 
     83        'stylesheet_file'   => 'css/wpcufpn.css', 
    7584        'has_translation'   => false, 
    76         'translation_domain'=> 'joufpn', // must be copied in the widget class!!! 
     85        'translation_domain'=> 'wpcufpn_front.css', // must be copied in the widget class!!! 
    7786        'translations'      => array( 
    78             array( 'English', 'Yann Dubois', 'http://www.yann.com/' ), 
     87            array( 'English', 'WPCode-United', 'http://www.wpcode-united.com/' ), 
    7988            array( 'French', 'Yann Dubois', 'http://www.yann.com/' ), 
    8089        ),       
    81         'initial_funding'   => array( 'JoomUnited', 'www.joomunited.com' ), 
     90        'initial_funding'   => array( 'WPCode-United', 'http://www.wpcode-united.com/' ), 
    8291        'additional_funding'=> array(), 
    8392        'form_blocks'       => array( 
Note: See TracChangeset for help on using the changeset viewer.