// 取得本月第一天的 timestamp
$first_minute_of_month = mktime(0, 0, 0, date('m'), 1, date('Y'));
// 取得本月最後一天的 timestamp
$last_minute_of_month = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
$query = \Drupal::entityQuery('node')
->condition('status', Drupal\node\NodeInterface::PUBLISHED)
->condition('type', $bundle_type)
->condition('created', [$first_minute_of_month, $last_minute_of_month], 'BETWEEN')
->range(0, 10);
return $query->execute();
Technical
在 Drupal 8/9,一般如果想要幫某個系統頁面加上額外的欄位、資訊,第一直覺都會想到用 Views,不過卻不適用於分類總覽(taxonomy overview)頁。要改總覽頁得用 hook_form_FORM_ID_alter()
來處理。
下面的程式範例是以加上分類項目發佈狀態的為例,但會套用到所有分類頁上,如果只想套用到特定的 vocabulary,那可以用 url 的 args 來進一步限制。
先前遇到一個案例,如果登入後到首頁,就會出現 ERR_TOO_MANY_REDIRECTS 錯誤訊息,但未登入時就沒事。因為只有登入才會有問題,於是就擱置暫不處理。
但後來更新 Drupal core 之後,連未登入也都會出現 ERR_TOO_MANY_REDIRECTS 了,於是直接用關鍵字搜尋,就找到 ERR_TOO_MANY_REDIRECTS,並指引到 Infinite redirect loop when route_normalizer_enabled is true 說明確切的發生原因。
主要原因應該是使用 Redirect 設置重導向頁面,然後其中有部分設置到連回首頁(/)的重導向設置錯誤了,於是造成無限重導向的結果。
去年中嘗試用 QNAP 旗下的 QVR Pro 作為監控系統,並透過他們提供的 API,來取得 QVR Pro 的錄影內容。
雖然 API 設計的還算完善,不過其中對於登入認證的部分,就顯得說明不完整,不管怎麼試就是無法成功登入並取得 session id。後來在 API for QNAP QTS Authentication 這份文章中找到端倪,原來是密碼的部分還需要透過 get_sid.js 程式轉換。
因為 QNAP 的 authorized_keys 的設置位置比較特別,所以特別留個記錄。
- 上傳金錀檔案
scp id_rsa.pub admin@ClientIPAddress /etc/config/ssh/
- 寫入 authorized_keys 檔案
cat id_rsa.pub >> authorized_keys
本文適用於 Drupal 7。
自訂資料表
如果你需要建構 custom table,那麼你可以用 hook_schema()
來定義資料表結構。
在開始前,建議可以閱讀 Schema API quick start guide
/**
* Implements hook_schema().
*/
function mymodule_schema() {
$schema['custom_table1'] = array(
// 定義資料欄位
);
$schema['custom_table2'] = array(
// 定義資料欄位
);
return $schema;
}
上述中,table 陣列下就是定義你這個資料表需要的資料欄位。以 node 模組為例,node table 下每個欄位基本上可以設定以下參數
之前在 [Drupal] Bootstrap 下拉選單 提過將 click 下拉選單改成 hover 下拉選單,但只適用於 Bootstrap 3。
以下是適用 Bootstrap 4.1.2 以上的作法 [1]
隨著 Drupal 9.0.0-alpha1 版釋出,想說也該把這個網站升級至 Drupal 8 了,於是就又浪費了好幾個小時
話說在前
不論是 Drupal 6 或 Drupal 7 都無法直接升級至 Drupal 8,所以升級流程約略是
Drupal 7 的版型大部分都預設會在 body 元素加入以路徑為主的 class,不過 Drupal 8 的版型似乎預設都沒加入這個功能。如果想將 path alias 加到 body 當成 class 來使用的話,可以用以下的程式來達成
純粹是參考資料筆記而已