Тот же макет — уникальные имена классов с October CMS

Я новичок в October CMS, и мне интересно, как создавать уникальные имена классов на разных страницах при использовании одного и того же макета. Например, домашняя страница может быть <html class="home">, тогда как страница блога может быть <html class="blog"> и так далее.

Любые рекомендации о том, как это сделать?

Спасибо


person Moshe    schedule 09.08.2016    source источник


Ответы (2)


<body class="page-{{ this.page.id }} layout-{{ this.layout.id }}">

Вы можете получить доступ к текущему объекту страницы через this.page, и он возвращает объект Cms\Classes\Page. К этому объекту также можно получить доступ в коде PHP. this.page имеет следующие свойства: layout, id, title и т. д. Дополнительную информацию вы можете найти здесь.

person Sozonov Alexey    schedule 10.08.2016
comment
Спасибо; но его нужно было отредактировать (используя кнопку edit). Я сделал это для вас. - person Brian Tompsett - 汤莱恩; 12.08.2016

Легкий способ - создать партиал и включить в страницы:

страницы/home.htm

title = "home"
url = "/home"
layout = "mylayout"
==
<?php
    function onStart() 
    {
        $this['class'] = 'home';
    }
?>
==
{% partial mypage.htm %}

страницы/блог.htm

title = "blog"
url = "/blog"
layout = "mylayout"
==
<?php
    function onStart() 
    {
        $this['class'] = 'blog';
    }
?>
==
{% partial mypage.htm %}

и в partials/mypage.htm

<html class="{{ class }}">
person Tomasz P    schedule 23.10.2016