CMS Design and Management Schemes

I create cms for a relatively simple site - portfolio, some general content pages, user blog, etc.

What are some of the best models to consider before diving into design.

I want the system to be as flexible as possible without being too complex.

I was looking for some good resources that were developed in cms and blog but cannot find anything good.

My language is php, but I believe that I am looking for more language-independent advice.

+4
source share
6 answers

Flexibility without complexity ... a good program.

Maybe you are a genius and you will do something that you need. But I think that the biggest problem you will face is security and reliability . So really, take other tips on this page and look at wordpress, drupal, joomla and ezpublish. Many safety features have already been made. And not only security ...

So, study some of these tools, track their weaknesses, and check their security policy. Learn how they handle caching, sessions, bootstrap, absolute and relative URL control, documents (images, videos, etc.), Ajax, authentication, identification, acl, user interfaces, full-text editing, migrations, templates, page composition , content filtering (I'm trying to remove what you don't need, plugins, database abstraction, exact caching, css and js minification, all supercomputer things that are not needed for a simple simple CMS instance). Soon you will have a โ€œphotographโ€ of what they have done.

When doing this work, you will probably notice some big differences and errors. You will begin the irc and fiery developers by telling them that others have made the best choice. You will begin to forget to shave. You can make some contributions. Some will be accepted, others not. Older kernel developers do not like it when someone explains why they made mistakes (and they make mistakes).

Now, the day is coming when you have a beard . Some of your contributions will begin to look like forks. You will have enthusiasts, friends and followers. And you will begin to feel the power.

And you go to irc and tell god that the world is ugly and that you will make the first CMS that will be flexible without being complicated. And people will cry. And the birds will run in a circle. And you can explain what the CMS design pattern is.

  • I am a user. I know what I want. Doing what I want will make the user happy. I'm happy.
  • You do not have to trust code from people with glasses
  • "MVC MVC MVC": and people say "what needs to be done"

Seriously . There is still room for a good CMS with disruptive innovations, the history of forks began long ago with phpNuke (as far as I remember). But some of the real products are really suitable for most tasks.

+11
source

I probably risk my reputation, but my experience shows that creating your own CMS can be a very reasonable decision, especially when you are familiar with existing open source systems and understand what exactly they lack in terms of features, security or what not. Open-source often means a lot of backward compatibility issues and wrong architectural solutions that cannot be easily changed.

I highly recommend that instead of just taking MVC, you can take a look at the ideas that make it attractive.

One of the main problems with CMS is the range of technologies related to the promotion of dynamic websites: imperative php for logic, declarative SQL for data requests, HTML markup for the interface, imperative / functional javascript for the dynamic interface, JSON for ajax calls, etc. . To maintain system manageability, you must keep these technologies in a controlled and understandable environment, while ensuring seamless integration. Knowledge and best practices exist. MVC is just one approach to solve this problem.

At that time, my choice was to use the following principles:

  • Object-oriented code with a static call (php is a one-time thing, many instances of code objects are rarely justified), nothing but one line of initialization code in a global context
  • 100% code separation using XSLT and a dedicated content processor
  • A custom router that can accept any HTTP request and redirect it to registered methods
  • A custom content handler that can accept arbitrary method output and convert it to any format used, such as xhtml, xml, json, etc. based on request parameters (i.e. http: //local/class/method.xhtml , http: //local/class/method.json )
  • One copy of code for as many virtual web servers as possible
  • SQL query designer (selected for flexibility over ORM) for all database queries
  • Mandatory method input filtering with filter_ * functions

I believe that you can choose a few that you like :) And good luck!

+4
source

A good template to start with is the model controller or MVC template. This template involves dividing the application logic into the following levels: data logic (model), manipulation or business logic (controller), and display logic (presentation).

This is a good template to start with, as you will encounter other problems (and therefore templates) along the way. The following website explains MVC very well: MVC principles

+2
source

It makes no sense to reinvent the wheel if you are still not trying to improve it.

There are already many CMS available. I personally worked with ezpublish. There are other options such as drupal, etc. This is a list of all open source cms available - Click here

If you are just trying to learn, you can choose any of the popular open source and work on them to find its architecture and design.

Also, I donโ€™t think anyone can give you a list of design templates that are best suited for the CMS tool. Because each design template solves some specific problems. And you just need to choose a design template depending on the specific problem that you want to solve in your project.

+1
source

Writing your own CMS these days is a terrible waste of time. Conventional open source solutions - these days Joomla, WordPress and Drupal are popular - are written by thousands of people, and although you may lose a little flexibility using this ready-made one, this is greatly offset by the fact that you donโ€™t have to redo everything from scratch. If you go with Drupal, you can also enjoy high quality, scalable and scalable code :)

0
source

If your portfolio is rquiremnt, some common content pages, only a custom Wordpress blog will be simple and best.

There are so many CMSs available in PHP, the most popular is Joomla .

-1
source

Source: https://habr.com/ru/post/1334987/


All Articles