This year we plan to release a new version of MODx 0.9.7. What is interesting there planned? A lot of fun! Apparently, the capabilities of the system will grow very significantly.
Our plans
')
We have a lot of plans for the future of MODx. Some of these are the ones that are more important and useful and are at the stage of implementations are described below. Bearing in mind our own plans, we are interested Your opinion. What, in your opinion, would be significant improvement for MODx? Join our community today and help build the future of MODx.
Object Oriented Core. Completely rewritten under the object model is the core of the MODx system.
Improved API. New, object-oriented, API capabilities, wider spanning the MODx core, which has a more consistent architecture.
New manager. We remove the frames and add fully customizable templates with using AJAX for even more flexible MODx control. Fresh interface controlled by the new kernel MODx + Smarty + Ext + MooTools
Installation and modx kernel update. New, more flexible kernel installer and update tool will make all installation paths 100% customizable. No more problems with similar external directories and resources.
Installing packages. Facilities, make it easier to install, update, or migrate customized using modx content. Packages, with the ability to completely automated installation and updates will help separate add-ons from the MODx core and will contribute to your development by providing the opportunity import / export without loss of working components.
User pooling and security model. Now there is no divisions between users and site managers - they will all become just by users. The same will happen with user groups and documents.
Contexts (contexts). This is a new concept, which will allow to divide the whole environment into domains, subdomains, suites, cultural zones, specific web applications, etc.
Improved i18n and i10n support. Cultures (cultures) and contexts (contexts) in bundle will ensure the internationalization of the entire structure and allow set the language, currency, date / time format, etc.
More no eval (). Plugins, snippets and modules will be connected once, and called as a function. It will provide great opportunities. efficiency, stability and increase safety. Here you can to quote PHP creator Rasman Landorf: “If eval () is the answer, “If eval () is the answer to your question, you are almost certainly asking the wrong question.”)
Controlled database session. The new session handler by default will provide more control and more customizable options including compatibility with the web server.
Improved caching. The new core system and caching technique will help reduce the size of all cached files and organize a hierarchical folder structure.
Caching results of queries to the database. The new kernel also allows you to cache database query results. That will reduce the load base data, expanding the possibilities, which is important for sites with large traffic volume.
Kernel logging Provides a variety of error levels and results output, including ECHO, HTML and FILE. you also You can use this tool to check the log, error log, debugging, etc.
Simplified terminology. Some basic modx concepts changed for more intuitive perception and brevity, according to modern common web terminology. The most important of these changes:
Web resources. (previously: documents and links) Any content that is managed by MODx and is directly accessible via URLs.
Items content. They are the elements that define the source resources, MODx-based and managed to be processed and, optional - displayed on the page.
Tags content. New name for new and existing tags that are executable, but not relevant to content items; i.e. they Do not define the original content of the page.
Filtration content. New input and output filters - PHP classes that replace the current concept of widgets and MODx @ links, as well as extensions, formed by adding PHx formatting. This is a further expansion. with PHx, will allow access to any content item.
Input filters. Modify the original content and properties / parameters before processing.
Output filters Modify content after processing before output.
Improved content analyzer. Its peculiarity is full recursiveness, independence of initial processing from inefficient and less flexible regular expressions, which are used now. Can quoting Jamie Zavinsky "Some people, faced with a problem, They think: “I see, regular expressions can be used here.” Now they have two problems.
Any item represented by a tag can be cached. To do this, you must use the symbol "!". For example: [[! snippet]] or [[! $ chunk]] or [[! * content]]
Any tag can contain nested tags. For example: [[~ [[++ site_start]]]] or [[! snippet? & tpl = `[[! getTemplate]]` & msg = `[[* introtext]]`]] Common tag format. To simplify the logic of parsing (analysis), improve work and avoid chaos, all tags have a single format: [[tag]].
Old format
New format
Content Items
Template
no tag
no tag
Pattern variable
[* variable_name *]
[[* var_name]]
Chunk
[[$ name_chanka]]
Snippet
[[siipippet name]]
[[siipippet name]]
Plugin
no tag
no tag
Module
no tag
no tag
Content tags
Placeholder
[+ placeholder name +]
[[+ placeholder name]]
Link
[~ link ~]
[[~ link]]
System parameter
[(parameter_name)]
[[++ parameter_name]]
Tongue
no tag
[[% key_language_line]]
Still more expandable, even less vulnerable. New Object Oriented the core will allow for convenient use of most major capabilities without changing the kernel code. This will help protect your advances in modernization.
Web resources. Can Easily declare your own class to define and use own resources, from web services, to AJAX processor, to handler multimedia content or even integrate with third-party applications.
Content elements / tags. Can define own content items and tags that will be processed third-party information and return the result. You can use them as any other content item. For example: [[-bobsCustomElement]]
Content parser. Allows you to define your own class analyzer that would extend the standard features of parsing.
Processing requests / responses. Skips or rejects requests / responses to the kernel calling methods.
Handling sessions. Allows you to declare your own classes for handling user sessions in PHP standards.
Error processing. Allow you to create your own class for handling PHP errors.
Partial page caching. Provides great caching capabilities. Allows more efficient use of the cache.
Caching database query results. Provides caching of database query results.