Пример #1
0
@section('forum-script')
	tinymce.init({
		selector: "#post",
		plugins: "textcolor link hr image emoticons table preview fullscreen print searchreplace visualblocks code",
		toolbar1: "undo redo | styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
		toolbar2: "forecolor backcolor emoticons",
		image_advtab: true,
    	forced_root_block : ''
	});
	
	self.allUsers = ko.observableArray([]);
	self.selectedUsers = ko.observableArray([]);
	self.selectedUser = ko.observable();
	<?php 
if (isset($topic)) {
    $added_users = ForumTopicAddedUser::where('topic_id', $topic->id)->get();
}
?>
	@foreach(Character::activeCharacters()->get() as $c)
		var userObject = {id: "{{$c->owner->id}}", name: "{{$c->owner->username}}"};
		self.allUsers.push(userObject);
		@if(isset($added_users) && $added_users->filter(function($item) use ($c) { return $item->user_id == $c->owner->id; })->first())
		self.selectedUsers.push(userObject);
		@endif
	@endforeach
	
	self.availableUsers = ko.computed(function() {
		var out = [];
		for(var i = 0; i < self.allUsers().length; i++) {
			var item = self.allUsers()[i];
			if(self.selectedUsers().indexOf(item) == -1) out.push(item);
Пример #2
0
 function postTopic()
 {
     if (!Auth::check()) {
         return Redirect::to("/forums");
     }
     $topic_id = Input::get("topic_id");
     if (isset($topic_id)) {
         //Edit logic
         $topic = ForumTopic::find(Input::get("topic_id"));
         $post = $topic->firstPost;
         $user = Auth::user();
         if (!$user->canAccessTopic($topic_id)) {
             return "Access denied.";
         }
         if ($post->posted_by == $user->id || $user->isStoryteller()) {
             $body = ForumPost::replaceSpecialTerms(Input::get("body"));
             $post->body = $body;
             $post->save();
             $topic->title = Input::get("title");
             $topic->save();
             //Save an edit record
             $posted_by = Input::get("post-as");
             $poster = User::find($posted_by);
             if (!$poster) {
                 $poster = Auth::user();
             }
             $edit = new ForumEdit();
             $edit->post_id = $post->id;
             $edit->user_id = $poster->id;
             $edit->save();
             ForumTopicAddedUser::where('topic_id', $topic_id)->delete();
             $addedUsersRaw = Input::get("added-users");
             if (strlen(trim($addedUsersRaw)) > 0) {
                 $addedUsers = explode(",", $addedUsersRaw);
                 foreach ($addedUsers as $au) {
                     $new_au = new ForumTopicAddedUser();
                     $new_au->topic_id = $topic->id;
                     $new_au->user_id = $au;
                     $new_au->save();
                 }
             }
             return Redirect::to('/forums/topic/' . $post->topic->id);
         } else {
             return "Post does not belong to user";
         }
     } else {
         $user = Auth::user();
         $forum_id = Input::get("forum_id");
         $title = Input::get("title");
         $body = Input::get("body");
         if (!$user->canAccessForum($forum_id)) {
             return "Access denied.";
         }
         if ($forum_id == null || $title == null || $body == null) {
             //Validate.
             return "failed.";
         } else {
             $forum = Forum::find($forum_id);
             $permission = PermissionDefinition::find($forum->topic_permission);
             if (!$forum->topic_permission || Auth::user()->hasPermission($permission->name) || Auth::user()->isStoryteller()) {
                 $posted_by = Input::get("post-as");
                 $body = ForumPost::replaceSpecialTerms($body);
                 $topic = $forum->post($title, $body, User::find($posted_by));
                 $addedUsersRaw = Input::get("added-users");
                 if (strlen(trim($addedUsersRaw)) > 0) {
                     $addedUsers = explode(",", $addedUsersRaw);
                     foreach ($addedUsers as $au) {
                         $new_au = new ForumTopicAddedUser();
                         $new_au->topic_id = $topic->id;
                         $new_au->user_id = $au;
                         $new_au->save();
                     }
                 }
                 //Check for @mentions.
                 $this->alertMentions($posted_by, $body, $topic);
                 if ($topic) {
                     return Redirect::to('/forums/topic/' . $topic->id);
                 } else {
                     return "No access.";
                 }
             } else {
                 return 'No write permission';
             }
         }
     }
 }