Ronny CMS, introduction

    When the trees were small


    I'll start from afar - with history. Once upon a time there was PHPNuke . XOOPS forked from this CMS .
    When the XOOPS developers decided to switch to the then young and little-known Smarty template engine, another fork happened, and part of the team left to make their CMS, without blackjack - e-xoops, which retained Native PHP.

    Somewhere in 2004, the author came to the Russian e-xoops team. Came by chance, not planning to stay for long. Quickly made a couple of sites on this CMS. He brought in a couple of hacks. Together with everyone he followed the evolution and renaming of the system in RunCMS .

    Soon, another customer demanded another online store. An interesting situation had developed by then - I’m with a partner bigazzzzthey knew RunCMS from the inside, they liked a lot (but not much), but stores, if there was a need, built on third-party solutions (osCommerce and other hell ...) There was time, experience too, desires - above the roof, so we decided on RunCMS base to create your own store, in the form of a module for CMS.

    At first it was simple, but with each new site, following the wishes of customers, it developed. By the second version, it surpassed the CMS in terms of code size, many analogues in functionality and got its own name - RunSTORE.

    Years passed, RunSTORE developed, and RunCMS developed, in which we also tried to make improvements. However, a strange thing happened - the foreign "owners" of CMS did not like the fact that most of the code in it was written by Russian developers (and the main thing was gradually becoming MichaelXIII) One fine day, the "owner" closed the repository, destroyed the entire code base and drove out all the developers, saying that it was rolling back to the previous version.

    And by then we had successfully sold RunSTORE. The new owner made huge plans, but something did not work out for him. The result - there is neither RunSTORE nor RunCMS, and there is nothing to do * -)) And I wanted to write ...
    * - a joke, there is always something to do, but I really want to do something for the soul ...

    So a fork from RunCMS called Ronny was born CMS
    Yes, this is the same Nuke / xoops / Runcms, but probably the most modern and integral of all available. Or maybe not -))

    We initially determined for ourselves the goal - preserving the good that was in RunCMS and basically - compatibility with it, to make a more modern and high-quality system. The source system did not suit much - the accumulated base of outdated code, poor performance, and a terrible system of design integration.

    Ronny currently has Release Candidat status and has moved almost 800 revisions from the fork point.

    What is done?


    Oooh, a lot has been done. Of course, in many ways, our CMS is still similar to RunCMS - the same modules, the same blocks. But, leaving the best and that it was better not to touch, we have changed a lot.

    Let me briefly tell you what exactly.
    1. Templates and themes.
      Yes, it was a disaster. Initially, for historical reasons, RunCMS did not have a template engine at all. There was a spaghetti code in which horses, people, HTML, CSS, PHP and JavaScript were mixed in one bottle. Of course, this could not be tolerated.
      As a result, we took the template engine from the RunSTORE project, finalized it a bit, profiled it, and made it the main one in Ronny CMS. The template engine is simple to the disgrace, it can do almost nothing - except perhaps display variables, simple cycles and conditions, but it is very fast, it compiles into php code and can cache this code.
      If in the future it is required to expand its functionality, we will do it, but so far this is not necessary. Healthy primitivism has not disturbed anyone yet.
    2. The trees.
      Trouble? Nooo, it wasn’t a problem, it was quiet horror ... Recursive database queries to get the tree structure - PHP3 style in full glory.
      I had to make my own class for processing trees.
      At the same time, the class for comments easily budded from it, because comments are the same trees. The introduction of this class and a single comment table made it possible to attach them to any module and any object.
    3. Human URLs.
      The use of mod_rewrite has become mandatory in all parts and modules of the system. URLs should look human-readable, or at least look nice.
    4. Tags
      One of the most significant innovations compared to RunCMS. From now on, any object in any module can be equipped with arbitrary tags, and the system provides a tag cloud output and tag search.
    5. Modules
      Some of the modules of the old RunCMS had to be simply thrown away, since it was too long to rewrite and adapt them; it’s enough to say that almost all the old modules relied on “register_globals On”.
      In exchange, we have a number of new modules written from scratch specifically for Ronny CMS - Accounts, Blogs, Photo Gallery, Announcements, Maps, Pages, News Feeds, Contact. Those modules that it was decided to leave - News, FAQ, Private Messages, Voting - underwent a significant alteration.
    6. Extensions.
      Instead of the monolithic code RunCMS in Ronny there was a system of extensions (extensions) - replaceable parts. Now, through the extensions, visual editors (integration ready for spaw and fckeditor) and captcha (kcaptcha and w3captcha) are implemented. In the future, this makes it possible to use any editors, captcha, file managers, etc., which is enough for the rich imagination of developers and interested users.
    7. And much more.
      Of course, in one introductory article it will not be possible to describe all the differences and advantages of the new CMS. However, the main goal has already been achieved - we have 9 requests on the main page compared to 24 for RunCMS and half the time it takes to generate comparable pages.

    So, what is next?


    And then the prospects are bright. For now, we have announced stabilization of the code - nothing new is being introduced, a systematic elimination of errors and preparation for release are in progress. There are still many errors, the code is a hellish mixture of new and old.

    The release of the Core assembly (this is the core of the system and the page module) is scheduled immediately after the New Year, then we gradually tighten the modules that are lagging behind and release the remaining packages.

    In the meantime, there are already plans for the Ronny CMS 2.

    Can I see it?


    Of course! All code, except for commercial modules (and now it’s just Ads) is available under the GPL v2 license. On the site www.ronny-cms.ru you can read the latest news and download the latest build - a repository cast. Although the site is not yet completely ready (most of the time is spent writing code and fixing bugs, not embellishments), but you can already make an impression of Ronny.

    PS If anyone is interested, in further articles I will continue the story about Ronny, but with code examples and detailed comments.

    UPD I
    completely forgot, because it would be nice to immediately give examples of sites on the Ronny CMS (except for the site of the CMS itself, of course):
    Industry magazine “Currency speculator”
    Committee on Youth Affairs of the Kostroma Region
    SendPost

    UPD2 already discussed here.
    I ask those who put cons to explain what exactly did not like. And then it seems that “I just didn’t like it”, but what exactly? The code? Post style? I understand, if you explain. Thanks.

    Also popular now: