Destoon B2B 系統中,供求資訊綁定地區 ID (areaid),前端需顯示地區名稱(如「廣東/深圳/南山區」)。area_pos() 為官方提供的地區路徑生成函式,支援分隔符自訂、層級截取。
/** * 獲取地區路徑字串 * @param int $areaid 地區 ID * @param string $sep 分隔符,預設 ' > ' * @param int $level 顯示層級:1=一級,2=二級,0=全部(預設) * @return string 如 "廣東/深圳/南山區" */ function area_pos(int $areaid, string $sep = ' > ', int $level = 0): string
{loop $tags $k $t}
[{area_pos($t[areaid], '/', 0)}]
{$t[title]}
{/loop}
{loop $tags $k $t}
[{area_pos($t[areaid], '/', 1)}]
{/loop}
{loop $tags $k $t}
[{area_pos($t[areaid], '/', 2)}]
{/loop}
| 呼叫方式 | 假設 areaid=南山區 | 輸出結果 |
|---|---|---|
area_pos($areaid) | 預設分隔符 ' > ' | 廣東 > 深圳 > 南山區 |
area_pos($areaid, '/') | 自訂分隔符 | 廣東/深圳/南山區 |
area_pos($areaid, '/', 1) | 僅一級 | 廣東 |
area_pos($areaid, '/', 2) | 僅二級 | 深圳 |
area_pos($areaid, '/', 3) | 僅三級 | 南山區 |
{php $areas = explode('/', area_pos($t[areaid], '/', 0));}
{loop $areas $i $area}
{$area}
{if $i < count($areas)-1} / {/if}
{/loop}
$t[areaid] 是否正確寫入、地區快取是否更新(後台「工具」→「更新緩存」→「地區緩存」)htmlspecialchars() 或模板引擎自動轉義get_area($areaid):取得單個地區陣列 (areaid, areaname, parentid, level)get_child($parentid, $table):取得子地區列表area_select():生成地區下拉選單 HTML