Page 1 of 1

CMS design

Posted: Tue Jun 27, 2006 9:15 pm
by alex.barylski
Many of todays CMS applications are complex monolithic beasts...requring weeks in training before doing anything useful...

This was the very incentive to write my own...within minutes *anyone* can start making content changes...

My CMS is faaaaaaar from perfect...but uses a fairly different approach to solving CMS problems...following a KISS principle...and cutting back on advanced features...

Pagination of articles and sub articles, etc...

Although this could be added...

What I like about my CMS...the reason I started it...was actually a long time ago...I was trying to build a sorta RAD tool for PHP developers...

Tired of having to create a new page for a web site, with some pages requiring complex contact forms and others, requiring a dynamic list pulled from some web site other than my own...

My CMS solved this problem by basically using a *model* PHP script to generate new web pages - which are actually PHP scripts so once created you could go in and add the custom code required to build an interesting web site/application...

Albeit it's more handy for web sites where content in of concern...

Anyways...

Because the core of the system relies solely on the file system and no DB...it's difficult to add plugins like, search...but trivial to include third party solutions like phpDig as it knows how to search files on a web site...not DB articles...

Does anyone see this as a short fall? How about advantage?

Over the years (i've re-built it numerous times but it's still v1.0) I have considered both the positives of DB and the negatives...

