Now, when project is finished, and dead line is soon, I will write here a small overview of what was done, how,  for what and of course  what new ideas appeared (you can view my scope page here).

During this time I have in repository 2 new plugins, few others core/default dashboard modules modified, few hacks in core files and screenshots. I think the most interesting part of all of this was ajaxifying this new modules and old ones. It was easy to increase size of code with it’s complexity, that’s why I tried to keep everything as simple as possible, following WordPress codex, adding comments where it is needed. Thats why I did a lot of code revisions (I can remember one massive function which I substituted with 3 or 4 lines of native WP code : ). It was great experience that won’t stop here, I am sure that in near future where will appear new ideas for improvements that I want to do.

So all the project could be divided into 2 parts: new modules and modifications of core files. Both work independently.

Installation

Right now new modules can be found in WordPress GSoC’s repository. There are zip files, it is easier to use them :

  1. Download dashboard-posts.zip and dashboard-users.zip
  2. Unpack/unzip them
  3. Upload via FTP into your server in map /wp-content/plugins/
  4. Activate them and they will appear in dashboard

Core modifications can be found in wp-admin.zip in the same repo, installation step by step:

  1. Download wp-admin.zip
  2. Unpack/unzip them
  3. Upload via ftp directly into WordPress directory (ftp client should ask you if you want to overwrite the files – click yes)
  4. To be sure that core changes will work properly – update dashboard page (usually by clicking F5 in browser on those page)

Core changes

Almost all changes in core files was done in file dashboard.php, dashboard.css and dashboard.js. But there are few things changed also in other files:

  • admin-ajax.php – here I added at the end of file detection of requests from dashboard modules that are done via ajax and inclusion on dashboard.php file to be able to use its functions.
  • users.php – here I implemented this ticket 14286 because I had an error in Users Module as described in ticket
  • update.php – here you can see on line 150 some small modifications in function update_right_now_message that allows you not to display WordPress version, but to display update button in case of necessity in Right Now module.
  • dashboard.php – all modules now could be configured via ajax, so no more page reloads, also for better compatibility – modules works with turned off JavaScript
    • Right Now module
      • Now there are 3 columns with even more information about your blog
      • You can hide information about theme, change button theme
      • you can hide information about you version of WP (still information about updates will be displayed)
    • Quick Press module
      • Added auto-completion for tags
      • Added ability to choose categories
      • You can choose either to show or not field for tags and/or categories
      • Submitting post or draft will update information in Right Now module
    • Recent comments
    • Incoming Links
    • WordPress Blog (primary)
    • Other wordPress News (secondary)

New modules features

Posts module

  • View all types of posts, or filter drafts or published posts or scheduled posts
  • Display or not fast access buttons to page with All drafts, All published posts and All scheduled posts
  • Limit maximal number of posts to display
  • Limit posts display by any number of days
  • Limit posts display by periods like: from Monday till today, from Sunday till today, from 1st day of month till today, from 1st January till today
  • When you submit post via QuickPress, this information will be also updated in Posts module

Users Module

  • Display users, their roles, emails, avatars
  • Display or not fast button for viewing page with all users and creating new user
  • Create new user right in module
  • Display or not yourself in list of users
  • Order users by ID, by username, by email, date of registration or by role
  • Order users ascendent, descendent or randomly
  • Limit number of users to display
  • Quick edit users right in module
  • Link to page with full edit options
  • Link to view all posts of given user
  • Delete user right in module with ability to attribute its posts and links to other user
  • If while deleting an user, you will not assign its posts to any other user, information in Right Now module will be updated

Some other thing to do maybe in near future, or wishes for core changes:

  • add in core JS ability to fire custom event that could be listen to do some actions when Quick Press ends to load (not only in the beginning but also after publishing some posts) because right now Posts plugin looks for submit buttons, wait 1.5 sec and only after this updates itself (which is ok if in this time Quick Press will manage to write info in database)
  • add by default loading icon into header of modules  (right now this loading icon is inserted inside of module, and after page loading it is moved into its header)
  • still are some things that I marked as optional, and that are in point 6 on my scope page, these are things like ability to add widths for columns in Dashboard, or remembering modules positions for different number of columns in Dashboard.