Answer the question
In order to leave comments, you need to log in
Where can I find a live community of programmers (creating cms)?
For a long time I have not been on the forums of progers, recently I decided to go over the familiar communities, and there they write one message a week, and then only questions.
Actually, there is a project, another no-one-except-the-creator-needed-cmf-on-php, which I have been writing and maintaining alone for several years. Now there is a process of global changes, and it seemed to me that again it would not be right to do it all alone, because from one point of view there is not much to see, and experience may not be enough. So I decided to look for people who might be interested. Need ideas, advice, criticism. Where to get them?
Yes, if there are people here who may be interested, then here is the github (supposedly not advertising%).
Answer the question
In order to leave comments, you need to log in
first read my answer here What to read about CMS architecture?
what you describe fits into just "a small framework/bare php project". although you call it tsms, many people get the feeling that this is a new wordpress, but if you look deeper, then anyone who saws projects on frameworks essentially makes their own mini tsms like you do (of course, not always, but if there is a manager panel / admin panel, then in fact it is already tsms).
if you were writing a boxed tsms, with plugin support, then specific knowledge would be useful to you.
if you write tsms for yourself, your projects, you are unlikely to implement a system of hooks there - then this is the most "ordinary non-php project", look for communities on the framework you use. I guess you don’t use it yet, so look for a community where people write in naked PHP, to be honest, it seems to me that such people live in their closed little worlds, and don’t really connect with the outside world, otherwise they would use frameworks and live in large communities where the issue of community would be itself is closed, a lot of documentation, best practices, ready-made modules and a bunch of other goodies, while their frameworks (frameworks) do not limit them so much, the only minus they also need to be studied, but then everything goes like clockwork.
from Russian creators of boxed tsms I know https://phpixie.com/You can try to connect with its creator, but in boxed CMS, the needs are of a slightly different order.
for you, I would recommend taking some kind of framework and redoing it on it (since we are going to refactor), there will undoubtedly be more benefits. or again, study at least popular frameworks and take the best from there, in my opinion this is the best way. and you will be surprised, but on frameworks everything will be solved easier, although I will not hide it, after your experience, at first it will seem that the "framework" is limiting.
if anything - ask, and of course good luck!
Ideas, advice and criticism are not difficult to type. But in the end, WHY do all this - the question is still the same. What is this CMS for?
CMS is the same modular system ideally as, for example, a TV set - there is a tuner, a power supply, a screen, a control unit ...
CMS is a thing that manages a database and displays data from it in a convenient form. Of course, it’s much easier to teach a manager how to use Navicat (because in Excel he knows more than us programmers), but sometimes management wants a beautiful admin panel to call it “convenient”, although from the point of view of a computer, there can be no less convenient system than CMS.
In a general sense, the CMS edits the site configs (address-page correspondence), edits the content (through the editor, the so-called snippets are a good addition - pieces of code into which you can then simply insert a picture and they will be displayed, for example, as columns that will shrink on the mobile versions, and of course the CMS edits the content.As
for editing content, we turn to the theory of data structures - the idea of infoblocks from Bitrix proved to be the most convenient, but they didn’t think of it and threw it away, tired:
1.1 table: block names + 1.2 table - storage of the block tree
2.1 table: element names, table 2.2 bindings of elements to blocks (one element can be in several blocks, just like a phone can be a tablet and a phone at the same time)
3 table: parameter names + 3.3 binding to blocks/elements/parameters
4 table: valid parameter values
Thus you have a fully extensible structure - parameters are linked to blocks, to elements and to each other (inherited), you have tables to store links and trees, in order to conveniently display the results in one big request, and you can set absolutely anything and anywhere on your cmsk in the form of an entity.
Further, the general theory of the program - as it was - "connect a controller that will interrogate the models and display the template" - you need a table that links the path entered in the browser with a file that will connect any blocks to itself.
And in the files you include a block, request data via api from your database, bring it into the desired form, call the template and give it, or give it as an array, setting the json response header or whatever array you decided to give
it. But in the admin panel you have to do it all " humanly understandable "- they say, grab the mouse and drag, because explaining to the future administrator that the trees are stored in the form of a table with three columns - you can leave with a roof.
===
There is another approach, yet untested. Such as puts Yandex at the heart of its approach, making its BEM.
When you program, you essentially create your own world.
BEM says so - that any thing in the world belongs to some larger thing or several large things, and at the same time, by the fact of its ownership, it can have parameters. That is, if a tablet is a thing from the phone group and from the tablet group, then it has parameters that are involved in both, and in the case of the same parameters, those whose membership level is lower will be taken.
For the group
Phones
-- Landline
-- Mobile
-- Tablet
---- Some phone
Some phone will have the properties of the phone block and the properties of the Tablet block, and if they are duplicated, then the properties taken from the tablet will be the main ones, however less values are put down exactly to "Some phone", and in the groups themselves there can only be "default values"
What are the differences from the previous system:
- the previous system says that the element itself is and it needs to be put into blocks and set accessories and parameters
- and this system adds another level of abstraction - it says that our thing (some kind of phone) these are necessarily several other elements (programmers say - interfaces) that make it up (programmers say - they implement it)
But all this is pure nonsense, if you go into it, it will be a fascinating journey into the world of data structures that no one fucking understood to end. But Einstein did create a nuclear bomb, after which total dibilization began, so that no one else would repeat the feat.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question