diff --git a/ground/classes/Helper.php b/ground/classes/Helper.php index d4e2f70..aa108ab 100644 --- a/ground/classes/Helper.php +++ b/ground/classes/Helper.php @@ -6,4 +6,29 @@ class Helper { return (bool) $var; } + + public static function replaceLinks($string) + { + preg_match_all("(\[#\d*\])", $string, $links); + $links = isset($links[0]) ? $links[0] : FALSE; + if ($links) + { + foreach ($links as $link) + { + $linkId = (int)mb_substr($link, 2, -1); + + if ($linkId) + { + $linkPoint = Point::model()->getByPK($linkId); + if ($linkPoint->id) + { + $linkPoint->name = str_replace('"', 'สบ', $linkPoint->name); + $string = str_replace($link, '[]', $string); + } + } + } + } + + return $string; + } } diff --git a/ground/controllers/PageController.php b/ground/controllers/PageController.php index 89c7d40..44bd993 100644 --- a/ground/controllers/PageController.php +++ b/ground/controllers/PageController.php @@ -74,8 +74,8 @@ class PageController extends Controller $point->categoryIcon = $categories[$point->categoryId]['icon']; $point->categoryName = $categories[$point->categoryId]['name']; - preg_match_all("/.*?[.?!](?:\s|$)/s", $point->descriptionHtml, $items); - + $point->descriptionHtml = Helper::replaceLinks($point->descriptionHtml); + preg_match_all("/.*?(([.?!](?:\s|$))|$)/s", $point->descriptionHtml, $items); $randomPoint = Point::model()->getRandom(); $similarPoints = Point::model()->getAll(array('where' => 'categoryId = '.$point->categoryId.' AND `id` <> '.$point->id.' ORDER BY RAND() LIMIT 6;')); $closestPoints = Point::model()->getClosestPoints($pointId);