国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

OctoberCMS-4-頁(yè)面

pingink / 457人閱讀

摘要:頁(yè)面文件的擴(kuò)展名為。頁(yè)面標(biāo)題,必填。頁(yè)面執(zhí)行的聲明周期當(dāng)所有組件被初始化并且在處理請(qǐng)求之前,該函數(shù)被執(zhí)行。函數(shù)在頁(yè)面開始執(zhí)行時(shí)執(zhí)行。當(dāng)系統(tǒng)找不到目標(biāo)頁(yè)面時(shí),系統(tǒng)將顯示頁(yè)面內(nèi)容,為。

Pages

Pages:頁(yè)面;網(wǎng)站頁(yè)面的內(nèi)容由Page模板定義。模板文件位置:themes/theme_name/pages目錄下。頁(yè)面文件的擴(kuò)展名為htm。文檔結(jié)構(gòu)中,Configuration(配置)和Twig Markup(標(biāo)記)部分是必須的,PHP代碼部分是可選的。

最簡(jiǎn)單的例子

url = "/"
==

Hello, world!

頁(yè)面配置

頁(yè)面配置在Configuration Section中定義。主要定義一下內(nèi)容:

參數(shù) 描述
URL 頁(yè)面網(wǎng)址,必填。
title 頁(yè)面標(biāo)題,必填。
Layout 頁(yè)面布局可選。如果指定,應(yīng)包含布局文件的名稱,不帶擴(kuò)展名,例如:default。
Description 后端接口的頁(yè)面描述,可選。

URL設(shè)置語(yǔ)法

URL以正斜杠" / "開頭,可以包含參數(shù)也可以不包含。比如:

url = "/blog"

帶參數(shù)的URL以" : "開頭。比如下面的url表示,/blog/post/...斜杠后面的就是參數(shù)。這個(gè)參數(shù)可以被October組件或者PHP代碼部分訪問。

url = "/blog/post/:post_id"

PHP代碼部分訪問的例子如下:參數(shù)名與php變量名要求一致。

url = "/blog/post/:post_id"
==
function onStart()
{
    $post_id = $this->param("post_id");
}
==

可選參數(shù):只需要在其后面加?即可。

url = "/blog/post/:post_id?"

URL中間的參數(shù)不能是可選的。在下一個(gè)示例中,該:post_id參數(shù)被標(biāo)記為可選,但會(huì)當(dāng)做必須的處理。

url = "/blog/:post_id?/comments"

可選參數(shù)運(yùn)行有默認(rèn)值。在沒有提供參數(shù)的時(shí)候,這些默認(rèn)值作為POST的值。默認(rèn)值不能包含任何" 星號(hào) 管道符 問號(hào) "

url = "/blog/category/:category_id?10"

還可以使用正則表達(dá)式驗(yàn)證參數(shù)。添加驗(yàn)證表達(dá)式需要 [ 參數(shù)名 ] 或者 [ 問號(hào) ] 后面添加管道符號(hào) [ | ] 。表達(dá)式中不能包含正斜杠符號(hào) [ / ] 。

url = "/blog/:post_id|^[0-9]+$/comments" - this will match /blog/10/comments
...
url = "/blog/:post_id|^[0-9]+$" - this will match /blog/3
...
url = "/blog/:post_name?|^[a-z0-9-]+$" - this will match /blog/my-blog-post

可以通過在參數(shù)后面加星號(hào)來使用特殊的通配符參數(shù)。與常規(guī)參數(shù)不同,通配符參數(shù)可以匹配一個(gè)或多個(gè)URL。URL只能包含單個(gè)通配符參數(shù),不能使用正則表達(dá)式,或者后跟可選參數(shù)。

url = "/blog/:category*/:slug"

比如下面的例子:

/color/:color/make/:make*/edit
可以匹配:
/color/brown/make/volkswagen/beetle/retro/edit
其中:
color: 匹配了 brown
make: 匹配了 volkswagen/beetle/retro

動(dòng)態(tài)頁(yè)面

在模板的Twig標(biāo)記部分,可以使用October提供的函數(shù),過濾器和標(biāo)簽。其中的變量在頁(yè)面中是必須的,這些變量在 page和layout中,由PHP代碼或者組件提供變量的值。

