스레드
이온디

[코드]

@if(!$document->isAccessible())
                                        
잠긴 스레드입니다.
@else @php $maxLength = 300; $content = $document->variables['content']; // 설문조사 이미지 추출 $survey = ''; if (preg_match_all('/]*\beditor_component="poll_maker"[^>]*>/i', $content, $matches)) { $survey = implode('', $matches[0]); } // 설문조사 이미지 제거한 본문 $contentWithoutSurvey = preg_replace('/]*\beditor_component="poll_maker"[^>]*>/i', '', $content); $plainText = strip_tags($contentWithoutSurvey); // 본문 길이에 따른 처리 if (mb_strlen($plainText) > $maxLength) { $shortContent = mb_substr($plainText, 0, $maxLength) . "..."; } else { $shortContent = $plainText; // 300자 이하면 그대로 표시 } // 첨부파일 확인 $uploadfiles = $document->getUploadedFiles(); $imageCount = 0; if ($uploadfiles && is_array($uploadfiles)) { foreach ($uploadfiles as $file) { if (strpos($file->mime_type, 'image/') === 0) { $imageCount++; } } } // 설문조사만 있는 경우 $hasSurveyOnly = !empty($survey) && empty(trim($plainText)); @endphp @if($hasSurveyOnly)
{!! $shortContent !!}
{!! $survey !!}
@elseif(!empty($survey))
{!! $shortContent !!}
{!! $survey !!}
@else
{!! $shortContent !!}
@if($imageCount > 0 && empty($survey)) @if($imageCount == 1)
thumbnail
@else
@foreach($uploadfiles as $file) @if(strpos($file->mime_type, 'image/') === 0) image @endif @endforeach
@endif @endif @endif @endif

1. 접근권한이 없으면 잠긴스레드라고 표시하기
2. 접근권한이 있을 경우
2.1. 글 본문이 300자 이하인 경우 -> 띄어쓰기 적용하고 다 보여준다.
2.2. 글 본문이 300자 이상인 경우 -> 300자까지 보여주고 ...더보기 라고 표시해준다.
2.3. 첨부파일 중 이미지가 있는 경우 본문 아래 표시한다.
2.4. 첨부파일 중 이미지가 1개면 썸네일을 출력한다.
2.5. 첨부파일 중 이미지가 2개 이상이면 이미지 리스트를 출력한다.

0 좋아요 1 답글 395 조회
이온디
이온디 1년 전
<p>[초기코드]</p><pre>@php $maxLength = 350; if(mb_strlen(strip_tags($document-&gt;getContent(false))) &gt; $maxLength){ // $content = preg_replace(&#39;/&lt;img[^&gt;]*&gt;/&#39;, &#39;&#39;, $document-&gt;variables[&#39;content&#39;]); // $shortContent = mb_substr($content, 0, $maxLength) . &#39;...&#39;; $fullUrl = getUrl(&#39;document_srl&#39;, $document-&gt;document_srl); // 문서의 URL 생성 $content = $document-&gt;getSummary($maxLength); $content .= &quot; &lt;a href=&#39;&quot; . $fullUrl . &quot;&#39; class=&#39;read-more&#39;&gt;더보기&lt;/a&gt;&quot;; echo $content; }else{ // echo &#39;이하&#39;; $content = preg_replace(&#39;/&lt;img[^&gt;]*&gt;/&#39;, &#39;&#39;, $document-&gt;variables[&#39;content&#39;]); // echo $document-&gt;getContent(false); echo $content; } @endphp @if($document-&gt;getUploadedFiles()) &lt;div class=&quot;img-box&quot;&gt; @foreach($document-&gt;getUploadedFiles() as $key =&gt; $file) &lt;img src=&quot;{$file-&gt;uploaded_filename}&quot;&gt; @php $path = pathinfo($file-&gt;source_filename); $ext = strtolower($path[&#39;extension&#39;]); @endphp @endforeach &lt;/div&gt; @endif</pre>