我正在使用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()但没有成功。
我没有找到从php脚本获取{% page %}
对象的方法,有没有办法做这样的事情?
答案 0 :(得分:1)
$this->page
访问当前页面。所以你的PHP将成为:
public function onInternalLink() {
$href = post('href');
return [
'title'=> $this->page->title,
'content' => $this->getContentsFromFile($this->page->baseFileName),
];
}
在此之后你需要的只是编写逻辑来从页面的baseFileName中获取html内容(我在上面的例子中将其包装为$ this-> getContentsFromFile())。
$this-> page
提供了更多变量 - 请在此处阅读 - https://octobercms.com/docs/cms/pages#page-variables