SitePoint Sponsor

User Tag List

Results 1 to 11 of 11
  1. #1
    SitePoint Wizard
    Join Date
    Jul 2004
    Location
    Minneapolis, MN
    Posts
    1,924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Building a CMS - Need Help Planning (No Coding Issues)

    I decided to build my own custom CMS that I can apply to clients sites to make my job a little easier and allow the client to do small alters to their site by themselves.

    I'm not developing a portal CMS such as phpNuke so I instantly ditched out forums although from my current point in coding it would be an easy addon.

    The system itself I was very happy with after I took some time planning. It mainly uses two database, blocks and templates. Blocks are large coding blocks including pages, headers, footers, etc (but mainly pages stored in a database). Templates are small code bits used all over the website and css files.

    Using a kinda Smarty like feel you can do a lot so far. You can import blocks and templates along with display configuration variables (stored in a database). Blocks can also gather information passed in the URL which is handy in making expansions for a particular client.

    I also have got a good article system going.

    For most of the fancy features, articles and such, you have to setup the pages although it's quite easy once you get a hold of it.

    I don't plan for clients to fully understand the system, but I can easily explain how to edit something via the admin panel (not yet even started).

    What I want are any suggestions or features that might be good to include in the CMS. Again it's not for portal websites. Through the on article database I can easily have links and blogs within the same database. I like to keep code and databases to a minimum to make the program tiny.

    I just think that the overall system is missing something, not sure.

  2. #2
    SitePoint Wizard
    Join Date
    Mar 2004
    Posts
    1,647
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    make a good news system!
    that always work

  3. #3
    SitePoint Wizard
    Join Date
    Jul 2004
    Location
    Minneapolis, MN
    Posts
    1,924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    That would be a good addon for almost any website, thanks. It's also easy to achieve.

  4. #4
    SitePoint Enthusiast SТОRМ's Avatar
    Join Date
    Sep 2004
    Location
    Ukraine
    Posts
    31
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you want really fast CMS and your PHP knowledge are good then don`t use 3rd party code, this is IMHO of course, but when I just started writing in PHP I thought what`s the point in writing for example my own template engine when there are thousands of them, but now I realize that if you know PHP good it is much better to write everything by yourself from scratch. Now about features:

    1) Everything should be a module/plugin/extension or whatever you would like to call it. As an example I would like to tell you about my Engine (yes I don`t call it CMS or CMF becouse it is absolutely universal and I prefer to call it Engine). All the basic functionality is situated in the core, which consists of the extensions (templates, error handling, db abstracton, installer, admin functions etc.) The great thing about such a design is that if for example I don`t need db abstraction and templates in my project but need only error handling, I just delete this extensions and that`s all, I don`t need to modify any code. Okay we are finished with the core, now if I need to write for example a news management system, I just go to my modules folder and create folder NEWS, there I am writing my news management system using the basic functionality which core extensions provide. See how easy. Also the great thing about such a design is that all my applications that I write are the modules of my engine, so I can easily combine them together without modifying the code.

    2) Multilanguage interface. There should be absolutely NO hardcoded phrases. EVERYTHING must be translatable. Don`t tell me it`s impossible. I did that.

    3) Easily changeable site design (templates).

    4) Good error handling. Forget about PHP`s native error handling system and create your own. I did that and I`m very happy that I did that.

    5) Installer. You must implement your own installer, so anyone can easily install and run your CMS.

    6) Admin interface. For me a good admin interface is the thing that allows you to modify almost everything in the CMS.

    All that is IMHO of course, but I was writing my own Engine for 2 years, and I tried a lot of different designs and now the thing I created is absolutely universal, so I think that this 6 points I gave you are the key to success. Sorry if I explained something in a bad english, I`m a russian you know =)

    Max.

  5. #5
    Non-Member Icheb's Avatar
    Join Date
    Mar 2003
    Location
    Germany
    Posts
    1,474
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Something important for me is versioning support. You store the current version of for an example an article, but also the previous ones, or preferably all versions. That way, if an editor screws up, you can easily revert to the last "ok" version of the article.

  6. #6
    SitePoint Wizard mark_W's Avatar
    Join Date
    Mar 2004
    Location
    West Midlands, United Kingdom
    Posts
    2,631
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You might consider adding support for additional languages just in case.

    Mark.

  7. #7
    SitePoint Wizard
    Join Date
    Jul 2004
    Location
    Minneapolis, MN
    Posts
    1,924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    SТОRМ I know PHP probalby by heart and I've only used one premade PHP application, PHPAdsNews and it took me 2 days to figure everything out.

    I definately prefer everything homemade when it comes to programming. I was thinking of using Smarty, but I really don't need it as I have my own tiny, tiny engine like thing that I have running on it that works fine.

    The CMS itself is actually nearing a stage where I can start to worry about addons than the core framework. The article system is setup by default, but it takes about 5 clicks to remove it, very easy.

    Templates are easy to change using the block and template system. I haven't gotten to error handling much yet, but it's now on my to-do list. The admin interface I know will be detailed as people have to be able to easily figure it out.

    For the installer I plan to have a typical installation that installs the framework and some modules and useful premade blocks. Then have a custom one where they can be more specific and get rid of modules and blocks that they don't want. For example the article system doesn't have it's own php page at all. It runs off of MySQL obviously to store data. Then to view and article you have to make a block and use a tiny {tag} to view the article. In about 4 lines of code you can have an article page up and running that take the URL info and everything.

    It's so easy to customize. I think that the installer will really top it off. The thing is it's only controled by about 10 files so I may have that you have to upload them and the install page. The install page creates the databases and fills the tables with the data choosen by the user (premade blocks and templates).

    I'm not sure about the language thing, I really don't know the best way to start it off as I've never done it myself. I've used PHP for so long, but never dealt with languages besides English. Since it's mainly for clients (who speak english) then I think I don't need multiple languages, but I think it would be good to learn. Can someone push me in the right direction?

    And thanks for the help.

  8. #8
    SitePoint Member
    Join Date
    Nov 2004
    Location
    bradford - UK
    Posts
    7
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    For the language issue.

    If you pass variable such as category name, if you write folders with such name, you may think about the special caracters issue. Do you want to be compatible with 1byte languages (french, german, spanish, swedish...) or 2-bytes languages (arabic, japanese,..) ? unicode may be your keyword for your researchs.

    Every text from the interface should come from a unique file, which is easy to replace/extend with another language.

    Think about text expansion. A tiny 4-letters english word may be 3 long words in another language. Don't do text concontatenation for example to add plural form, grammar rules ares different in other languages.

    There is design issue for i18n.
    Should you have a tree structure with every language or a tree for each language ?
    How to behave if content exist in another language than the one asked?

    I hope it can help you to make choices.

    dragoo

  9. #9
    SitePoint Wizard
    Join Date
    Jul 2004
    Location
    Minneapolis, MN
    Posts
    1,924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well the thing is that when you fire up the CMS by default it will probalby be in English by default. If you want to make it a different language you probably only need to delete the blocks and create your own in the desired language.

    Alone the CMS doesn't really output anything that the user has never inputed himself into a block or template.

    The only language problems that I'll have are the {} tags:

    {config: site_name}

    I have a lot of tags like this to import blocks and templates into one another.

    Then the admin section will have to be translatable.

    So I'll have to work on that before I release it publicly (I already have clients that want to use it, it's probaly ready for some testing too).

  10. #10
    SitePoint Wizard mark_W's Avatar
    Join Date
    Mar 2004
    Location
    West Midlands, United Kingdom
    Posts
    2,631
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by charmedlover
    Self advertising isn't going to help me.
    Ha ha ha!!

    Hows it coming along now, I can understand why you dont need to include language support as most of the data is inputted by admins anyway.

    Mark

  11. #11
    SitePoint Wizard
    Join Date
    Jul 2004
    Location
    Minneapolis, MN
    Posts
    1,924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The system is coming to a good point of completion and probably ready for some test runs by the end of next month. I want to add small features here and there, check all code, and improve syntax and code neatness.

    I also have to do an admin system for it that I plan to be simple, but easy to manage.

    When I have a test version running online, I'll make sure to post it here.


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
  •