Dotclear

Changeset 2230:e63e48e1c53b


Ignore:
Timestamp:
10/03/13 16:00:46 (12 years ago)
Author:
Dsls
Branch:
default
Message:
  • New adminDashboardFavorites behavior introduced, adapted several plugins to it
  • Added ability to move the whole favorite with title_cb, now renamed dashboard_cb
  • new pages and pages shortcuts are now functional, closes #1727
  • Moved preferences.php to new notifications system
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • inc/admin/class.dc.favorites.php

    r2229 r2230  
    7878      public function setup() { 
    7979          $this->legacyFavorites(); 
     80          $this->core->callBehavior('adminDashboardFavorites', $this->core, $this); 
    8081          $this->setUserPrefs(); 
    8182     } 
     
    151152               $this->user_prefs = $this->getFavorites(array('new_post')); 
    152153          } 
    153  
     154          $u = explode('?',$_SERVER['REQUEST_URI']); 
    154155          // Loop over prefs to enable active favorites 
    155156          foreach ($this->user_prefs as $k=>&$v) { 
    156157               if (isset($v['active_cb']) && is_callable($v['active_cb'])) { 
    157158                    // Use callback if defined to match whether favorite is active or not 
    158                     $v['active'] = call_user_func($v['active_cb'],$_SERVER['REQUEST_URI'],$_REQUEST); 
     159                    $v['active'] = call_user_func($v['active_cb'],$u[0],$_REQUEST); 
    159160               } else { 
    160161                    // Failback active detection. We test against URI name & parameters 
     
    324325     public function appendDashboardIcons($icons) { 
    325326          foreach ($this->user_prefs as $k=>$v) { 
    326                if (isset($v['title_cb']) && is_callable($v['title_cb'])) { 
    327                     $title = call_user_func($v['title_cb'],$this->core); 
    328                } else { 
    329                     $title = $v['title']; 
    330                } 
    331                $icons[$k]=new ArrayObject(array($title,$v['url'],$v['large-icon'])); 
     327               if (isset($v['dashboard_cb']) && is_callable($v['dashboard_cb'])) { 
     328                    $v = new ArrayObject($v); 
     329                    call_user_func($v['dashboard_cb'],$this->core,$v); 
     330               } 
     331               $icons[$k]=new ArrayObject(array($v['title'],$v['url'],$v['large-icon'])); 
    332332               $this->core->callBehavior('adminDashboardFavsIcon',$this->core,$k,$icons[$k]); 
    333333          }          
     
    344344      *   'large-icon' => favorite large icon (for dashboard) 
    345345      *   'permissions' => (optional) comma-separated list of permissions for thie fav, if not set : no restriction 
    346       *   'title_cb' => (optional) callback to modify title if dynamic, if not set : title is taken as is 
     346      *   'dashboard_cb' => (optional) callback to modify title if dynamic, if not set : title is taken as is 
    347347      *   'active_cb' => (optional) callback to tell whether current page matches favorite or not, for complex pages 
    348348      * 
     
    410410                    'large-icon' => 'images/menu/entries-b.png', 
    411411                    'permissions' => 'usage,contentadmin', 
    412                     'title_cb' => array('defaultFavorites','postsTitle')), 
     412                    'dashboard_cb' => array('defaultFavorites','postsDashboard')), 
    413413               'comments' => array( 
    414414                    'title' => __('Comments'), 
     
    417417                    'large-icon' => 'images/menu/comments-b.png', 
    418418                    'permissions' => 'usage,contentadmin', 
    419                     'title_cb' => array('defaultFavorites','commentsTitle')), 
     419                    'dashboard_cb' => array('defaultFavorites','commentsDashboard')), 
    420420               'search' => array( 
    421421                    'title' => __('Search'), 
     
    477477     } 
    478478      
    479      public static function postsTitle($core) { 
     479     public static function postsDashboard($core,$v) { 
    480480          $post_count = $core->blog->getPosts(array(),true)->f(0); 
    481481          $str_entries = __('%d entry', '%d entries',$post_count); 
    482           return sprintf($str_entries,$post_count); 
    483      } 
    484       
    485      public static function commentsTitle($core) { 
     482          $v['title'] = sprintf($str_entries,$post_count); 
     483     } 
     484      
     485     public static function commentsDashboard($core,$v) { 
    486486          $comment_count = $core->blog->getComments(array(),true)->f(0); 
    487487          $str_comments = __('%d comments', '%d comments',$comment_count); 
    488           return sprintf($str_comments,$comment_count); 
     488          $v['title']= sprintf($str_comments,$comment_count); 
    489489     } 
    490490 
  • plugins/antispam/_admin.php

    r2022 r2230  
    2424$core->addBehavior('adminDashboardIcons',array('dcAntispam','dashboardIcon')); 
    2525 
    26 $core->addBehavior('adminDashboardFavs','antispamDashboardFavs'); 
     26$core->addBehavior('adminDashboardFavorites','antispamDashboardFavorites'); 
    2727$core->addBehavior('adminDashboardFavsIcon','antispamDashboardFavsIcon'); 
    2828 
    29 function antispamDashboardFavs($core,$favs) 
     29function antispamDashboardFavorites($core,$favs) 
    3030{ 
    31      $favs['antispam'] = new ArrayObject(array('antispam','Antispam','plugin.php?p=antispam', 
    32           'index.php?pf=antispam/icon.png','index.php?pf=antispam/icon-big.png', 
    33           'admin',null,null)); 
     31     $favs->register('antispam', array( 
     32          'title' => __('Antispam'), 
     33          'url' => 'plugin.php?p=antispam', 
     34          'small-icon' => 'index.php?pf=antispam/icon.png', 
     35          'large-icon' => 'index.php?pf=antispam/icon-big.png', 
     36          'permissions' => 'admin', 
     37          'dashboard_cb' => 'antispamDashboard') 
     38     ); 
    3439} 
    3540 
  • plugins/blogroll/_admin.php

    r1502 r2230  
    1313 
    1414$core->addBehavior('adminDashboardIcons','blogroll_dashboard'); 
    15 $core->addBehavior('adminDashboardFavs','blogroll_dashboard_favs'); 
     15$core->addBehavior('adminDashboardFavorites','blogroll_dashboard_favorites'); 
    1616$core->addBehavior('adminUsersActionsHeaders','blogroll_users_actions_headers'); 
    1717 
     
    2020     $icons['blogroll'] = new ArrayObject(array(__('Blogroll'),'plugin.php?p=blogroll','index.php?pf=blogroll/icon.png')); 
    2121} 
    22 function blogroll_dashboard_favs($core,$favs) 
     22function blogroll_dashboard_favorites($core,$favs) 
    2323{ 
    24      $favs['blogroll'] = new ArrayObject(array('blogroll','Blogroll','plugin.php?p=blogroll', 
    25           'index.php?pf=blogroll/icon-small.png','index.php?pf=blogroll/icon.png', 
    26           'usage,contentadmin',null,null)); 
     24     $favs->register('blogroll', array( 
     25          'title' => __('Blogroll'), 
     26          'url' => 'plugin.php?p=blogroll', 
     27          'small-icon' => 'index.php?pf=blogroll/icon-small.png', 
     28          'large-icon' => 'index.php?pf=blogroll/icon.png', 
     29          'permissions' => 'usage,contentadmin' 
     30     )); 
    2731} 
    2832function blogroll_users_actions_headers() 
  • plugins/importExport/_admin.php

    r2044 r2230  
    2020); 
    2121 
    22 $core->addBehavior('adminDashboardFavs','importExportDashboardFavs'); 
     22$core->addBehavior('adminDashboardFavorites','importExportDashboardFavorites'); 
    2323 
    24 function importExportDashboardFavs($core,$favs) 
     24function importExportDashboardFavorites($core,$favs) 
    2525{ 
    26      $favs['importExport'] = new ArrayObject(array( 
    27           'importExport', 
    28           __('Import/Export'), 
    29           'plugin.php?p=importExport', 
    30           'index.php?pf=importExport/icon.png', 
    31           'index.php?pf=importExport/icon-big.png', 
    32           'admin',null,null 
     26     $favs->register('importExport', array( 
     27          'title' => __('Import/Export'), 
     28          'url' => 'plugin.php?p=importExport', 
     29          'small-icon' => 'index.php?pf=importExport/icon.png', 
     30          'large-icon' => 'index.php?pf=importExport/icon-big.png', 
     31          'permissions' => 'admin' 
    3332     )); 
    3433} 
  • plugins/pages/_admin.php

    r2141 r2230  
    1313 
    1414$core->addBehavior('adminDashboardIcons','pages_dashboard'); 
    15 $core->addBehavior('adminDashboardFavs','pages_dashboard_favs'); 
     15$core->addBehavior('adminDashboardFavorites',array('pagesDashboard','pagesDashboardFavs')); 
    1616$core->addBehavior('adminDashboardFavsIcon','pages_dashboard_favs_icon'); 
    1717$core->addBehavior('adminUsersActionsHeaders','pages_users_actions_headers'); 
    1818 
    19 function pages_dashboard($core,$icons) 
     19class pagesDashboard 
    2020{ 
    21      $icons['pages'] = new ArrayObject(array(__('Pages'),'plugin.php?p=pages','index.php?pf=pages/icon-big.png')); 
    22 } 
    23 function pages_dashboard_favs($core,$favs) 
    24 { 
    25      $favs['pages'] = new ArrayObject(array('pages','Pages','plugin.php?p=pages', 
    26           'index.php?pf=pages/icon.png','index.php?pf=pages/icon-big.png', 
    27           'contentadmin,pages',null,null)); 
    28      $favs['newpage'] = new ArrayObject(array('newpage','New page','plugin.php?p=pages&act=page', 
    29           'index.php?pf=pages/icon-np.png','index.php?pf=pages/icon-np-big.png', 
    30           'contentadmin,pages',null,null)); 
    31 } 
    32 function pages_dashboard_favs_icon($core,$name,$icon) 
    33 { 
    34      // Check if it is one of my own favs 
    35      if ($name == 'pages') { 
     21     public static function pagesDashboardFavs($core,$favs) 
     22     { 
     23          $favs->register('pages', array( 
     24               'title' => __('Pages'), 
     25               'url' => 'plugin.php?p=pages', 
     26               'small-icon' => 'index.php?pf=pages/icon.png', 
     27               'large-icon' => 'index.php?pf=pages/icon-big.png', 
     28               'permissions' => 'contentadmin,pages', 
     29               'dashboard_cb' => array('pagesDashboard','pagesDashboardCB'), 
     30               'active_cb' => array('pagesDashboard','pagesActiveCB') 
     31          )); 
     32          $favs->register('newpage', array( 
     33               'title' => __('New page'), 
     34               'url' => 'plugin.php?p=pages&act=page', 
     35               'small-icon' => 'index.php?pf=pages/icon-np.png', 
     36               'large-icon' => 'index.php?pf=pages/icon-np-big.png', 
     37               'permissions' => 'contentadmin,pages', 
     38               'active_cb' => array('pagesDashboard','newPageActiveCB') 
     39          )); 
     40     } 
     41      
     42     public static function pagesDashboardCB($core,$v) { 
    3643          $params = new ArrayObject(); 
    3744          $params['post_type'] = 'page'; 
     
    3946          if ($page_count > 0) { 
    4047               $str_pages = ($page_count > 1) ? __('%d pages') : __('%d page'); 
    41                $icon[0] = sprintf($str_pages,$page_count); 
     48               $v['title'] = sprintf($str_pages,$page_count); 
    4249          } 
    4350     } 
     51      
     52     public static function pagesActiveCB($request,$params) { 
     53          return ($request == "plugin.php") && 
     54               isset($params['p']) && $params['p'] == 'pages' 
     55               && !(isset($params['act']) && $params['act']=='page'); 
     56     } 
     57      
     58     public static function newPageActiveCB($request,$params) { 
     59          return ($request == "plugin.php") && 
     60               isset($params['p']) && $params['p'] == 'pages' 
     61               && isset($params['act']) && $params['act']=='page'; 
     62     } 
     63      
    4464} 
     65 
     66 
    4567function pages_users_actions_headers() 
    4668{ 
  • plugins/pings/_admin.php

    r1970 r2230  
    3737$core->addBehavior('adminAfterPostUpdate',array('pingsBehaviors','doPings')); 
    3838 
    39 $core->addBehavior('adminDashboardFavs','pingDashboardFavs'); 
     39$core->addBehavior('adminDashboardFavorites','pingDashboardFavorites'); 
    4040 
    41 function pingDashboardFavs($core,$favs) 
     41function pingDashboardFavorites($core,$favs) 
    4242{ 
    43      $favs['pings'] = new ArrayObject(array('pings','Pings','plugin.php?p=pings', 
    44           'index.php?pf=pings/icon.png','index.php?pf=pings/icon-big.png', 
    45           null,null,null)); 
     43     $favs->register('pings', array( 
     44          'title' => __('Pings'), 
     45          'url' => 'plugin.php?p=pings', 
     46          'small-icon' => 'index.php?pf=pings/icon.png', 
     47          'large-icon' => 'index.php?pf=pings/icon-big.png', 
     48     )); 
    4649} 
    4750?> 
  • plugins/tags/_admin.php

    r2169 r2230  
    3636$core->addBehavior('coreInitWikiPost',array('tagsBehaviors','coreInitWikiPost')); 
    3737 
    38 $core->addBehavior('adminDashboardFavs',array('tagsBehaviors','dashboardFavs')); 
     38$core->addBehavior('adminDashboardFavorites',array('tagsBehaviors','dashboardFavorites')); 
    3939 
    4040# BEHAVIORS 
    4141class tagsBehaviors 
    4242{ 
    43      public static function dashboardFavs($core,$favs) 
    44      { 
    45           $favs['tags'] = new ArrayObject(array('tags','Tags','plugin.php?p=tags&m=tags', 
    46                'index.php?pf=tags/icon.png','index.php?pf=tags/icon-big.png', 
    47                'usage,contentadmin',null,null)); 
     43     public static function dashboardFavorites($core,$favs) 
     44     { 
     45          $favs->register('tags', array( 
     46               'title' => __('Tags'), 
     47               'url' => 'plugin.php?p=tags&m=tags', 
     48               'small-icon' => 'index.php?pf=tags/icon.png', 
     49               'large-icon' => 'index.php?pf=tags/icon-big.png', 
     50          )); 
    4851     } 
    4952 
  • plugins/widgets/_admin.php

    r1179 r2230  
    1212if (!defined('DC_CONTEXT_ADMIN')) { return; } 
    1313 
    14 $core->addBehavior('adminDashboardFavs','widgets_dashboard_favs'); 
     14$core->addBehavior('adminDashboardFavorites','widgets_dashboard_favorites'); 
    1515 
    16 function widgets_dashboard_favs($core,$favs) 
     16function widgets_dashboard_favorites($core,$favs) 
    1717{ 
    18      $favs['widgets'] = new ArrayObject(array('widgets','Presentation widgets','plugin.php?p=widgets', 
    19           'index.php?pf=widgets/icon.png','index.php?pf=widgets/icon-big.png', 
    20           'admin',null,null)); 
     18     $favs->register('widgets', array( 
     19          'title' => __('Presentation widgets'), 
     20          'url' => 'plugin.php?p=widgets', 
     21          'small-icon' => 'index.php?pf=widgets/icon.png', 
     22          'large-icon' => 'index.php?pf=widgets/icon-big.png', 
     23     )); 
    2124} 
    2225 
Note: See TracChangeset for help on using the changeset viewer.

Sites map