You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.9 KiB
101 lines
2.9 KiB
<?php
|
|
/**
|
|
* 產品各層麵包屑
|
|
*/
|
|
require_once('../../conf/ProductEnum.php');
|
|
require_once('../../conf/ParametersException.php');
|
|
require_once('../../db/ProductDAO.php');
|
|
require_once('../../class/Functions.php');
|
|
|
|
try{
|
|
$result = array();
|
|
$dbDao = new ProductDAO();
|
|
$functions = new Functions();
|
|
$dbDao->transaction();
|
|
$levelNum = NULL;
|
|
$dataId = NULL;
|
|
$breadArr = array();
|
|
$returnArr = array();
|
|
$breadHtml = '';
|
|
|
|
if ( isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] != 0 ){
|
|
$dataId = trim($_GET['id']);
|
|
}
|
|
if ( is_null($dataId) ){
|
|
throw new ParametersException('無 ID 參數資料');
|
|
}
|
|
if ( isset($_GET['level']) && is_numeric($_GET['level']) ){
|
|
$levelNum = trim($_GET['level']);
|
|
}
|
|
if ( is_null($levelNum) ){
|
|
throw new ParametersException('無層級參數');
|
|
}
|
|
|
|
$level = 0;
|
|
$i = 0;
|
|
do {
|
|
$levelData = $dbDao->getProdContent($dataId);
|
|
if ( !is_array($levelData) || count($levelData) != 1 ){
|
|
throw new ParametersException('無此產品資料');
|
|
}
|
|
$levelData = $levelData[0];
|
|
$levelArr = array();
|
|
$levelArr['level'] = $levelData['level'];
|
|
$levelArr['title'] = $levelData['title'];
|
|
$levelArr['uuid'] = $levelData['uuid'];
|
|
|
|
$dataId = $levelData['upper_level'];
|
|
if ($levelArr['level'] == 2 ){
|
|
// $levelTitle = $functions->getFirstWords($levelTitle, 2);
|
|
}
|
|
array_unshift($breadArr, $levelArr);
|
|
|
|
}while($dataId != 0);
|
|
|
|
$breadNum = count($breadArr);
|
|
$levelPrefix = '';
|
|
if ( $breadNum >= 4 ){
|
|
$levelPrefix = '../';
|
|
}
|
|
$breadHtml.= '<li class="breadcrumb-item"><a href="'.$levelPrefix.'index.html">首頁</a></li>';
|
|
if ( isset($breadArr[0]) ){
|
|
$breadOne = '<li class="breadcrumb-item"><a href="'.$levelPrefix.'products-category.html?id='.$breadArr[0]['uuid'].'">'.$breadArr[0]['title'].'</a></li>';
|
|
if ( $levelNum == 1 ){
|
|
$breadOne = '<li class="breadcrumb-item active" aria-current="page">'.$breadArr[0]['title'].'</li>';
|
|
}
|
|
$breadHtml.= $breadOne;
|
|
}
|
|
if ( isset($breadArr[2]) ){
|
|
$breadThree = '<li class="breadcrumb-item"><a href="'.$levelPrefix.'products-list.html?id='.$breadArr[2]['uuid'].'">'.$breadArr[2]['title'].'</a></li>';
|
|
if ( $levelNum == 2 ){
|
|
$breadThree = '<li class="breadcrumb-item active" aria-current="page">'.$breadArr[2]['title'].'</li>';
|
|
}
|
|
$breadHtml.= $breadThree;
|
|
}
|
|
if ( isset($breadArr[3]) ){
|
|
$breadHtml.= '<li class="breadcrumb-item active" aria-current="page">'.$breadArr[3]['title'].'</li>';
|
|
}
|
|
|
|
$returnArr['content'] = str_replace(array("\r\n", "\r", "\n", "\t"), '', $breadHtml);
|
|
|
|
$dbDao->commitDB();
|
|
http_response_code(200);
|
|
|
|
} catch ( ParametersException $pe ){
|
|
$returnArr['errMsg'] = $pe->getMessage();
|
|
http_response_code(400);
|
|
|
|
} catch ( Exception $e ){
|
|
$returnArr['errMsg'] = $e->getMessage();
|
|
if($dbDao != null) {
|
|
$dbDao->rollbackDB();
|
|
}
|
|
http_response_code(500);
|
|
} finally {
|
|
echo json_encode($returnArr, JSON_UNESCAPED_UNICODE);
|
|
if($dbDao != null) {
|
|
$dbDao->closeDB();
|
|
}
|
|
}
|
|
|
|
?>
|