SitePoint Sponsor

User Tag List

Page 1 of 3 123 LastLast
Results 1 to 25 of 59

Hybrid View

  1. #1
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Advice for writing a new CMS

    I need some advice from fellow web developers...

    I've recently embarked on a long journey of developing a brand new PHP based CMS. The only CMS I've used is Joomla/Mambo, and I find it far too bulky, demanding, a little difficult to use, and not as versatile as they promise. My goal is to make a better CMS that's fast, efficient, easy to use, yet powerful and expandable (with plugins and such).

    Can I get some advice on what to do/not to do? I'd really like to hear:
    1. what you guys like and dislike about other CMS systems
    2. any features you want that you can't find in other CMS systems
    3. what's most important to you in a CMS
    4. what components/plugins are crutial to an initial release (article layouts, banner capabilities, bread crumbs, blog, gallery, etc)

    Thanks!

  2. #2
    SitePoint Addict
    Join Date
    Feb 2007
    Posts
    251
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    have you looked into drupal?

  3. #3
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I have looked AT Drupal, but not INTO Drupal. what are some of the advantages of Drupal over Joomla?

    note: i'm not trying to find a CMS, but make one.. even if there is a good one out there, i enjoy the challenge!

  4. #4
    SitePoint Addict
    Join Date
    Feb 2007
    Posts
    251
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    These links provide an overview...
    http://www.alledia.com/blog/general-...ight-for-you?/
    http://drupal.org/node/90278
    http://xaneon.com/content-management...-vs-mambo.html

    You might also find this useful...
    http://drupal.org/node/78874

    If I was going to build a CMS, I'd keep the feature set to a bare minimum and focus on ease of integration with existing applications/websites. In other words, I'd only build a very tiny, borderline-crippled CMS. Whatever that means.

  5. #5
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thanks. those links look good. I will read over them more carefully shortly.

    I am also interested in your personal opinion of any CMS you've used. what did you personally like/dislike?

    Quote Originally Posted by cuberoot View Post
    ... In other words, I'd only build a very tiny, borderline-crippled CMS. Whatever that means.
    That's actually my initial plan. First I am building a nice skeleton framework with only the key modules and components. Then I plan to use it to develop websites and as I build websites, I'll write more modules/components that are needed for these websites, but can be optionally included with the CMS download.

  6. #6
    SitePoint Addict
    Join Date
    Feb 2007
    Posts
    251
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I've messed around a tiny bit with Drupal. Mambo a lonnng time ago.

    The main gripe I have with using a CMS is the same gripe I have with using a framework. You gain a lot on the generic stuff, but tend to lose even more on the specifics. This leads to a case where you either have to sacrifice some aspect of the process you're modeling or break your neck hacking workarounds into whatever technology you've committed yourself to.

    Generally speaking, the business rules rule. A client isn't going to be happy if you build a system that isn't in keeping with their business model.

    For instance, a customer might say, "...but our editorial process involves a technical writer, an editor, a person from legal, and marketing. Sometimes we skip legal though, in the case of X, Y, and Z" And so on and so forth. It's not cool to say, "Well, we don't allow for that process actually. Instead, you'll have to use one that we have selected and feel is best for publishing content on the web."

    I think there's another problem here though, and it's the "problem of intended audience". When you write a book, an article, or even a forum post, the first thing you generally think about is the intended audience. Or at least you should, otherwise you run the risk of writing something completely inaccessible. Might as well talk to the walls.

    So who is this CMS designed for? Where are they at right now, in terms of their CMS needs? How can you make something that will ease their worried minds, etc.?

    I understand that's what you're trying to do here. At least that seems to be the case. However, I think this might be the wrong forum. I'm not sure you'll gain enough interest with this bunch. It's just a hunch I have after hanging around here a while.

    You would probably be better served by visiting some forums where members are openly venting about their frustration with Joomla or Drupal. Then you can start digging in there to find a core requirement or two. You keep those people posted on the developments, send them regular emails, etc., and then grow the thing organically.

    This isn't fertile ground though. There are far too many broken souls here.

  7. #7
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for the excellent feedback. I completely agree with the problem of frameworks not fitting your business model. I had to write so many hacks/workarounds for Joomla (and bug fixes) it wasn't even funny.

    I think my target audience is going to be web developers (not just people who can hack together a website), and their customers, but with the focus on the developers. I know that no matter how versatile I can make it, it will never fit every business model, so I just want it to simple and understandable, with nice documentation so that a developer can subclass my models and make them fit.

    I'll definitely hit up the joomla and drupal forums.. probably start with some of the troubleshooting topics and let some people vent I guess I'll eventually have to actually use drupal and see what it's all about too.

    thanks again!

  8. #8
    Spirit Coder allspiritseve's Avatar
    Join Date
    Dec 2002
    Location
    Ann Arbor, MI (USA)
    Posts
    648
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by smallshot View Post
    I think my target audience is going to be web developers (not just people who can hack together a website), and their customers, but with the focus on the developers. I know that no matter how versatile I can make it, it will never fit every business model, so I just want it to simple and understandable, with nice documentation so that a developer can subclass my models and make them fit.
    I think the focus should be on the customers... that's really what makes or breaks a CMS. If I can't hand this to my lowest common denominator client and have it be intuitive, it just isn't a good CMS. That should be your first goal, and I think that's where a lot of existing CMSs have fallen short for me. However, if you can make a client-intuitive interface that works well with your development workflow, then I think you'll have something

    The key is really to start small. Make something that can add, edit, and delete pages. Nothing more. Once you have that all set, built features on top of that. Always keep it as easy to do the above, no matter how many features you add. Just don't forget that most clients probably just want to edit a page without knowing HTML.

  9. #9
    SitePoint Enthusiast BeeStar's Avatar
    Join Date
    Apr 2008
    Location
    the Netherlands
    Posts
    27
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Good luck with writing your own CMS. It is a fun exercise. I wrote one, long ago. Until I wanted more functionality and discovered that a good CMS easily takes 1000+ hours to write.

    So I started to look for an open source PHP/MySQL CMSes and found Mambo, later Joomla. At first I was ecstatic, but after a while...

    Quote Originally Posted by smallshot View Post
    I completely agree with the problem of frameworks not fitting your business model. I had to write so many hacks/workarounds for Joomla (and bug fixes) it wasn't even funny.
    Indeed.

    Then I found MODx (www.modxcms.com). I took one site I had made with Joomla and rebuilt it in MODx. It took me only 32 hours. This is including learning MODX, copying the templates and content. MODx is never in the way and allows me to make the website exactly as I want it. All my sites are MODx based now.
    After you have played with this CMS for a few hours, you might let go of your plan of building your own.

    BTW, I am not related to MODx in any way, I am "just" a happy user.

    Hope this helps.


    Bee

  10. #10
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I see what you are saying, and you are right. I'm pretty good at user interfaces, so I'm pretty confident that it will be intuitive enough for the average end user, but I guess I need to be focusing on both the developer and the customer to make sure anyone can use it. Obviously the most important part of a CMS is the CMS part, but I want my CMS to be as easy as possible to customize and add on to. I should mention that I started this CMS for my own purposes (to develop more versatile websites faster), thus my desire to target other developers too.

    Everyone keeps saying "start small," but it's so hard! I'm a big dreamer, I have HUGE ideas. I'll try to keep it simple, but I'm also being very careful to design the code in such a way that I can add on the big features i'm planning without much difficulty or design changes.

    oh, and I definitely plan to us a visual editor like tinyMCE for those that don't want to or can't hand code HTML... I just wish it wouldn't let them paste in text directly from word... OMGoodness, that's some AWESOME HTML...

  11. #11
    Spirit Coder allspiritseve's Avatar
    Join Date
    Dec 2002
    Location
    Ann Arbor, MI (USA)
    Posts
    648
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by smallshot View Post
    Everyone keeps saying "start small," but it's so hard! I'm a big dreamer, I have HUGE ideas. I'll try to keep it simple, but I'm also being very careful to design the code in such a way that I can add on the big features i'm planning without much difficulty or design changes
    I don't know, maybe I'm just a perfectionist, but I tend to obsess over code being flexible for the future, and never get anywhere... these days, I'd say just write the code. As soon as you start adding stuff to it, you'll see where your design choices aren't flexible, and then you adjust them. It might cost a bit extra in development time, but you'll learn so much more through trial and error than studying design patterns and trying to make the most abstract and flexible application from the start. In my opinion anyways.

  12. #12
    SitePoint Addict
    Join Date
    Feb 2007
    Posts
    251
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by allspiritseve View Post
    I don't know, maybe I'm just a perfectionist, but I tend to obsess over code being flexible for the future, and never get anywhere... these days, I'd say just write the code. As soon as you start adding stuff to it, you'll see where your design choices aren't flexible, and then you adjust them. It might cost a bit extra in development time, but you'll learn so much more through trial and error than studying design patterns and trying to make the most abstract and flexible application from the start. In my opinion anyways.
    Adopting TDD (Test Driven Development) would be a great idea as well, since TDD is all about letting the design evolve through a coding process, rather than BDUF (Big Design Up Front). The obvious bonus is the test suite that comes out of that process, which not only allows you to catch bugs early and often, but also allows you to refactor at will without worrying about breaking stuff.

    A full test suite for the core and each module in a CMS would be ideal. I'm not sure how much coverage Drupal has, but I know they're working on it.

  13. #13
    SitePoint Evangelist
    Join Date
    Oct 2005
    Posts
    415
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by smallshot View Post
    oh, and I definitely plan to us a visual editor like tinyMCE for those that don't want to or can't hand code HTML... I just wish it wouldn't let them paste in text directly from word... OMGoodness, that's some AWESOME HTML...
    You can just remove the paste from word plug-in from tinymce. I use tinymce and their image manager in my php cms that i built and have various setups of the WYSIWYG editor for the specific area required. One thing that i think a cms needs is the templating ability for multiple templates on a single site, as well as an easy way to template the plugins. Smarty has been a saviour..Im still trying to figure out how to implement smarty plugins from a database through tinymce but im getting there. I have used many of the free php ones as well as a 20,000 one my company uses which to be honest aint all that. But the key aspect which i think alot of cms's are lacking is how to the the very simple things...

    for example..

    create links to existing pages on your site in an easy manner not hand typing.
    re-order pages
    template pages
    template plugins
    attach documents to pages easily
    insert images easily
    i think one of the most important factors however is that you could have the most amazingly functional cms built but if its poorly designed from a visual perspective and the menu layout is confusing then no-one will use it.

    My 2cent

    Rodent

  14. #14
    SitePoint Evangelist
    Join Date
    Mar 2006
    Location
    Sweden
    Posts
    451
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Isn't there a plugin for TinyMCE that cleans up Word HTML?

  15. #15
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I agree with you, allspiritseve, whenever I completely design something first, I seems like I never get it finished when I try to code it. I think it takes some of the fun and excitement out of the programming part. I personally prefer the trial and error designing, or essentially rapid prototyping for these smaller projects (or smaller pieces of a larger project).

    @cuberoot - what do you mean by a test suite? would there be a document with all the test cases each module should pass?

  16. #16
    Spirit Coder allspiritseve's Avatar
    Join Date
    Dec 2002
    Location
    Ann Arbor, MI (USA)
    Posts
    648
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by smallshot View Post
    I agree with you, allspiritseve, whenever I completely design something first, I seems like I never get it finished when I try to code it. I think it takes some of the fun and excitement out of the programming part. I personally prefer the trial and error designing, or essentially rapid prototyping for these smaller projects (or smaller pieces of a larger project).
    I agree with cuberoot... Test Driven Development is perfect for this type of programming. I personally use SimpleTest: http://simpletest.sourceforge.net/ and they have some tutorials on their site if you want to learn how to write tests.

  17. #17
    We're from teh basements.
    Join Date
    Apr 2007
    Posts
    1,205
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I agree with all of the posters who said to start small and incorporate only very basic features. That said, your CMS will snowball as you incorporate new features. That is exactly what happened with my little CMS. It was supposed to be a light, portable SQLite-based system. I have subsequently added image resizing and cropping capabilities, among other things. The problems I experienced were due to limitations in SQLite that weren't really problems in the original barebones model. For instance, you cannot manipulate the underlying tables in views of multiple tables in separate database files. The features all work well, but a lot of kludging was needed to get features that rely upon such views to work. I will have to do a lot of recoding if I ever decide to extend this application further.

  18. #18
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'll try to be careful and keep it small, specifically the core. I personally hated trying to read through thousands of lines of Joomla!'s code (in 100 different files) just to figure out what the heck was going on.

    It appears you are selling your cms... If I may ask, how are sales going? who are you targeting, what's the cost, and how are you marketing it?

    I'm just curious, not trying to compete- I'm pretty certain I will release mine under GPL3 once it's finished... in about a year.

  19. #19
    We're from teh basements.
    Join Date
    Apr 2007
    Posts
    1,205
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by smallshot View Post
    It appears you are selling your cms... If I may ask, how are sales going? who are you targeting, what's the cost, and how are you marketing it?
    I am not actively trying to sell it as a standalone product at this time. I haven't even bothered with it since November. I considered releasing the first version under GPL once the second version (with all the kludges cleaned up) was finished, but, frankly, I lost interest in it a long time ago and haven't taken it up again. Besides, I think I'd be rather embarassed to have other developers see the kludges, or to expect other maintainers to deal with them.

    The package was aimed at non-technical end-users. The zero-configuration installer sets everything up automatically, and the user doesn't need to know the first thing about Webmastering.

  20. #20
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hehe, I feel you there. several years ago I spent 2 years on a huge awesome project. The final product was really more of a prototype, but it didn't look like it, just needed some more features and minor changes- a pretty sweet application. After I got out of college we stopped working on it. later I wanted to release it, source code and all.. but I looked at that source code (2 years later) and ..wow was it embarrassing.

  21. #21
    We're from teh basements.
    Join Date
    Apr 2007
    Posts
    1,205
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The specific feature that caused most of my woes was the link sorter (Fig. 14 in the promotional page). The original CMS was a basic CRUD page builder. Afterwards, I added a plugin manager for dynamic content modules (message boards, shopping carts, etc.) The basic CMS and the plugin manager use separate database files. The link sorter works by creating a view on both files. Due to the aforementioned limitations of SQLite views, it proved to be a major pain to provide a sort order index for both the basic pages and the plugins. The obvious fix would be to use the same database file for both.

  22. #22
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thanks for the simpletest link. I'll keep that in mind, though I'm not sure i'm ready to go all the way to TDD. For now i prefer to keep track of the test cases in my head and test them as I go, though things may change if/when it gets more complicated.

  23. #23
    SitePoint Addict
    Join Date
    Feb 2007
    Posts
    251
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You might change your mind once you give it a try!

    "Test Driven: TDD and Acceptance TDD for Java Developers" can get you going. It's a pretty accessible book. Written for Java folks of course, but it's very easy to translate the concepts to PHP.

    Perhaps the greatest benefit to adopting TDD is the fact that you will be FORCED to become a much better OO programmer.

    First, you'll have to write all of your code for two clients, so it becomes much easier to spot any nasty dependencies before you commit them to your implementation.

    Second, you'll have to really think about the interface of your class, it's core responsibility, etc.

    In reality, you're not writing tests, but specifying the behavior of your application prior to going ahead with the implementation. This concept is what lead to the practice of BDD (Behavior Driven Development), and tools like phpspec (phpspec.org).

    And when your project grows to 2+ developers, you'll be glad you have a thorough test suite backing every change, asking "are you really sure you wanna do that?!"

    Another huge benefit you'll see with 2+ developers is that integration becomes much less of a hassle, assuming you've setup a continuous integration server like CruiseControl/phpUnderControl or Xinc of course.

  24. #24
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    you're probably right. I don't know much about TDD or even proper testing. I guess I'll have to do some reading.

  25. #25
    SitePoint Enthusiast
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I didn't realize there was a paste from word plugin for tinyMCE. If it can clean up that ugly html i'd be happy.

    Thanks for that list rodent, that helps a lot. I already have plans to allow different templates on the same site, as well as different STYLES of the same template, so a template designer can create multiple styles that have identical (or near identical) layouts so the user can change styles without having to worry about the template messing with the layout s/he's happy with.

    what do you mean by templating plugins? a style template? or ..?

    thanks for the advice


Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •