Я использую OctoberCms и пытаюсь вернуть содержимое страницы из запроса ajax. Например, при нажатии на внутреннюю ссылку, я хочу получить от ajax объект страницы, такой как ветка {% page %}
,
public function onInternalLink(){
$href = post('href');
return [
'title'=>'', //here i want {{ page.title }}
'content' => '', //and here {% page %} like this variable in layout.
];
}
}
мой код JS
$.request('onInternalLink', {
data: {href: u}, // var u is the requested url to return
success: function() {
console.log('Almost october');
}
})
}
Я попытался создать новый CmsObject и попытаться использовать метод parseMarkup () и попробовать pageCycle () безуспешно.
Я не нашел способ получить {% page %}
объект из сценария php, есть ли способ сделать что-то вроде этого?
в своем PHP вы можете использовать $this->page
чтобы получить доступ к текущей странице. Таким образом, ваш PHP станет:
public function onInternalLink() {
$href = post('href');
return [
'title'=> $this->page->title,
'content' => $this->getContentsFromFile($this->page->baseFileName),
];
}
Все, что вам понадобится после этого, это написать логику для извлечения html-контента из baseFileName страницы (я обернул это как $ this-> getContentsFromFile () в примере выше).
Есть больше переменных, предоставленных $this-> page
— Читайте о них здесь — https://octobercms.com/docs/cms/pages#page-variables
Других решений пока нет …