2017-01-31 64 views
0

我想通過使用此框架/ CMS:10月CMS來製作應用程序。我正在閱讀documentation,我找不到我想要完成的任務;它說:PHP框架:OctoberCMS - 變量範圍混亂

{%set%}標記可用於設置模板內的變量。

{%集activePage =「博客」%}

我想添加一個可選的部分,或在默認情況下將其添加在佈局如果一個變量是在主頁真。在Blade模板中,只能使用@yield('partial'),如果不這樣做,就不會在Twig模板中引發異常。所以,我做了以下內容:

版式.htm文件

{% set flipbook = true %} 
... some code 

home.htm這是使用該佈局的:

{% if flipbook %} 
    {% partial 'partial' %} 
{% endif %} 
... some code 

問題:部分未被包含,它指的是不在同一個變量範圍內的變量。我知道,是指範圍,因爲我也試着這樣做:

{% set flipbook = true %} 
{% if flipbook %} 
    {% partial 'partial' %} 
{% endif %} 
... some code 

這個偉大的工程...任何想法?提前致謝。

回答

0

{% set variableName = 'data' %}是上下文特定的,即,該變量將只上下文中存在該它被設置,除非你按照Pierre-André的建議將它傳遞給另一個環境。

就你而言,你希望在你的頁面中訪問該變量,而不是局部變量,所以你需要將變量添加到Twig渲染上下文本身,而不僅僅是你的佈局上下文。爲此,您需要使用模板的PHP Section將變量添加到Twig上下文中。

url = "/blog" 
layout = "default" 
== 
<? 
function onStart() 
{ 
    $this['flipbook'] = true; 
} 
?> 

的替代這一切將是你的功能捆綁成一個plugin component,然後只需添加到任何頁面都需要它該組件。