您在這裡

Drupal 秀: 南華早報 Interests - International property

joetsuihk's 的頭像
joetsuihk 在 2010-10-26 (二) 21:05 發表

English version: http://joetsuihk.com/scmp_interests_international_property

http://interests.scmp.com/international-property/
這是雖然不是我第一個在南華早報的計劃
但這算是一個 2010上半年的 Drupal代表作

網站結構

  1. 三層導航 – 首頁, 分類(國家), 文
  2. 五個內容類型:
    1. 文章
    2. 精彩文章
    3. 圖片
    4. 固定頁面
    5. 有用連結


首頁結構
整個首頁使用一個 views 完成, 其中包含了5個部分

  1. views::attachment Featured (附件類: 精彩文章區)
  • 最多顯示5組圖片, 自動循環顯示
  • 使用了 jQuery Galleriffic 插件
  • 內容類型為贊助文章
  • views::attachment Sponsored (附件類: 贊助區)
    • 三篇贊助文章
  • views::page Recent (頁面類: 最近文章區)
    • 三篇最近上傳的文章
  • views::attachment Gallery (附件類: 圖片庫區)
    • 全部 “圖片”內容
    • 點擊打開大圖 (by fancybox)
  • views::attachment more (附件類: 更多其他區)
    • 列出全部站內文章
    • 以國家為分組排列
    • 特殊的views 模版 (注1)

    開發重點

    • 圖片是自成一個內容類型, 而不是內容的一個欄位
    • 每一張圖片都有多個尺寸, 大量使用imagefield, imagefield_crop, imagecache 模組
    • 所以文章需要用 node reference 連到所需圖片, 並在相集中顯示
    • 同一張圖片可以同時供給多篇文章使用
    • 在 fancybox 打開的大圖, 可以顯示 “相關文章”, 展示同樣使用了該圖片的其他文章 (注2)

    注1: 特殊的views 模版
    難題:

    • 文章會定期根據預定時間下架/上線
    • 國家列表是可以變化的, 而且只顯示有上線文章的國家
    • 以三欄式顯示, 可以變化的國家數目, 以及變化的總行數
    • 國家以英數字首排列

    views 中的 SQL (簡化的列子):

    •  SELECT country_name, node_title FROM `nodes` JOIN taxonomy WHERE nodes.tid = taxonomy.tid GROUP BY country_name ORDER BY country_name;

    返回的結果類似於:

    • Canada, title1
    • Canada, title2
    • China, title3
    • France, title4
    • USA, title5

    算法:

    • 計出每一個欄的國家數目 (因為國家數目不一定可以整除三)(2,1,1)
    • 數算執行中的國家
    • 輸出國家名, 如果和上一次輸出不同的話
    • 打開/關上 一欄, 如果超出了每一個欄的國家數目的話

    注2: 圖片的相關文章

    • 一個用圖片的 nid 作參數的 views
    • 找出有使用該 nid 作為node reference 的文章
    • 如有第二個參數, 將第二參數從結果移除, 令一篇文章的 ”相關文章” 不會出現 “自己” 的情況

    all brsowers,
    標題太長,導致跳到第二行,繼而向下推

    我以為是沒有 DESIGN 的,純邊 CODING 邊做版面。
    個人感覺這頁面跟其他的頁面欠缺一致性,比如說其他頁面都有 LOGIN,偏偏這邊沒有
    SPONSORED ARTICLES / TOP STORIES 裏的內容,上下右左的空間也不太一致,呵呵,不說太多了

    估計是沒有人進行過驗收工作。(或者是刻意的 ^_^)

    ---
    notaBlueScreen | 一天一翻譯,好過吃蘋果

    推~香港之光!

    joetsuihk 大大的網站( http://www.joetsuihk.com/ ) 跟阿舍的網站是小弟最常拜讀的drupal中文個人網站
    內容相當豐富專業深入淺出還都是原創, 實在令小弟深深佩服 Orz...
    從剛接觸drupal時候到目前也都常常要上去充電

    注意到南華早報代表作好像沒有提到(用到)panels模組
    請問大大是因為效能方面的考量嗎?