Plugin Directory

Changeset 370172


Ignore:
Timestamp:
04/07/2011 02:32:58 PM (15 years ago)
Author:
z720
Message:

Beta version of 3.0 for WordPress 3.1+

Location:
dashbar
Files:
11 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • dashbar/trunk

  • dashbar/trunk/DashBar.php

    r369992 r370172  
    22/*
    33Plugin Name: DashBar
    4 Plugin URI: http://z720.net/produits/wordpress/dashbar
    5 Description: Display a Enhanced WordPress.com-like navigation bar for logged users: direct acces to Dashboard, Write, Edit, Awaiting Moderation, Profile...
    6 Version: 2.7.2
     4Plugin URI: http://z720.net/blog/categories/web/wordpress/dashbar
     5Description: Enhance admin bar to add features present in previous versions of DashBar: mainly edit posts display on current page
     6Version: 3.0
    77Author: Sebastien Erard
    88Author URI: http://z720.net/
     
    1414} else {
    1515
    16 /* Currently §Dashbar only support PHP5 */
     16/* Currently Dashbar only support PHP5 */
    1717if (version_compare(PHP_VERSION, '5.0.0', '<')) {
    1818    class DashBar {
     
    3232} else {
    3333
    34 
    35 /**
    36  * Class DashBarLink
    37  * Manage a link in the DashBar
    38 */
    39     class DashBarLink {
    40         var $label = '';
    41         var $url = '';
    42         var $credential = '';
    43         var $children = array();
    44         static $popup = false;
    45        
    46         function DashBarLink($label, $url, $credential = '', $children = array()) {
    47             $this->setLabel($label);
    48             $this->setURL($url);
    49             $this->setCredential($credential);
    50             $this->setChildren($children);
    51         }
    52 
    53 /* Label Management the text of the link */
    54         function setLabel($label) { $this->label = $label; }
    55         function getLabel() { return $this->label; }
    56 
    57 /* Url Management the relative url of the page to display within the wordpress install */
    58         function setUrl($url) { $this->url = get_option('siteurl').$url; }
    59         function setExtUrl($url) { $this->url = $url; }
    60         function getUrl() { return $this->url; }
    61 
    62 /* Credential Management : credential needed to display the link */
    63         function setCredential($cred) { $this->credential = $cred; }
    64         function getCredential() { return $this->credential; }
    65        
    66 /* Sub Links management */ 
    67         function setChildren($children) {
    68             $c = array();
    69             foreach($children as $child) {
    70                 if($child instanceof DashBarLink) {
    71                     $c[] = $child;
    72                 }
    73             }
    74             $this->children = $c;
    75         }
    76         function getChildren() { return $this->children; }
    77         function hasChildren() { return (empty($this->children) == true); }
    78        
    79 /* popup flag */
    80         public static function setPopup($popup) {
    81             DashBarLink::$popup = (boolean) $popup;
    82         }
    83         public static function getPopup() {
    84             return DashBarLink::$popup;
    85         }
    86 
    87 /* Building the Menu (list of links)    */
    88         function build($elts = array()) {
    89             $o = '';
    90             if(empty($elts)) { return ''; }
    91             foreach($elts as $elt) {
    92                 if($elt instanceof DashBarLink) {
    93                     $user_can = true;
    94                     if($elt->getCredential() != '') {
    95                         $user_can = current_user_can($elt->getCredential());
    96                     }
    97                     if($user_can) {
    98                         if(DashBarLink::getPopup()) {
    99                             $str = '<li><a href="'.$elt->getUrl().'" target="_new">'.$elt->getLabel().'</a>';
    100                         } else {
    101                             $str = '<li><a href="'.$elt->getUrl().'">'.$elt->getLabel().'</a>';
    102                         }
    103                         $str .= DashBarLink::build($elt->getChildren());
    104                         $str .= '</li>';
    105                         $o .= $str;
    106                     }
    107                 }
    108             }
    109             if($o != '') {
    110                 $o = '<ul>'.$o.'</ul>';
    111             }
    112             return $o;
    113         }
    114     }
    115 
    11634/* Class DashBar the plugin itself */   
    11735    class DashBar {
     
    11937        var $prefixe = 'DashBar';
    12038        var $domain = 'DashBar';
    121         var $version = '2.7.2';
    122    
    123         var $default = array( 'bgcolor' => '#464646'
    124                                                     ,'height' => '14px'
    125                                                     ,'color' => '#eee'
    126                                                     ,'fgcolor' => '#777'
    127                                                     ,'acolor' => '#eee'
    128                                                     ,'popup' => false
    129                                                 );
    130         var $values = array();
    131         var $user_menu = array();
    132        
    133         var $erreur = false;
    134        
    135         function getInstallDir() {
    136             return basename(dirname(__FILE__));
    137         }
    138        
    139         function DashBar() {
    140 // i18n : load texts
    141             load_plugin_textdomain($this->domain,false,basename(dirname(__FILE__)));
    142 // Load options to overwrite defaults
    143             $c = get_option($this->prefixe);
    144             foreach($this->default as $k => $v) {
    145                 if(($c === false) or (!isset($c[$k]))) {
    146                     $this->values[$k] = $this->default[$k];
    147                 } else {
    148                     $this->values[$k] = $c[$k];
    149                 }
    150             }
    151 // save options to database or create default for first time
    152             update_option($this->prefixe, $this->values);
    153 // WP init
    154             add_action('init', array(&$this, 'init'));
    155 // WP admin hooks
    156             add_action('admin_head', array(&$this, 'admin_page_header'));
    157             add_action('admin_menu', array(&$this, 'admin_pages'));
    158        
    159         }
    160        
    161         function __($str) {
    162             return __($str, $this->domain);
    163         }
    164        
    165         function init() {
    166             global $user_ID;
    167             get_currentuserinfo();
    168             if($user_ID != '') {
    169                 add_filter('wp_footer', array(&$this, 'display_bar'));
    170                 add_filter('wp_head', array(&$this, 'display_style'));
    171                 add_filter('wp_head', array(&$this, 'display_script'));
    172             }
    173         }
     39        var $version = '3.0';
    17440
    175         function admin_pages() {
    176             add_options_page($this->__('DashBar'), $this->__('DashBar'), 'manage_options', basename(__FILE__), array(&$this, 'admin_page'));         
    177         }
    178    
    179         function display_bar() {
    180             DashBarLink::setPopup($this->values['popup']);
    181             get_currentuserinfo();
    182             global $current_user;
    183 /* Links construction */           
    184             $links = array();
    185 /* Dashboard Links, Profile and Logout */
    186             $links[] = new DashBarLink($this->__('Dashboard')
    187                                                                 , '/wp-admin/index.php'
    188                                                                 , 'read'
    189                                                                 , array(new DashBarLink($this->__('My Account'), '/wp-admin/profile.php')
    190                                                                              ,new DashBarLink($this->__('Logout'), '/wp-login.php?action=logout')
    191                                                                              )
    192                                                                 );
    193 /* Post related Menu : context related edit (posts in the loop)*/
    194              global $id, $authordata;
    195             rewind_posts();
    196             $edit_ar = array();
    197             if(is_single()||is_page()) {
    198                 the_post();
    199                 $links[] = new DashBarLink($this->__('Edit'), '/wp-admin/post.php?action=edit&amp;post='.$id, ($current_user->ID != $authordata->ID) ? 'edit_others_posts' : 'edit_posts');
    200             } elseif(!is_404()) {
    201                  while(have_posts()) {
    202                      the_post();
    203                      $edit_ar[] = new DashBarLink(get_the_title(), '/wp-admin/post.php?action=edit&amp;post='.$id, ($current_user->ID != $authordata->ID) ? 'edit_others_posts' : 'edit_posts');
    204                  }
    205                  if(!empty($edit_ar)) {
    206                      $links[] = new DashBarLink($this->__('Edit'), '/wp-admin/edit.php', 'edit_posts', $edit_ar);
    207                  }
    208             }
    209 /* Comments moderation */
    210             $awaiting_mod = wp_count_comments();
    211             $awaiting_mod = $awaiting_mod->moderated;
    212             if($awaiting_mod) {
    213                 $links[] = new DashBarLink(sprintf($this->__("Awaiting Moderation (%s)"), $awaiting_mod), '/wp-admin/edit-comments.php?comment_status=moderated', 'moderate_comments');
    214             } else {
    215                 $links[] = new DashBarLink($this->__('Comments'), '/wp-admin/edit-comments.php', 'moderation_comments');
    216             }
    217 /* Content creation: posts, pages, links, upload media */
    218             $links[] = new DashBarLink($this->__('New Post')
    219                                                                 , '/wp-admin/post-new.php'
    220                                                                 , 'edit_post'
    221                                                                 , array(new DashBarLink($this->__('New Page'), '/wp-admin/page-new.php', 'edit_pages')
    222                                                                             , new DashBarLink($this->__('New Link'), '/wp-admin/link-add.php', 'manage_links')
    223                                                                             , new DashBarLink($this->__('Upload'), '/wp-admin/media-new.php', 'upload_files')
    224                                                                              )
    225                                                                 );
    226 /* Management shortcuts : posts, pages, links, media, themes */
    227             $links[] = new DashBarLink($this->__('Manage')
    228                                                                 , '/wp-admin/edit.php'
    229                                                                 , 'edit_posts'
    230                                                                 , array( new DashBarLink($this->__('Pages'), '/wp-admin/edit-pages.php', 'edit_page')
    231                                                                                 ,new DashBarLink($this->__('Links'), '/wp-admin/link-manager.php', 'manage_links')
    232                                                                                 ,new DashBarLink($this->__('Media Library'), '/wp-admin/upload.php', 'upload_files')
    233                                                                                 ,new DashBarLink($this->__('Design'), '/wp-admin/themes.php', 'switch_themes')
    234                                                                                 ,new DashBarLink($this->__('Plugins'), '/wp-admin/plugins.php', 'activate_plugins')
    235                                                                                 )
    236                                                                 );
    237 /* Plugin management
    238  * Every plugins should be as extensible as WordPress is...
    239 /* */           
    240             $output = apply_filters('DashBar_pre_links', $links);
    241             include_once(ABSPATH . 'wp-admin/includes/template.php');
    242 /* Output the bar to HTML */           
    243             echo '<div id="DashBar">';
    244             //favorite_actions();
    245             echo DashBarLink::build($links);
    246             echo '</div>';
    247         }
    248 /* Plugin dir getter */
    249         function getPluginURL() {
    250             $url = '';
    251             if(!defined('WP_PLUGIN_URL')) {
    252                 $url = get_option('siteurl').'/'.PLUGINDIR;
    253             } else {
    254                 $url = WP_PLUGIN_URL;
    255             }
    256             $rep = $this->getInstallDir();
    257             return $url.'/'.$rep;
    258         }
     41        /**
     42         * Constructor
     43         */
     44        function DashBar() {
     45            // WP init
     46            add_action('init', array(&$this, 'init'));
     47        }
    25948
    260 /* Display inline style with customizing and link to DashBar structure CSS*/
    261         function display_style() {
    262 ?><!-- [Begin:DashBar Style] -->
    263 <link rel="stylesheet" href="<?php echo $this->getPluginURL() ?>/DashBar.css" type="text/css" />
    264 <style type="text/css">
    265 #DashBar { background-color: <?php echo $this->values['bgcolor']; ?>; background-image: url(<?php echo get_option('siteurl') ?>/wp-admin/images/logo-ghost.png); color:<?php echo $this->values['acolor']; ?>;font-size: <?php echo $this->values['height']; ?>!important;}
    266 #DashBar a { color: <?php echo $this->values['color']; ?>; }
    267 #DashBar li:hover, #DashBar li.over, #DashBar a:hover {background: <?php echo $this->values['fgcolor']; ?>;  color: <?php echo $this->values['acolor']; ?>;}
    268 #DashBar ul ul li a {width:140px;background: <?php echo $this->values['bgcolor']; ?>;}
    269 </style>
    270 <!--[if lt IE 7]><style type="text/css">#DashBar {position:absolute;}</style><![endif]-->
    271 <!-- [End:DashBar Style] -->
    272 <?php
    273     }
    274 /* Load necessary JS Script */
    275         function display_script() {  ?>
    276 <!-- [Begin:DashBar Script] -->
    277 <script type="text/javascript">var DashBarInner = '<'+'a href="<?php echo get_option('siteurl').'/wp-admin/theme-editor.php'; ?>"'+'>'+'<?php echo addslashes($this->__('Your theme is not ready for the DashBar Plugin. To use this Plugin you should add &lt;?php wp_footer(); ?&gt; in the footer of your theme.'))?>'+'<'+'/'+'a'+'>';</script>
    278 <script type="text/javascript" src="<?php echo $this->getPluginURL() ?>/DashBar.js"></script>
    279 <!-- [End:DashBar Script] -->
    280 <?php       
    281         }
    282    
    283     // Administration part : form handling
    284         function admin_page_header() {
    285             if((isset($_REQUEST['page'])) and ($_REQUEST['page'] == basename(__FILE__))) {
    286                 switch($_REQUEST['DashBarAction']) {
    287                     case $this->__('Change Style'):
    288                         if(isset($_REQUEST['DashBarStyle']['bgcolor']) and preg_match('/^#[0-9a-f]{3,6}$/i',$_REQUEST['DashBarStyle']['bgcolor'])) {
    289                             $this->values['bgcolor'] = $_REQUEST['DashBarStyle']['bgcolor'];
    290                         } else {
    291                             $this->erreur[] = $this->__("Incorrect color, it should be in hexadecimal form with 3 or 6 characters");
    292                         }
    293                         if(isset($_REQUEST['DashBarStyle']['fgcolor']) and preg_match('/^#[0-9a-f]{3,6}$/i',$_REQUEST['DashBarStyle']['fgcolor'])) {
    294                             $this->values['fgcolor'] = $_REQUEST['DashBarStyle']['fgcolor'];
    295                         } else {
    296                             $this->erreur[] = $this->__("Incorrect color, it should be in hexadecimal form with 3 or 6 characters");
    297                         }
    298                         if(isset($_REQUEST['DashBarStyle']['color']) and preg_match('/^#[0-9a-f]{3,6}$/i',$_REQUEST['DashBarStyle']['color'])) {
    299                             $this->values['color'] = $_REQUEST['DashBarStyle']['color'];
    300                         } else {
    301                             $this->erreur[] = $this->__("Incorrect color, it should be in hexadecimal form with 3 or 6 characters");
    302                         }
    303                         if(isset($_REQUEST['DashBarStyle']['acolor']) and preg_match('/^#[0-9a-f]{3,6}$/i',$_REQUEST['DashBarStyle']['acolor'])) {
    304                             $this->values['acolor'] = $_REQUEST['DashBarStyle']['acolor'];
    305                         } else {
    306                             $this->erreur[] = $this->__("Incorrect color, it should be in hexadecimal form with 3 or 6 characters");
    307                         }
    308                         if(isset($_REQUEST['DashBarStyle']['height']) and preg_match('/^[0-9]+(|px|em|ex|%)$/i',$_REQUEST['DashBarStyle']['height'])) {
    309                             $this->values['height'] = $_REQUEST['DashBarStyle']['height'];
    310                         } else {
    311                             $this->erreur[] = $this->__("Incorrect text size format");
    312                         }
    313                         $this->values['popup'] = (isset($_REQUEST['DashBarStyle']['popup']) && ($_REQUEST['DashBarStyle']['popup'] == '1')) ? true : false;                     
    314                         if(!$this->erreur) {
    315                             update_option($this->prefixe, $this->values);
    316                             $this->msg = $this->__('New settings successfully saved');
    317                         }
    318                         break;
    319                     case $this->__('Restore Default'):
    320                             update_option($this->prefixe, $this->default);
    321                             $this->values = $this->default;
    322                             $this->msg = $this->__('Default settings successfully restored');
    323                         break;
    324                     default:
    325                 }  ?>
    326                 <script type="text/javascript" src="../wp-includes/js/colorpicker.js"></script>
    327                 <script type="text/javascript">
    328                 var cp = new ColorPicker();
    329                 function initColorPicker() {
    330                     var elts = document.getElementsByTagName('INPUT');
    331                     for(i=0;i<elts.length;i++) {
    332                         if(elts[i].id.substr(elts[i].id.length-7,elts[i].id.length) == '_sample') {
    333                             elts[i].onclick = color_picker;
    334                             elts[i].style.backgroundColor = document.getElementById(elts[i].id.replace('_sample','')).value;
    335                         }
    336                     }
    337                 }
    338                 addLoadEvent(initColorPicker);
    339                 function color_picker() {
    340                     var input_id = this.id.replace('_sample','');
    341                     var color_field = document.getElementById(input_id);
    342                     if ( cp.p == input_id && document.getElementById(cp.divName).style.visibility != "hidden" )
    343                         cp.hidePopup('prettyplease');
    344                     else {
    345                         cp.p = input_id;
    346                         cp.select(color_field,input_id);
    347                     }
    348                 }
    349                 function pickColor(color) {
    350                     ColorPicker_targetInput.value = color;
    351                     document.getElementById(ColorPicker_targetInput.id+'_sample').style.backgroundColor = color;
    352                 }               
    353                 </script>
    354 <?php
    355             }
    356         }
     49        /**
     50         * Plugin init: mainly hook action to methods on WordPress init
     51         */
     52        function init() {
     53            add_action( 'admin_bar_menu', array(&$this, 'update_bar'), 31 );
     54            add_action( 'wp_before_admin_bar_render', array(&$this, 'add_network'));
     55        }
    35756
    358         // Administration part : form display
    359         function admin_page() {
    360             if(isset($this->erreur) and is_array($this->erreur)) {
    361                 echo '<div id="message" class="error"><ul>';
    362                 foreach($this->erreur as $msg) {
    363                     echo '<li>'.$msg.'</li>';
    364                 }
    365                 echo '</ul></div>';
    366             } elseif(isset($this->msg)) {
    367                 echo '<div id="message" class="updated fade"><p>'.$this->msg.'</p></div>';
    368             }
    369             $popupSelected = ($this->value['popup']) ? ' checked="checked"' : '';
    370     ?>
    371         <div class="wrap">
    372             <form action="" method="post">
    373                 <h2><?php _e('Style Customizing', $this->domain); ?></h2>
    374                 <div id="colorPickerDiv" style="z-index: 100;background:#eee;border:1px solid #ccc;position:absolute;visibility:hidden;"> </div>
    375                 <table class="optiontable">
    376                     <tbody>
    377                         <tr>
    378                             <th><?php _e('DashBar color', $this->domain);?></th>
    379                             <td><input type="text" id="DashBar_bgcolor" name="DashBarStyle[bgcolor]" value="<?php echo $this->values['bgcolor'];?>" /> <input type="button" id="DashBar_bgcolor_sample" value="<?php _e('Color Picker',$this->domain);?>" /></td>
    380                         </tr>
    381                         <tr>
    382                             <th><?php _e('Text Color', $this->domain);?></th>
    383                             <td><input type="text" id="DashBar_color" name="DashBarStyle[color]" value="<?php echo $this->values['color'];?>" /> <input type="button" id="DashBar_color_sample" value="<?php _e('Color Picker',$this->domain);?>" /></td>
    384                         </tr>                   
    385                         <tr>
    386                             <th><?php _e('Highlighted element color', $this->domain);?></th>
    387                             <td><input type="text" id="DashBar_fgcolor" name="DashBarStyle[fgcolor]" value="<?php echo $this->values['fgcolor'];?>" /> <input type="button" id="DashBar_fgcolor_sample" value="<?php _e('Color Picker',$this->domain);?>" /> </td>
    388                         </tr>                   
    389                         <tr>
    390                             <th><?php _e('Highlighted text color', $this->domain);?></th>
    391                             <td><input type="text" id="DashBar_acolor" name="DashBarStyle[acolor]" value="<?php echo $this->values['acolor'];?>" /> <input type="button" id="DashBar_acolor_sample"  value="<?php _e('Color Picker',$this->domain);?>" /></td>
    392                         </tr>                   
    393                         <tr>
    394                             <th><?php _e('Text size', $this->domain);?></th>
    395                             <td><input type="text" id="DashBar_height" name="DashBarStyle[height]" value="<?php echo $this->values['height'];?>" /></td>
    396                         </tr>
    397                     </tbody>
    398                 </table>
    399                 <h2><?php echo $this->__('Link Behaviour'); ?></h2>
    400                 <table class="optiontable">
    401                     <tbody>
    402                         <tr>
    403                             <th><?php echo $this->__('Open links in a new windows') ?></th>
    404                             <td><input type="checkbox" id="DashBar_popup" name="DashBarStyle[popup]" value="1" <?php echo ($this->values['popup'] === true)? 'checked="checked" ' : '' ?> /></td>
    405                         </tr>
    406                     </tbody>
    407                 </table>
    408                 <p class="submit"><input type="submit" name="DashBarAction" value="<?php _e('Change Style',$this->domain); ?>" /> <input type="submit" name="DashBarAction" value="<?php _e('Restore Default',$this->domain); ?>" /></p>
    409             </form>
    410         </div>
    411     <?php
    412         }       
     57        /**
     58         * Add posts edit to an edit menu with the list of posts the user can edit
     59         */
     60        function update_bar() {
     61            global $wp_admin_bar;
     62            global $wp_query;
     63            // We're on a page with a list of posts
     64            if(!empty($wp_query->posts)) {
     65                // display menu if user has edit permission
     66                if(current_user_can('edit_posts')) {
     67                    $id = 'dashbar_edit'; // Edit menu
     68                    $wp_admin_bar->add_menu(array('id' => $id, 'title' => __('Edit'), 'href'=> admin_url('post.php')));
     69                    rewind_posts();
     70                    global $post;
     71                    // loop for posts on current page
     72                    while(have_posts()) {
     73                        the_post();
     74                        $current_object = $post;
     75                        // link to edit post from wp-includes/admin-bar.php @ 173 (v3.1.1)
     76                        //if ( ! empty( $current_object->post_type ) && ( $post_type_object = get_post_type_object( $current_object->post_type ) ) && current_user_can( $post_type_object->cap->edit_post, $current_object->ID ) && $post_type_object->show_ui ) {
     77                            $wp_admin_bar->add_menu( array('id'=>$id.'-'.$current_object->ID, 'parent' => $id, 'title' => $current_object->post_title,  'href' => get_edit_post_link( $current_object->ID ) ) );
     78                        //}
     79                    }
     80                }
     81            }
     82
     83        }
     84       
     85        /**
     86         * Add a link to network admin in the first menu (my account).
     87         * The link should only be visible to Network admins in a multisite context outside of the network admin pages
     88         */
     89        function add_network() {
     90            if(is_multisite() && current_user_can('manage_network') && !is_network_admin()) {
     91                global $wp_admin_bar;
     92                /* Add the 'My Account' menu */
     93                $avatar = get_avatar( get_current_user_id(), 16 );
     94                $id = ( ! empty( $avatar ) ) ? 'my-account-with-avatar' : 'my-account';
     95                $wp_admin_bar->add_menu(array('id'=>'network_admin', 'parent'=> $id, 'href'=>network_admin_url(), 'title' => __('Network Admin')));
     96            }
     97        }
    41398    }
    41499}
     
    418103$the_dashbar = new DashBar();
    419104
    420 
    421105?>
  • dashbar/trunk/readme.txt

    r369945 r370172  
    22Contributors: z720
    33Tags: admin
    4 Requires at least: 2.5
    5 Tested up to: 3.0
     4Donate link: http://z720.net/about/donate
     5Requires at least: 3.1
     6Tested up to: 3.1.1
    67Stable tag: 2.7.2
    78
    8 Display an Enhanced WordPress.com-like navigation bar for logged users: direct acces to Dashboard, Write, Edit, Awaiting Moderation, Profile...
     9Enhance Wordpress Admin bar to add features present in previous versions of DashBar: mainly edit posts displayed on current page
    910
    1011== Description ==
    1112
    12 This plugin allows logged in user to see an administration bar like the one displayed at [WordPress.com](http://wordpress.com).
     13This plugin tries to enable previous feature present in DashBar in the new Wordpress Admin Bar.
    1314
    14 The bar is displayed on every page of the frontend, with links to :
     15No more options, only contextual links missing in the admin bar:
    1516
    16 * DashBoard
    17 * Profile
    18 * Logout
    19 * Manage (Posts, Pages, Links, Files)
    20 * Write Post
     17* Choose from the list of posts displayed to edit one
    2118
    22 and with contextual links :
     19Network admin is also accessible from the first menu
    2320
    24 * Edit this post if single
    25 * Choose from the list of posts displayed to edit one
    26 * Comment moderation if moderation queue has comments to moderate
     21No more localization required as this plugin uses core WordPress text.
    2722
    28 The look and feel of the bar is easy to customize via **Options**>**DashBar**.
     23WARNING: This plugin requires PHP 5.
    2924
    30 Use the pot file included to localize the bar to your language. Languages currently available :
    31 
    32 * English (Native as WordPress)
    33 * French
    34 * Japanese (thanks to Yoshitaka Fukunaga http://www.rhein-strasse.de/ )
    35 * Belorussian (thanks to http://www.fatcow.com/ )
    36 
    37 Feel free to send me your PO/MO files, I'll put them in the next release
    38 
    39 == Changelog ==
    40 
    41 Version 2.7.2: Added Belorussian and Japanese translation
    4225
    4326== Installation ==
     
    48312. Activate the plugin through the 'Plugins' menu in WordPress
    4932
    50 == Screenshots ==
    5133
    52 1. Standard DashBar view from the frontend
    53 2. Custom DashBar look and feel editor
     34== Screenshots ==
     35
     361. New 'Edit' Menu with an list of direct edit link to posts from current page.
     37
     38== Changelog ==
     39
     40= 3.0 =
     41Integrate DashBar features in WordPress Admin Bar
     42
     43= 2.7.2 =
     44Added Belorussian and Japanese translation
     45
     46
     47== Upgrade Notice ==
     48
     49= 3.0 =
     50This version doesn't need any previous customizing options, but your options won't be lost: maybe we will use them in a further version.
     51Hence you can remove them manually (if you want) from the database any DashBar* option can be safely removed.
     52
    5453
    5554== Frequently Asked Questions ==
     
    5958Don't hesitate to let me know that you have localized the plugin in an other language. [Drop me a mail](http://z720.net/about/contact "Contact me")
    6059
     60You can even [contribute to the project on github](https://github.com/z720/dashbar "DashBar on GitHub").
     61
    6162= What the hell, it doesn't work. What can I do ? =
    6263
    6364[Drop me a mail](http://z720.net/about/contact "Contact me") with any relevant data: WordPress version, theme, active plugins... I'll do my best to fix the issue.
    6465
    65 = My plugin is a really cool feature and I want to add a link in the DashBar =
    66 
    67 DashBar declares a DashBarLink object you can use in combination with the DashBar hook.
    68  1. Create e new DashBarLink instance: $mylink = new DashBarLink($label, $url, $credential (optional))
    69  2. Add it to the List : add_filter('DashBar_pre_link', function($list) { $list[] = $mylink; return $list; });
    70 
    71 This example might not work. But if you made a plugin. You got it...
     66If you know PHP and WordPress, You can even [fix or fork this project on github](https://github.com/z720/dashbar "DashBar on GitHub").
Note: See TracChangeset for help on using the changeset viewer.