diff --git a/extension/Resources/Public/icons/wavy-underline.gif b/extension/Resources/Public/icons/wavy-underline.gif new file mode 100644 index 0000000000000000000000000000000000000000..b18243e7834c94a021c263453951a6e2843cb6c2 Binary files /dev/null and b/extension/Resources/Public/icons/wavy-underline.gif differ diff --git a/extension/qfq/qfq/exceptions/AbstractException.php b/extension/qfq/qfq/exceptions/AbstractException.php index 8adbdca1f46240cfabe6449abc82e48c552ef40b..018618def8989392377f9cfbd19517299eceaa95 100644 --- a/extension/qfq/qfq/exceptions/AbstractException.php +++ b/extension/qfq/qfq/exceptions/AbstractException.php @@ -129,8 +129,22 @@ class AbstractException extends \Exception { $editForm = $this->buildFormLink($storeSystem); } + $arrMerged = OnArray::htmlentitiesOnArray(array_merge($arrMsg, $arrDebugShow)); + if (!empty($os = $arrMerged[ERROR_MESSAGE_OS])) { + $beforeMatch = htmlentities("the right syntax to use near '", ENT_QUOTES); + $afterMatch = htmlentities("' at line [0-9]*$", ENT_QUOTES); + if(preg_match("/mysqli: 1064.*$beforeMatch.*$afterMatch/", $os)) { + $match = explode("$beforeMatch", $os, 2)[1]; + $match = preg_split("/$afterMatch/", $match)[0]; + + $splitSql = explode($match, $arrMerged[EXCEPTION_SQL_FINAL]); + $match = Support::wrapTag('', $match); + $highlightedSql = implode($match, $splitSql); + $arrMerged[EXCEPTION_SQL_FINAL] = $highlightedSql; + } + } $htmlDebug = OnArray::arrayToHtmlTable( - array_merge(OnArray::htmlentitiesOnArray(array_merge($arrMsg, $arrDebugShow)), [ 'Edit' => $editForm ]), 'Debug', EXCEPTION_TABLE_CLASS); + array_merge($arrMerged, [ 'Edit' => $editForm ]), 'Debug', EXCEPTION_TABLE_CLASS); $htmlDebug = str_replace("\n", "
", $htmlDebug); $arrDebugHiddenClean = OnArray::htmlentitiesOnArray($arrDebugHidden); diff --git a/less/qfq-bs.css.less b/less/qfq-bs.css.less index a93cdce868c609ef35172a6fb35a2e0645626d69..871f08b2b0df167623035ee03d9d22560a1ab4f1 100644 --- a/less/qfq-bs.css.less +++ b/less/qfq-bs.css.less @@ -737,4 +737,8 @@ select.qfq-locked:invalid { .qfq-droplet-container.qfq-droplet-blue:before { border-color: transparent #25adf1 #25adf1 transparent; +} + +.qfq-wavy-underline { + background: url('../icons/wavy-underline.gif') bottom repeat-x } \ No newline at end of file