頁(yè)面執(zhí)行的聲明周期

onInit當(dāng)所有組件被初始化并且在處理AJAX請(qǐng)求之前,該函數(shù)被執(zhí)行。

onStart 函數(shù)在頁(yè)面開始執(zhí)行時(shí)執(zhí)行。

onEnd函數(shù)在頁(yè)面渲染之前和執(zhí)行頁(yè)面Components之后執(zhí)行。

在onStart和onEnd函數(shù)中,您可以將變量注入到Twig環(huán)境中。使用array notation將變量傳遞給頁(yè)面:

url = "/"
==
function onStart()
{
    $this["hello"] = "Hello world!";
}
==

{{ hello }}

下面的例子說明了如何從數(shù)據(jù)庫(kù)加載文章的集合,并顯示在頁(yè)面上。

url = "/blog"
==
use AcmeBlogClassesPost;

function onStart()
{
  $this["posts"] = Post::orderBy("created_at", "desc")->get();
}
==

Latest posts

    {% for post in posts %}

    {{ post.title }}

    {{ post.content }} {% endfor %}

發(fā)送自定義響應(yīng)

頁(yè)面執(zhí)行聲明周期中定義的所有函數(shù)都可以暫停執(zhí)行進(jìn)程,發(fā)送自定義的響應(yīng)。從生命周期函數(shù)中返回響應(yīng)是很簡(jiǎn)單的,下面的例子中,頁(yè)面將不載入任何頁(yè)面內(nèi)容,只是僅僅返回一個(gè)Hello world字符串到瀏覽器。

function onStart()
{
    return "Hello world!";
}

比較有用的例子是做重定向:

public function onStart()
{
    return Redirect::to("http://google.com");
}

Handling Forms

處理表單:可以在page或者layout中的PHP代碼部分定義處理表單的函數(shù)。使用form_open()函數(shù)來定義什么函數(shù)來處理這個(gè)表單。

{{ form_open({ request: "onHandleForm" }) }}
    Please enter a string: 
    
{{ form_close() }}

Last submitted value: {{ lastValue }}

上述定義的來處理表單的函數(shù)為onHandleForm函數(shù),這個(gè)函數(shù)是在PHP代碼部分進(jìn)行定義的:

function onHandleForm()
{
    $this["lastValue"] = post("value");
}

這個(gè)函數(shù)使用POST獲取表單提交的值,并把這個(gè)值給當(dāng)前頁(yè)面的變量 lastValue ,然后在上面的Twig代碼中的最后一行中,把這個(gè)值給顯示出來。

關(guān)于重名:如果在page、layout和component中定義了具有相同名稱的函數(shù),October將根據(jù)如下順序確定優(yōu)先級(jí):Page > Layout > Component??偸乔懊娴膬?yōu)先被執(zhí)行。

如果引用組件中的函數(shù),則使用組件名或者別名,后跟 [ :: ] ,再加函數(shù)名。

{{ form_open({ request: "myComponent::onHandleForm" }) }}

404 Page

當(dāng)系統(tǒng)找不到目標(biāo)頁(yè)面時(shí),系統(tǒng)將顯示404頁(yè)面內(nèi)容,URL為 /404 。

Error Page

默認(rèn)情況下,任何錯(cuò)誤都會(huì)顯示一個(gè)詳細(xì)的錯(cuò)誤頁(yè)面,其中包含錯(cuò)誤發(fā)生處的文件內(nèi)容,行號(hào)和堆棧跟蹤。

我們可以顯示一個(gè)自定義的錯(cuò)誤頁(yè)面。首先在配置文件config/app.php中找到字段debug,并設(shè)置為false。然后建立一個(gè)URL為:" /error "的頁(yè)面。

Page Variables

PHP/Component訪問:頁(yè)面的屬性可以被PHP代碼部分或者組件部分通過 $this->page 來進(jìn)行訪問。比如:

function onEnd()
{
    $this->page->title = "A different page title";
}

Twig標(biāo)記訪問:這些變量也可以被Twig標(biāo)記訪問,方式為 this.page.variable ;

The title of this page is: {{ this.page.title }}

程序化方式注入資源到頁(yè)面

