Views

[Drupal] 利用版型覆寫 views 輸出結果

我這次主要是想在 views 的 more-link 加上 .btn-primary 的 class,讓輸出結果直接變成按鈕樣式。在查找資料中[1][2],發現在 Drupal 8.0.x 的早期版本中,是有 views-more.html.twig 版型範本檔案的;不過在最新的 8.6.x 版本已沒有這個檔案了,我並沒有進一步去瞭解為什麼要拿掉這個版型檔案。

由於已經沒有 views-more.html.twig 可以修改,所以如果要覆寫 views 的輸出結果,就要在 THEMENAME.theme 檔案中利用程式直接修改。在網路上找到的參考文章有提供一段範例程式碼如下:

[Drupal] Views PHP 的內容無法在 Views Data Export 的 Batch 模式匯出

簡單說,就是用 Views Data Export 的「Batch」匯出模式時,會發現所有用 Views PHP 設計的欄位都無法順利匯出其欄位數值。問題主因是 View PHP 沒有實作 pre / post execute 的程式片段。

想瞭解具體情況的可以看相關討論;如果只是想找解法的,可以直接參考這個 Patch

參考資料:https://www.drupal.org/project/views_data_export/issues/1536670#comment-...

[Drupal] 用 Views 的 overridden display 覆蓋 master display

雖然 Views 的 master (default) 和 override display 的設計很方便,而且有提供可以 revert override to default 的功能,但有時候是想保留 override display 並覆蓋掉 default display,這時候就尷尬了,因為 Views 沒有提供這麼方便的功能。

在 copy view (overridden) display to master (default) 討論串找到一個很方便的解法,基本用法是透過 Devel 模組的執行 PHP 功能,直接參考下列程式碼並替換掉「machine_name_of_my_view」與「machine_name_of_the_overridden_display」這兩個參數成真正的 views & display machine name 即可。

[Drupal] 讓 Views 過濾 A「或」B

Drupal 果然是個怪東西,什麼怪怪的需求都有機會找到已經被實作出來的模組。我的需求是要讓「上下文過濾器」(contextual filter)可以使用「OR」的功能,跟 Views Or 提供的功能不太相同。

概況簡單的說,就是我用兩個參照使用者(user reference)的欄位來抓所有相關的內容,像下表這樣的關聯性:

[Drupal] 關閉 Views 自動翻譯 Label 的功能

今天,試著在中文化 Drupal 的 Views 下想把某些欄位的標籤改成英文呈現,例如「Name」、「SKU」,但 Views 會自動轉譯成「名稱」、「產品編號」,實在惱人。

後來一想,Views 的設定應該有譜,結果在「進階」設定中找到「本土化」,預設是「核心」,將此選項改成「無」,再回到 Views 中重新變更標籤名字,就行了。

[Drupal] 讓 Views 輸出結果依中文筆畫排序

Views 是架設 Druapl 網站必不可缺少的模組,此模組提供一個簡便的介面,讓我們可以自訂要從資料庫擷取哪些資料來呈現,以及用什麼方式來呈現。以往自行架設開發系統時,對於特定單元頁面,要從哪個資料表擷取資料、要顯示哪些欄位內容,都必須自行撰寫程式,而 Views 則簡化了前述的工作。

Views 除了可讓我們決定要呈現哪些資料欄位外,亦可設定要依哪種方式進行排序。通常我們會需要依內容標題排序,若內容是英文,排序結果會依字母排序,但如果內容是中文呢?很可惜,中文內容其實是依 UTF-8 的編碼來排序,所以並不是依筆畫順序排序,而是依該中文字在編碼表的順序來排的。

Subscribe to RSS - Views