I am building an online magazine based on WordPress. The entire site is hidden behind an authentication screen; there are no unregistered users. The are no anonymous readers. Everyone must first log in if they are to view any of the content of the magazine whatsoever.
There are essentially three kinds of users on the system I am building: the administrator, editors and contributors.
The Administrator is the code monkey, the only person who anyone really expects to know anything about throwing switches and writing code.
The Editors publish articles, use WYSIWYG interfaces to make media and text look pretty, and work with contributors to make sure we aren't violating any of their copyrights. (But, God be willing, they will never be able to touch the code or change any of the settings of the website.)
Contributors are essentially readers with the added treat of being able to pitch article ideas to the editors, work with editors to revise the article and nothing more.
Given that, only the Admin should see the WordPress admin panel in all its glory. Editors should be able to review posts and comments, manage uploaded media, but that's about it. When Contributors get to the back end, they should only be able to see a list of the articles they have submitted, click the articles' titles to view the entire post, where they can read notes from the editors on the draft, approve and propose their own changes and give their final consent for publication of the draft.
With the very ungraceful solution to this set of needs I have now (a punch of hodgepodge plug-ins installed from the WordPress community) the next step for me is to find out more about how the WordPress administration panel is compiled.
For example, I've noticed that the default link to the Admin Panel from the frontend of WordPress simply links to the /wp-admin/ directory. How does WordPress know which PHP file to load from this directory? (I've noticed there is no index.html file in that directory to kick the compilation process off. How else could the server know where to start? Please forgive the noobish question; how very unl33t of me.)
Also on a related note, where do I find a CSS file to make all the buttons on the Admin Panel that I don't want to show up disappear based on the role of the user logged in in the session? I think I found a file that gets called in the header of whatever it is that compiles all the PHP code for the Admin Panel, but--for all intents and purposes--that CSS file looks like nothing more than another set of calls to a bizillion other CSS files in locations unknown.
There must be some abstraction of all this calling and gathering and compiling of diaspora files into one, final page. Does anyone have any nice documentation of this--like JPEG map of what gets called where and why?
Peace to yah hommies and all that jazz,