public function save() { $title = Input::get("title"); $body = Input::get("body"); $mode = Input::get("mode"); $user = Auth::user(); $page = HandbookPage::where('title', $title)->first(); if ($mode == 1) { //Editing if ($page) { if ($page->userCanRead($user) && $page->userCanWrite($user)) { $page->body = $body; $page->read_permission = $this->createPermissionObject($page->id, 'read', $page->read_permission)->id; $page->write_permission = $this->createPermissionObject($page->id, 'write', $page->write_permission)->id; $page->updated_by = $user->id; $page->save(); return Redirect::to('/handbook/' . HandbookPage::getURLReadyLink($title)); } else { return Response::json(["success" => false, "message" => "Insufficient permissions."]); } } else { return Response::json(["success" => false, "message" => "Page not found"]); } } else { if (!$page) { $page = new HandbookPage(); $page->title = $title; $page->body = $body; $page->created_by = $user->id; $page->save(); $page->read_permission = $this->createPermissionObject($page->id, 'read')->id; $page->write_permission = $this->createPermissionObject($page->id, 'write')->id; $page->save(); return Redirect::to('/handbook/' . HandbookPage::getURLReadyLink($title)); } else { return Redirect::to('/handbook/' . HandbookPage::getURLReadyLink($title)); } } }
public function body() { $body = $this->body; $body = preg_replace_callback("/\\[\\[([\\w\\W]+?)\\]\\]/", function ($match) { $parts = explode("/", $match[1]); if (sizeof($parts) > 1) { //This is a command switch (strtolower($parts[0])) { case "redirect": $source_page = HandbookPage::where('title', $parts[1])->first(); if ($source_page) { if (Input::get('redirect') == "no") { return 'This page redirects to <a href="/handbook/' . HandbookPage::getURLReadyLink($parts[1]) . '">' . $source_page->title . '</a>.'; } else { return 'Redirecting...'; } } else { return 'This page has an invalid redirect.'; } } } //Look for the relevant page $name = $match[1]; if (strrpos($name, '{')) { $parts = explode('{', $name); $name = $parts[0]; $link = str_replace('}', '', $parts[1]); } else { $link = $name; } $page = HandbookPage::where('title', $link)->exists(); $rawLink = HandbookPage::getURLReadyLink($link); return "<a class='page-link " . (!$page ? 'invalid' : '') . "' href='/handbook/" . $rawLink . "'>{$name}</a>"; }, $body); return $body; }
<?php $user = Auth::user(); $st = $user->isStoryteller(); $query = $st ? HandbookPage::orderBy('created_at', 'DESC') : HandbookPage::where('created_by', $user->id); $pagination = $query->paginate(15); ?> @extends('layout') @section('title', 'Handbook Directory') @section('includes') <style type="text/css"> .handbook-pagination { float: right; margin-top: -40px; } .handbook-page { padding: 10px 10px; border: 1px solid #c0c0c0; border-radius: 3px; margin-bottom: 10px; } .handbook-title { font-size: 1.3em; } .handbook-preview { overflow: hidden; font-size: 0.9em;
<?php if (!isset($name)) { $name = 'Home'; } $name = str_replace("_", " ", $name); $page = HandbookPage::where('title', 'LIKE', $name)->first(); ?> @extends('layout') @section('title', $page ? $page->title : 'New Page') @section('content') <div class="handbook-content theme-wrapper"> {{View::make('partials/handbookPage', ['title' => $name, 'showNewPage' => true])->render()}} </div> @stop