Переход с MODX на October CMS. Часть 2-я

Переход с MODX на October CMS

В отличие от MODX, теги в October можно использовать исключительно в layouts, pages и partials. В контенте статических страниц (Static Pages) они не работают.
Ниже приведены таблицы соответствия тегов MODX и тегов October CMS.

Всем, кто сейчас зачем-то учит Fenom для MODX, настоятельно рекомендую переходить на October CMS и Twig.

Tag Format for Content Elements and Content Tags

Content ElementsMODX RevolutionOctober CMS
Templatesno 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" %}
Pluginsno tag representation 
Modulesdoes 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 TagOctober CMSExample 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 }}

 

{% set parent = page.getParent() %}
{{ parent }}

 
[[*menutitle]]{{ item.title }} 
[[*content]]{% page %}
{% content %}
<body>{% page %}</body>
{% content "location.htm" city="Vancouver" country="Canada" %}
MODX TagOctober TagOctober 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>

All Tags

TagOctober CMSExample 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 IDUsed 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 TagOctober 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' }}

 

{% if stormCloudComing %}
Stay inside
{% else %}
Go outside and play
{% endif %}

[[*image:phpthumbof=`w=250&h=100`]]{{ '/path/to/image.jpg' | resize(250, 100) }}
[[*image:default=`image.png`]]{{ image|default('image.png') }}

Продолжение: Переход с MODX на October CMS. Часть третья.

Total
0
Shares
11 comments
  1. Прочитал обе части про переход на October CMS.

    Один вопрос: как вы сами оцениваете, для пользователей какого “уровня продвинутости” применимы ваши рекомендации?

    Поясню: я сам скорее “плагинщик”, професиионально сайты не разрабатываю, но время от времени делаю сайты либо для себя, либо для друзей.

    До настоящего времени предпочитал Drupal, однако сейчас тоже заметил, что общая обстановка в стане “классических CMS” изменилась.

    Касательно своих навыков могу сказать, что могу подправить готовую тему или плагин, но с нуля ничего разрабатывать точно не планирую.

    Как по-вашему: имеет при таком раскладе смысл перебираться на Октоубер с Друпала или уже не менять коней? Сейчас как раз надо сделать один сайт друзьям (небольшая компания, оказывающая технические услуги).

    Почувствую я эти преимущества или наоборот, могу столкнуться с тем, что ради одного сайта придётся изучать новую для меня ЦМС излишне глубоко?

    1. При условии прямых рук — для любого уровня. Это все-таки CMS, а не фреймворк, где все нужно писать с нуля. Со временем плагинами будут покрыты все популярные случаи использования.

      Насчет перебираться ли с Drupal не подскажу, но посмотреть однозначно стоит. Да и не нужно бояться что-то изучить. Это не психологическая травма (как в случае с некоторыми CMS типа Joomla), а всего лишь знания, которые без их регулярного использования легко освобождаются из памяти.

      Но если вы не любите интегрировать темы (что является необходимым условием профессиональной разработки), то лучше остановиться на WordPress, где уже есть большой набор готовых тем.

  2. Спасибо за обзор, а в чем разница от MODx так и не понял, в чем разница? Почему нужно перейти с MODx где уже все решение есть готовые плагины, на эту “лысую” и молодую CMS&? Вот честно не понимаю, надеюсь разжуете разницу.

    1. Потому что на проектах средней сложности и выше легче написать свой плагин, чем использовать чужие. В первой статье об этом написано.

      Молодая CMS — это же отлично. Нет захламленности legacy-кодом (типа ExtJS 3), админка летает, легко кастомизируется. MODX же занял свою нишу в категории CMS для лендингов, простеньких интернет-магазинов и сайтов-визиток, которые не надо развивать в будущем.

      1. На сколько большие интернет-магазины можно делать на October cms ? Вот пример интернет магазина сделанного на Modx Evo,
        ddaudio.com.ua каталог на 340000 единиц товара сайт летает и не тормозит.

        1. Ну, например, http://octobercms.com/plugin/lovata-shopaholic держит прямо сейчас на реальном проекте 20 000 товаров, 60 000 товарных предложений, 550 000 свойств товаров. Все это неплохо работала на 2 CPU / 4GB RAM. При этом ночью там выполнялись такие тяжелые операции, как обновления каталога из выгрузки 1C и обновление контента каталоги из zoomos.by.

          Но, строго говоря, магазин на 100 000 – 150 000 товаров, это уже достаточно большой eCommerce, который скорее всего стоит писать кастомно “с нуля”, тонко затачивая под нужды бизнеса.

  3. Добавь пожалуйста в css таблиц скрол по горизонтали, а то на мобиле они за пределы экрана уходят и нельзя прочитать, что там написано

  4. Ваш нынешний сайт работает под управлением Октября?
    вы ведете телеграм канал или ютуб, по данному переходу. я пожалуй с вами согласен, что modX уходит в прошлое…
    я на нём не долго, пол года, написал магазин для суши бара…. после чего его засыпали спам-ботом… вроде всё красиво, но не безопасно… как у октября с безоавсностью? капча, и т.п. фичи?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Previous Article
Переход с MODX на October CMS

Переход с MODX на OctoberCMS. Часть 1-я

Next Article

Выбираем между VS Code и Atom

Related Posts
Переход с MODX на October CMS
Далее

Переход с MODX на OctoberCMS. Часть 1-я

MODX — отличная система, которая не смотря на дикую популярность в России и Беларуси постепенно покидает сцену. Она…