0

我正在使用 OctoberCms 并尝试从 ajax 请求返回页面内容。例如,当点击一些内部链接时,我想从 ajax 中获取像 twig 这样的页面对象{% 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 脚本中获取对象的方法,有没有办法做这样的事情?

4

1 回答 1

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

于 2015-06-25T08:32:19.627 回答