Zope3開發新的皮膚

來源:互聯網
上載者:User
關鍵字 我們 nbsp; 新的 語句 可以

直到現在我們也只是在提高留言薄的性能,而對它的使用者介面並沒做太多的改善。 實際上,我們一直用 ZMI 來進行所有的留言薄管理,這對最終使用者來說是完全不適合的。 因此本章將專注于開發一個皮膚以便為留言薄實現使用者介面,就象我們所看到的現實中的留言薄應用程式。 儘管該包需要一點 Python 開發,但我認為這對於我們兩個內容元件部分都可以說是個好的任務。

皮膚(等同于 Zope 2 中的 CMF)是一個用來實現對一個已存在的視圖自訂介面的方法。 這非常類似于 HTML 和 CSS(層級式樣式表),對於 HTML 代碼來說視圖(頁面範本,視圖類)和樣式表(CSS)就相當於在 HTML 結構元素上的皮膚。 然而皮膚之下是有另一個抽象層的。

皮膚實際上是個層的堆疊。 每一個層都包含了一些視圖和資源。 這樣就可以讓特定的視圖和資源失效。 舉個例子,我們的樣式表(CSS)也許定義在缺省層。 然而,該樣式表對於我們的需要來講實在是太簡單、太不適合了。 所以我們可以創建一個新的層 board 並將一個新的樣式表放在那裡。 當完成之後,我們定義一介在在缺省層後 board 層的皮膚,然後所有新的樣式定義就會生效。

步驟 I: 準備

在我們創建新皮膚之前,我們需要做些準備。 為了不同原來的視圖和資源混淆,我們在 messageboard/browser 目錄中創建一個名為 skin 的包;不要忘記生成 `init.py` 檔。 然後創建一個空的 configure.zcml 檔:

1&HTTP://www.aliyun.com/zixun/aggregation/37954.html">nbsp; <configure
2      xmlns="HTTP://namespaces.zope.org/browser">
3
4  </configure>

現在用下面的語句將該配置導入到瀏覽器的 configure.zcml 中:

1  <include package=".skin" />

步驟 II: 創建一個新的皮膚

創建一個新的皮膚是非常容易的,用 ZCML 配置語句就可以完全實現。 瀏覽器名字空間有個叫 skin 語句就可以讓我們完成,因此添加下列語句到 skin 包的設定檔中:

1  <layer name="board"/>
2
3  <skin name="board" layers="board rotterdam default" />

第一個語句創建一個新的層,在那裡我們將放入所有的新範本並生成唯一的皮膚。 第二個語句創建一個名為 board 的皮膚,由三個元素層堆疊組成。 最底的層是缺省層,被 rotterdam 覆蓋,而它又被 board 覆蓋。

你也許奇怪為什麼 rotterdam 層會放在這裡。 rotterdam 層包含一些比較好的定義,象 favicon 和其他一些對我們也很有用的視圖代碼。 除此之外,我們不會經常使用這個層。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.