可以使用 addCss addJs 兩個(gè)方法,分別注入樣式表和js腳本到頁(yè)面中。只需要在頁(yè)面或者布局的PHP代碼部分,通過 onStart 函數(shù)進(jìn)行注入操作。

function onStart()
{
    $this->addCss("assets/css/hello.css");
    $this->addJs("assets/js/app.js");
}

關(guān)于路徑,如果以 / 開頭,則說明是網(wǎng)站的根目錄,如果不是 / 開頭,則是指主題目錄。同時(shí),這些路徑支持?jǐn)?shù)組模式,以便提供多個(gè)文件的注入。

function onStart()
{
    $this->addCss(["assets/css/hello.css", "assets/css/goodbye.css"]);
    $this->addJs(["assets/js/app.js", "assets/js/nav.js"]);
}

支持SCSS和LESS:

function onStart()
{
    $this->addCss(["assets/less/base.less"]);
}

注入的文件如何在頁(yè)面或者布局中輸出呢,通過 {% styles %} 和 {% scripts %}就可以了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28827.html

相關(guān)文章

  • SPA 路由記憶

    摘要:路由記憶名詞解釋在中后臺(tái)系統(tǒng)開發(fā)中,訪問任何頁(yè)面時(shí),認(rèn)證是永遠(yuǎn)繞不過的檻。這個(gè)過程,暫且稱之為路由記憶,前面例子中的登錄頁(yè)面稱之為記憶節(jié)點(diǎn)。 SPA 路由記憶 名詞解釋 在中后臺(tái)系統(tǒng)開發(fā)中,訪問任何頁(yè)面時(shí),認(rèn)證是永遠(yuǎn)繞不過的檻。以登錄為例,如果檢測(cè)出當(dāng)前用戶未登錄,會(huì)強(qiáng)制跳轉(zhuǎn)到登錄頁(yè)面提示用戶進(jìn)行登錄。登錄完成后,系統(tǒng)需要跳轉(zhuǎn)至用戶原先想訪問的頁(yè)面。這個(gè)過程,暫且稱之為路由記憶,前面例...

    starsfun 評(píng)論0 收藏0
  • iframe解決跨域ajax請(qǐng)求的方法

    摘要:數(shù)據(jù)仍然是通過頁(yè)面獲得,頁(yè)面僅需向頁(yè)面?zhèn)鬟f即可,頁(yè)面拿到函數(shù)名,并通過傳遞從服務(wù)器拿到的數(shù)據(jù),在頁(yè)面執(zhí)行頁(yè)面的回調(diào)函數(shù),回調(diào)函數(shù)執(zhí)行完畢后移除頁(yè)面以及該函數(shù)。以上是我所知道的解決跨域請(qǐng)求的兩種方法。 iframe跨域的基本前提是,一個(gè)頁(yè)面可以嵌套非同源站點(diǎn)的html文件,以及某一個(gè)域名下的html頁(yè)面可以通過腳本向同域名服務(wù)器發(fā)出ajax請(qǐng)求。當(dāng)一個(gè)域名為domain1下的頁(yè)面A想要向...

    cncoder 評(píng)論0 收藏0
  • 微信小程序頁(yè)面跳轉(zhuǎn)方法總結(jié)

    摘要:在我們?nèi)粘5拈_發(fā)過程中,跳轉(zhuǎn)頁(yè)面是每個(gè)項(xiàng)目中必有的需求,包括監(jiān)聽返回按鈕,回到指定頁(yè)面,在小程序中頁(yè)面跳轉(zhuǎn)即頁(yè)面路由頁(yè)面??蚣芤詶5男问骄S護(hù)了當(dāng)前的所有頁(yè)面。 在我們?nèi)粘5拈_發(fā)過程中,跳轉(zhuǎn)頁(yè)面是每個(gè)項(xiàng)目中必有的需求,包括監(jiān)聽返回按鈕,回到指定頁(yè)面,在小程序中頁(yè)面跳轉(zhuǎn)即頁(yè)面路由 頁(yè)面棧 框架以棧的形式維護(hù)了當(dāng)前的所有頁(yè)面。當(dāng)發(fā)生路由切換的時(shí)候,頁(yè)面棧的表現(xiàn)如下: showImg(http...

    derek_334892 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<