public function postEdit($id) { if (!$this->checkRoute()) { return Redirect::route('index'); } $title = 'Edit A Modpack Code - ' . $this->site_name; $input = Input::only('name', 'deck', 'description', 'slug'); $modpacktag = ModpackTag::find($id); $messages = ['unique' => 'This modpack tag already exists in the database!']; $validator = Validator::make($input, ['name' => 'required|unique:modpack_tags,name,' . $modpacktag->id, 'deck' => 'required'], $messages); if ($validator->fails()) { return Redirect::action('ModpackTagController@getEdit', [$id])->withErrors($validator)->withInput(); } $modpacktag->name = $input['name']; $modpacktag->deck = $input['deck']; $modpacktag->description = $input['description']; $modpacktag->last_ip = Request::getClientIp(); if ($input['slug'] == '' || $input['slug'] == $modpacktag->slug) { $slug = Str::slug($input['name']); } else { $slug = $input['slug']; } $modpacktag->slug = $slug; $success = $modpacktag->save(); if ($success) { Cache::tags('modpacks')->flush(); Queue::push('BuildCache'); return View::make('tags.modpacks.edit', ['title' => $title, 'success' => true, 'modpacktag' => $modpacktag]); } return Redirect::action('ModpackTagController@getEdit', [$id])->withErrors(['message' => 'Unable to edit modpack code.'])->withInput(); }
public function getModpackSearch() { $results = false; $query_array = []; $mod_select_array = []; $version_select = []; $selected_mods = []; $selected_tags = []; $url_version = 'all'; $title = 'Modpack Finder - ' . $this->site_name; $meta_description = 'Find and discover amazing modpacks. Refine your search for packs that include specific mods and tags.'; $input = Input::only('tag', 'tags', 'mods', 'version'); $minecraft_versions = MinecraftVersion::where('name', '!=', '1.8')->get(); $tags = ModpackTag::all(); foreach ($minecraft_versions as $v) { $version_slug = $this->getVersionSlug($v->name); $version_select[$version_slug] = $v->name; } if ($input['version'] && $input['version'] != 'all') { $results = true; $url_version = $input['version']; $version = $this->getVersion($url_version); $minecraft_version = MinecraftVersion::where('name', $version)->first(); $mods = $minecraft_version->mods; foreach ($mods as $mod) { $id = $mod->id; $mod_select_array[$id] = $mod->name; } if ($input['mods']) { $mods_string = ''; $exploded_mods = explode(',', strtolower($input['mods'])); foreach ($exploded_mods as $mod) { $mods_string .= $mod . ','; $selected_mods[] = $mod; } $query_array[] = 'mods=' . rtrim($mods_string, ','); } } if ($input['version'] == 'all') { $results = true; } if ($input['tags']) { $tags_array = []; $tags_javascript_string = ''; foreach ($tags as $t) { $tags_array[$t->slug] = $t->id; } $exploded_tags = explode(',', strtolower($input['tags'])); foreach ($exploded_tags as $t) { if (array_key_exists($t, $tags_array)) { $tags_javascript_string .= $tags_array[$t] . ','; $selected_tags[] = $t; } } $query_array[] = 'tags=' . rtrim($tags_javascript_string, ','); } if ($input['tag']) { $tag = ModpackTag::where('slug', $input['tag'])->first(); if (!$tag) { return Redirect::action('SearchController@getModpackSearch'); } $title = $tag->name . ' Modpacks - Pack Finder - ' . $this->site_name; $meta_description = 'Find and discover ' . $tag->name . ' Modpacks. Refine your search for packs that include specific mods.'; $selected_tags[] = $tag->slug; $query_array[] = 'tags=' . $tag->id; } $table_javascript = route('tdf', ['modpackfinder', $url_version]); $query_count = 0; foreach ($query_array as $q) { if ($query_count == 0) { $table_javascript .= '?'; } else { $table_javascript .= '&'; } $table_javascript .= $q; $results = true; $query_count++; } return View::make('search.modpack', ['chosen' => true, 'title' => $title, 'results' => $results, 'table_javascript' => $table_javascript, 'mods' => $mod_select_array, 'selected_mods' => $selected_mods, 'selected_tags' => $selected_tags, 'selected_version' => $input['version'], 'version_select' => $version_select, 'url_version' => $url_version, 'search_javascript' => true, 'meta_description' => $meta_description]); }