It has been a while since my last post on this blog
Since we just have this project finished, and slowing moving to maintenance mode
This will be a great time to write something about the porject, before I forget everything
This project's design starting since March 2013, and of course use Drupal7
Content structure is not very complex, frontpage, article detail page, user page and "featured users" page
But as this site accept user generated content, the node edit form also need to be customized and use custom theme
And that form had been simplified for a non-trained user to use
Responsive web design is used on this site
So mobile users will serve a simpler version of the page
But we implemented by a js based responsive, which performance is not very good
There are loading time and executing time lag problems
May be we can share more on this topic later
There is something special about the frontpage, it is categorized by date
The editors and "featured bloggers" will appear on top of the page
and other general users will appear on the bottom part
Unless special circumes, frontpage only shows today's posts
and yesterday's post will be moved to dated page, navigate using the dropdown
And we have created a few views arguments to process this special, "time dependent" page setup
There are 3 main difficult area on this site: article editorial, data migration and user single sign on
Article editorial
As a normal user can also create article like editors did,
editors need much more authority over the control of the article, and orderings
Everyday there are upper and lower part ordering, and will act accordingly upon special time sensitive events
Second is "admin delete", "author delete" functions
When editor found a off topic, personal attack of a potential danger article, they will hide them
but the creator need to see them marked as deleted, and keep the evidence
The article's original author can do the same to the comments under his article
So the result is we cannot use the "unpublished" state to control these
And we used bunch of flags and draggable views to implement those functions
Flag module provide a reliable API to customize the actions after content flagged
The "report" function is also an extension of flag module
By combining with rules, emails alert can be send to editors
Data migration
As this is a revamp project, the articles can be traced to since 2008
In this five years, the users, articles, comments combined have over 1.2M records
And during the migration process, the forum must be put offline until the process had completed perfectly.
Exporting from old system, import to the new system had spend 9 hours in total
Starting from 6pm in the evening until next day 3am
To ensure the process will not fail in the last minute, we have spend much time developed a module base on the migrate module
Through a maintainable, continuous, reproduciable method, migrate the old content to Drupal
And mapped to the main entity, users, node, comments and files.
I will talk about the details of the module in Drupal camp Taipei 2013 http://2013.drupalcamp.tw/session/83
user single sign on
Last is single sign on
as the old system is based on the same server, user do not have to login separately.
But if we want the same smooth login flow on different sub-domain, the difficulty and complexity is much much higher.
For this purpose we also developed a custom module to handle user integration, so user will not notify the forum and news sites are completely different machine
We will also talk about the coding behind on Drupal camp taipei 2013
and release the ppt here after I come back
Last, let me show you some screencaps
And if you still havent sign up Drupal Camp Taipei 2013, sign up at http://2013.drupalcamp.tw/ immediately!
Attachment | Size |
---|---|
hkej forum revamp date based frontpage.png | 68.7 KB |