Pārlūkot izejas kodu

'oak-20240704-0528'

oak 8 mēneši atpakaļ
vecāks
revīzija
26c7de726f
3 mainītis faili ar 1604 papildinājumiem un 1 dzēšanām
  1. 1 1
      genjson/gen_json_designers_list_data.py
  2. 633 0
      genjson/gen_realtime.py
  3. 970 0
      json/data_index.json

+ 1 - 1
genjson/gen_json_designers_list_data.py

@@ -72,7 +72,7 @@ while True:
 
 d=a.json()
 print(d)
-with open('../json/designers_lists_data.json','w+',encoding="utf-8") as f:
+with open('../designers/lists/json/designers_lists_data.json','w+',encoding="utf-8") as f:
     json.dump(d, f)
 
 cmd="""curl -X POST "https://api.cloudflare.com/client/v4/zones/8cb58022ad5743cfd9f088d5e3a261eb/purge_cache" -H "X-Auth-Email: web.dept.hhh@gmail.com"  -H "X-Auth-Key:63e51d9a1638d66afcbfc3320aabec52304de" -H "Content-Type: application/json" --data '{"files":["https://hhh.com.tw/hhh-test/json/designers_lists_data.json"]}'"""

+ 633 - 0
genjson/gen_realtime.py

@@ -0,0 +1,633 @@
+import os
+from typing import Optional
+from dataset.util import ResultIter
+from datetime import tzinfo
+import datetime
+import mysql.connector
+from mysql.connector import Error
+import dataset
+import json
+from pytube import extract
+import requests
+access_token = "57e1d6642904ecc2348b2768b028b5dd74720f791c7a3fd7ec551db3fd12a303"
+
+hhhMBPath = '../hhh-home-mb'
+hhhPCPath = '../hhh-home-pc'
+
+#connstr = 'mysql://hhh7796hhh:lYmWsu^ujcA1@hhh-v57.cmab1ctkglka.ap-northeast-2.rds.amazonaws.com:3306/xoops?charset=utf8mb4'
+#2022/12/13 change
+connstr = 'mysql://hhh7796hhh:lYmWsu^ujcA1@ec2-3-35-26-49.ap-northeast-2.compute.amazonaws.com:3306/xoops?charset=utf8mb4'
+
+""" db = dataset.connect(
+    'mysql://hhh7796hhh:lYmWsu^ujcA1@hhh-v57.cmab1ctkglka.ap-northeast-2.rds.amazonaws.com:3306/xoops?charset=utf8mb4') """
+#        charset='utf8',
+#        collation='utf8_unicode_ci'
+
+#2022/12/13 change
+connobj = {
+    'host': 'ec2-3-35-26-49.ap-northeast-2.compute.amazonaws.com',
+   'database': 'xoops',
+   'user': 'hhh7796hhh',
+   'password': 'lYmWsu^ujcA1',
+   'use_unicode': True
+#'charset': 'utf8',
+#'collation': 'utf8_unicode_ci'
+  }
+
+#connobj = {
+  #  'host': 'hhh-v57.cmab1ctkglka.ap-northeast-2.rds.amazonaws.com',
+   # 'database': 'xoops',
+   # 'user': 'hhh7796hhh',
+   # 'password': 'lYmWsu^ujcA1',
+   # 'use_unicode': True
+   # #'charset': 'utf8',
+   # #'collation': 'utf8_unicode_ci'
+#}
+
+def ExecuteQuery(isql):
+    with mysql.connector.connect(**connobj) as connection :
+        with connection.cursor(dictionary=True) as cursor:
+    # connection.set_charset_collation('utf8','utf8_general_ci')
+            #cursor = connection.cursor(dictionary=True)
+            cursor.execute(isql)
+            return cursor.fetchall()
+def genjson_new(filename: str = "realtime.json"):
+    
+    jData = json.load(open('../json/'+filename, encoding='utf8'))
+
+    records = ExecuteQuery("SELECT * FROM _had where (now() between start_time and end_time or ( start_time is null and end_time is null) or ( start_time = '0000-00-00 00:00:00' and end_time = '0000-00-00 00:00:00')) and onoff='1' and adtype like '首八大%' ")
+
+    for x in jData:
+
+        # 頂部輪播區-新刊頭
+        if x['id'] == 0:
+
+            records = ExecuteQuery("""SELECT adid,alt_use,adlogo lo,adlogo_mobile mlo, adhref lk, adlogo_mobile_webp lomwebp, adlogo_webp dwebp FROM _had
+                        WHERE adtype LIKE '新刊頭%'
+                        AND onoff='1'
+                        AND(NOW() BETWEEN start_time AND end_time OR(start_time='0000-00-00 00:00:00' and end_time='0000-00-00 00:00:00') or (start_time is null and end_time is NULL))
+                        ORDER BY cast(SUBSTR(adtype,4) AS DECIMAL)""")
+
+            x["data"] = []
+            for c in records:
+                a = {'imgUrl': c['mlo'], 'link': str(
+                    c['lk']), 'DimgUrl': c['lo'], 'webp': str(c['lomwebp']), 'Dwebp': str(c['dwebp']),'id':c['adid'],'alt':str(c['alt_use'])}
+                x["data"].append(a)
+            # print(x["data"])
+
+        # 主要輪播區-首八大
+        if x['id'] == 1:
+            records = ExecuteQuery("""SELECT adid,alt_use,adlogo lo,adlogo_mobile mlo, adhref lk, adlogo_mobile_webp lomwebp, adlogo_webp dwebp,logo_icon,index_char_1,index_char_2_1,index_char_2_2,index_char_2_3 FROM _had
+                        WHERE adtype LIKE '首八大%'
+                        AND onoff='1'
+                        AND(NOW() BETWEEN start_time AND end_time OR(start_time='0000-00-00 00:00:00' and end_time='0000-00-00 00:00:00') or (start_time is null and end_time is NULL))
+                        ORDER BY cast(SUBSTR(adtype,4) AS DECIMAL)""")
+
+            x["data"] = []
+            for c in records:
+                if c['index_char_1']==None:
+                    c['index_char_1']=''
+                if c['index_char_2_1']==None:
+                    c['index_char_2_1']=''
+                if c['index_char_2_2']==None:
+                    c['index_char_2_2']=''
+                if c['index_char_2_3']==None:
+                    c['index_char_2_3']=''
+                a = {'imgUrl': c['mlo'], 'link': str(
+                    c['lk']), 'DimgUrl': c['lo'], 'webp': str(c['lomwebp']), 'Dwebp': str(c['dwebp']),'logo_icon':str(c['logo_icon']),'index_char_1':str(c['index_char_1']),'index_char_2_1':str(c['index_char_2_1']),'index_char_2_2':str(c['index_char_2_2']),'index_char_2_3':str(c['index_char_2_3']),'id':c['adid'],'alt':str(c['alt_use'])}
+                x["data"].append(a)
+            # print(x["data"])
+
+        #tab區塊-最夯設計, 影音實錄, 專欄文章
+        if x['id'] == 6:
+            x["data"] = []
+            #過年後修改
+            a = {'tab': '編輯精選', 'data': []}
+            records_for_custom = ExecuteQuery("""SELECT hcolumn_id, ctitle,clogo,cdesc,_hcolumn.ctag
+                            FROM homepage_set
+                            LEFT JOIN _hcolumn ON mapping_id = hcolumn_id
+                            WHERE outer_set=8
+                            AND homepage_set.onoff='Y'
+                            AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
+                            ORDER BY inner_sort limit 8""")
+            
+            
+            #加入不重複id
+            id_use = []
+            for c in records_for_custom:
+                id_use.append(c['hcolumn_id'])
+            id_len = 8 - len(id_use)
+            # print(id_use)
+            str_id_use=''
+            for k in id_use:
+                str_id_use+=' and hcolumn_id!=%s '%k
+            # print(str_id_use)
+
+
+
+            #加入不重複id sql
+            # records = ExecuteQuery("""SELECT ctag,ctitle TT,clogo IMG, CONCAT('/columns/detail/',hcolumn_id,'/') LK, cdesc
+            #                 from _hcolumn
+            #                 WHERE onoff='1' """+str_id_use+"""
+            #                 AND NOW() > sdate
+            #                 ORDER BY hcolumn_id DESC
+            #                 LIMIT 8""")
+            records = ExecuteQuery("""SELECT ctag,ctitle TT,clogo IMG, CONCAT('/columns/detail/',hcolumn_id,'/') LK, cdesc
+                            from _hcolumn
+                            WHERE onoff='1' """ +str_id_use+"""
+                            AND NOW() > sdate
+                            ORDER BY  sdate desc,hcolumn_id DESC
+                            LIMIT """+ str(id_len) +""" """)
+
+
+            
+            for d in records_for_custom:
+                ad = {'imgUrl': d['clogo'], 'link': "/columns/detail/" + str(
+                            d['hcolumn_id']) + "/", 'title': d['ctitle'], 'ctag':d['ctag'].split(',')}
+                a["data"].append(ad)
+            for c in records:
+                ctag_list=c['ctag'].split(',')
+                if len(ctag_list)==1 and ctag_list[0]=='':
+                    ctag_list=[]
+                ad = {'imgUrl': c['IMG'], 'link': c['LK'],
+                    'title': c['TT'],'ctag':ctag_list}
+                a['data'].append(ad)
+
+
+            
+            x["data"].append(a)
+
+
+
+
+
+
+            
+
+
+           
+
+
+
+            a = {'tab': '最夯設計', 'data': []}
+            records_for_custom = ExecuteQuery(""" SELECT  hcase_id,caption TT,tag ,cover IMG, CONCAT('/cases/detail/',hcase_id,'/') LK,_hdesigner.hdesigner_id hid,img_path,title
+                            FROM homepage_set
+                            LEFT JOIN _hcase ON mapping_id = hcase_id
+                            left join _hdesigner ON _hcase.hdesigner_id=_hdesigner.hdesigner_id
+                            WHERE outer_set=2 and  _hcase.onoff='1' AND _hdesigner.onoff='1' 
+                            AND homepage_set.onoff='Y'
+                            AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
+                            ORDER BY inner_sort limit 8""")
+            #加入不重複id
+            id_use = []
+            for c in records_for_custom:
+                id_use.append(c['hcase_id'])
+            id_len = 8 - len(id_use)
+            # print(id_use)
+            str_id_use=''
+            for k in id_use:
+                str_id_use+=' and hcase_id!=%s '%k
+
+            records = ExecuteQuery("""SELECT hcase_id,caption TT,tag ,cover IMG, CONCAT('/cases/detail/',hcase_id,'/') LK,_hdesigner.hdesigner_id hid,img_path,title
+                            from _hcase
+                            left join _hdesigner ON _hcase.hdesigner_id=_hdesigner.hdesigner_id
+                            WHERE
+                            _hcase.onoff='1' AND _hdesigner.onoff='1' 
+                            AND (NOW() > sdate)  """+str_id_use+"""
+                            ORDER BY  sdate desc,hcase_id DESC
+                            LIMIT """+ str(id_len) +""" """)
+
+            count_k=1
+            for d in records_for_custom:
+                ctag_list="、".join(d['tag'].split(',')).split("、")
+                if len(ctag_list)==1 and ctag_list[0]=='':
+                    ctag_list=[]
+                ad = {'imgUrl': d['IMG'], 'link': d['LK'],'img_designer':d['img_path'],
+                    'title': d['TT'],'ctag':ctag_list,'title_designer':d['title'],'link_designer': "/HHH_NEW/designers/index_designerList.php?cid=" + str(c['hid'])}
+                a["data"].append(ad)
+            for c in records:
+                # print(c['hcase_id'])
+                ctag_list="、".join(c['tag'].split(',')).split("、")
+                if len(ctag_list)==1 and ctag_list[0]=='':
+                    ctag_list=[]
+                ad = {'imgUrl': c['IMG'], 'link': c['LK'],'img_designer':c['img_path'],
+                    'title': c['TT'],'ctag':ctag_list,'title_designer':c['title'],'link_designer': "/HHH_NEW/designers/index_designerList.php?cid=" + str(c['hid'])}
+                a['data'].append(ad)
+            x["data"].append(a)
+
+
+
+
+
+
+
+
+
+            a = {'tab': '最新影音實錄', 'data': []}
+
+
+
+            records_for_custom = ExecuteQuery(""" SELECT  hvideo_id,title TT,iframe IMG , CONCAT('https://hhh.com.tw/video-post.php?id=',hvideo_id) LK , name
+                            FROM homepage_set
+                            LEFT JOIN _hvideo ON mapping_id = hvideo_id
+                            WHERE outer_set=3 
+                            AND homepage_set.onoff='Y'
+                            AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR (homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
+                            ORDER BY inner_sort limit 8""")
+            #加入不重複id
+            id_use = []
+            for c in records_for_custom:
+                id_use.append(c['hvideo_id'])
+            id_len = 8 - len(id_use)
+            # print(id_use)
+            str_id_use=''
+            for k in id_use:
+                str_id_use+=' and hvideo_id!=%s '%k
+
+            records = ExecuteQuery("""SELECT title TT,iframe IMG , CONCAT('https://hhh.com.tw/video-post.php?id=',hvideo_id) LK , name
+                            from _hvideo where display_datetime < NOW() """+str_id_use+""" and onoff=1
+                            ORDER BY hvideo_id DESC
+                            LIMIT """+ str(id_len) +""" """)
+            
+            for d in records_for_custom:
+                tid = extract.video_id(d['IMG'])
+                timg = "https://img.youtube.com/vi/" + tid+"/hqdefault.jpg"
+                ad = {'imgUrl': timg, 'link': "https://www.youtube.com/watch?v="+str(tid),
+                            'description': d['TT']}
+                a["data"].append(ad)
+            for c in records:
+                tid = extract.video_id(c['IMG'])
+                timg = "https://img.youtube.com/vi/" + tid+"/hqdefault.jpg"
+                ad = {'imgUrl': timg, 'link': "https://www.youtube.com/watch?v="+str(tid),
+                     'description': c['TT']}
+                a['data'].append(ad)
+
+            x["data"].append(a)
+
+            
+            # print(x["data"])
+
+        # 主題企劃區
+        if x['id'] == 4:
+            records = ExecuteQuery("""SELECT logo lo, CONCAT('/topic/detail/',htopic_id,'/') lk, `desc`, title FROM _htopic
+WHERE onoff = '1'
+ORDER BY htopic_id DESC limit 3""")
+
+            x["data"] = []
+            #手機板
+            a = {'tab': 'phone', 'data': []}
+            for c in records:
+                phone = {'imgUrl': c['lo'], 'link': str(
+                    c['lk']),  'title': c['title']} #'video': 'false', 'description': c['desc'],
+                a["data"].append(phone)
+            x["data"].append(a)
+            #電腦版
+            records = ExecuteQuery("""SELECT theme_type, mapping_id, IFNULL(ifnull(ifnull(ifnull(_hcase.caption,_hcolumn.ctitle),_hproduct.name),_hvideo.title),_hbrand.title) caption , 
+                IFNULL(ifnull(ifnull(_hcase.cover,_hcolumn.clogo),_hproduct.cover),_hbrand.logo) J,
+(case when theme_type='case' then CONCAT('/cases/detail/d/',mapping_id) when theme_type='column' then CONCAT('/columns/detail/',mapping_id) when theme_type='product' then CONCAT('/product-post.php?id=',mapping_id) when theme_type='video' then CONCAT('https://hhh.com.tw/video-post.php?id=',mapping_id) when theme_type='brand' then CONCAT('/brand-index.php?brand_id=',mapping_id) ELSE '' END) url
+FROM homepage_set left join _hcase ON _hcase.hcase_id=homepage_set.mapping_id AND theme_type='case'-- AND _hcase.onoff = '1'
+LEFT JOIN _hproduct ON mapping_id = _hproduct.id AND theme_type='product'
+LEFT JOIN _hcolumn ON mapping_id = _hcolumn.hcolumn_id AND theme_type='column'
+LEFT JOIN _hvideo ON mapping_id = _hvideo.hvideo_id AND theme_type='video'
+LEFT JOIN _hbrand ON mapping_id = _hbrand.hbrand_id AND theme_type='brand'
+WHERE homepage_set.onoff='Y' and outer_set=1 and (NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL)) order by inner_sort asc limit 4""")
+            a = {'tab': 'web', 'data': []}
+            for c in records:
+                phone = {'imgUrl': c['J'], 'link': str(
+                    c['url']),  'title': c['caption']} #'video': 'false', 'description': c['desc'],
+                a["data"].append(phone)
+            x["data"].append(a)
+
+            # print(x["data"])
+
+        # 編輯精選
+        # if x['id'] == 4:
+        #     records = ExecuteQuery("""SELECT hcolumn_id, ctitle, clogo,cdesc
+        #                         FROM homepage_set
+        #                         LEFT JOIN _hcolumn ON mapping_id = hcolumn_id
+        #                         WHERE outer_set=8
+        #                         AND homepage_set.onoff='Y'
+        #                         AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
+        #                         ORDER BY inner_sort""")
+
+        #     x["data"] = []
+        #     for c in records:
+        #         a = {'imgUrl': c['clogo'], 'link': "https://hhh.com.tw/columns/detail/" + str(
+        #             c['hcolumn_id']) + "/", 'title': c['ctitle'], 'video': 'false', 'description': c['cdesc']}
+        #         x["data"].append(a)
+            # print(x["data"])
+
+        # 首列表廣告
+        if x['id'] == 3:
+            records = ExecuteQuery("""SELECT adid,alt_use,adlogo lo,adlogo_mobile mlo, adhref lk, adlogo_mobile_webp lomwebp, adlogo_webp dwebp FROM _had
+                        WHERE adtype LIKE '首列表廣告%'
+                        AND onoff='1'
+                        AND(NOW() BETWEEN start_time AND end_time OR(start_time='0000-00-00 00:00:00' and end_time='0000-00-00 00:00:00') or (start_time is null and end_time is NULL))
+                        ORDER BY adtype""")
+
+            x["data"] = []
+            for c in records:
+                a = {'imgUrl': c['mlo'], 'link': str(
+                    c['lk']), 'DimgUrl': c['lo'], 'webp': str(c['lomwebp']), 'Dwebp': str(c['dwebp']),'id':c['adid'],'alt':c['alt_use']}
+                x["data"].append(a)
+
+            # print(x["data"])
+
+        # 來選好物區
+#         if x['id'] == 6:
+
+#             records = ExecuteQuery(
+#                 "SELECT max_row from outer_site_set WHERE title='來選好貨'")
+
+#             maxrow = 1
+#             for c in records:
+#                 maxrow = c['max_row']
+
+#             records = ExecuteQuery("""(SELECT theme_type, mapping_id, IFNULL(ifnull(ifnull(_hcase.caption,_hcolumn.ctitle),_hproduct.name),_hvideo.title) COLLATE utf8_general_ci caption  , IFNULL(ifnull(_hcase.cover,_hcolumn.clogo),_hproduct.cover) COLLATE utf8_general_ci J, iframe , IFNULL(ifnull(ifnull(_hcase.short_desc,_hcolumn.cdesc),_hproduct.descr),_hvideo.`desc`) COLLATE utf8_general_ci short_desc
+# , (case when theme_type='case' then CONCAT('https://hhh.com.tw/cases/detail/d/',mapping_id) when theme_type='column' then CONCAT('https://hhh.com.tw/columns/detail/',mapping_id) when theme_type='product' then CONCAT('https://hhh.com.tw/product-post.php?id=',mapping_id) when theme_type='video' then CONCAT('https://hhh.com.tw/video-post.php?id=',mapping_id) ELSE '' END) url
+# -- SELECT *
+# FROM homepage_set
+# left join _hcase ON _hcase.hcase_id=homepage_set.mapping_id AND theme_type='case'-- AND _hcase.onoff = '1'
+# LEFT JOIN _hproduct ON mapping_id = _hproduct.id AND theme_type='product'-- AND _hproduct.onoff = '1'
+# LEFT JOIN _hcolumn ON mapping_id = _hcolumn.hcolumn_id AND theme_type='column'-- AND _hcolumn.onoff = '1'
+# LEFT JOIN _hvideo ON mapping_id = _hvideo.hvideo_id AND theme_type='video'
+# WHERE homepage_set.onoff='Y'
+# AND outer_set = (SELECT oss_id from outer_site_set WHERE title='來選好貨')
+# AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
+# ORDER BY outer_set, inner_sort)
+# UNION
+# (SELECT 'product', id, `name`, cover, NULL ,descr ,CONCAT('https://hhh.com.tw/product-post.php?id=',id) FROM _hproduct WHERE onoff='1' ORDER BY id DESC LIMIT """ + str(maxrow) + """)
+#                                 LIMIT """ + str(maxrow))
+
+#             x["data"] = []
+#             for c in records:
+#                 #print(c)
+#                 if c['iframe'] is None:
+#                     if isinstance(c['J'], bytearray) or isinstance(c['J'], bytes):
+#                         c['J'] = c['J'].decode('utf8')
+#                     if isinstance(c['caption'], bytearray) or isinstance(c['caption'], bytes):
+#                         c['caption'] = c['caption'].decode('utf8')
+#                     if isinstance(c['short_desc'], bytearray) or isinstance(c['short_desc'], bytes):
+#                         c['short_desc'] = c['short_desc'].decode('utf8')
+#                     a = {'imgUrl': c['J'], 'link': c['url'], 'title': c['caption'],
+#                         'description': c['short_desc'], 'video': 'false'}
+#                 else:
+#                     tid = extract.video_id(str(c['iframe']))
+#                     timg = "https://img.youtube.com/vi/" + tid+"/hqdefault.jpg"
+#                     ccaption = ""
+#                     cdescription = ""
+#                     if isinstance(c['caption'], bytearray):
+#                         ccaption = str(c['caption'].decode('utf8'))
+#                     else:
+#                         ccaption = str(c['caption'])
+#                     if c['short_desc'] is not None:
+#                         if isinstance(c['short_desc'], bytes):
+#                             cdescription = str(c['short_desc'].decode('utf8'))
+#                         else:
+#                             cdescription = str(c['short_desc'])
+#                     a = {'imgUrl': timg, 'link': c['url'], 'title': ccaption,
+#                         'description': cdescription, 'video': tid}
+#                 x["data"].append(a)
+#             # print(x["data"])
+
+#         # 本週推薦
+#         if x['id'] == 7:
+#             # records = ExecuteQuery(
+#             #     "SELECT max_row from outer_site_set WHERE title='本週推薦'")
+
+#             maxrow = 8
+#             # for c in records:
+#             #     maxrow = c['max_row']
+
+#             records = ExecuteQuery("""SELECT theme_type, mapping_id, IFNULL(ifnull(ifnull(ifnull(_hcase.caption,_hcolumn.ctitle),_hproduct.name),_hvideo.title),_hbrand.title) caption , 
+#                 IFNULL(ifnull(ifnull(_hcase.cover,_hcolumn.clogo),_hproduct.cover),_hbrand.logo) J, iframe , IFNULL(ifnull(ifnull(ifnull(_hcase.short_desc,_hcolumn.cdesc),_hproduct.descr),_hvideo.`desc`),_hbrand.intro) short_desc
+# , (case when theme_type='case' then CONCAT('https://hhh.com.tw/cases/detail/d/',mapping_id) when theme_type='column' then CONCAT('https://hhh.com.tw/columns/detail/',mapping_id) when theme_type='product' then CONCAT('https://hhh.com.tw/product-post.php?id=',mapping_id) when theme_type='video' then CONCAT('https://hhh.com.tw/video-post.php?id=',mapping_id) when theme_type='brand' then CONCAT('https://hhh.com.tw/brand-index.php?brand_id=',mapping_id) ELSE '' END) url
+# -- SELECT *
+# FROM homepage_set
+# left join _hcase ON _hcase.hcase_id=homepage_set.mapping_id AND theme_type='case'-- AND _hcase.onoff = '1'
+# LEFT JOIN _hproduct ON mapping_id = _hproduct.id AND theme_type='product'-- AND _hproduct.onoff = '1'
+# LEFT JOIN _hcolumn ON mapping_id = _hcolumn.hcolumn_id AND theme_type='column'-- AND _hcolumn.onoff = '1'
+# LEFT JOIN _hvideo ON mapping_id = _hvideo.hvideo_id AND theme_type='video'
+# LEFT JOIN _hbrand ON mapping_id = _hbrand.hbrand_id AND theme_type='brand'
+# WHERE homepage_set.onoff='Y'
+# AND outer_set = (SELECT oss_id from outer_site_set WHERE title='本週推薦')
+# AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
+# ORDER BY outer_set, inner_sort
+#                             LIMIT """ + str(maxrow))
+
+#             x["data"] = []
+#             for c in records:
+#                 if c['iframe'] is None:
+#                     if isinstance(c['J'], bytearray) or isinstance(c['J'], bytes):
+#                         c['J'] = c['J'].decode('utf8')
+#                     if isinstance(c['caption'], bytearray) or isinstance(c['caption'], bytes):
+#                         c['caption'] = c['caption'].decode('utf8')
+#                     if isinstance(c['short_desc'], bytearray) or isinstance(c['short_desc'], bytes):
+#                         c['short_desc'] = c['short_desc'].decode('utf8')
+#                     a = {'imgUrl': c['J'], 'link': c['url'], 'title': c['caption'],
+#                         'description': c['short_desc'], 'video': 'false'}
+#                 else:
+#                     tid = extract.video_id(str(c['iframe']))
+#                     timg = "https://img.youtube.com/vi/" + tid+"/hqdefault.jpg"
+#                     ccaption = ""
+#                     cdescription = ""
+#                     if isinstance(c['caption'], bytearray):
+#                         ccaption = str(c['caption'].decode('utf8'))
+#                     else:
+#                         ccaption = str(c['caption'])
+#                     if c['short_desc'] is not None:
+#                         if isinstance(c['short_desc'], bytes):
+#                             cdescription = str(c['short_desc'].decode('utf8'))
+#                         else:
+#                             cdescription = str(c['short_desc'])
+#                     a = {'imgUrl': timg, 'link': c['url'], 'title': ccaption,
+#                         'description': cdescription, 'video': tid}
+#                 x["data"].append(a)
+#             # print(x["data"])
+
+#         # 粉絲推薦
+#         if x['id'] == 8:
+
+#             records = ExecuteQuery(
+#                 "SELECT max_row from outer_site_set WHERE title='粉絲推薦'")
+
+#             maxrow = 1
+#             for c in records:
+#                 maxrow = c['max_row']
+
+#             records = ExecuteQuery("""SELECT theme_type, mapping_id, IFNULL(ifnull(ifnull(ifnull(_hcase.caption,_hcolumn.ctitle),_hproduct.name),_hvideo.title),_hbrand.title) caption , 
+#                 IFNULL(ifnull(ifnull(_hcase.cover,_hcolumn.clogo),_hproduct.cover),_hbrand.logo) J, iframe , IFNULL(ifnull(ifnull(ifnull(_hcase.short_desc,_hcolumn.cdesc),_hproduct.descr),_hvideo.`desc`),_hbrand.intro) short_desc
+# , (case when theme_type='case' then CONCAT('https://hhh.com.tw/cases/detail/d/',mapping_id) when theme_type='column' then CONCAT('https://hhh.com.tw/columns/detail/',mapping_id) when theme_type='product' then CONCAT('https://hhh.com.tw/product-post.php?id=',mapping_id) when theme_type='video' then CONCAT('https://hhh.com.tw/video-post.php?id=',mapping_id) when theme_type='brand' then CONCAT('https://hhh.com.tw/brand-index.php?brand_id=',mapping_id) ELSE '' END) url
+# -- SELECT *
+# FROM homepage_set
+# left join _hcase ON _hcase.hcase_id=homepage_set.mapping_id AND theme_type='case'-- AND _hcase.onoff = '1'
+# LEFT JOIN _hproduct ON mapping_id = _hproduct.id AND theme_type='product'-- AND _hproduct.onoff = '1'
+# LEFT JOIN _hcolumn ON mapping_id = _hcolumn.hcolumn_id AND theme_type='column'-- AND _hcolumn.onoff = '1'
+# LEFT JOIN _hvideo ON mapping_id = _hvideo.hvideo_id AND theme_type='video'
+# LEFT JOIN _hbrand ON mapping_id = _hbrand.hbrand_id AND theme_type='brand'
+# WHERE homepage_set.onoff='Y'
+# AND outer_set = (SELECT oss_id from outer_site_set WHERE title='粉絲推薦')
+# AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
+# ORDER BY outer_set, inner_sort
+#                             LIMIT """ + str(maxrow))
+
+#             x["data"] = []
+#             for c in records:
+#                 if c['iframe'] is None:
+#                     if isinstance(c['J'], bytearray) or isinstance(c['J'], bytes):
+#                         c['J'] = c['J'].decode('utf8')
+#                     if isinstance(c['caption'], bytearray) or isinstance(c['caption'], bytes):
+#                         c['caption'] = c['caption'].decode('utf8')
+#                     if isinstance(c['short_desc'], bytearray) or isinstance(c['short_desc'], bytes):
+#                         c['short_desc'] = c['short_desc'].decode('utf8')
+#                     a = {'imgUrl': c['J'], 'link': c['url'], 'title': c['caption'],
+#                         'description': c['short_desc'], 'video': 'false'}
+#                 else:
+#                     tid = extract.video_id(str(c['iframe']))
+#                     timg = "https://img.youtube.com/vi/" + tid+"/hqdefault.jpg"
+#                     ccaption = ""
+#                     cdescription = ""
+#                     if isinstance(c['caption'], bytearray):
+#                         ccaption = str(c['caption'].decode('utf8'))
+#                     else:
+#                         ccaption = str(c['caption'])
+#                     if c['short_desc'] is not None:
+#                         if isinstance(c['short_desc'], bytes):
+#                             cdescription = str(c['short_desc'].decode('utf8'))
+#                         else:
+#                             cdescription = str(c['short_desc'])
+#                     a = {'imgUrl': timg, 'link': c['url'], 'title': ccaption,
+#                         'description': cdescription, 'video': tid}
+#                 x["data"].append(a)
+        # # 推薦設計師
+        # if x['id'] == 5:
+        #     records = ExecuteQuery("""SELECT hdesigner_id,title,img_path,name FROM _hdesigner where onoff=1 order by dorder limit 12;
+        #                         """)
+
+        #     x["data"] = []
+        #     for c in records:
+        #         a = {'imgUrl': c['img_path'],'name': c['title'] ,'designers_name':c['name'],'link': "/HHH_NEW/designers/index_designerList.php?cid=" + str(c['hdesigner_id'])}
+        #         x["data"].append(a)
+        # 推薦設計師
+        if x['id'] == 5:
+            records_for_custom = ExecuteQuery(""" SELECT  hd.hdesigner_id,hd.title,hd.img_path,hd.name
+                            FROM homepage_set
+                            LEFT JOIN _hdesigner hd ON mapping_id = hd.hdesigner_id
+                            
+                            WHERE outer_set=9  AND hd.onoff='1' 
+                            AND homepage_set.onoff='Y'
+                            AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
+                            ORDER BY inner_sort limit 12""")
+            #加入不重複id
+            id_use = []
+            for g in records_for_custom:
+                id_use.append(g['hdesigner_id'])
+            id_len = 12 - len(id_use)
+            print(id_use)
+            str_id_use=''
+            for k in id_use:
+                str_id_use+=' and hdesigner_id!=%s '%k
+
+
+
+            records = ExecuteQuery("""SELECT hdesigner_id,title,img_path,name FROM _hdesigner where onoff=1 """+str_id_use +""" order by dorder limit """+ str(id_len) +""" """)
+            
+            x["data"] = []
+            for d in records_for_custom:
+                q = {'imgUrl': d['img_path'],'name': d['title'] ,'designers_name':d['name'],'link': "/HHH_NEW/designers/index_designerList.php?cid=" + str(d['hdesigner_id'])}
+                x["data"].append(q)
+            for c in records:
+
+
+
+                a = {'imgUrl': c['img_path'],'name': c['title'] ,'designers_name':c['name'],'link': "/HHH_NEW/designers/index_designerList.php?cid=" + str(c['hdesigner_id'])}
+
+
+
+                x["data"].append(a)
+#=======================================================================================================================
+        # 加好物API
+
+
+
+        if x['id'] == 7:
+            records = ExecuteQuery(""" SELECT alt_use,adlogo,adhref FROM _had
+                        WHERE adtype LIKE '合宜'
+                        AND onoff='1'                        
+                        """) #AND(NOW() BETWEEN start_time AND end_time OR(start_time='0000-00-00 00:00:00' and end_time='0000-00-00 00:00:00') or (start_time is null and end_time is NULL))
+                             #ORDER BY cast(SUBSTR(adtype,4) AS DECIMAL)
+
+
+            # url = 'https://open.shopline.io/v1/products/search'
+            # params = {'per_page': 200, 'page': 1,"category_id":"6108deabe15ff9003e5cef08"}
+            # headers = {
+            #     'accept': 'application/json',
+            #     'authorization': 'Bearer '+access_token,
+            #     'User-Agent': 'Shopline test'
+            #         }
+
+            # response = requests.get(url, params=params, headers=headers)
+
+
+
+            # use=response.json()
+            
+
+            x["data"] = []
+            for d in records:
+                q = {'imgUrl': d['adlogo'],'title': d['alt_use'],'link': d['adhref']}
+                x["data"].append(q)
+            # for i in range(len(use['items'])):
+            # for i in range(len(use['items'])):
+            #     if use['items'][i]['status']=='active':
+            #         title = use['items'][i]['title_translations']['zh-hant']
+            #         link = use['items'][i]['link']
+            #         img = use['items'][i]['medias'][0]['images']['original']['url']
+            #         a = {'imgUrl': img,'title': title ,'link':'https://shop.hhh.com.tw/products'+link}
+            #         x["data"].append(a)
+
+
+#=======================================================================================================================
+
+            # print(x["data"])
+
+        # if x['id'] == 9:
+        #     records = ExecuteQuery(
+        #         "SELECT id, (case when youtube_title = '' OR youtube_title IS NULL then (SELECT title FROM _hvideo where display_datetime < NOW() ORDER BY hvideo_id DESC LIMIT 1 ) ELSE youtube_title END) T, (case when youtube_id = '' OR youtube_id IS NULL then (SELECT iframe FROM _hvideo where display_datetime < NOW() ORDER BY hvideo_id DESC LIMIT 1) ELSE youtube_id end) Y FROM site_setup")
+
+        #     for c in records:
+        #         x['title'] = ""
+        #         if isinstance(c['T'], bytearray):
+        #             x['title'] = str(c['T'].decode('utf8'))
+        #         else:
+        #             x['title'] = str(c['T'])
+        #         x['yt'] = extract.video_id(str(c['Y']))
+                # print(id)
+
+        # if x['id'] == 10:
+        #     records = ExecuteQuery(
+        #         "SELECT all_search_tag ast FROM site_setup")
+
+        #     x["data"] = []
+        #     for c in records:
+        #         x["data"] = c['ast'].split(',')
+                # print(id)
+
+    # print(jData)
+    """ if not os.path.exists(hhhMBPath):
+        os.mkdir(hhhMBPath)
+    with open(hhhMBPath+'/json/' + filename, 'w', encoding='utf-8') as f:
+        json.dump(jData, f, ensure_ascii=False, indent=4)
+
+    if not os.path.exists(hhhPCPath):
+        os.mkdir(hhhPCPath)
+    with open(hhhPCPath+'/json/' + filename, 'w', encoding='utf-8') as f:
+        json.dump(jData, f, ensure_ascii=False, indent=4) """
+    with open('../json/' + filename, 'w', encoding='utf-8') as f:
+        json.dump(jData, f, ensure_ascii=False, indent=4)
+
+    return jData
+
+genjson_new("data_index.json")
+cmd="""curl -X POST "https://api.cloudflare.com/client/v4/zones/8cb58022ad5743cfd9f088d5e3a261eb/purge_cache" -H "X-Auth-Email: web.dept.hhh@gmail.com"  -H "X-Auth-Key:63e51d9a1638d66afcbfc3320aabec52304de" -H "Content-Type: application/json" --data '{"files":["https://hhh.com.tw/hhh-test/json/data_index.json"]}'"""
+os.system(cmd)

