在ajax处理程序上从php获取{%page%}对象

时间:2014-10-09 06:27:48

标签: php ajax laravel twig octobercms

我正在使用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 %}对象的方法,有没有办法做这样的事情?

1 个答案:

答案 0 :(得分:1)

在PHP中,您可以使用$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