/** * Display a error message to user * * @param array $backTraces Back traces information * @param array $banner Banner setting * * @return string The rendered result according back traces info and banner setting */ protected static function renderErrorDetailBanners(array $backTraces, array $banner) { if (empty($backTraces)) { return ''; } $tracesLoop = 0; $detail = $banner['Start']; foreach ($backTraces as $key => $val) { $tracesLoop++; $tempFilePath = PathParser::replacePathPrefixes(array(Framework::ROOT, Framework::PATH), array('[FACULA]', '[PROJECT]'), $val['file']); $assigns = array('%Error:Banner:No%' => $tracesLoop, '%Error:Banner:Caller%' => $val['caller'], '%Error:Banner:File%' => $tempFilePath, '%Error:Banner:Line%' => $val['line'], '%Error:Banner:Plate:Author%' => $val['nameplate']['author'], '%Error:Banner:Plate:Reviser%' => $val['nameplate']['reviser'], '%Error:Banner:Plate:Contact%' => $val['nameplate']['contact'], '%Error:Banner:Plate:Updated%' => $val['nameplate']['updated'], '%Error:Banner:Plate:Version%' => $val['nameplate']['version'], '%Error:Banner:Caller:Html%' => htmlspecialchars($val['caller'], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'), '%Error:Banner:File:Html%' => htmlspecialchars($tempFilePath, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'), '%Error:Banner:Line:Html%' => htmlspecialchars($val['line'], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'), '%Error:Banner:Plate:Author:Html%' => htmlspecialchars($val['nameplate']['author'], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'), '%Error:Banner:Plate:Reviser:Html%' => htmlspecialchars($val['nameplate']['reviser'], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'), '%Error:Banner:Plate:Contact:Html%' => htmlspecialchars($val['nameplate']['contact'], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'), '%Error:Banner:Plate:Updated:Html%' => htmlspecialchars($val['nameplate']['updated'], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'), '%Error:Banner:Plate:Version:Html%' => htmlspecialchars($val['nameplate']['version'], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8')); $detail .= str_replace(array_keys($assigns), array_values($assigns), $banner['Code']); } $detail .= $banner['End']; return $detail; }