iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 1
1
Modern Web

drupal入門筆記系列 第 1

Day1.Drupal開發入門介紹

話說

報名後才發現必須要在今天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開發環境


下一篇
Day2.Drupal開發環境
系列文
drupal入門筆記9

尚未有邦友留言

立即登入留言