diff --git a/skolehjem/app/Http/Controllers/EventController.php b/skolehjem/app/Http/Controllers/EventController.php index c802542..47fbb85 100644 --- a/skolehjem/app/Http/Controllers/EventController.php +++ b/skolehjem/app/Http/Controllers/EventController.php @@ -82,7 +82,7 @@ class EventController extends Controller $news->name = "Ny aktivitet"; $news->subname = $event->name; - $news->content = "

" . substr($event->description, 0, 300) . "

" . + $news->content = "

" . $this->closetags(substr($event->description, 0, 300)) . "

" . '
'. ' $event->id ]) .'">Tilmeld'. ' $event->id ]) .'">Læs mere...'. @@ -179,7 +179,7 @@ class EventController extends Controller $news->name = "Aktivitet opdateret"; $news->subname = $event->name; - $news->content = "

" . substr($event->description, 0, 300). "

" . + $news->content = "

" . $this->closetags(substr($event->description, 0, 300)). "

" . '
'. ' $event->id ]) .'">Tilmeld'. ' $event->id ]) .'">Læs mere...'. @@ -263,7 +263,25 @@ class EventController extends Controller } - + public function closetags($html) { + preg_match_all('#<(?!meta|img|br|hr|input\b)\b([a-z]+)(?: .*)?(?#iU', $html, $result); + $openedtags = $result[1]; + preg_match_all('##iU', $html, $result); + $closedtags = $result[1]; + $len_opened = count($openedtags); + if (count($closedtags) == $len_opened) { + return $html; + } + $openedtags = array_reverse($openedtags); + for ($i=0; $i < $len_opened; $i++) { + if (!in_array($openedtags[$i], $closedtags)) { + $html .= ''; + } else { + unset($closedtags[array_search($openedtags[$i], $closedtags)]); + } + } + return $html; + } } diff --git a/skolehjem/app/Http/Controllers/GuideController.php b/skolehjem/app/Http/Controllers/GuideController.php index 0f19fe1..1cec228 100644 --- a/skolehjem/app/Http/Controllers/GuideController.php +++ b/skolehjem/app/Http/Controllers/GuideController.php @@ -6,6 +6,7 @@ use App\Guide; use App\News; use Illuminate\Http\Response; use Illuminate\Http\Request; +use tidy; class GuideController extends Controller { @@ -75,7 +76,8 @@ class GuideController extends Controller $news->name = "Ny Vejledning"; $news->subname = $guide->name; - $news->content = substr($guide->guide_articles, 0, 300). '

$guide]). '" class="sde-blue ">Læse mere...'; + + $news->content = $this->closetags(substr($guide->guide_articles, 0, 300)). '
$guide]). '" class="sde-blue ">Læse mere...'; $news->save(); @@ -136,7 +138,8 @@ class GuideController extends Controller $news->name = "Vejledning opdateret"; $news->subname = $guidee->name; - $news->content = substr($guidee->guide_articles, 0, 300). '

$guide]). '" class="sde-blue ">Læse mere...'; + + $news->content = $this->closetags(substr($guidee->guide_articles, 0, 300)). '
$guide]). '" class="sde-blue ">Læse mere...'; $news->save(); } @@ -158,4 +161,25 @@ class GuideController extends Controller return redirect()->route("guides.index"); } + + public function closetags($html) { + preg_match_all('#<(?!meta|img|br|hr|input\b)\b([a-z]+)(?: .*)?(?#iU', $html, $result); + $openedtags = $result[1]; + preg_match_all('##iU', $html, $result); + $closedtags = $result[1]; + $len_opened = count($openedtags); + if (count($closedtags) == $len_opened) { + return $html; + } + $openedtags = array_reverse($openedtags); + for ($i=0; $i < $len_opened; $i++) { + if (!in_array($openedtags[$i], $closedtags)) { + $html .= ''; + } else { + unset($closedtags[array_search($openedtags[$i], $closedtags)]); + } + } + return $html; + } + } diff --git a/skolehjem/composer.json b/skolehjem/composer.json index 062f5ce..6f3861a 100644 --- a/skolehjem/composer.json +++ b/skolehjem/composer.json @@ -17,7 +17,8 @@ "laravel/tinker": "^2.0", "laravel/ui": "^2.0", "laravelcollective/html": "^6.1", - "spatie/laravel-permission": "^3.13" + "spatie/laravel-permission": "^3.13", + "ext-tidy": "*" }, "require-dev": { "facade/ignition": "^2.0", diff --git a/skolehjem/resources/views/app/news/index.blade.php b/skolehjem/resources/views/app/news/index.blade.php index 4a5eb15..f4c6621 100644 --- a/skolehjem/resources/views/app/news/index.blade.php +++ b/skolehjem/resources/views/app/news/index.blade.php @@ -71,16 +71,20 @@ div.header { background-color: #00788a; color: white; - padding: 1px; + padding: 8px; font-size: 10px; text-align: center; } div.container { - padding: 5px; + padding: 8px; text-align: justify; line-height: 1.5; } + + ol { + padding-right: 8px; + }
@@ -88,7 +92,7 @@

{{ $new->name }}

-

{{ $new->subname }}

+

{{ $new->subname }}