I must say DB usually wins, but I still like my idea (there is no reason I could start using a DB to store content - it's a trivial hack)...the simplicity behind it all appeals to maybe :)

I would like the ability to add news sections, etc...using nothing but the CMS itself...but because of the design...simplicity...that would make things much more complicated from a end user perspective...beating the purpose...

Yet fairly advanced web sites could be quickly throw togather using this as a tool...

I'd like to hear opinions, comments, etc...

Posted: Tue Jun 27, 2006 9:34 pm
by feyd
Opinions and comments about what? All I read was a rambling advert for your CMS. :P

Posted: Tue Jun 27, 2006 9:45 pm
by alex.barylski
Right, sorry...

I'm tardy today as I haven't slept much in the last 3 days :(

CMS design...

File based over DB...

My CMS for instance...uses fairly trivial templates (although in PHP so anything can happen) with only about 2-3 *variables* title, content, etc...

You can have fairly sophisticated designs, if you work with the WYSIYWG enough...

Whereas I find many other CMS like to limit what you can do in the immediate body and try and promote more dynamic (automated designs) via modules placed in either content editors in the form of replacer tags or modules embedded in templates themselves...

I like the simplicity of using a single editor for modifying everything in the content area...but understand why CMS also include the modules support for news listings, realty listings, etc...

You could include these in my CMS but the CMS itself wouldn't let you do it...you'd have to be a programmer or at least understand how to add code to the templates, etc...

I suppose I could add module support...but in KISS I want to minimize user learning curves...

Topics such as these or anythng else CMS you can think of...

I'm interested in disscussing CMS...I could talk about it all day...

It's the one area that always keeps my interest... :P

Better? :P

Cheers :)

Posted: Wed Jun 28, 2006 12:42 am
by daedalus__
Is it open-source or for personal use?

Posted: Wed Jun 28, 2006 12:52 am
by RobertGonzalez
It's only my opinion, but I would think that files are much more succeptible to malicious intruders that databases would be, what with the DB authentication and all. File interaction usually requires more code to interact with it, where as PHP's built in DB functions handle most of what you would need for DN interaction. And, in my opinion (and I can't really support this with any solid data), DB interaction seems to be faster and less prone to user conflict. Say you have 1000 users hitting your CMS at once (not that they would, but let's just say), how would opening a file or manipulating a file take to that level of user interaction?

Maybe I am just a DB man, but I like the thought of code and data separate and in separate platforms.

Posted: Wed Jun 28, 2006 6:22 pm
by alex.barylski
Daedalus- wrote:Is it open-source or for personal use?
Well it started as a personal project...and then I began to consider it's commercial usefulness and now...I"m thinking...maybe i'll release it as open source (L)GPL but with some stilulations...

For instance I have my copyright on every page and my logo...if you don't like that...as I'm a designer/developer myself...you pay a small fee, like $99/license entitling you to faster updates...premium support (email), and redesigning of the front end (thus re-copyrighting or re-branding) the front side...obviously the code would have to retain it's copyright...

But it's still falls under open source I believe...as I think I can do the above under (L)GPL or GPL, etc...

Posted: Wed Jun 28, 2006 6:36 pm
by alex.barylski
Everah wrote:It's only my opinion, but I would think that files are much more succeptible to malicious intruders that databases would be, what with the DB authentication and all. File interaction usually requires more code to interact with it, where as PHP's built in DB functions handle most of what you would need for DN interaction. And, in my opinion (and I can't really support this with any solid data), DB interaction seems to be faster and less prone to user conflict. Say you have 1000 users hitting your CMS at once (not that they would, but let's just say), how would opening a file or manipulating a file take to that level of user interaction?

Maybe I am just a DB man, but I like the thought of code and data separate and in separate platforms.
Hey man...

I agree DB has advantages...as file system requires alot of work...yes...but it offers advantages as well...

For me anyways...I am always switching from CMS to FTP and for me to see what files exist and be able to modify newly created web pages, either in my CMS or editor of choice...was invaluable...

You are much more prone to error using files...

As for efficiency...the way I have my CMS designed...it no dought beats a DB performance wise...even with indexing...it's hard to explain, but there isn't any connections or anything being made...

Everything is contained inside the web page except for images, etc...and this could be changed...

Portability and setup are easier...as you simply copy files via your FTP program...

My CMS acts much like Frontpage or dreamweaver do...in that every web page is actually a physical page not a virtual page fed to a browser by using an index PKID or similiar...

The only difference is that my CMS uses templates instead of hardcoded HTML so layout across site can be applied quickly

I designed it this way because I've always been obsessed with designing a RAD editor, for years I tried in C++/MFC but results were waaaay to slow to keep my attention for long enough to get anything cool done...PHP made this waaaaa easier :)

I really liked the idea of basically offering a web baed file manager and being able to assign different users actual directories...they could later access either FTP or the CMS...

There are many problems that go along with file based...

Every file or image you reference must be relative to the web page location...or you use aboluste paths...in either case if images or files move or the web page itself...you have dead links....this could be fixed by parsing each web page content, looking for invalid links and updating those that are...but the work is waaaay more than if you used a IMAGE, etc stored in a DB or single directory like many do today...

The appeal for me...again is the 1:1 relationship everything in the CMS shares with the physical HDD...backups via an FTP program are easy as no DB backsup are required...

And spanning the CMS across multiple domains is a breeze as well...

But again...it comes at a cost...it's more difficult to integrate modules, etc...especially those which might be better done using SQL...

I could likely use my CSV class to emulate most SQL functionality...albeit adding more complexity...but the code wouldn't be hard...just mundane...

So this is the battle for me...

Whether I should start version 2.0 with SQL or keep using the file system...

More difficult...but thats not my concern...security...there are ways around it...such as my mishap with that script kiddie...uploading a PHP script... :P

Yup advantages and disadvantages...I'm trying to decide...and get a feel for other developers...as if I release this as open source...it'd be a bummer if no one else helped :)

Cheers :)

Posted: Wed Jun 28, 2006 8:07 pm
by daedalus__
I just want to look at the code. lol

Do I have to pay $99?

Posted: Wed Jun 28, 2006 8:14 pm
by alex.barylski
No... :P

but I'm not going to release it open source just yet...I haven't fully 100% decided to do so or just keep it for personal use...

Also it needs to be polished...I had already made numerous changes and bug fixes, but seem to have lost that copy and have to start form scratch again :P

Posted: Wed Jun 28, 2006 11:15 pm
by basdog22
My 2 cents:

I think a mix of DB and file system functions are the best way to go.
I tried it during the creation of my CMS and it just rocks (Still the version that does that is in a development state). Users have their directories uppon registration and the whole system is a collection of modules (file system based) working together (guided by the DB).
The only difference is that my CMS uses templates instead of hardcoded HTML so layout across site can be applied quickly
I need some info on this. There are tons of systems that do that :roll:

Posted: Wed Jun 28, 2006 11:17 pm
by daedalus__
I haven't absorbed this thread, but I think that when someone can't decide between files and DB that they should go XML.

???? lol