Получить объект {% page%} из php в обработчике ajax

Я использую 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, есть ли способ сделать что-то вроде этого?

0

Решение

в своем 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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]