Such A Thing As Admin Snap-In?
Posted: Sat Nov 29, 2008 9:02 pm
You know, it would be great if someone had invented a PHP-based admin snap-in in order to rapidly make admin pages for a site in very little time. Heck, if I could see several screenshots and try a portion of it out on a couple tables to see some of the functionality, I might even pay up to as much as $500 USD for it per client license. Why? Because the /admin on a site can be a time sucker and tends to have similar functionality on multiple sites.
It doesn't have to do everything, but at least tackle 60% of the needs and provide an easy way to drop in your own menu links for other custom search and form pages.
It would be even better if the admin system was an admin-generator, which automatically created the scaffolding that you could customize by editing the PHP.
Here's how it would work, if such a thing existed.
1. A master [section]\nkey=value; conf file is used, like so:
[mySection]
myKey=myValue with
multiple lines;
myKey2=myValue on the same line;
And this would store all the settings for the admin system.
2. You define whether this is SQLite3+, PostgreSQL7, PostgreSQL8+, MySQL4, or MySQL5+ and up.
3. You define the tables that would be admin-able.
4. By default, for the forms and column headers on searches, it would translate table names to Proper Cased labels with spaces instead of underscores, but you could also override this functionality as well as define which columns are off-limits.
5. You define the relationships between tables:
- Which fields are lookup fields that tie to other tables and what column to pull back (such as translating label value to ID).
- Which tables have rules that require records in other tables first.
- etc.
6. You define the master login for the admin system and other logins, and what menu items the logins see or don't see.
7. The admin site would use an accordion menu on the left, a content area on the right, and jQuery and AJAX communicating with a PHP backend for all form posting and field validation. By using AJAX, you eliminate having to do so many server roundtrips and page redraws for every click -- which is very important on a heavily used site on a shared server where bandwidth is very important.
8. Basically you have CRUD (Create, Read, Update, and Delete) on an entity, such as users, user profiles, jobs, etc. So, the submenu items would like be Add, Edit (with Find being implied), and Delete (with Find being implied). The other menu items one could add by their own customization could be something like Disable/Enable, Reset Password, Lock Account, etc.
9. The Find (Edit/Delete) would let one do a simple search on keywords in a small set of pre-defined columns, or a more complex search on any field. The result would appear in a paginated grid. When one clicks an item in the paginated grid, they go to a form where they can either edit or delete the item depending on context.
10. When we customize the menus, we define whether we want to first use a Find form or go straight to the custom data entry form.
11. Some fields would require rich editors (TinyMCE). Some would require popdown listboxes either hardcoded to a list or mapped to a table. And so on. These things would be automatically handled but could also have overrides from the admin conf file.
12. Easy installation with very few dependencies besides jQuery, PHP5, and TinyMCE. It would come bundled with its own mini-templating system and mini-ORM.
It doesn't have to do everything, but at least tackle 60% of the needs and provide an easy way to drop in your own menu links for other custom search and form pages.
It would be even better if the admin system was an admin-generator, which automatically created the scaffolding that you could customize by editing the PHP.
Here's how it would work, if such a thing existed.
1. A master [section]\nkey=value; conf file is used, like so:
[mySection]
myKey=myValue with
multiple lines;
myKey2=myValue on the same line;
And this would store all the settings for the admin system.
2. You define whether this is SQLite3+, PostgreSQL7, PostgreSQL8+, MySQL4, or MySQL5+ and up.
3. You define the tables that would be admin-able.
4. By default, for the forms and column headers on searches, it would translate table names to Proper Cased labels with spaces instead of underscores, but you could also override this functionality as well as define which columns are off-limits.
5. You define the relationships between tables:
- Which fields are lookup fields that tie to other tables and what column to pull back (such as translating label value to ID).
- Which tables have rules that require records in other tables first.
- etc.
6. You define the master login for the admin system and other logins, and what menu items the logins see or don't see.
7. The admin site would use an accordion menu on the left, a content area on the right, and jQuery and AJAX communicating with a PHP backend for all form posting and field validation. By using AJAX, you eliminate having to do so many server roundtrips and page redraws for every click -- which is very important on a heavily used site on a shared server where bandwidth is very important.
8. Basically you have CRUD (Create, Read, Update, and Delete) on an entity, such as users, user profiles, jobs, etc. So, the submenu items would like be Add, Edit (with Find being implied), and Delete (with Find being implied). The other menu items one could add by their own customization could be something like Disable/Enable, Reset Password, Lock Account, etc.
9. The Find (Edit/Delete) would let one do a simple search on keywords in a small set of pre-defined columns, or a more complex search on any field. The result would appear in a paginated grid. When one clicks an item in the paginated grid, they go to a form where they can either edit or delete the item depending on context.
10. When we customize the menus, we define whether we want to first use a Find form or go straight to the custom data entry form.
11. Some fields would require rich editors (TinyMCE). Some would require popdown listboxes either hardcoded to a list or mapped to a table. And so on. These things would be automatically handled but could also have overrides from the admin conf file.
12. Easy installation with very few dependencies besides jQuery, PHP5, and TinyMCE. It would come bundled with its own mini-templating system and mini-ORM.