2012/10/26

Plone Isotope jQuery Plugin

isotope 是一個 jQuery plugin,可以呈現炫麗的網頁畫面。下列是我把範例檔案嵌進 Plone 網站的心得和步驟。
解開 isotope-site.zip 原始檔後,先觀察目錄結構和 index.html 內容:
isotope-site/
├── CONTRIBUTING.mdown
├── README.mdown
├── css
│   └── style.css
├── custom-layout-modes
│   ├── big-graph.html
│   ├── category-rows.html
│   ├── centered-masonry.html
│   ├── masonry-column-shift.html
│   ├── masonry-corner-stamp.html
│   ├── masonry-gutters.html
│   └── spine-align.html
├── demos
│   ├── adding-items.html
│   ├── basic.html
│   ├── combination-filters.html
│   ├── elements-complete.html
│   ├── elements-partial.html
│   ├── filtering.html
│   ├── fluid-responsive.html
│   ├── hash-history.html
│   ├── images.html
│   ├── infinite-scroll.html
│   ├── layout-modes.html
│   ├── relayout.html
│   ├── removing.html
│   └── sorting.html
├── docs
│   ├── adding-items.html
│   ├── animating.html
│   ├── extending-isotope.html
│   ├── filtering.html
│   ├── hash-history-jquery-bbq.html
│   ├── help.html
│   ├── introduction.html
│   ├── layout-modes.html
│   ├── license.html
│   ├── methods.html
│   ├── options.html
│   └── sorting.html
├── index.html
├── jquery.isotope.js
├── jquery.isotope.min.js
├── js
│   ├── fake-element.js
│   ├── jquery-1.7.1.min.js
│   ├── jquery.ba-bbq.min.js
│   ├── jquery.infinitescroll.min.js
│   └── make-big-graph-projects.js
├── pages
│   ├── 2.html
│   ├── 3.html
│   ├── 4.html
│   ├── 5.html
│   └── 6.html
└── tests
    ├── callbacks.html
    ├── combo-sort-history.html
    ├── destroy.html
    ├── elements-complete-test.html
    ├── flash.html
    ├── index.html
    ├── item-position-data.html
    ├── jquery-animation.html
    ├── no-items.html
    ├── onlayout.html
    ├── right-to-left.html
    ├── tiny-text.html
    └── unclickable-filtered.html

7 directories, 62 files
首先,把 JavaScript 和 CSS 檔案上傳到 ZMI 的 /portal_skins/custom 目錄,至少有三個檔案:

  1. jquery-1.7.1.min.js - 這個檔案在原始檔的 js 目錄裡找得到,從 ZMI 下拉選單點選 File 來新增。
  2. jquery.isotope.min.js - 仿照上述方式上傳。
  3. style.css - 這個檔案在原始檔的 css 目錄裡找得到,從下拉選單點選 DTML Method 來新增。由於 Plone 原本也有 style.css 同名稱的檔案,為避免衝突,我改用 isotope.css 名稱來上傳。
再到 ZMI 的 portal_css 新增 stylesheet 設定值,在這個例子裡,名稱就是上述新增的 isotope.css 檔案。

接著,要選一個「網頁」位址,來實際展示畫面,實作方法很多種,以根目錄為例,我是在 ZMI 根目錄裡新增一個 Page Template,請留意,這裡的 Id 要指定為 index_html,系統發現目錄裡有這類名稱時,會優先執行它,index_html 內容先複製自 Sunburst main_templage.pt 檔案,可參考這系列 gist 的第一次版本

這時候的畫面,很可能會變得清爽,主內容的區塊全部清空了:

我們想把 Plone Demo 字樣換掉,也就是改用新標題。從 ZMI 根目錄點選剛才建立的 index_html 檔案,在 Title 欄位填上 Python Periodic Table 當作新標題:

還要修改一段程式碼才能真的生效,把 <h1> 改成 TAL 敘述式,讀取 template/title 變數值:

重頭戲上場了,要把原始碼 index.html 內容嵌入 Page Template 裡。依序是:
接下來是許多微調的動作,特別是要把檔案路徑、CSS 衝突或不適宜的設定值改掉,例如:
如果 poortal-column-content 的 CSS class 改用 width-full 的話,可以擁有全螢幕的顯示效果。

No comments: