Dotclear

Changeset 3:cf375f1e7b0f for inc


Ignore:
Timestamp:
04/27/11 09:06:30 (15 years ago)
Author:
Dsls <dsls@…>
Branch:
userprefs
Message:

Ported Franck & Kozlika updates for user prefs, dedicated branch

Location:
inc
Files:
2 added
8 edited

Legend:

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

    r0 r3  
    2525     } 
    2626      
    27      public function addItem($title,$url,$img,$active,$show=true,$id=null) 
     27     public function addItem($title,$url,$img,$active,$show=true,$id=null,$class=null) 
    2828     { 
    2929          if($show) { 
    30                $this->items[] = $this->itemDef($title,$url,$img,$active,$id); 
     30               $this->items[] = $this->itemDef($title,$url,$img,$active,$id,$class); 
    3131          } 
    3232     } 
    3333      
    34      public function prependItem($title,$url,$img,$active,$show=true,$id=null) 
     34     public function prependItem($title,$url,$img,$active,$show=true,$id=null,$class=null) 
    3535     { 
    3636          if ($show) { 
    37                array_unshift($this->items,$this->itemDef($title,$url,$img,$active,$id)); 
     37               array_unshift($this->items,$this->itemDef($title,$url,$img,$active,$id,$class)); 
    3838          } 
    3939     } 
     
    6565     } 
    6666      
    67      protected function itemDef($title,$url,$img,$active,$id=null) 
     67     protected function itemDef($title,$url,$img,$active,$id=null,$class=null) 
    6868     { 
    6969          if (is_array($url)) { 
     
    7676           
    7777          return 
    78           '<li'.(($active) ? ' class="active"' : ''). 
     78          '<li'.(($active || $class) ? ' class="'.(($active) ? 'active ' : '').(($class) ? $class : '').'"' : ''). 
    7979          (($id) ? ' id="'.$id.'"' : ''). 
    8080          (($img) ? ' style="background-image: url('.$img.');"' : ''). 
  • inc/admin/lib.dc.page.php

    r0 r3  
    118118          '<form action="index.php" method="post"><div>'. 
    119119          $blog_box. 
    120           ' - <a href="'.$core->blog->url.'" class="button">'.__('View site').'</a>'. 
    121           ' - '.__('User:').' <strong>'.$core->auth->userID().'</strong>'. 
    122           ' - <a href="index.php?logout=1" class="logout">'.__('Logout').'</a>'. 
     120          '<a href="'.$core->blog->url.'"onclick="window.open(this.href);return false;" title="'.__('Go to site').' ('.__('new window').')'.'">'.__('Go to site').' <img src="images/outgoing.png" alt="" /></a>'. 
     121          '</div></form>'. 
     122          '</div>'. 
     123          '<div id="info-box2"><form action="index.php" method="post><div>"'. 
     124          ' '.__('User:').' <strong>'.$core->auth->userID().'</strong>'. 
     125          ' - <a href="index.php?logout=1" class="logout">'.__('Logout').' <img src="images/logout.png" alt="" /></a>'. 
    123126          '</div></form>'. 
    124127          '</div>'; 
     
    162165          echo 
    163166          '</div>'."\n".      // End of #main-menu 
    164           '<div id="footer"><p><img src="images/dotclear_pw.png" alt="Dotclear" /> '. 
    165           sprintf(__('Thank you for using %s.'),'<a href="http://dotclear.org/">Dotclear</a>'). 
     167          '<div id="footer"><p>'. 
     168          sprintf(__('Thank you for using %s.'),'<a href="http://dotclear.org/">Dotclear '.DC_VERSION.'</a>'). 
     169          ' <span class="credit"> (Icons by <a href="http://dryicons.com/">Dryicons</a>)</span>'. 
    166170          '</p></div>'."\n". 
    167171          "</div>\n";         // End of #wrapper 
     
    328332           
    329333          echo 
    330           '<div id="help"><hr /><div class="help-content"><h2>'.__('Help').'</h2>'. 
     334          '<div id="help"><hr /><div class="help-content clear"><h2>'.__('Help').'</h2>'. 
    331335          $content. 
    332336          '</div></div>'; 
  • inc/admin/prepend.php

    r0 r3  
    138138          http::redirect('auth.php'); 
    139139     } 
     140 
     141/*    
     142     # Check add to my fav fired 
     143     if (!empty($_REQUEST['add-favorite'])) { 
     144          $redir = $_SERVER['REQUEST_URI']; 
     145          # Extract admin page from URI 
     146          # TO BE COMPLETED 
     147     } 
     148*/ 
    140149} 
    141150 
     
    159168     } 
    160169     unset($hfiles,$locales_root); 
     170 
     171     # Standard favorites 
     172     $_fav = new ArrayObject(); 
     173 
     174     # [] : Title, URL, small icon, large icon, permissions, id, class 
     175     # NB : '*' in permissions means any, null means super admin only 
     176      
     177     $_fav['prefs'] = new ArrayObject(array('prefs',__('My preferences'),'preferences.php', 
     178          'images/menu/user-pref.png','images/menu/user-pref-b.png', 
     179          '*',null,null)); 
     180 
     181     $_fav['new_post'] = new ArrayObject(array('new_post',__('New entry'),'post.php', 
     182          'images/menu/edit.png','images/menu/edit-b.png', 
     183          'usage,contentadmin',null,'menu-new-post')); 
     184     $_fav['posts'] = new ArrayObject(array('posts',__('Entries'),'posts.php', 
     185          'images/menu/entries.png','images/menu/entries-b.png', 
     186          'usage,contentadmin',null,null)); 
     187     $_fav['comments'] = new ArrayObject(array('comments',__('Comments'),'comments.php', 
     188          'images/menu/comments.png','images/menu/comments-b.png', 
     189          'usage,contentadmin',null,null)); 
     190     $_fav['search'] = new ArrayObject(array('search',__('Search'),'search.php', 
     191          'images/menu/search.png','images/menu/search-b.png', 
     192          'usage,contentadmin',null,null)); 
     193     $_fav['categories'] = new ArrayObject(array('categories',__('Categories'),'categories.php', 
     194          'images/menu/categories.png','images/menu/categories-b.png', 
     195          'categories',null,null)); 
     196     $_fav['media'] = new ArrayObject(array('media',__('Media manager'),'media.php', 
     197          'images/menu/media.png','images/menu/media-b.png', 
     198          'media,media_admin',null,null)); 
     199     $_fav['blog_pref'] = new ArrayObject(array('blog_pref',__('Blog settings'),'blog_pref.php', 
     200          'images/menu/blog-pref.png','images/menu/blog-pref-b.png', 
     201          'admin',null,null)); 
     202     $_fav['blog_theme'] = new ArrayObject(array('blog_theme',__('Blog appearance'),'blog_theme.php', 
     203          'images/menu/themes.png','images/menu/blog-theme-b.png', 
     204          'admin',null,null)); 
     205 
     206     $_fav['blogs'] = new ArrayObject(array('blogs',__('Blogs'),'blogs.php', 
     207          'images/menu/blogs.png','images/menu/blogs-b.png', 
     208          'usage,contentadmin',null,null)); 
     209     $_fav['users'] = new ArrayObject(array('users',__('Users'),'users.php', 
     210          'images/menu/users.png','images/menu/users-b.png', 
     211          null,null,null)); 
     212     $_fav['plugins'] = new ArrayObject(array('plugins',__('Plugins'),'plugins.php', 
     213          'images/menu/plugins.png','images/menu/plugins-b.png', 
     214          null,null,null)); 
     215     $_fav['langs'] = new ArrayObject(array('langs',__('Languages'),'langs.php', 
     216          'images/menu/langs.png','images/menu/langs-b.png', 
     217          null,null,null)); 
    161218      
    162219     # Menus creation 
    163220     $_menu['Dashboard'] = new dcMenu('dashboard-menu',null); 
     221     $_menu['Favorites'] = new dcMenu('favorites-menu','My favorites'); 
    164222     $_menu['Blog'] = new dcMenu('blog-menu','Blog'); 
    165223     $_menu['System'] = new dcMenu('system-menu','System'); 
     
    168226     # Loading plugins 
    169227     $core->plugins->loadModules(DC_PLUGINS_ROOT,'admin',$_lang); 
     228 
     229     # Loading favorites info from plugins 
     230     $core->callBehavior('adminDashboardFavs', $core, $_fav); 
    170231      
    171232     # Set menu titles 
     
    174235     $_menu['Blog']->title = __('Blog'); 
    175236     $_menu['Plugins']->title = __('Plugins'); 
    176       
     237     $_menu['Favorites']->title = __('My favorites'); 
     238 
     239/*    
     240     if (!preg_match('/index.php$/',$_SERVER['REQUEST_URI'])) { 
     241          # Admin index can't be add in fav's 
     242          $_menu['Dashboard']->prependItem(__('Add this page to my favorites'),'#','images/menu/add_to_favorites.png', 
     243               false,$core->auth->check('usage,contentadmin',$core->blog->id),'fav-add'); 
     244     } 
     245*/ 
     246     $_menu['Dashboard']->prependItem(__('My preferences'),'preferences.php','images/menu/user-pref.png', 
     247          preg_match('/preferences.php(\?.*)?$/',$_SERVER['REQUEST_URI']), 
     248          true); 
    177249     $_menu['Dashboard']->prependItem(__('Dashboard'),'index.php','images/menu/dashboard.png', 
    178250          preg_match('/index.php$/',$_SERVER['REQUEST_URI']), 
     
    181253     $_menu['Blog']->prependItem(__('Blog appearance'),'blog_theme.php','images/menu/themes.png', 
    182254          preg_match('/blog_theme.php(\?.*)?$/',$_SERVER['REQUEST_URI']), 
     255          $core->auth->check('admin',$core->blog->id)); 
     256     $_menu['Blog']->prependItem(__('Blog settings'),'blog_pref.php','images/menu/blog-pref.png', 
     257          preg_match('/blog_pref.php(\?.*)?$/',$_SERVER['REQUEST_URI']), 
    183258          $core->auth->check('admin',$core->blog->id)); 
    184259     $_menu['Blog']->prependItem(__('Media manager'),'media.php','images/menu/media.png', 
     
    217292          $core->auth->isSuperAdmin() || 
    218293          $core->auth->check('usage,contentadmin',$core->blog->id) && $core->auth->blog_count > 1); 
     294 
     295     // Set favorites menu 
     296     $ws = $core->auth->user_prefs->addWorkspace('favorites'); 
     297     $count = 0; 
     298     foreach ($ws->dumpPrefs() as $k => $v) { 
     299          // User favorites only 
     300          if (!$v['global']) { 
     301               $count++; 
     302               $fav = unserialize($v['value']); 
     303               $_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'], 
     304                    preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']), 
     305                    (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']); 
     306          } 
     307     }     
     308     if (!$count) { 
     309          // Global favorites if any 
     310          foreach ($ws->dumpPrefs() as $k => $v) { 
     311               $count++; 
     312               $fav = unserialize($v['value']); 
     313               $_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'], 
     314                    preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']), 
     315                    (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']); 
     316          } 
     317     } 
     318     if (!$count) { 
     319          // No user or global favorites, add "new entry" fav 
     320          $_menu['Favorites']->addItem(__('New entry'),'post.php','images/menu/edit.png', 
     321               preg_match('/post.php$/',$_SERVER['REQUEST_URI']), 
     322               $core->auth->check('usage,contentadmin',$core->blog->id),'menu-new-post',null); 
     323     } 
     324      
    219325} 
    220326?> 
  • inc/core/class.dc.auth.php

    r0 r3  
    4040     protected $perm_types;   ///< <b>array</b> Permission types 
    4141      
     42     public $user_prefs; ///< <b>dcPrefs</b> dcPrefs object 
     43      
    4244     /** 
    4345     Class constructor. Takes dcCore object as single argument. 
     
    136138          $this->user_options = array_merge($this->core->userDefaults(),$rs->options()); 
    137139           
     140          $this->user_prefs = new dcPrefs($this->core,$this->user_id); 
     141           
    138142          # Get permissions on blogs 
    139143          if ($this->findUserBlog() === false) { 
  • inc/core/class.dc.media.php

    r2 r3  
    102102           
    103103          $this->addFileHandler('image/jpeg','create',array($this,'imageMetaCreate')); 
     104           
     105          $this->addFileHandler('image/jpeg','recreate',array($this,'imageThumbCreate')); 
     106          $this->addFileHandler('image/png','recreate',array($this,'imageThumbCreate')); 
     107          $this->addFileHandler('image/gif','recreate',array($this,'imageThumbCreate')); 
    104108           
    105109          $this->addFileHandler('image/jpeg','recreate',array($this,'imageThumbCreate')); 
     
    904908          $this->callFileHandler($media_type,'recreate',null,$f->basename); // Args list to be completed as necessary (Franck) 
    905909     } 
     910 
     911     /** 
     912     Calls file handlers registered for recreate event 
     913      
     914     @param    f    <b>fileItem</b>     fileItem object 
     915     */ 
     916     public function mediaFireRecreateEvent($f) 
     917     { 
     918          $media_type = files::getMimeType($f->basename); 
     919          $this->callFileHandler($media_type,'recreate',null,$f->basename); // Args list to be completed as necessary (Franck) 
     920     } 
    906921      
    907922     /* Image handlers 
    908923     ------------------------------------------------------- */ 
    909      public function imageThumbCreate($cur,$f,$media_id,$force=true) 
     924     public function imageThumbCreate($cur,$f,$force=true) 
    910925     { 
    911926          $file = $this->pwd.'/'.$f; 
  • inc/core_error.php

    r0 r3  
    2727     font: 62.5%/1.5em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif; 
    2828     color : #000; 
    29      background : #eceade; 
     29     background : #E5E3DA; 
    3030     margin : 0; 
    3131     padding : 0; 
  • inc/dbschema/db-schema.php

    r0 r3  
    211211     ; 
    212212 
     213$_s->pref 
     214     ->pref_id      ('varchar',    255, false) 
     215     ->user_id           ('varchar',    32,  true) 
     216     ->pref_ws      ('varchar',    32,  false,    "'system'") 
     217     ->pref_value   ('text',       0,   true,     null) 
     218     ->pref_type         ('varchar',    8,   false,    "'string'") 
     219     ->pref_label   ('text',       0,   true) 
     220      
     221     ->unique('uk_pref','pref_ws','pref_id','user_id') 
     222     ; 
     223 
    213224/* References indexes 
    214225-------------------------------------------------------- */ 
     
    228239$_s->meta->index         ('idx_meta_post_id',     'btree','post_id'); 
    229240$_s->meta->index         ('idx_meta_meta_type',   'btree','meta_type'); 
     241$_s->pref->index         ('idx_pref_user_id',               'btree',  'user_id'); 
    230242 
    231243/* Performance indexes 
     
    256268$_s->log->reference('fk_log_blog','blog_id','blog','blog_id','cascade','set null'); 
    257269$_s->meta->reference('fk_meta_post','post_id','post','post_id','cascade','cascade'); 
     270$_s->pref->reference('fk_pref_user','user_id','user','user_id','cascade','cascade'); 
    258271 
    259272/* PostgreSQL specific indexes 
     
    263276     $_s->setting->index      ('idx_setting_blog_id_null',  'btree',  '(blog_id IS NULL)'); 
    264277     $_s->media->index        ('idx_media_media_path',      'btree',  'media_path', 'media_dir'); 
     278     $_s->pref->index         ('idx_pref_user_id_null',          'btree',  '(user_id IS NULL)'); 
    265279} 
    266280?> 
  • inc/dbschema/upgrade.php

    r0 r3  
    143143                    } 
    144144               } 
     145 
     146               if (version_compare($version,'2.3','<')) 
     147               { 
     148                    # Add global favorites 
     149                    $sqlstr = 'INSERT INTO `dc_pref` (`pref_id`, `user_id`, `pref_ws`, `pref_value`, `pref_type`, `pref_label`) VALUES'; 
     150                    $sqlstr .= '(\'g000\', NULL, \'favorites\', \'a:8:{s:4:"name";s:8:"new_post";s:5:"title";'. 
     151                         's:'.strlen(__('New entry')).':"'.__('New entry').'";s:3:"url";s:8:"post.php";'. 
     152                         's:10:"small-icon";s:20:"images/menu/edit.png";s:10:"large-icon";s:22:"images/menu/edit-b.png";'. 
     153                         's:11:"permissions";s:18:"usage,contentadmin";s:2:"id";N;s:5:"class";s:13:"menu-new-post";}\', \'string\', NULL)'; 
     154                    $sqlstr .= '(\'g001\', NULL, \'favorites\', \'a:8:{s:4:"name";s:5:"posts";s:5:"title";'. 
     155                         's:'.strlen(__('Entries')).':"'.__('Entries').'";s:3:"url";s:9:"posts.php";'. 
     156                         's:10:"small-icon";s:23:"images/menu/entries.png";s:10:"large-icon";s:25:"images/menu/entries-b.png";'. 
     157                         's:11:"permissions";s:18:"usage,contentadmin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)'; 
     158                    $sqlstr .= '(\'g002\', NULL, \'favorites\', \'a:8:{s:4:"name";s:8:"comments";s:5:"title";'. 
     159                         's:'.strlen(__('Comments')).':"'.__('Comments').'";s:3:"url";s:12:"comments.php";'. 
     160                         's:10:"small-icon";s:24:"images/menu/comments.png";s:10:"large-icon";s:26:"images/menu/comments-b.png";'. 
     161                         's:11:"permissions";s:18:"usage,contentadmin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)'; 
     162                    $sqlstr .= '(\'g003\', NULL, \'favorites\', \'a:8:{s:4:"name";s:5:"prefs";s:5:"title";'. 
     163                         's:'.strlen(__('My preferences')).':"'.__('My preferences').'";s:3:"url";s:15:"preferences.php";'. 
     164                         's:10:"small-icon";s:25:"images/menu/user-pref.png";s:10:"large-icon";s:27:"images/menu/user-pref-b.png";'. 
     165                         's:11:"permissions";s:1:"*";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)'; 
     166                    $sqlstr .= '(\'g004\', NULL, \'favorites\', \'a:8:{s:4:"name";s:9:"blog_pref";s:5:"title";'. 
     167                         's:'.strlen(__('Blog settings')).':"'.__('Blog settings').'";s:3:"url";s:13:"blog_pref.php";'. 
     168                         's:10:"small-icon";s:25:"images/menu/blog-pref.png";s:10:"large-icon";s:27:"images/menu/blog-pref-b.png";'. 
     169                         's:11:"permissions";s:5:"admin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)'; 
     170                    $sqlstr .= '(\'g005\', NULL, \'favorites\', \'a:8:{s:4:"name";s:10:"blog_theme";s:5:"title";'. 
     171                         's:'.strlen(__('Blog appearance')).':"'.__('Blog appearance').'";s:3:"url";s:14:"blog_theme.php";'. 
     172                         's:10:"small-icon";s:22:"images/menu/themes.png";s:10:"large-icon";s:28:"images/menu/blog-theme-b.png";'. 
     173                         's:11:"permissions";s:5:"admin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)'; 
     174                    $sqlstr .= '(\'g006\', NULL, \'favorites\', \'a:8:{s:4:"name";s:5:"pages";s:5:"title";'. 
     175                         's:'.strlen(__('Pages')).':"'.__('Pages').'";s:3:"url";s:18:"plugin.php?p=pages";'. 
     176                         's:10:"small-icon";s:27:"index.php?pf=pages/icon.png";s:10:"large-icon";s:31:"index.php?pf=pages/icon-big.png";'. 
     177                         's:11:"permissions";s:18:"contentadmin,pages";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)'; 
     178                    $sqlstr .= '(\'g007\', NULL, \'favorites\', \'a:8:{s:4:"name";s:8:"blogroll";s:5:"title";'. 
     179                         's:'.strlen(__('Blogroll')).':"'.__('Blogroll').'";s:3:"url";s:21:"plugin.php?p=blogroll";'. 
     180                         's:10:"small-icon";s:36:"index.php?pf=blogroll/icon-small.png";s:10:"large-icon";s:30:"index.php?pf=blogroll/icon.png";'. 
     181                         's:11:"permissions";s:18:"usage,contentadmin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL);'; 
     182                    $core->con->execute($sqlstr); 
     183               } 
    145184                
    146185               $core->setVersion('core',DC_VERSION); 
Note: See TracChangeset for help on using the changeset viewer.

Sites map