使用 Liquid 和 HTML 建立動態資訊主頁圖片

如要在 Looker 資訊主頁中新增圖片,請在 Markdown 文字動態磚中硬式編碼圖片網址。不過,文字方塊中的圖片是靜態圖片,不會根據結果更新。 如果想讓資訊主頁圖片根據使用者選取的篩選器值動態變化,該怎麼做?

本最佳做法頁面說明如何使用 Liquidhtml 參數,取得動態資訊主頁圖片。

解決方法

下列解決方案是以電子商務資料集為基礎,其中包含名為 users.state 的欄位,代表假設電子商務資料集中的狀態:

dimension: state {
  type: string
  sql: ${TABLE}.state ;;
}

假設您想在資訊主頁上顯示州別的旗幟圖片,並根據使用者選擇的州別篩選資訊主頁結果,更新圖片。

如要建立動態資訊主頁圖片,請完成下列三個步驟:

  1. 在 LookML 中建立圖片維度。
  2. 建立動態圖片資訊主頁圖塊。
  3. 新增資訊主頁篩選器並進行最後潤飾。

步驟 1:在 LookML 中建立圖片維度

如要在 LookML 中建立圖片維度:

  1. 首先,請前往專案和檢視畫面檔案,其中包含您要新增圖片的維度。接著,根據該欄位建立新維度,專門用於顯示圖片。
  2. 針對要顯示圖片的每個值,新增 html 參數,以 value 變數定義 Liquid {% if %} 條件陳述式

    舉例來說,下列 state_flag_image 維度會建立條件,在 state 的值為 "California""New York""Colorado""Illinois" 時,顯示指定圖片 (含 html <img> 標記)。在所有其他狀態下,你可以顯示「沒有可用的圖片」圖示:

          dimension: state_flag_image {
              type: string
              sql: ${state} ;;
              html:
                  {% if state._value == "California" %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg" height="170" width="255">
                  {% elsif state._value == "New York" %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Flag_of_New_York.svg/1200px-Flag_of_New_York.svg.png" height="170" width="255">
                  {% elsif state._value == "Colorado" %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Flag_of_Colorado.svg/255px-Flag_of_Colorado.svg.png" height="170" width="255">
                  {% elsif state._value == "Illinois"%}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Flag_of_Illinois.svg/1200px-Flag_of_Illinois.svg.png" height="170" width="255">
                  {% else %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/No_image_available.svg/1024px-No_image_available.svg.png" height="170" width="170">
                  {% endif %} ;;
          }
        
  3. 為要顯示圖片的每個值建立值條件。或者,您也可以使用 value Liquid 變數建立動態圖片欄位,詳情請參閱這篇社群貼文

接著,您可以為圖片維度建立資訊主頁圖塊。

步驟 2:建立動態圖片資訊主頁動態磚

建立圖片維度 (state_flag_image) 後,您就能建構「探索」,並將其做為動態圖片資訊主頁圖塊。

根據下列條件建立探索:

  • 為原始維度 (本例中為「state」) 新增篩選器,並為篩選器設定任意值。由於未選取特定篩選器值,系統一開始會顯示「沒有可用的圖片」圖片。這個篩選值會根據使用者為資訊主頁篩選器選取的項目更新。 
  • 選取圖片維度 (在本例中為 state_flag_image) 和查詢可能需要的任何其他維度,以判斷圖片 (例如,如要納入日期,可以加入日期等)。
  • 列數上限變更為一列。
  • 將圖表類型變更為單一值圖表,並隱藏圖片維度 (state_flag_image) 以外的所有其他資料欄。

在「視覺化」面板中,系統一開始會在單一值視覺化項目中顯示「沒有可用的圖片」圖片。顯示圖片會根據使用者在最終資訊主頁上選取的篩選器值而變更:

將探索查詢儲存至資訊主頁做為圖塊

步驟 3:新增資訊主頁篩選器並進行最後調整

現在,您需要在資訊主頁中新增資訊主頁篩選器。資訊主頁上的篩選器會更新「探索」中的篩選器,根據使用者選取項目變更顯示的圖片。

在資訊主頁的編輯模式中建立篩選器

  • 開啟「新增篩選條件」視窗
  • 選取要篩選的欄位。篩選器欄位應為圖片尺寸所依據的維度。以這個範例來說,篩選器的欄位是「state」
  • 在「要更新的動態磚」分頁中,選取步驟 2 中的圖片動態磚。
  • 在內嵌的「Field to Filter」(要篩選的欄位) 下拉式選單中,選取原始維度 (本例為「state」)。
  • 視需要選取其他要更新的動態磚。
  • 視需要自訂篩選器。如果選取「進階」控制項選項,請務必取消選取「允許多個篩選值」選項,因為系統會為「進階」控制項選項自動啟用這個選項。

現在,圖片動態磚會根據使用者篩選器選項更新。

如果使用者選擇依「加州」篩選,資訊主頁會顯示加州州旗和資料:

如果使用者選擇依「科羅拉多州」篩選,資訊主頁就會顯示科羅拉多州旗和該州的資料: