closet = new Closet(session('uid')); } public function index(Request $request) { $category = $request->input('category', 'skin'); $page = $request->input('page', 1); $page = $page <= 0 ? 1 : $page; $q = $request->input('q', null); if ($q) { $result = []; foreach ($this->closet->getItems() as $item) { if (strstr($item->name, $q)) { $result[] = $item; } } $items = $result; } else { $items = $this->closet->getItems($category); } // pagination $items = array_slice($items, ($page-1)*6, 6); $total_pages = ceil(count($items) / 6); echo View::make('user.closet')->with('items', $items) ->with('page', $page) ->with('q', $q) ->with('category', $category) ->with('total_pages', $total_pages) ->with('user', (new User(session('uid')))) ->render(); } public function info() { return json($this->closet->getItems()); } public function add(Request $request) { $this->validate($request, [ 'tid' => 'required|integer', 'name' => 'required|no_special_chars' ]); if ($this->closet->add($request->tid, $request->name)) { $t = Texture::find($request->tid); $t->likes += 1; $t->save(); return json(trans('user.closet.add.success', ['name' => $request->input('name')]), 0); } else { return json(trans('user.closet.add.repeated'), 1); } } public function rename(Request $request) { $this->validate($request, [ 'tid' => 'required|integer', 'new_name' => 'required|no_special_chars' ]); if ($this->closet->rename($request->tid, $request->new_name)) { return json(trans('user.closet.rename.success', ['name' => $request->new_name]), 0); } else { return json(trans('user.closet.remove.non-existent'), 0); } } public function remove(Request $request) { $this->validate($request, [ 'tid' => 'required|integer' ]); if ($this->closet->remove($request->tid)) { $t = Texture::find($request->tid); $t->likes = $t->likes - 1; $t->save(); return json(trans('user.closet.remove.success'), 0); } else { return json(trans('user.closet.remove.non-existent'), 0); } } }