Changeset 3:cf375f1e7b0f for inc
- Timestamp:
 - 04/27/11 09:06:30 (15 years ago)
 - Branch:
 - userprefs
 - Location:
 - inc
 - Files:
 - 
          
- 2 added
 - 8 edited
 
- 
          admin/class.dc.menu.php (modified) (3 diffs)
 - 
          admin/lib.dc.page.php (modified) (3 diffs)
 - 
          admin/prepend.php (modified) (6 diffs)
 - 
          core/class.dc.auth.php (modified) (2 diffs)
 - 
          core/class.dc.media.php (modified) (2 diffs)
 - 
          core/class.dc.prefs.php (added)
 - 
          core/class.dc.workspace.php (added)
 - 
          core_error.php (modified) (1 diff)
 - 
          dbschema/db-schema.php (modified) (4 diffs)
 - 
          dbschema/upgrade.php (modified) (1 diff)
 
 
Legend:
- Unmodified
 - Added
 - Removed
 
- 
        
inc/admin/class.dc.menu.php
r0 r3 25 25 } 26 26 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) 28 28 { 29 29 if($show) { 30 $this->items[] = $this->itemDef($title,$url,$img,$active,$id );30 $this->items[] = $this->itemDef($title,$url,$img,$active,$id,$class); 31 31 } 32 32 } 33 33 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) 35 35 { 36 36 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)); 38 38 } 39 39 } … … 65 65 } 66 66 67 protected function itemDef($title,$url,$img,$active,$id=null )67 protected function itemDef($title,$url,$img,$active,$id=null,$class=null) 68 68 { 69 69 if (is_array($url)) { … … 76 76 77 77 return 78 '<li'.(($active ) ? ' class="active"' : '').78 '<li'.(($active || $class) ? ' class="'.(($active) ? 'active ' : '').(($class) ? $class : '').'"' : ''). 79 79 (($id) ? ' id="'.$id.'"' : ''). 80 80 (($img) ? ' style="background-image: url('.$img.');"' : '').  - 
        
inc/admin/lib.dc.page.php
r0 r3 118 118 '<form action="index.php" method="post"><div>'. 119 119 $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>'. 123 126 '</div></form>'. 124 127 '</div>'; … … 162 165 echo 163 166 '</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>'. 166 170 '</p></div>'."\n". 167 171 "</div>\n"; // End of #wrapper … … 328 332 329 333 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>'. 331 335 $content. 332 336 '</div></div>';  - 
        
inc/admin/prepend.php
r0 r3 138 138 http::redirect('auth.php'); 139 139 } 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 */ 140 149 } 141 150 … … 159 168 } 160 169 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)); 161 218 162 219 # Menus creation 163 220 $_menu['Dashboard'] = new dcMenu('dashboard-menu',null); 221 $_menu['Favorites'] = new dcMenu('favorites-menu','My favorites'); 164 222 $_menu['Blog'] = new dcMenu('blog-menu','Blog'); 165 223 $_menu['System'] = new dcMenu('system-menu','System'); … … 168 226 # Loading plugins 169 227 $core->plugins->loadModules(DC_PLUGINS_ROOT,'admin',$_lang); 228 229 # Loading favorites info from plugins 230 $core->callBehavior('adminDashboardFavs', $core, $_fav); 170 231 171 232 # Set menu titles … … 174 235 $_menu['Blog']->title = __('Blog'); 175 236 $_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); 177 249 $_menu['Dashboard']->prependItem(__('Dashboard'),'index.php','images/menu/dashboard.png', 178 250 preg_match('/index.php$/',$_SERVER['REQUEST_URI']), … … 181 253 $_menu['Blog']->prependItem(__('Blog appearance'),'blog_theme.php','images/menu/themes.png', 182 254 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']), 183 258 $core->auth->check('admin',$core->blog->id)); 184 259 $_menu['Blog']->prependItem(__('Media manager'),'media.php','images/menu/media.png', … … 217 292 $core->auth->isSuperAdmin() || 218 293 $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 219 325 } 220 326 ?>  - 
        
inc/core/class.dc.auth.php
r0 r3 40 40 protected $perm_types; ///< <b>array</b> Permission types 41 41 42 public $user_prefs; ///< <b>dcPrefs</b> dcPrefs object 43 42 44 /** 43 45 Class constructor. Takes dcCore object as single argument. … … 136 138 $this->user_options = array_merge($this->core->userDefaults(),$rs->options()); 137 139 140 $this->user_prefs = new dcPrefs($this->core,$this->user_id); 141 138 142 # Get permissions on blogs 139 143 if ($this->findUserBlog() === false) {  - 
        
inc/core/class.dc.media.php
r2 r3 102 102 103 103 $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')); 104 108 105 109 $this->addFileHandler('image/jpeg','recreate',array($this,'imageThumbCreate')); … … 904 908 $this->callFileHandler($media_type,'recreate',null,$f->basename); // Args list to be completed as necessary (Franck) 905 909 } 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 } 906 921 907 922 /* Image handlers 908 923 ------------------------------------------------------- */ 909 public function imageThumbCreate($cur,$f,$ media_id,$force=true)924 public function imageThumbCreate($cur,$f,$force=true) 910 925 { 911 926 $file = $this->pwd.'/'.$f;  - 
        
inc/core_error.php
r0 r3 27 27 font: 62.5%/1.5em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif; 28 28 color : #000; 29 background : # eceade;29 background : #E5E3DA; 30 30 margin : 0; 31 31 padding : 0;  - 
        
inc/dbschema/db-schema.php
r0 r3 211 211 ; 212 212 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 213 224 /* References indexes 214 225 -------------------------------------------------------- */ … … 228 239 $_s->meta->index ('idx_meta_post_id', 'btree','post_id'); 229 240 $_s->meta->index ('idx_meta_meta_type', 'btree','meta_type'); 241 $_s->pref->index ('idx_pref_user_id', 'btree', 'user_id'); 230 242 231 243 /* Performance indexes … … 256 268 $_s->log->reference('fk_log_blog','blog_id','blog','blog_id','cascade','set null'); 257 269 $_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'); 258 271 259 272 /* PostgreSQL specific indexes … … 263 276 $_s->setting->index ('idx_setting_blog_id_null', 'btree', '(blog_id IS NULL)'); 264 277 $_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)'); 265 279 } 266 280 ?>  - 
        
inc/dbschema/upgrade.php
r0 r3 143 143 } 144 144 } 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 } 145 184 146 185 $core->setVersion('core',DC_VERSION);  
Note: See TracChangeset
          for help on using the changeset viewer.
      