Page 1 of 1

Such A Thing As Admin Snap-In?

Posted: Sat Nov 29, 2008 9:02 pm
by volomike
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.

Re: Such A Thing As Admin Snap-In?

Posted: Sat Nov 29, 2008 10:39 pm
by alex.barylski
, I might even pay up to as much as $500 USD for it per client license
Interesting...I'm always looking for ideas in which I could resell to other developers, seeing as I know where developers tend to "hangout" :P and I'm not a very good business man.
Why? Because the /admin on a site can be a time sucker and tends to have similar functionality on multiple sites.
Cool but there a few problems with such a generic system:

1. How do you intergrate each admin panel into an existing authentication/authorization system?
2. How do you integrate the admin panels into the overall design set forth by the backend designs? Just generic ugly forms would suffice?

Sounds like a form generator is what you ultimately want...but with a builder interface to setup scaffolding and generate the basics which you just reuse in your own projects...

Have you googled?

Re: Such A Thing As Admin Snap-In?

Posted: Sat Nov 29, 2008 10:42 pm
by omniuni
I have a good friend of mine who is a very able programmer (he teases me all the time about the poor quality of my code) who is, I think, working on just such a thing. I will show him this thread and see if I can get you in touch with him.

Re: Such A Thing As Admin Snap-In?

Posted: Sun Nov 30, 2008 1:08 am
by alex.barylski
I have a good friend of mine who is a very able programmer (he teases me all the time about the poor quality of my code)
I don't even know you and I make fun of your code. :)

Just teasing ;)

Re: Such A Thing As Admin Snap-In?

Posted: Sun Nov 30, 2008 2:15 am
by Eran
Basically there are such systems, only they mostly suck ass. Joomla is such a system for example.

Re: Such A Thing As Admin Snap-In?

Posted: Sun Nov 30, 2008 11:17 am
by josh
Symphony has an admin generator, why does it have to be a "snap in" though? You could just do it with normal code

Re: Such A Thing As Admin Snap-In?

Posted: Sun Nov 30, 2008 11:37 am
by JayBird

Re: Such A Thing As Admin Snap-In?

Posted: Sun Nov 30, 2008 4:30 pm
by alex.barylski
Basically there are such systems, only they mostly suck ass. Joomla is such a system for example.
What sucks about them, for you?

I'm genuinely curious...I've built a few form builders/generators. There are interesting challenges, for sure. :)

Re: Such A Thing As Admin Snap-In?

Posted: Sun Nov 30, 2008 4:38 pm
by Eran
Taking joomla as an example, for me it adds way too much overhead to conform to its way of doing things than to be really useful. A good system should be easy to develop with, and joomla is just a pain in the ass as far as I'm concerned. They tried to evolve from a CMS to a framework - without real understanding of how a framework should be structured.

If there was such a system built with a good open-source framework like Zend's, Symfony, Solar or several others, I'll be all over it.

Re: Such A Thing As Admin Snap-In?

Posted: Sun Nov 30, 2008 5:01 pm
by alex.barylski
I think your problems stems from the fact Joomla and Zend are not the same thing.

While Joomla is a 'framework' of sorts it is also an full scale application, which means it wil dictate a lot of what you do. Much like an operating system provides application developers with a common API for file handling, etc. Joomla does the same thing for web developers.

The paradigm shift from desktop to web development however, makes this less appealing, because in web development, we are frequently (more often than not) directly tied with web design. When Joomla or similar application/framework forces you to design an application with a certain layout (Joomla is very complex I agree) menu structure, etc...we bang out heads against the wall.

In Windows it's become standard practice to have menus at the top, etc...Open source and the lack of a standards body allows us to be more picky about design, layout, etc...which is why Joomla doesn't solve your problems. Technically speaking, there isn't anything you can't do wtih Joomla, but it will incur a massive performance penelty, learning curve (both developers and end users) and other side effects.

Most developers are not interested in investing countless hours learning the Joomla API and it's architecture (although it's actually well designed) instead opting to write everything from scratch, or atleast the majority of it. Zend is nice only because it doesn't really interfere with the visual aspect of development; The interface and end user interaction.

This is the crux of the problem though...IMHO...if you automate 90% of the work load, you lose 90% of the flexibility/customization. Joomla is great but for custom application development via modules, extensions, etc...

It's like a mini-operating system which makes things quite complicated and difficult to bend in a direction you want it to.

Cheers,
Alex

Re: Such A Thing As Admin Snap-In?

Posted: Sun Nov 30, 2008 5:39 pm
by Eran
No, you are misunderstanding. I think they took a wrong turn when they tried to become a framework without knowing the implications. What they built is a mishmash of several approaches that doesn't do anything very well. I believe the reasons they went the framework way are valid though - to have a really adaptable broad application, it must have a wide-covering base as well.

For this reason I wish that a good and encompassing CMS would be released on one of the top PHP frameworks, this way I'd have a good base to build on if I needed drop-in solutions. Another problem joomla has is its terrible documention (especially compared with the excellent documentation most frameworks have). Developing with it is a process of discovery and frustration, and it shouldn't be like that.

Re: Such A Thing As Admin Snap-In?

Posted: Sun Nov 30, 2008 6:50 pm
by alex.barylski
There are some quirky things about Joomla, like how it uses a XML object to represent the view of a menu and essentially standard templates for everything else. It took me less than 2 hours to figure the menu system out and get my menu the way I wanted.

Joomla is probably the most flexible software application I have ever seen. Granted 99% of the modules suck and are likely full of wholes and bugs, the idea of centralizing authentication, autorization, and other system services is actually quite well done, when compared to other open source projects.

Enterprise CMS is not easy...I've spent almost 10 years developing them to one degree or another and I have observed them evolve from basic editors to full scale mini-operating systems. While Joomla is huge and it's source less than ideal, I'm not sure using Zend alone would make a different. They do follow patterns quite a bit in Joomla (look at the docs ad they have their factories, facades, proxy, models, locator, etc. Obviously a heavy influence from Java world so I am sure their developers are up to datw with patterns.

I could say the same of Zend in being to complex, overly abstract, over engineered in many respects.

Joomla is not a framework in the sense that Zend is...they provide an application layer, much like MFC for Windows provides an application skeleton when you build an application using a wizard.

I personally make my definitions of framework and application skeleton distinct, which is what were bickering about I think. :P

Cheers,
Alex

Re: Such A Thing As Admin Snap-In?

Posted: Mon Dec 01, 2008 3:11 am
by Eran
You're not paying attention. I said:
I wish that a good and encompassing CMS would be released on one of the top PHP frameworks
I'm well aware of the differences between a standalone framework and joomla. I wish that a CMS / application layer in the vain of joomla would be released, but one using an open-source framework as its core instead of trying to reinvent the wheel (without a real understanding of what a wheel does).

Re: Such A Thing As Admin Snap-In?

Posted: Mon Dec 01, 2008 1:42 pm
by alex.barylski
I wish that a good and encompassing CMS would be released on one of the top PHP frameworks
Funny cause I'd say your not listening, but I digress. :P

If it's so easy to meld the two togather (ie: Zend framework and a CMS skeleton application) go at it. ;)

Joomla isn't perfect but it's come as close as it gets, from what I've seen and I think you'd be hard pressed to find a popular CMS I haven't used commercialy or out of interest.

All that labour saving stuff would be very difficult to mix into Zend as a skeleton application without resembling something like Joomla anyways.