CMS dictionary: extensions for CMS
As independent research shows, About 67 percent of Web developers on Habrahabr write their CMS. Over the course of your life, your humble servant wrote about five to six CMS bicycles, and in the process of work, a lot of information about the structure and principles of work of other CMS was eagerly searched and several of his own were invented. The CMS world is full of various modules, extensions, components, components, plugins. I want to talk about how CMS developers can expand functionality, and what terms are used for this. I immediately warn you that the following information can be confusing, so terms that have different meanings in the context of different CMS carry a number in brackets that indicates one or another value. Some of the principles outlined here can make someone wrinkle. The list basically lists the functionality that extends the system. Syntax,
I hope the list will help with the organization of the principles of the work of their own CMS, throw an idea or just be interested. Those who are bored can try to guess which CMS was meant in each particular case (in order to avoid holivar, the CMS names are not used in the list itself, and in specific cases the terms may contain a slightly different meaning).
Module (1) - a block with a heading - a fragment inserted in a specific place on the page, in the left block, right block, in the central part or on the main page. As a rule, all modules have a similar appearance, defined by the layout (1). The content is determined by the administrator (for example, who is currently on the site, or the last photo in the gallery).
Component (1)- one or more pages, for example, a photo gallery or an online store. Module (1) in this case can belong to component (1). Each page belongs to only one component. The component takes away the central region of the labeled layout (1).
Extension (1) - functionality that is not in the kernel of the system, adding new low-level features used by the programmer (a new way to crop images, functionality to create backups, a new data type, and so on).
Tag (1)- a construction of the form {block}, # BODY #, {TITLE}, which will be replaced by the result of the code or the contents of the file. As a rule, a list of allowed tags is defined, and a list of data or scripts that will be inserted instead of tags. Also sometimes play the role of areas for layout layouts (1). In some cases, it is used to insert separate fragments of code or data (for example, a page title or paste a code to display the code of a link exchange). Often the presence of such tags is explained by the desire to separate the templates from the logic. Also, often to create a new tag in a certain index.php, a new element of the array is created, according to which the usual str_replace () is produced.
Layout (1)- a file containing HTML markup often often has marked-up areas into which modules (1) or components (1) are inserted. Unlike template (1), it contains only the layout of the entire page. It can consist of two files (header and footer).
Template (1) - a fragment of the page containing HTML code and special characters for inserting the results of the code. For example, a catalog page template contains a catalog layout without a layout layout for the entire page. On some systems, patterns may be compiled based on other patterns.
Editable Area (1), File (1) - in a certain file with layout the place is indicated, the contents of the files, including php-files with the code, are inserted into this place. In some cases, such files are created automatically when the page is created. Often in these files only content is stored. Sometimes, before and after this file, the header and footer of the site are inserted.
Editable area (2), as a rule, several areas are indicated in the layout, then the administration system determines what exactly to bring to this or that place.
Snippet (1) , or Module (2) - a function that performs an action and returns a result. For a quick call, it is inserted into the template (for example, {% print_comments%})
Snippet (2)- a ready-made small fragment of the layout, the administrator on its basis receives HTML code for insertion on the page (for example, the Download and Demo buttons in review blogs).
Chunk (1) , or Template (2) - a named fragment of the finished HTML code (for example, {{header}} or {{footer}})
Filter (1) - a short construction, for example, {PHOTO = Photo Name}, is inserted into the text content of the page by the administrator, when displayed, will be replaced by the result of the code.
Filter (2) - the rule for replacing one fragment with another, including using a regular expression (for example, '/(.*)/'=>' Page Title '), is used to simplify inserting data into a template without overwriting or editing last one.
Mambot (1)- some code that changes HTML - code after its generation.
Appendix (1) is a certain code that is visible in the admin panel and which can affect the contents of the database or, for example, perform maintenance (backups),
Plug-in (1) is a code that expands the functionality so that the system can use the new a data type in addition to the existing ones, for example, a Youtube link or support for a postgree database instead of Mysql.
Plugin (2) - a mini-application that displays in any part of the site and is independent (for example, voting, twitter repost or clock)
Script (1)- a file located in a folder with the system that some fragments of the site can run. It is used to quickly insert new features using low-level methods when finalizing the site by the programmers serving the site. As a rule, it is an independent php code. It can be replaced by Tag (1), or inserted in another way.
Template (3) - a folder containing a page layout marked out in blocks, images, css-files of the template, sometimes previews. In specialized CMS allows you to completely change the appearance of the site.
Loader (1) - a separate independent script that acts as an intermediary or performs secondary functions (for example, captcha, Ajax loader or pop-up banner).
Class (1)- A folder with a description of the class containing the methods that output the data. Used in templates - {% search do_search%}
Hook (1) - a function called instead of some other function, or a template called instead of another template, overrides the original functionality when trying to use it.
Hook (2) , Trigger (1) - a function called immediately after some other specific function or after requesting a specific template. It can be used to record logs, or to send e-mail.
Rule (1) is a line in an INI file or other place that defines a mask for the URL and a link to the code that processes it in some way. For example, '/ catalog / add' -> addme.php
Function (1)- the same as Class (1), only is an independent function.
Fragment (1) - part of a template with HTML layout (for example, a form or frame), can be used in several places.
Admin (1) is a full extension for CMS, providing an alternative interface for data management. In the case of CMF, an interface for managing data that may not be present in the original CMF code at all. In the case of CMS, an alternative backend for managing the system.
Component (2) , Module (3) - code that has a template that is visually inserted (in the form of an icon or image) into the page when editing in the WYSIWYG editor. It can be a list of articles, an article, a form for sending a message, a gallery, and so on.
Database (1)- additional data in the form of a CSV file, or in another form, expanding the data used (city lists, exchange rates, address bases, courier services, etc.)
Loader (1) , Extension (2) - a function or a file with a code that executes before processing the page, performs routine actions (logging), redefines the URL or declares a function.
Skin (1) - a folder with images that changes the appearance of the administration system.
Skin (2) - a template for the site, changing the appearance only visually (colors, background), but not able to swap certain blocks, or change the functionality. In contrast to the template, it does not contain data on the arrangement of blocks on each page; in contrast to the layout, it does not contain HTML layout.
Extension (3)- some javascript or php files developed by third parties that absolutely do not change the appearance or functionality of the site, but can be used by developers (for example, jQuery library and plugins, classes for sending emails, and so on). As a rule, they are located in a folder called external or similar, in contrast to the internal folder, in which there are extensions (4) (modules, components) created by CMS developers and which are part of the system.
Extension (4) - module, component, plug-in - as a collective term.
Framework (1)- Some kind of flexible solution based on CMS, which has its own management system or its own API, which allows you to flexibly add functionality. May have its extensions (4). For example, there is a framework for flexible management of the template, site menu, appearance and Javascript prettiness.
Plugin (3) - addition to TinyMCE (WYSIWYG - editor), adding a new button.
API (1) - additional functionality that allows you to use site data with external sites or applications.
API (2) - classes or functions that simplify (complicate) the life of the developer (for example, an additional, alternative API for working with the database).
Module (4) , Patch (1)- data to modify the original system code. Contains line numbers that need to be modified, as well as files that need to be added in addition to the rest. Often there are Modules (4) that allow you to connect the remaining Modules (4) in manual mode using the interface. Theoretically, they can transform the functionality of the system beyond recognition.
Tool (1) - a script used by the administrator (for example, to change write permissions to a folder or output phpinfo () data.
Manager (1) - an independent script block for additional management, for example, file manager, image manager, database manager. sometimes it can operate without the main system and is being developed by third parties.
The wrapper (1)- extension (4), which allows you to embed the site inside another cms, (for example, a forum inside a wiki or a wiki inside a blog).
Module (5) - extension (4) for the system, adding a completely new functionality, without touching the existing one. For example, adding the functionality of the forum to the wiki engine, blogs to the forum, the functionality of the online store in the business card site, and so on. Often sold separately.
I hope the list will help with the organization of the principles of the work of their own CMS, throw an idea or just be interested. Those who are bored can try to guess which CMS was meant in each particular case (in order to avoid holivar, the CMS names are not used in the list itself, and in specific cases the terms may contain a slightly different meaning).
Module (1) - a block with a heading - a fragment inserted in a specific place on the page, in the left block, right block, in the central part or on the main page. As a rule, all modules have a similar appearance, defined by the layout (1). The content is determined by the administrator (for example, who is currently on the site, or the last photo in the gallery).
Component (1)- one or more pages, for example, a photo gallery or an online store. Module (1) in this case can belong to component (1). Each page belongs to only one component. The component takes away the central region of the labeled layout (1).
Extension (1) - functionality that is not in the kernel of the system, adding new low-level features used by the programmer (a new way to crop images, functionality to create backups, a new data type, and so on).
Tag (1)- a construction of the form {block}, # BODY #, {TITLE}, which will be replaced by the result of the code or the contents of the file. As a rule, a list of allowed tags is defined, and a list of data or scripts that will be inserted instead of tags. Also sometimes play the role of areas for layout layouts (1). In some cases, it is used to insert separate fragments of code or data (for example, a page title or paste a code to display the code of a link exchange). Often the presence of such tags is explained by the desire to separate the templates from the logic. Also, often to create a new tag in a certain index.php, a new element of the array is created, according to which the usual str_replace () is produced.
Layout (1)- a file containing HTML markup often often has marked-up areas into which modules (1) or components (1) are inserted. Unlike template (1), it contains only the layout of the entire page. It can consist of two files (header and footer).
Template (1) - a fragment of the page containing HTML code and special characters for inserting the results of the code. For example, a catalog page template contains a catalog layout without a layout layout for the entire page. On some systems, patterns may be compiled based on other patterns.
Editable Area (1), File (1) - in a certain file with layout the place is indicated, the contents of the files, including php-files with the code, are inserted into this place. In some cases, such files are created automatically when the page is created. Often in these files only content is stored. Sometimes, before and after this file, the header and footer of the site are inserted.
Editable area (2), as a rule, several areas are indicated in the layout, then the administration system determines what exactly to bring to this or that place.
Snippet (1) , or Module (2) - a function that performs an action and returns a result. For a quick call, it is inserted into the template (for example, {% print_comments%})
Snippet (2)- a ready-made small fragment of the layout, the administrator on its basis receives HTML code for insertion on the page (for example, the Download and Demo buttons in review blogs).
Chunk (1) , or Template (2) - a named fragment of the finished HTML code (for example, {{header}} or {{footer}})
Filter (1) - a short construction, for example, {PHOTO = Photo Name}, is inserted into the text content of the page by the administrator, when displayed, will be replaced by the result of the code.
Filter (2) - the rule for replacing one fragment with another, including using a regular expression (for example, '/(.*)/'=>' Page Title '), is used to simplify inserting data into a template without overwriting or editing last one.
Mambot (1)- some code that changes HTML - code after its generation.
Appendix (1) is a certain code that is visible in the admin panel and which can affect the contents of the database or, for example, perform maintenance (backups),
Plug-in (1) is a code that expands the functionality so that the system can use the new a data type in addition to the existing ones, for example, a Youtube link or support for a postgree database instead of Mysql.
Plugin (2) - a mini-application that displays in any part of the site and is independent (for example, voting, twitter repost or clock)
Script (1)- a file located in a folder with the system that some fragments of the site can run. It is used to quickly insert new features using low-level methods when finalizing the site by the programmers serving the site. As a rule, it is an independent php code. It can be replaced by Tag (1), or inserted in another way.
Template (3) - a folder containing a page layout marked out in blocks, images, css-files of the template, sometimes previews. In specialized CMS allows you to completely change the appearance of the site.
Loader (1) - a separate independent script that acts as an intermediary or performs secondary functions (for example, captcha, Ajax loader or pop-up banner).
Class (1)- A folder with a description of the class containing the methods that output the data. Used in templates - {% search do_search%}
Hook (1) - a function called instead of some other function, or a template called instead of another template, overrides the original functionality when trying to use it.
Hook (2) , Trigger (1) - a function called immediately after some other specific function or after requesting a specific template. It can be used to record logs, or to send e-mail.
Rule (1) is a line in an INI file or other place that defines a mask for the URL and a link to the code that processes it in some way. For example, '/ catalog / add' -> addme.php
Function (1)- the same as Class (1), only is an independent function.
Fragment (1) - part of a template with HTML layout (for example, a form or frame), can be used in several places.
Admin (1) is a full extension for CMS, providing an alternative interface for data management. In the case of CMF, an interface for managing data that may not be present in the original CMF code at all. In the case of CMS, an alternative backend for managing the system.
Component (2) , Module (3) - code that has a template that is visually inserted (in the form of an icon or image) into the page when editing in the WYSIWYG editor. It can be a list of articles, an article, a form for sending a message, a gallery, and so on.
Database (1)- additional data in the form of a CSV file, or in another form, expanding the data used (city lists, exchange rates, address bases, courier services, etc.)
Loader (1) , Extension (2) - a function or a file with a code that executes before processing the page, performs routine actions (logging), redefines the URL or declares a function.
Skin (1) - a folder with images that changes the appearance of the administration system.
Skin (2) - a template for the site, changing the appearance only visually (colors, background), but not able to swap certain blocks, or change the functionality. In contrast to the template, it does not contain data on the arrangement of blocks on each page; in contrast to the layout, it does not contain HTML layout.
Extension (3)- some javascript or php files developed by third parties that absolutely do not change the appearance or functionality of the site, but can be used by developers (for example, jQuery library and plugins, classes for sending emails, and so on). As a rule, they are located in a folder called external or similar, in contrast to the internal folder, in which there are extensions (4) (modules, components) created by CMS developers and which are part of the system.
Extension (4) - module, component, plug-in - as a collective term.
Framework (1)- Some kind of flexible solution based on CMS, which has its own management system or its own API, which allows you to flexibly add functionality. May have its extensions (4). For example, there is a framework for flexible management of the template, site menu, appearance and Javascript prettiness.
Plugin (3) - addition to TinyMCE (WYSIWYG - editor), adding a new button.
API (1) - additional functionality that allows you to use site data with external sites or applications.
API (2) - classes or functions that simplify (complicate) the life of the developer (for example, an additional, alternative API for working with the database).
Module (4) , Patch (1)- data to modify the original system code. Contains line numbers that need to be modified, as well as files that need to be added in addition to the rest. Often there are Modules (4) that allow you to connect the remaining Modules (4) in manual mode using the interface. Theoretically, they can transform the functionality of the system beyond recognition.
Tool (1) - a script used by the administrator (for example, to change write permissions to a folder or output phpinfo () data.
Manager (1) - an independent script block for additional management, for example, file manager, image manager, database manager. sometimes it can operate without the main system and is being developed by third parties.
The wrapper (1)- extension (4), which allows you to embed the site inside another cms, (for example, a forum inside a wiki or a wiki inside a blog).
Module (5) - extension (4) for the system, adding a completely new functionality, without touching the existing one. For example, adding the functionality of the forum to the wiki engine, blogs to the forum, the functionality of the online store in the business card site, and so on. Often sold separately.