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();
 }
Ejemplo n.º 2
0
 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]);
 }