В отличие от MODX, теги в October можно использовать исключительно в layouts, pages и partials. В контенте статических страниц (Static Pages) они не работают.
Ниже приведены таблицы соответствия тегов MODX и тегов October CMS.
Всем, кто сейчас зачем-то учит Fenom для MODX, настоятельно рекомендую переходить на October CMS и Twig.
Content Elements | MODX Revolution | October CMS |
---|---|---|
Templates | no tag representation | |
Resource Fields | [[*field]] | {{ variable }} |
Template Variables | [[*templatevar]] | {variable name="tagline" label="Tagline" tab="Header" type="text"}{/variable} |
Chunks | [[$chunk]] | {% partial 'footer' %} |
[[$Hello?name=`George`]] | {% partial 'Hello' name='George' %} | |
Snippets | [[snippet]][[pdoResources? &limit=`5` &tpl=`ListRowTpl` ]] | {% component 'blogPosts' %} {% component "blogPosts" postsPerPage="5" %} |
Plugins | no tag representation | |
Modules | does not exist in Revolution, use CMPs | |
Content Tags | ||
Placeholders | [[+placeholder]] | {% placeholder name %} |
Links | [[~link]] | {{ 'about'|page }} {{ 'about'|staticPage }} {{ this.page.url|app }} |
System Settings | [[++system_setting]] | {{ this.theme.theme_setting }} |
Language | [[%language_string_key]] | {{ activeLocale }} |
Comment (see note below) | [[-this is a comment]] | {# this is a comment #} |
MODX Tag | October CMS | Example Usage |
---|---|---|
[[*id]] | {{ this.page.id }} {{ this.page.url }} {{ post.url }} | <a href="{{ this.page.id|app}}">Bookmark this page!</a> |
[[*pagetitle]] | {{ this.page.title }} | <title>{{ this.page.title }}</title> |
[[*longtitle]] | {{ this.page.title }} {{ this.page.meta_title }} {{ this.page.description }} | <h1>{{ this.page.meta_title }}</h1> |
[[*alias]] | {{ this.page.id }} {{ this.layout.id }} {{ this.theme.id }} {{ this.param.slug }} | <body class="page-{{ this.page.id }}"> |
[[*description]] | {{ this.page.meta_description }} {{ this.layout.description }} {{ this.theme.config.description }} | <meta name="description" content="{{ this.page.meta_description }}"> |
[[*introtext]] | {{ this.page.description }} | <p>{{ this.page.description }}</p> |
[[*parent]] | {{ this.page.parent }}
| |
[[*menutitle]] | {{ item.title }} | |
[[*content]] | {% page %} {% content %} | <body>{% page %}</body> |
MODX Tag | October Tag | October Example Usage |
---|---|---|
[[++site_url]] | {{ this.page.url|app }} | <link rel="canonical" href="{{ this.page.url|app }}"> |
[[++site_name]] | {{ this.theme.site_name }} | <title>{{ this.page.title }} — {{ this.theme.site_name }}</title> |
[[++site_start]] | {{ '/'|app }} | <a id="logo" href="{{ '/'|app }}">Home</a> |
[[++assets_url]]css/style.css | {{ 'assets/css/style.css'|theme }} | <link href="{{ 'assets/css/style.css'|theme }}" rel="stylesheet"> |
[[$chunk]] | {% partial 'path/chunk' %} | {% partial 'site/footer' %} |
[[~link]] | {{ 'Home'|page }} | <a id="logo" href="{{ 'Home'|page }}">Home</a> |
[[%translated_message]] | {{ 'Welcome to our website!'|_ }} | <strong>{{ 'Welcome to our website!'|_ }}</strong> |
Tag | October CMS | Example Usage |
---|---|---|
[[*alias]] | {{ this.page.id }} {{ this.page.url }} | <a href="{{ this.page.url|app }}">Click Here!</a> |
[[*cacheable]] | Cacheable | |
[[*class_key]] | Class Key of the Resource, e.g. modDocument | |
[[*content]] | Resource Content | {% page %} |
[[*content_type]] | Content Type | |
[[*createdon]] | Created On date, e.g. 2011-04-14 20:40:50, often used in conjunction with the strtotime output filter | {{ record.created_at|date('c') }} |
[[*createdby]] | Created By User ID Number | |
[[*deleted]] | Deleted | |
[[*deletedby]] | Deleted By User ID Number | |
[[*deletedon]] | Date of Deletions | |
[[*description]] | Description | {{ this.page.meta_description }} |
[[*editedon]] | Edited On date, e.g. 2011-04-18 09:06:08 | {{ record.updated_at|date('c') }} |
[[*editedby]] | Edited By User ID number | |
[[*hidemenu]] | {{ this.page.hidden }} | {% if this.page.hidden %} <p>Note to other admins: We are currently working on this page.</p> {% endif %} |
[[*id]] | Resource ID | Used frequently to generate links to this page. |
[[*introtext]] | Summary | {{ this.page.description }} {{ post.summary|raw }} |
[[*isfolder]] | Container | |
[[*link_attributes]] | Link attributes; these are inserted automatically when you use the [[~123]] syntax | |
[[*longtitle]] | Long Title | {{ this.page.meta_title }} |
[[*menuindex]] | Menu Index | |
[[*menutitle]] | Menu Title | — |
[[*pagetitle]] | Page Title | {{ this.page.title }} {{ item.title }} {{ post.title }} |
[[*parent]] | Parent Resource | {{ this.page.parent }} {{ page.getParent().url }} |
[[*pub_date]] | ||
[[*published]] | Published | |
[[*publishedby]] | Published By User ID Number | |
[[*publishedon]] | Published On | |
[[*richtext]] | Rich Text | |
[[*searchable]] | Searchable | |
[[*template]] | {{ this.page.layout }} {{ this.layout.id }} | |
[[*unpub_date]] | [[*unpub_date:strtotime:date=`%a %b %e, %Y`]] See Date Formats. | |
[[*uri_override]] | Freeze URI | |
[[*uri]] | URI | {{ this.page.url }} {{ post.url }} |
Input and Output Filters (Output Modifiers)
MODX Tag | October CMS |
---|---|
[[+description:limit=`100`]] | {{ str_limit( this.page.description, 100 ) }} {{ html_limit('<p>Post content...</p>', 100) }} |
[[+description:ellipsis=`100`]] | {{ str_words( this.page.description, 20 ) }} |
[[+code:strip_tags]] | {{ html_strip('<strong>Hello world</strong>') }} |
[[+pagetitle:replace=`Mr.==Mrs.`]] | {{ this.page.title|replace({'Mr.': 'Mrs.'}) }} |
[[+pagetitle:uppercase]] | {{ this.page.title|upper }} |
[[+description:Jevix]] | {{ html_clean('<script>window.location = "http://google.com"</script>') }} |
[[+email:escape]] | {% verbatim %}<p>Hello, {{ name }}</p>{% endverbatim %} |
[[+placeholder:is=`0`:then=` Yes `:else=` No `]] | {{ isAjax ? 'Yes' : 'No' }}
|
[[*image:phpthumbof=`w=250&h=100`]] | {{ '/path/to/image.jpg' | resize(250, 100) }} |
[[*image:default=`image.png`]] | {{ image|default('image.png') }} |
Продолжение: Переход с MODX на October CMS. Часть третья.
Прочитал обе части про переход на October CMS.
Один вопрос: как вы сами оцениваете, для пользователей какого “уровня продвинутости” применимы ваши рекомендации?
Поясню: я сам скорее “плагинщик”, професиионально сайты не разрабатываю, но время от времени делаю сайты либо для себя, либо для друзей.
До настоящего времени предпочитал Drupal, однако сейчас тоже заметил, что общая обстановка в стане “классических CMS” изменилась.
Касательно своих навыков могу сказать, что могу подправить готовую тему или плагин, но с нуля ничего разрабатывать точно не планирую.
Как по-вашему: имеет при таком раскладе смысл перебираться на Октоубер с Друпала или уже не менять коней? Сейчас как раз надо сделать один сайт друзьям (небольшая компания, оказывающая технические услуги).
Почувствую я эти преимущества или наоборот, могу столкнуться с тем, что ради одного сайта придётся изучать новую для меня ЦМС излишне глубоко?
При условии прямых рук — для любого уровня. Это все-таки CMS, а не фреймворк, где все нужно писать с нуля. Со временем плагинами будут покрыты все популярные случаи использования.
Насчет перебираться ли с Drupal не подскажу, но посмотреть однозначно стоит. Да и не нужно бояться что-то изучить. Это не психологическая травма (как в случае с некоторыми CMS типа Joomla), а всего лишь знания, которые без их регулярного использования легко освобождаются из памяти.
Но если вы не любите интегрировать темы (что является необходимым условием профессиональной разработки), то лучше остановиться на WordPress, где уже есть большой набор готовых тем.
Спасибо за обзор, а в чем разница от MODx так и не понял, в чем разница? Почему нужно перейти с MODx где уже все решение есть готовые плагины, на эту “лысую” и молодую CMS&? Вот честно не понимаю, надеюсь разжуете разницу.
Потому что на проектах средней сложности и выше легче написать свой плагин, чем использовать чужие. В первой статье об этом написано.
Молодая CMS — это же отлично. Нет захламленности legacy-кодом (типа ExtJS 3), админка летает, легко кастомизируется. MODX же занял свою нишу в категории CMS для лендингов, простеньких интернет-магазинов и сайтов-визиток, которые не надо развивать в будущем.
На сколько большие интернет-магазины можно делать на October cms ? Вот пример интернет магазина сделанного на Modx Evo,
ddaudio.com.ua каталог на 340000 единиц товара сайт летает и не тормозит.
Ну, например, http://octobercms.com/plugin/lovata-shopaholic держит прямо сейчас на реальном проекте 20 000 товаров, 60 000 товарных предложений, 550 000 свойств товаров. Все это неплохо работала на 2 CPU / 4GB RAM. При этом ночью там выполнялись такие тяжелые операции, как обновления каталога из выгрузки 1C и обновление контента каталоги из zoomos.by.
Но, строго говоря, магазин на 100 000 – 150 000 товаров, это уже достаточно большой eCommerce, который скорее всего стоит писать кастомно “с нуля”, тонко затачивая под нужды бизнеса.
Добавь пожалуйста в css таблиц скрол по горизонтали, а то на мобиле они за пределы экрана уходят и нельзя прочитать, что там написано
Спасибо, добавил скролл.
Ваш нынешний сайт работает под управлением Октября?
вы ведете телеграм канал или ютуб, по данному переходу. я пожалуй с вами согласен, что modX уходит в прошлое…
я на нём не долго, пол года, написал магазин для суши бара…. после чего его засыпали спам-ботом… вроде всё красиво, но не безопасно… как у октября с безоавсностью? капча, и т.п. фичи?