話說
報名後才發現必須要在今天12點前發出一篇,就先以介紹一些背景知識的文章作為開始
drupal 本身有自己的前端(theme)/後端(module)系統,本篇文章介紹開發時應該要知道的名詞與關係
此系列以 drupal7 為範例作為開發入門介紹
資料夾介紹
前往drupal官方把 drupal7 專案抓取下來後,會有一些基本的資料夾結構,簡單介紹如下
- includes: 輔助函數存放處(db, form, field...etc)
- misc: 靜態檔案存放處(js, image, css)
- modules: 核心模組(不建議修改)
- profiles: 安裝drupal時被讀取的部分,決定安裝minimal/testing/standard這三種類型的哪一種
- scripts: 存放shell script的地方
- sites: 寫code的地方,要寫module就在module底下寫,寫theme就在theme底下寫
- themes: 核心主題(drupal 安裝好後預載的主題)
附檔名解釋
- .info: 告訴drupal core你的module / theme基本資訊,drupal 7 的必填欄位是name、core(theme的欄位與module的不同)
- .install: 定義與安裝/移除 table schema 的地方
- .module: 模組的主體內容
- .inc: 主要是為了減少code的複雜性,比如說要寫留言相關的helper
function時,可以建立一個yourmodulename.comment.inc來存放,依自己的命名習慣即可
- template.php: 複寫主題的函數,內有包含主題相關的hook_function,如要對header做控制(比如說加入X-UA-Compatible時可以在這裡寫)
- .tpl.php: 與core相連,控制布局的檔案,會依prefix不同而控制不同區塊,預設都會有page.tpl.php(全局控制)
名詞解釋
- core: drupal核心,定義所有與drupal API互動的函數
- hook_system: 定義了你寫的code與drupal core的互動方式,可以想像成用override的方式寫函數,比如說要定義自有模組的路徑時,可以調用hook_menu為yourmodulename_menu來寫
hook means a place in code that allows you to tap in to a module to either provide different behavior or to react when something happens.
- view: 以頁面呈現的查詢結果
- block: 頁面的布局元素
- panel: 所見即所得(WYSIWYG)的布局工具,於內容可以填入block or view
- region: 主題(theme)的block(可理解為region是用拖拉做出的 block, block是撰寫程式定義)
- FAPI: drupal's form api, 要對表單操作時要透過這些API進行
- menu system: drupal的路由系統,可以把每個menu都看作一個feature,包含callback以及access control
下一篇文章將介紹如何建置drupal開發環境