Пример #1
0
 public function GET_page_compare($key, $left, $right)
 {
     $page = $this->getPage($key);
     $slug = $page->slug;
     if (!$slug) {
         // 존재하지 않는 문서이므로 생성 권장
         return redirect("/wiki/{$key}", 302);
     }
     if ($slug && $slug != $key) {
         // 이미 존재하는 문서인데 slug가 아니라 title로 들어왔다면 slug로 바꿔서 redirect 한다.
         // url 에 title 보다는 slug 를 권장하므로 영구적이동(301)
         return redirect("/wiki/{$slug}/compare/{$left}/{$right}", 301);
     }
     $l_page = WikiHistory::where('wiki_page_id', $page->id)->where('rev', $left)->first();
     $r_page = WikiHistory::where('wiki_page_id', $page->id)->where('rev', $right)->first();
     if (!$l_page || !$r_page) {
         // l 과 r 중 하나가 revision 이 없으므로 문서로 이동
         return redirect("/wiki/{$slug}", 302);
     }
     $this->setMetaTas($page);
     include "finediff.php";
     $l_text = mb_convert_encoding($l_page->content, 'HTML-ENTITIES', 'UTF-8');
     $r_text = mb_convert_encoding($r_page->content, 'HTML-ENTITIES', 'UTF-8');
     $opcodes = \FineDiff::getDiffOpcodes($l_text, $r_text, [\FineDiff::paragraphDelimiters, \FineDiff::sentenceDelimiters, \FineDiff::wordDelimiters, ';']);
     $rendered_diff = \FineDiff::renderDiffToHTMLFromOpcodes($l_text, $opcodes);
     $rendered_diff = mb_convert_encoding($rendered_diff, 'UTF-8', 'HTML-ENTITIES');
     $rendered_diff = str_replace('\\r\\n', '\\n', $rendered_diff);
     $rendered_diff = str_replace('\\r', '\\n', $rendered_diff);
     $rendered_diff = str_replace('\\n', '&nbsp;<br/>', $rendered_diff);
     return view('ncells::wiki.pages.wiki_compare', ['page' => $page, 'rendered_diff' => $rendered_diff]);
 }
<?php

use NineCells\Wiki\Models\WikiHistory;
$hs = WikiHistory::orderBy('id', 'desc')->paginate(10);
?>
<table class="table table-bordered">
    <thead>
    <tr>
        <th>제목</th>
        <th>변경</th>
        <th>변경한 사람</th>
    </tr>
    </thead>
    <tbody>
    @foreach ( $hs as $h )
    <tr>
        <td><a href="/wiki/{{ $h->slug }}/{{ $h->rev }}">{{ $h->title }}</a></td>
        <td>{{ $h->created_at->diffForHumans() }}</td>
        <td><a href="/members/{{ $h->writer_id }}">{{ $h->writer->name }}</a></td>
    </tr>
    @endforeach
    </tbody>
</table>
{!! $hs->links() !!}