+ 970 - 0
json/data_index.json

@@ -0,0 +1,970 @@
+[
+    {
+        "_comment": "頂部輪播區",
+        "id": 0,
+        "block": "topCarousel",
+        "data": [
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_15666_1691745237.jpg",
+                "link": "https://hhh.com.tw/designer-index.php?designer_id=32",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_15666_1691745176.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_15666_1691745255.jpg",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_15666_1691745250.jpg",
+                "id": 15666,
+                "alt": "理揚室內設計"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17397_1713333058.jpg",
+                "link": "https://homeinspection.leju.com.tw/?utm_source=Google&utm_medium=Keywords&utm_campaign=homeinspection&gad_source=1&gclid=CjwKCAjww_iwBhApEiwAuG6ccOw8p8Bj3fcBK_LLSEsXZzXZwdytgpDI_Tb4BQqUi-Go_NVWQS_1shoCKWgQAvD_BwE",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17397_1713333039.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17397_1713333065.jpg",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17397_1713333061.jpg",
+                "id": 17397,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17205_1702972693.jpg",
+                "link": "https://hhh.com.tw/HHH_NEW/designers/index_designerList.php?cid=99",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17205_1702972656.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17205_1702972701.jpg",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17205_1702972697.jpg",
+                "id": 17205,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_15673_1603096869.jpg",
+                "link": "https://hhh.com.tw/designer-index.php?designer_id=31",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_15673_1603096869.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_15673_1603096869.jpg.webp",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_15673_1603855335.webp",
+                "id": 15673,
+                "alt": "富億空間設計"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17037_1692604388.jpg",
+                "link": "https://hhh.com.tw/HHH_NEW/designers/index_designerList.php?cid=28",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17037_1692604300.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17037_1692604397.jpg",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17037_1692604393.jpg",
+                "id": 17037,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17494_1719478055.jpg",
+                "link": "https://hhh.com.tw/HHH_NEW/designers/index_designerList.php?cid=500",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17494_1719478047.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17494_1719478064.jpg",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17494_1719478060.jpg",
+                "id": 17494,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_15662_1682071915.jpg",
+                "link": "https://hhh.com.tw/designer-index.php?designer_id=447",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_15662_1682071906.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_15662_1682071927.jpg",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_15662_1682071921.jpg",
+                "id": 15662,
+                "alt": "恆岳空間設計"
+            }
+        ]
+    },
+    {
+        "_comment": "主要輪播區",
+        "id": 1,
+        "block": "sec02",
+        "data": [
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17493_1719476266.jpg",
+                "link": "https://event.hhh.com.tw/topglory/designer_684.html",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17493_1719476249.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17493_1719476396.webp",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17493_1719476348.webp",
+                "logo_icon": "glory",
+                "index_char_1": "合併戶毛胚宅 紡織工藝承載家族溫度│現代風",
+                "index_char_2_1": "聯寬設計",
+                "index_char_2_2": "陳見行KEN、王毓婷TING",
+                "index_char_2_3": "設計師",
+                "id": 17493,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17492_1719476275.jpg",
+                "link": "https://hhh.com.tw/HHH_NEW/designers/index_designerList.php?cid=536",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17492_1719476271.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17492_1719476401.webp",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17492_1719476360.webp",
+                "logo_icon": "renovation",
+                "index_char_1": "挹注簡約風範 描摹柔潤居所│現代風│45坪",
+                "index_char_2_1": "苡希創意設計",
+                "index_char_2_2": "葉佳奇",
+                "index_char_2_3": "設計師",
+                "id": 17492,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17491_1719476285.jpg",
+                "link": "https://event.hhh.com.tw/2024-Most-Favorite-Designers/case.php?id=510&title=%E7%A6%BE%E7%86%99%E5%AE%A4%E5%85%A7%E8%A3%9D%E4%BF%AE%E8%A8%AD%E8%A8%88%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17491_1719476280.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17491_1719476418.webp",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17491_1719476368.webp",
+                "logo_icon": "designer",
+                "index_char_1": "彤霞皓魄│混搭風│16坪",
+                "index_char_2_1": "禾熙室內裝修設計",
+                "index_char_2_2": "謝張志昇",
+                "index_char_2_3": "設計師",
+                "id": 17491,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17490_1719476296.jpg",
+                "link": "https://event.hhh.com.tw/2024-Most-Favorite-Designers/case.php?id=474&title=%E9%9B%8B%E7%AF%89%E7%A9%BA%E9%96%93%E8%A8%AD%E8%A8%88%EF%BC%86%E7%9D%BF%E8%AC%99%E5%AE%A4%E5%85%A7%E8%A3%9D%E4%BF%AE",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17490_1719476291.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17490_1719476425.webp",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17490_1719476377.webp",
+                "logo_icon": "designer",
+                "index_char_1": "清淡暖色木系 圍塑零壓療癒生活場域 │北歐混搭風│38坪",
+                "index_char_2_1": "雋築空間設計&睿謙室內裝修",
+                "index_char_2_2": "劉倢妤 Kimico",
+                "index_char_2_3": "設計師",
+                "id": 17490,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17489_1719476312.jpg",
+                "link": "https://event.hhh.com.tw/2024-Most-Favorite-Designers/case.php?id=857&title=%E8%8A%AC%E6%A0%BC%E8%A8%AD%E8%A8%88%E5%B7%A5%E7%A8%8B",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17489_1719476303.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17489_1719476430.webp",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17489_1719476386.webp",
+                "logo_icon": "designer",
+                "index_char_1": "波光瀲灩 恬靜悠遠 │簡約風 │36坪",
+                "index_char_2_1": "芬格設計工程",
+                "index_char_2_2": "林京蔚",
+                "index_char_2_3": "設計師",
+                "id": 17489,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17488_1719476329.jpg",
+                "link": "https://event.hhh.com.tw/2024-Most-Favorite-Designers/case.php?id=23&title=%E5%A2%83%E5%BA%AD%E5%9C%8B%E9%9A%9B%E8%A8%AD%E8%A8%88",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17488_1719476319.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17488_1719476435.webp",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17488_1719476391.webp",
+                "logo_icon": "designer",
+                "index_char_1": "遇見境式混搭 美式輕奢的優雅步調",
+                "index_char_2_1": "境庭國際設計",
+                "index_char_2_2": "周靖雅",
+                "index_char_2_3": "設計師",
+                "id": 17488,
+                "alt": ""
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17497_1720061581.jpg",
+                "link": "https://hhh.com.tw/HHH_NEW/columns_detail/7345.php",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17497_1720061549.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17497_1720061595.webp",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17497_1720061588.webp",
+                "logo_icon": "",
+                "index_char_1": "",
+                "index_char_2_1": "",
+                "index_char_2_2": "",
+                "index_char_2_3": "",
+                "id": 17497,
+                "alt": ""
+            }
+        ]
+    },
+    {
+        "_comment": "首頁photo頁",
+        "id": 2,
+        "block": "photo",
+        "data": [
+            {
+                "tab": "依照風格瀏覽設計",
+                "data": [
+                    {
+                        "name": "北歐風",
+                        "image": "/assets/images/photo/style/nordic.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/nordic-style/",
+                        "order": "2"
+                    },
+                    {
+                        "name": "現代風",
+                        "image": "/assets/images/photo/style/modern.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/modern-style/",
+                        "order": "1"
+                    },
+                    {
+                        "name": "工業風",
+                        "image": "/assets/images/photo/style/industry.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/industry-style/",
+                        "order": "6"
+                    },
+                    {
+                        "name": "美式風",
+                        "image": "/assets/images/photo/style/american.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/american-style/",
+                        "order": "4"
+                    },
+                    {
+                        "name": "休閒多元",
+                        "image": "/assets/images/photo/style/leisure.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/leisure-style/",
+                        "order": "5"
+                    },
+                    {
+                        "name": "前衛風",
+                        "image": "/assets/images/photo/style/vanguard.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/vanguard-style/",
+                        "order": "16"
+                    },
+                    {
+                        "name": "鄉村風",
+                        "image": "/assets/images/photo/style/rustuc.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/rustuc-style/",
+                        "order": "10"
+                    },
+                    {
+                        "name": "混搭風",
+                        "image": "/assets/images/photo/style/mashup.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/mashup-style/",
+                        "order": "3"
+                    },
+                    {
+                        "name": "新古典",
+                        "image": "/assets/images/photo/style/neoclassic.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/neoclassic-style/",
+                        "order": "7"
+                    },
+                    {
+                        "name": "奢華風",
+                        "image": "/assets/images/photo/style/luxurious.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/luxurious-style/",
+                        "order": "12"
+                    },
+                    {
+                        "name": "古典風",
+                        "image": "/assets/images/photo/style/classical.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/classical-style/",
+                        "order": "9"
+                    },
+                    {
+                        "name": "異國風",
+                        "image": "/assets/images/photo/style/exotic.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/exotic-style/",
+                        "order": "15"
+                    },
+                    {
+                        "name": "禪風",
+                        "image": "/assets/images/photo/style/zen.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/zen-style/",
+                        "order": "11"
+                    },
+                    {
+                        "name": "東方風",
+                        "image": "/assets/images/photo/style/oriental.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/oriental-style/",
+                        "order": "14"
+                    },
+                    {
+                        "name": "日式風",
+                        "image": "/assets/images/photo/style/japanese.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/japanese-style/",
+                        "order": "13"
+                    },
+                    {
+                        "name": "無印風",
+                        "image": "/assets/images/photo/style/muji.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/muju-style/",
+                        "order": "8"
+                    }
+                ]
+            },
+            {
+                "tab": "依照空間瀏覽設計",
+                "data": [
+                    {
+                        "name": "客廳",
+                        "image": "/assets/images/photo/space/living.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/living-space/",
+                        "order": "1"
+                    },
+                    {
+                        "name": "廚房",
+                        "image": "/assets/images/photo/space/kitchen.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/kitchen-space/",
+                        "order": "4"
+                    },
+                    {
+                        "name": "兒童房",
+                        "image": "/assets/images/photo/space/children.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/children-space/",
+                        "order": "9"
+                    },
+                    {
+                        "name": "書房",
+                        "image": "/assets/images/photo/space/study.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/study-space/",
+                        "order": "8"
+                    },
+                    {
+                        "name": "餐廳",
+                        "image": "/assets/images/photo/space/restaurant.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/restaurant-space/",
+                        "order": "6"
+                    },
+                    {
+                        "name": "玄關",
+                        "image": "/assets/images/photo/space/entrance.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/entrance-space/",
+                        "order": "2"
+                    },
+                    {
+                        "name": "臥室",
+                        "image": "/assets/images/photo/space/bedroom.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/bedroom-space/",
+                        "order": "3"
+                    },
+                    {
+                        "name": "更衣室",
+                        "image": "/assets/images/photo/space/locker.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/locker-space/",
+                        "order": "7"
+                    },
+                    {
+                        "name": "陽台",
+                        "image": "/assets/images/photo/space/balcony.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/balcony-space/",
+                        "order": "13"
+                    },
+                    {
+                        "name": "客房",
+                        "image": "/assets/images/photo/space/guest.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/guest-space/",
+                        "order": "20"
+                    },
+                    {
+                        "name": "衛浴",
+                        "image": "/assets/images/photo/space/bathroom.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/bathroom-space/",
+                        "order": "5"
+                    },
+                    {
+                        "name": "會客室",
+                        "image": "/assets/images/photo/space/reception.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/reception-space/",
+                        "order": "23"
+                    },
+                    {
+                        "name": "辦公空間",
+                        "image": "/assets/images/photo/space/office.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/office-space/",
+                        "order": "18"
+                    },
+                    {
+                        "name": "戶外空間",
+                        "image": "/assets/images/photo/space/outdoor.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/outdoor-space/",
+                        "order": "24"
+                    },
+                    {
+                        "name": "商用空間",
+                        "image": "/assets/images/photo/space/commercial.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/commercial-space/",
+                        "order": "21"
+                    },
+                    {
+                        "name": "衣帽間",
+                        "image": "/assets/images/photo/space/cloakroom.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/cloakroom-space/",
+                        "order": "16"
+                    },
+                    {
+                        "name": "吧檯/吧台",
+                        "image": "/assets/images/photo/space/bar.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/bar-space/",
+                        "order": "14"
+                    },
+                    {
+                        "name": "多功能室",
+                        "image": "/assets/images/photo/space/multi.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/multi-space/",
+                        "order": "17"
+                    },
+                    {
+                        "name": "和室",
+                        "image": "/assets/images/photo/space/japanese.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/japanese-space/",
+                        "order": "11"
+                    },
+                    {
+                        "name": "中島",
+                        "image": "/assets/images/photo/space/nakajima.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/nakajima-space/",
+                        "order": "10"
+                    },
+                    {
+                        "name": "泳池",
+                        "image": "/assets/images/photo/space/swimming.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/swimming-space/",
+                        "order": "19"
+                    },
+                    {
+                        "name": "廊道",
+                        "image": "/assets/images/photo/space/corridor.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/corridor-space/",
+                        "order": "22"
+                    },
+                    {
+                        "name": "工作室",
+                        "image": "/assets/images/photo/space/studio.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/studio-space/",
+                        "order": "15"
+                    },
+                    {
+                        "name": "神明廳",
+                        "image": "/assets/images/photo/space/shenming.jpg",
+                        "alt": "",
+                        "url": "/photos/lists/shenming-space/",
+                        "order": "12"
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "_comment": "活動頁banners區",
+        "id": 3,
+        "block": "sec08",
+        "data": [
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17338_1719560597.jpg",
+                "link": "https://hhh.style/hh25U7erv",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17338_1719560994.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17338_1719561012.jpg",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17338_1719560604.jpg",
+                "id": 17338,
+                "alt": "幸福輕裝修"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17015_1691149857.jpg",
+                "link": "https://hhh.com.tw/brands/lists/",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17015_1691149847.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17015_1691149875.webp",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17015_1691149866.webp",
+                "id": 17015,
+                "alt": "品牌館"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17398_1713333253.jpg",
+                "link": "https://homeinspection.leju.com.tw/?utm_source=Google&utm_medium=Keywords&utm_campaign=homeinspection&gad_source=1&gclid=CjwKCAjww_iwBhApEiwAuG6ccOw8p8Bj3fcBK_LLSEsXZzXZwdytgpDI_Tb4BQqUi-Go_NVWQS_1shoCKWgQAvD_BwE",
+                "DimgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17398_1713333241.jpg",
+                "webp": "https://images.hhh.com.tw/uploads/_had/adlogo_17398_1713333261.jpg",
+                "Dwebp": "https://images.hhh.com.tw/uploads/_had/adlogo_17398_1713333257.jpg",
+                "id": 17398,
+                "alt": ""
+            }
+        ]
+    },
+    {
+        "_comment": "主題企劃區",
+        "id": 4,
+        "block": "sec06",
+        "data": [
+            {
+                "tab": "phone",
+                "data": [
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_htopic/logo_427_20240513171850.jpg",
+                        "link": "/topic/detail/427/",
+                        "title": "活用畸零空間 坪效開外掛!"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_htopic/logo_426_20240306100956.jpg",
+                        "link": "/topic/detail/426/",
+                        "title": "超有感裝潢省錢術 精控你的荷包"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_htopic/logo_425_20240103171342.jpg",
+                        "link": "/topic/detail/425/",
+                        "title": "領域展開!用彈性隔間讓家更靈活"
+                    }
+                ]
+            },
+            {
+                "tab": "web",
+                "data": [
+                    {
+                        "imgUrl": "https://cloud.hhh.com.tw/upload/_hcolumn/clogo_7562_20231218153604.jpg",
+                        "link": "/columns/detail/7562",
+                        "title": "讓小宅「空間最大化」!活用空隙的4大收納技巧"
+                    },
+                    {
+                        "imgUrl": "https://cloud.hhh.com.tw/upload/_hcolumn/clogo_6763_20220818232508.jpg",
+                        "link": "/columns/detail/6763",
+                        "title": "收納無死角!3個可以好好利用的畸零角落"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17267_20240423145859.jpg",
+                        "link": "/cases/detail/d/17267",
+                        "title": "轉場。入境│現代侘寂風│18坪"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17302_20240502154031.jpg",
+                        "link": "/cases/detail/d/17302",
+                        "title": "Everyday Object│北歐風│18坪"
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "_comment": "推薦設計師",
+        "id": 5,
+        "block": "designers",
+        "data": [
+            {
+                "imgUrl": "https://m.hhh.com.tw/upload/_hdesigner/img_path_997_20240628101748.jpg",
+                "name": "台灣綠傢俱",
+                "designers_name": "台灣綠傢俱",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=997"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_951_20230726145429.jpg",
+                "name": "大囍室內設計",
+                "designers_name": "林哲弘",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=951"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_946_20230815151822.jpg",
+                "name": "相形式所設計",
+                "designers_name": "相形式所設計團隊",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=946"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_945_20230720090851.jpg",
+                "name": "敘境空間設計",
+                "designers_name": "莊云嫻、戴文勝",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=945"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_939_20230703172522.jpg",
+                "name": "鐵木設計",
+                "designers_name": "陳穎昌",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=939"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_938_20231129174538.jpg",
+                "name": "見文知桓聯合設計",
+                "designers_name": "王健桓",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=938"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_829_20220818143352.jpg",
+                "name": "水源清設計",
+                "designers_name": "林一清",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=829"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_936_20230626190915.jpg",
+                "name": "湘頡室內設計",
+                "designers_name": "洪志偉",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=936"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_928_20230726174444.jpg",
+                "name": "雅堂室內裝修設計",
+                "designers_name": "許雅閔",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=928"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_925_20230526105634.jpg",
+                "name": "艾嘉室內裝修設計",
+                "designers_name": "魏信忠",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=925"
+            },
+            {
+                "imgUrl": "https://m.hhh.com.tw/upload/_hdesigner/img_path_996_20240612104749.jpg",
+                "name": "灰色大門設計",
+                "designers_name": "謝嘉玲",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=996"
+            },
+            {
+                "imgUrl": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_857_20221125113518.jpg",
+                "name": "芬格設計工程",
+                "designers_name": "林京蔚",
+                "link": "/HHH_NEW/designers/index_designerList.php?cid=857"
+            }
+        ]
+    },
+    {
+        "_comment": "tab區塊-最夯設計, 影音實錄, 專欄文章",
+        "id": 6,
+        "block": "sec03",
+        "data": [
+            {
+                "tab": "編輯精選",
+                "data": [
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcolumn/clogo_7839_20240704150540.jpg",
+                        "link": "/columns/detail/7839/",
+                        "title": "熱「暑」了!鐵皮屋夏日降溫新對策 水性隔熱浪板漆新上市",
+                        "ctag": [
+                            "鐵皮屋",
+                            "塗料",
+                            "降溫",
+                            "油漆",
+                            "得利"
+                        ]
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcolumn/clogo_7838_20240704143717.jpg",
+                        "link": "/columns/detail/7838/",
+                        "title": "【風水特輯】小暑到!8大禁忌一次看",
+                        "ctag": [
+                            "風水",
+                            "節氣",
+                            "小暑",
+                            "禁忌"
+                        ]
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcolumn/clogo_7837_20240704151441.jpg",
+                        "link": "/columns/detail/7837/",
+                        "title": "翻轉廚房新時代!台灣櫻花推SAKURA AI KITCHEN,開啟廚房智高點",
+                        "ctag": [
+                            "品牌新訊",
+                            "品牌好物",
+                            "廚房設備",
+                            "廚房電器",
+                            "廚房設計",
+                            "廚房空間"
+                        ]
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcolumn/clogo_7836_20240703155439.jpg",
+                        "link": "/columns/detail/7836/",
+                        "title": "Firtz Hansen 2024 年度限定版本 Swan 椅即將抵台!",
+                        "ctag": [
+                            "Arne",
+                            "Jacobsen",
+                            "Swan",
+                            "Egg",
+                            "Firtz",
+                            "Hansen",
+                            "家具",
+                            "單椅"
+                        ]
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcolumn/clogo_7835_20240703143212.jpg",
+                        "link": "/columns/detail/7835/",
+                        "title": "【好宅特輯】柔光兜旋遊走 映現淡柔雋美家景",
+                        "ctag": [
+                            "好宅特輯",
+                            "現代風",
+                            "老屋翻新",
+                            "今城室內裝修設計"
+                        ]
+                    },
+                    {
+                        "imgUrl": "https://images.hhh.com.tw/uploads/_hcolumn_orig/point-index04_799.jpg",
+                        "link": "/columns/detail/7345/",
+                        "title": "那種冷氣不能洗?清洗後為什會滴水?吊隱式冷氣何時洗?專業師傅幫你解答",
+                        "ctag": [
+                            "冷氣",
+                            "清洗"
+                        ]
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcolumn/clogo_7833_20240621145534.jpg",
+                        "link": "/columns/detail/7833/",
+                        "title": "沉浸在浪漫微醺氛圍中!巴黎4個多巴胺行程",
+                        "ctag": [
+                            "奧運",
+                            "巴黎",
+                            "旅遊",
+                            "旅宿",
+                            "飯店",
+                            "住宿",
+                            "行程"
+                        ]
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcolumn/clogo_7832_20240620113156.jpg",
+                        "link": "/columns/detail/7832/",
+                        "title": "房東怕遇到惡房客,在租賃契約中寫明個別磋商條款,這樣合法嗎?",
+                        "ctag": [
+                            "租屋",
+                            "房東",
+                            "房客",
+                            "法律",
+                            "契約",
+                            "租賃",
+                            "精選好書"
+                        ]
+                    }
+                ]
+            },
+            {
+                "tab": "最夯設計",
+                "data": [
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17461_20240704111548.jpg",
+                        "link": "/cases/detail/17461/",
+                        "img_designer": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_984_20240222141805.jpg",
+                        "title": "餘燼 Ember|南洋風|40坪",
+                        "ctag": [
+                            "異國風",
+                            "南洋風",
+                            "標準格局",
+                            "老屋翻新"
+                        ],
+                        "title_designer": "森鼎設計",
+                        "link_designer": "/HHH_NEW/designers/index_designerList.php?cid=984"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17460_20240704135630.jpg",
+                        "link": "/cases/detail/17460/",
+                        "img_designer": "https://m.hhh.com.tw/upload/_hdesigner/img_path_996_20240612104749.jpg",
+                        "title": "仰德之間│東方風│45坪",
+                        "ctag": [
+                            "東方風",
+                            "大坪數",
+                            "新成屋"
+                        ],
+                        "title_designer": "灰色大門設計",
+                        "link_designer": "/HHH_NEW/designers/index_designerList.php?cid=996"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17459_20240704145426.jpg",
+                        "link": "/cases/detail/17459/",
+                        "img_designer": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_939_20230703172522.jpg",
+                        "title": "舒適寫意的溫潤宅│混搭風│45坪",
+                        "ctag": [
+                            "混搭風",
+                            "別墅/透天",
+                            "新成屋"
+                        ],
+                        "title_designer": "鐵木設計",
+                        "link_designer": "/HHH_NEW/designers/index_designerList.php?cid=939"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17458_20240704102314.jpg",
+                        "link": "/cases/detail/17458/",
+                        "img_designer": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_904_20230328114444.jpg",
+                        "title": "時光漫步 靜享安居|輕奢風|64坪",
+                        "ctag": [
+                            "現代風",
+                            "輕奢風",
+                            "標準格局",
+                            "新成屋"
+                        ],
+                        "title_designer": "永達空間設計",
+                        "link_designer": "/HHH_NEW/designers/index_designerList.php?cid=904"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17457_20240703144511.jpg",
+                        "link": "/cases/detail/17457/",
+                        "img_designer": "https://cloud.hhh.com.tw/upload/_hdesigner/img_path_929_20230607113933.jpg",
+                        "title": "北歐簡約溫潤敞亮質居│18坪",
+                        "ctag": [
+                            "北歐風",
+                            "簡約風",
+                            "小坪數",
+                            "新成屋"
+                        ],
+                        "title_designer": "丰禾空間設計",
+                        "link_designer": "/HHH_NEW/designers/index_designerList.php?cid=929"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17456_20240703173514.jpg",
+                        "link": "/cases/detail/17456/",
+                        "img_designer": "https://cloud.hhh.com.tw/gs/designer/110_designer342_00.jpg",
+                        "title": "精工淬鍊品質 中古屋好宅變豪宅",
+                        "ctag": [
+                            "現代風",
+                            "大坪數",
+                            "中古屋"
+                        ],
+                        "title_designer": "IS國際設計",
+                        "link_designer": "/HHH_NEW/designers/index_designerList.php?cid=293"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17455_20240703115609.jpg",
+                        "link": "/cases/detail/17455/",
+                        "img_designer": "https://m.hhh.com.tw/upload/_hdesigner/img_path_998_20240703134342.jpg",
+                        "title": "輕盈溫潤 清新小品|北歐風|25坪",
+                        "ctag": [
+                            "北歐風",
+                            "標準格局",
+                            "新成屋"
+                        ],
+                        "title_designer": "沐云設計",
+                        "link_designer": "/HHH_NEW/designers/index_designerList.php?cid=998"
+                    },
+                    {
+                        "imgUrl": "https://m.hhh.com.tw/upload/_hcase_img/name_17454_20240703114039.jpg",
+                        "link": "/cases/detail/17454/",
+                        "img_designer": "https://m.hhh.com.tw/upload/_hdesigner/img_path_998_20240703134342.jpg",
+                        "title": "框景入室 光感靜寓|簡約都會風|30坪",
+                        "ctag": [
+                            "其他",
+                            "簡約都會",
+                            "標準格局",
+                            "新成屋"
+                        ],
+                        "title_designer": "沐云設計",
+                        "link_designer": "/HHH_NEW/designers/index_designerList.php?cid=998"
+                    }
+                ]
+            },
+            {
+                "tab": "最新影音實錄",
+                "data": [
+                    {
+                        "imgUrl": "https://img.youtube.com/vi/W1a1nZgqxYM/hqdefault.jpg",
+                        "link": "https://www.youtube.com/watch?v=W1a1nZgqxYM",
+                        "description": "舊書房OUT!穿透設計打開創意思維! 設計狂小姐再以剛柔美學,勾勒女強人的溫柔面!!"
+                    },
+                    {
+                        "imgUrl": "https://img.youtube.com/vi/YvemT2EJmas/hqdefault.jpg",
+                        "link": "https://www.youtube.com/watch?v=YvemT2EJmas",
+                        "description": "圓心式+教堂式,成功改造昏暗中古屋!! 一眼透視全屋,主臥就像睡在W Hotel!?"
+                    },
+                    {
+                        "imgUrl": "https://img.youtube.com/vi/REJpJPtV9Ms/hqdefault.jpg",
+                        "link": "https://www.youtube.com/watch?v=REJpJPtV9Ms",
+                        "description": "一人住怎麼規劃??超大更衣間、超大尺床鋪!夢幻透明閨房,實現躺床即追劇的夢想!"
+                    },
+                    {
+                        "imgUrl": "https://img.youtube.com/vi/pjNUSBkUC4g/hqdefault.jpg",
+                        "link": "https://www.youtube.com/watch?v=pjNUSBkUC4g",
+                        "description": "零落差零追加,甚至比預期還早完工!來自屋主的超真實心得!"
+                    },
+                    {
+                        "imgUrl": "https://img.youtube.com/vi/ExuEf9v2qQs/hqdefault.jpg",
+                        "link": "https://www.youtube.com/watch?v=ExuEf9v2qQs",
+                        "description": "為什麼她深受醫師、工程師喜愛? 竟是這個「豐田式」裝潢管理?開始到驗收靠一表就完成!?"
+                    },
+                    {
+                        "imgUrl": "https://img.youtube.com/vi/oJeHI9oPlFY/hqdefault.jpg",
+                        "link": "https://www.youtube.com/watch?v=oJeHI9oPlFY",
+                        "description": "找不到人維修!?原來水電養成這麼難!? 你都怎麼挑師傅,巷口的水電師真的好嗎?|【沒有山姆的聊天室】Ep.11"
+                    },
+                    {
+                        "imgUrl": "https://img.youtube.com/vi/gHaU7THEl14/hqdefault.jpg",
+                        "link": "https://www.youtube.com/watch?v=gHaU7THEl14",
+                        "description": "後悔沒早點整修!! 居住30年後才重新裝修,竟然從歪斜格局多出1房1衛!?"
+                    },
+                    {
+                        "imgUrl": "https://img.youtube.com/vi/s0gVL7mR_ug/hqdefault.jpg",
+                        "link": "https://www.youtube.com/watch?v=s0gVL7mR_ug",
+                        "description": "這樣施作竟然只花四分之一時間?省時等於省錢!系統櫃選對國家才能防震防焰又防潮!?"
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "_comment": "加好物商品",
+        "id": 7,
+        "block": "shop_hhh",
+        "data": [
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17268_1706772328.jpg",
+                "title": "CERIALE 茶几",
+                "link": "https://hhh.style/hh12aeffB"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17269_1706772957.jpg",
+                "title": "BOUHET 餐椅",
+                "link": "https://hhh.style/hh12Pqyr7"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17278_1706773479.jpg",
+                "title": "WINGS 茶几",
+                "link": "https://hhh.style/hh12yFaBu"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17279_1706773592.jpg",
+                "title": "DISO 圓邊几",
+                "link": "https://hhh.style/hh12Pvzb7"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17280_1706773721.jpg",
+                "title": "LECCE L型實木書桌",
+                "link": "https://hhh.style/hh12TaNv7"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17281_1706773854.jpg",
+                "title": "KATOL 衣帽架",
+                "link": "https://hhh.style/hh12peju6"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17282_1706774254.jpg",
+                "title": "SRGURA 床頭櫃",
+                "link": "https://hhh.style/hh12rNzjj"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17283_1706774404.jpg",
+                "title": "AMBRA 實木延伸餐桌",
+                "link": "https://hhh.style/hh12aeRia"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17285_1706774634.jpg",
+                "title": "SEREIN 餐椅",
+                "link": "https://hhh.style/hh12Z7qAz"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17287_1706774773.jpg",
+                "title": "ROME 餐椅",
+                "link": "https://hhh.style/hh12WrMVu"
+            },
+            {
+                "imgUrl": "https://images.hhh.com.tw/uploads/_had/adlogo_17288_1706775039.jpg",
+                "title": "UNIQUE 餐椅",
+                "link": "https://hhh.style/hh12Ujiff"
+            }
+        ]
+    }
+]